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.CommandException;
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.server.MinecraftServer;
import net.minecraft.util.text.TextFormatting;
import net.minecraft.util.text.translation.I18n;
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.
*/
@Override
public int getRequiredPermissionLevel()
{
return 0;
}
@Override
public String getCommandName() {
return "sc";
}
@Override
public List<String> getCommandAliases() {
return this.nicknames;
}
@Override
public String getCommandUsage(ICommandSender icommandsender) {
return I18n.translateToLocal("messages.command.sc.usage");
}
@Override
public boolean checkPermission(MinecraftServer server, ICommandSender icommandsender) {
return true;
}
@Override
public void execute(MinecraftServer server, ICommandSender sender, String[] args) throws CommandException {
if(args.length == 0){
throw new WrongUsageException(I18n.translateToLocal("messages.command.sc.usage"));
}
if((args[0].matches("connect") || args[0].matches("disconnect") || args[0].matches("contact") || args[0].matches("bug")) && !mod_SecurityCraft.configHandler.isIrcBotEnabled){
PlayerUtils.sendMessageToPlayer(sender, "IRC", I18n.translateToLocal("messages.irc.botDisabled"), TextFormatting.RED);
return;
}
if(args.length == 1){
if(args[0].matches("connect")){
EntityPlayer p = PlayerUtils.getPlayerFromName(sender.getName());
p.openGui(mod_SecurityCraft.instance, GuiHandler.IRC_INFORMATION, p.worldObj, p.chunkCoordX, p.chunkCoordY, p.chunkCoordZ);
try{
mod_SecurityCraft.instance.getIrcBot(sender.getName()).connectToChannel();
}catch(Exception e){
e.printStackTrace();
PlayerUtils.sendMessageToPlayer(sender, "IRC", I18n.translateToLocal("messages.irc.error"), TextFormatting.RED);
return;
}
PlayerUtils.sendMessageToPlayer(sender, "IRC", I18n.translateToLocal("messages.irc.connected"), TextFormatting.GREEN);
}else if(args[0].matches("disconnect")){
if(mod_SecurityCraft.instance.getIrcBot(sender.getName()) != null){
mod_SecurityCraft.instance.getIrcBot(sender.getName()).disconnect();
}
PlayerUtils.sendMessageToPlayer(sender, "IRC", I18n.translateToLocal("messages.irc.disconnected"), TextFormatting.RED);
}else if(args[0].matches("help")){
getCommandSenderAsPlayer(sender).inventory.addItemStackToInventory(new ItemStack(mod_SecurityCraft.scManual));
}
else if(args[0].matches("bug"))
PlayerUtils.sendMessageEndingWithLink(sender, "SecurityCraft", I18n.translateToLocal("messages.bugReport"), "http://goo.gl/forms/kfRpvvQzfl", TextFormatting.GOLD);
else if(args[0].equals("resume"))
mod_SecurityCraft.instance.getIrcBot(sender.getName()).setMessageMode(false, sender);
else if(args[0].matches("contact")){
if(mod_SecurityCraft.instance.getIrcBot(sender.getName()) != null){
mod_SecurityCraft.instance.getIrcBot(sender.getName()).setMessageMode(true, sender);
}else{
PlayerUtils.sendMessageToPlayer(sender, "IRC", I18n.translateToLocal("messages.irc.notConnected"), TextFormatting.RED);
}
}
}else if(args.length >= 2){
if(args[0].matches("contact")){
if(mod_SecurityCraft.instance.getIrcBot(sender.getName()) != null){
mod_SecurityCraft.instance.getIrcBot(sender.getName()).setMessageMode(true, sender);
}else{
PlayerUtils.sendMessageToPlayer(sender, "IRC", I18n.translateToLocal("messages.irc.notConnected"), TextFormatting.RED);
}
}
else if(args[0].matches("bug"))
PlayerUtils.sendMessageEndingWithLink(sender, "SecurityCraft", I18n.translateToLocal("messages.bugReport"), "http://goo.gl/forms/kfRpvvQzfl", TextFormatting.GOLD);
else if(args[0].equals("resume"))
mod_SecurityCraft.instance.getIrcBot(sender.getName()).setMessageMode(false, sender);
}else{
throw new WrongUsageException(I18n.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) throws PlayerNotFoundException{
// ChatComponentText chatcomponenttext = new ChatComponentText(par1);
// getPlayer(par2, par2.getName()).addChatComponentMessage(chatcomponenttext);
// }
}