I'm still trying to learn java and such, and I think I'm doing fairly well. But I can't seem to figure out what the problem with my onCommand is. Console Erros: If you need more then this file let me know. My main file containing my onCommand method Code:java package me.iKanak.EncryptedChat; import java.util.HashMap;import java.util.logging.Logger; import org.bukkit.command.Command;import org.bukkit.command.CommandSender;import org.bukkit.entity.Player;import org.bukkit.plugin.PluginDescriptionFile;import org.bukkit.plugin.PluginManager;import org.bukkit.plugin.java.JavaPlugin; public class EncryptedChat extends JavaPlugin { public final Logger logger = Logger.getLogger("Minecraft");private final ServerChatPlayerListener playerListener = new ServerChatPlayerListener(this);public final HashMap<Player, Boolean> encryptedUsers = new HashMap<Player, Boolean>(); public void onDisable() {PluginDescriptionFile pdfFile = this.getDescription();this.logger.info(pdfFile.getName() + " is now disabled!");} public void onEnable() {PluginManager pm = getServer().getPluginManager();pm.registerEvents(this.playerListener, this); PluginDescriptionFile pdfFile = this.getDescription();this.logger.info(pdfFile.getName() + " version " + pdfFile.getVersion() + " is enabled!");} public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {if(cmd.getName().equalsIgnoreCase("EncryptChat")) {if(sender instanceof Player) {if(args[1].equalsIgnoreCase("on")) {setEncryption((Player) sender, true);return true;} else if (args[1].equalsIgnoreCase("off")) {setEncryption((Player) sender, false);return true;} else {toggleEncryption((Player) sender);return true;}} else {this.logger.info("That command can only be used as a player!");}}return false;} public void toggleEncryption(Player player) {if(encrpytionEnabled(player)) {player.sendMessage("Leaving encryption mode...");this.encryptedUsers.remove(player);} else {player.sendMessage("Entering encryption mode...");this.encryptedUsers.put(player, null);}} public void setEncryption(Player player, boolean startEncrypting) {if (encrpytionEnabled(player)) {if (startEncrypting) {player.sendMessage("You're already encrypting!");}else {player.sendMessage("Leaving encryption mode...");this.encryptedUsers.remove(player);}} else {if (!startEncrypting) {player.sendMessage("You're not in encryption mode!");} else {player.sendMessage("Entering encryption mode...");this.encryptedUsers.put(player, null);}}} public boolean encrpytionEnabled(Player player){return this.encryptedUsers.containsKey(player);} }
Code:java if(args[1].equalsIgnoreCase("on")) { You forget to check if args is actually 2 long in this case. If you only pass 1 argument it will be 1 long and args[0].