package net.geforcemods.securitycraft.commands; import java.util.ArrayList; import java.util.List; import net.geforcemods.securitycraft.gui.GuiHandler; import net.geforcemods.securitycraft.main.mod_SecurityCraft; import net.geforcemods.securitycraft.util.PlayerUtils; import net.minecraft.command.CommandBase; import net.minecraft.command.ICommand; import net.minecraft.command.ICommandSender; import net.minecraft.command.WrongUsageException; import net.minecraft.entity.player.EntityPlayer; import net.minecraft.item.ItemStack; import net.minecraft.util.EnumChatFormatting; import net.minecraft.util.StatCollector; public class CommandSC extends CommandBase implements ICommand{ private List<String> nicknames; public CommandSC(){ this.nicknames = new ArrayList<String>(); this.nicknames.add("sc"); } /** * Return the required permission level for this command. */ public int getRequiredPermissionLevel() { return 0; } public String getCommandName() { return "sc"; } public List<String> getCommandAliases() { return this.nicknames; } public String getCommandUsage(ICommandSender icommandsender) { return StatCollector.translateToLocal("messages.command.sc.usage"); } public boolean canCommandSenderUseCommand(ICommandSender icommandsender) { return true; } public void processCommand(ICommandSender sender, String[] par1String) { if(par1String.length == 0){ throw new WrongUsageException(StatCollector.translateToLocal("messages.command.sc.usage")); } if((par1String[0].matches("connect") || par1String[0].matches("disconnect") || par1String[0].matches("contact") || par1String[0].matches("bug")) && !mod_SecurityCraft.configHandler.isIrcBotEnabled){ PlayerUtils.sendMessageToPlayer(sender, "IRC", StatCollector.translateToLocal("messages.irc.botDisabled"), EnumChatFormatting.RED); return; } if(par1String.length == 1){ if(par1String[0].matches("connect")){ EntityPlayer p = PlayerUtils.getPlayerFromName(sender.getCommandSenderName()); p.openGui(mod_SecurityCraft.instance, GuiHandler.IRC_INFORMATION, p.worldObj, p.chunkCoordX, p.chunkCoordY, p.chunkCoordZ); try{ mod_SecurityCraft.instance.getIrcBot(sender.getCommandSenderName()).connectToChannel(); }catch(Exception e){ e.printStackTrace(); PlayerUtils.sendMessageToPlayer(sender, "IRC", StatCollector.translateToLocal("messages.irc.error"), EnumChatFormatting.RED); return; } PlayerUtils.sendMessageToPlayer(sender, "IRC", StatCollector.translateToLocal("messages.irc.connected"), EnumChatFormatting.GREEN); }else if(par1String[0].matches("disconnect")){ if(mod_SecurityCraft.instance.getIrcBot(sender.getCommandSenderName()) != null){ mod_SecurityCraft.instance.getIrcBot(sender.getCommandSenderName()).disconnect(); } PlayerUtils.sendMessageToPlayer(sender, "IRC", StatCollector.translateToLocal("messages.irc.disconnected"), EnumChatFormatting.RED); }else if(par1String[0].matches("help")){ getCommandSenderAsPlayer(sender).inventory.addItemStackToInventory(new ItemStack(mod_SecurityCraft.scManual)); } else if(par1String[0].matches("bug")) PlayerUtils.sendMessageEndingWithLink(sender, "SecurityCraft", StatCollector.translateToLocal("messages.bugReport"), "http://goo.gl/forms/kfRpvvQzfl", EnumChatFormatting.GOLD); else if(par1String[0].equals("resume")) mod_SecurityCraft.instance.getIrcBot(sender.getCommandSenderName()).setMessageMode(false, sender); else if(par1String[0].matches("contact")){ if(mod_SecurityCraft.instance.getIrcBot(sender.getCommandSenderName()) != null){ mod_SecurityCraft.instance.getIrcBot(sender.getCommandSenderName()).setMessageMode(true, sender); }else{ PlayerUtils.sendMessageToPlayer(sender, "IRC", StatCollector.translateToLocal("messages.irc.notConnected"), EnumChatFormatting.RED); } } }else if(par1String.length >= 2){ if(par1String[0].matches("contact")){ if(mod_SecurityCraft.instance.getIrcBot(sender.getCommandSenderName()) != null){ mod_SecurityCraft.instance.getIrcBot(sender.getCommandSenderName()).setMessageMode(true, sender); }else{ PlayerUtils.sendMessageToPlayer(sender, "IRC", StatCollector.translateToLocal("messages.irc.notConnected"), EnumChatFormatting.RED); } } else if(par1String[0].matches("bug")) PlayerUtils.sendMessageEndingWithLink(sender, "SecurityCraft", StatCollector.translateToLocal("messages.bugReport"), "http://goo.gl/forms/kfRpvvQzfl", EnumChatFormatting.GOLD); else if(par1String[0].equals("resume")) mod_SecurityCraft.instance.getIrcBot(sender.getCommandSenderName()).setMessageMode(false, sender); }else{ throw new WrongUsageException(StatCollector.translateToLocal("messages.command.sc.usage")); } } // private static String getMessageFromArray(String[] par1String, int index) { // String startingString = ""; // for(int i = index; i < par1String.length; i++){ // startingString += (i == index ? "" : " ") + par1String[i]; // } // // return startingString; // } // // private void sendMessageToPlayer(String par1, ICommandSender par2){ // ChatComponentText chatcomponenttext = new ChatComponentText(par1); // getPlayer(par2, par2.getCommandSenderName()).addChatComponentMessage(chatcomponenttext); // } public int compareTo(Object par1Obj) { return this.compareTo((ICommand)par1Obj); } }