Solved /AddAdmin and /AddMod has issues.

Discussion in 'Plugin Help/Development/Requests' started by football70500, Apr 16, 2015.

Thread Status:
Not open for further replies.
  1. Offline

    football70500

    So I'm making a plugin that when you do /addmod or /addadmin it adds them to a permanent staff list that you can access with /stafflist. Problem is, I get this error when I do /addmod or /addadmin:
    Code:
    7:58:28 PM [INFO] Cavasi issued server command: /addmod Cavasi
    7:58:28 PM [SEVERE] null
    7:58:28 PM org.bukkit.command.CommandException: Unhandled exception executing command 'addmod' in plugin ModList v1.0
    7:58:28 PM     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) ~[spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1043) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:880) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot1649.jar:git-Spigot-1649]
    7:58:28 PM Caused by: java.lang.ArrayIndexOutOfBoundsException: 1
    7:58:28 PM     at me.Cavasi.ModList.ModList.onCommand(ModList.java:125) ~[?:?]
    7:58:28 PM     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot1649.jar:git-Spigot-1649]
    7:58:28 PM     ... 13 more
    Here is my code:
    Code:java
    1.  
    2. public class ModList extends JavaPlugin implements Listener {
    3.  
    4. public ArrayList<String> admins = new ArrayList<String>();
    5. public ArrayList<String> mods = new ArrayList<String>();
    6. public ArrayList<String> adminsperm = new ArrayList<String>();
    7. public ArrayList<String> modsperm = new ArrayList<String>();
    8.  
    9. @Override
    10. public void onEnable() {
    11. getLogger().info("ModList has been enabled!");
    12. getServer().getPluginManager().registerEvents(this, this);
    13.  
    14. }
    15.  
    16. @Override
    17. public void onDisable() {
    18. getLogger().info("ModList has been disabled!");
    19. }
    20.  
    21. @EventHandler
    22. public void onJoin(PlayerJoinEvent e) {
    23. if (e.getPlayer().hasPermission("admins.add")) {
    24. admins.add(e.getPlayer().getName());
    25. Bukkit.broadcastMessage(ChatColor.GREEN
    26. + "A Staff member has joined the game!");
    27. }
    28. if (e.getPlayer().hasPermission("mods.add")) {
    29. mods.add(e.getPlayer().getName());
    30. Bukkit.broadcastMessage(ChatColor.GREEN
    31. + "A Staff member has joined the game!");
    32. }
    33. /*
    34.   * if(e.getPlayer().hasPermission("permlist.admins.add")){
    35.   * adminsperm.add(e.getPlayer().getName()); }
    36.   * if(e.getPlayer().hasPermission("permlist.mods.add")){
    37.   * modsperm.add(e.getPlayer().getName()); }
    38.   */
    39. }
    40.  
    41. @EventHandler
    42. public void onLeave(PlayerQuitEvent e) {
    43. if (admins.contains(e.getPlayer().getName())) {
    44. admins.remove(e.getPlayer().getName());
    45. Bukkit.broadcastMessage(ChatColor.RED
    46. + "A Staff member has left the game!");
    47. }
    48. if (mods.contains(e.getPlayer().getName())) {
    49. mods.remove(e.getPlayer().getName());
    50. Bukkit.broadcastMessage(ChatColor.RED
    51. + "A Staff member has left the game!");
    52. }
    53. }
    54.  
    55. public boolean onCommand(CommandSender sender, Command cmd, String label,
    56. String[] args) {
    57. Player target = null;
    58. if (cmd.getName().equalsIgnoreCase("staff")) {
    59. // List<String> admins = new ArrayList<>();
    60. // List<String> mods = new ArrayList<>();
    61. /*
    62.   * for (Player player : getServer().getOnlinePlayers()) { String
    63.   * name = player.getName(); if (admins.contains(name)) {
    64.   * admins.add(name); }else if(mods.contains(name)){ mods.add(name);
    65.   * } }
    66.   */
    67. if (admins.size() < 0 && mods.size() < 0) {
    68. sender.sendMessage(ChatColor.YELLOW
    69. + "No staff is currently online!");
    70. } else {
    71. sender.sendMessage(ChatColor.AQUA + "Admins Online:");
    72. for (String adminsName : admins) {
    73. if (admins.size() < 0) {
    74. sender.sendMessage(ChatColor.YELLOW
    75. + "No admins are currently online.");
    76. } else if (admins.size() > 0) {
    77. sender.sendMessage(ChatColor.AQUA + "• "
    78. + ChatColor.YELLOW + adminsName);
    79. }
    80. }
    81. sender.sendMessage(ChatColor.AQUA + "Mods Online:");
    82. for (String modsName : mods) {
    83. if (mods.size() < 0) {
    84. sender.sendMessage(ChatColor.YELLOW
    85. + "No mods are currently online.");
    86. } else if (mods.size() > 0) {
    87. sender.sendMessage(ChatColor.AQUA + "• "
    88. + ChatColor.YELLOW + modsName);
    89. }
    90. }
    91. }
    92.  
    93. }
    94.  
    95. if(cmd.getName().equalsIgnoreCase("addadmin")){
    96. if(sender.hasPermission("smelly.smells")){
    97. target = Bukkit.getServer().getPlayer((args[1]));
    98. if(args.length == 0){
    99. if(sender instanceof Player){
    100. if(target != null){
    101. adminsperm.add(target.getName());
    102. sender.sendMessage(ChatColor.GREEN + target.getName() + " has been added to the Admin list!");
    103. }
    104. }
    105. }
    106. }
    107. }
    108. if(cmd.getName().equalsIgnoreCase("addmod")){
    109. if(sender.hasPermission("smelly.smells")){
    110. target = Bukkit.getServer().getPlayer((args[1]));
    111. if(args.length == 0){
    112. if(sender instanceof Player){
    113. if(target != null){
    114. modsperm.add(target.getName());
    115. sender.sendMessage(ChatColor.GREEN + target.getName() + " has been added to the Admin list!");
    116. }
    117. }
    118. }
    119. }
    120. }
    121.  
    122. /*if (cmd.getName().equalsIgnoreCase("listadmin")) {
    123.   if (sender.hasPermission("set.admin")) {
    124.   target = Bukkit.getServer().getPlayer(args[1]);
    125.   if (args.length > 0) {
    126.   if (sender instanceof Player) {
    127.   if (target != null) {
    128.   adminsperm.add(target.getName());
    129.   sender.sendMessage(ChatColor.GREEN
    130.   + target.getName()
    131.   + " has been added to the Admin list!");
    132.   target.sendMessage(ChatColor.YELLOW
    133.   + "You have been added to the Admin list!");
    134.   }
    135.   }
    136.   try {
    137.   target = Bukkit.getServer().getPlayer(args[1]);
    138.   } catch (Exception ex) {
    139.   sender.sendMessage("Invalid target");
    140.   }
    141.   }
    142.   }
    143.   }
    144.   if (cmd.getName().equalsIgnoreCase("listmod")) {
    145.   if (sender.hasPermission("set.mod")) {
    146.   target = Bukkit.getServer().getPlayer(args[1]);
    147.   if (args.length > 0) {
    148.   if (sender instanceof Player) {
    149.   if (target != null) {
    150.   modsperm.add(target.getName());
    151.   sender.sendMessage(ChatColor.GREEN
    152.   + target.getName()
    153.   + " has been added to the Mod list!");
    154.   target.sendMessage(ChatColor.YELLOW
    155.   + "You have been added to the Mod list!");
    156.   }
    157.   }
    158.   }
    159.   }
    160.   */
    161. if (cmd.getName().equalsIgnoreCase("stafflist")) {
    162. if (adminsperm.size() == 0 && modsperm.size() == 0) {
    163. sender.sendMessage(ChatColor.YELLOW
    164. + "There is no staff for this server!");
    165. } else {
    166. sender.sendMessage(ChatColor.AQUA + "Admins:");
    167. for (String adminsName : adminsperm) {
    168. if (adminsperm.size() == 0) {
    169. sender.sendMessage(ChatColor.YELLOW
    170. + "There are no admins for this server!");
    171. } else if (adminsperm.size() > 0) {
    172. sender.sendMessage(ChatColor.AQUA + "• "
    173. + ChatColor.YELLOW + adminsName);
    174. }
    175. }
    176. sender.sendMessage(ChatColor.AQUA + "Mods:");
    177. for (String modsName : modsperm) {
    178. if (modsperm.size() == 0) {
    179. sender.sendMessage(ChatColor.YELLOW
    180. + "There are no mods for this server!");
    181. } else if (modsperm.size() > 0) {
    182. sender.sendMessage(ChatColor.AQUA + "• "
    183. + ChatColor.YELLOW + modsName);
    184. }
    185. }
    186. }
    187. }
    188. //}
    189. return true;
    190. }
    191. }
    192.  
    193.  

    I stamped out the /listadmin and /listmod because it was terrible and so ugly and replaced it with addmod and addadmin, I don't know what's causing this error to be thrown.
     
  2. Offline

    nverdier

    @football70500
    What is on line 125?
     
  3. Offline

    football70500

    target = Bukkit.getServer().getPlayer((args[1]));

    EDIT: Found my issue. Checking to see if it fixed.
    Edit: thought it worked, now /addmod and /addadmin work fine but dont show any messages when you add someone and/stafflist throws an error.
    Code:
    8:06:31 PM [INFO] Cavasi issued server command: /stafflist
    8:06:31 PM [SEVERE] null
    8:06:31 PM org.bukkit.command.CommandException: Unhandled exception executing command 'stafflist' in plugin ModList v1.0
    8:06:31 PM     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) ~[spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1043) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:880) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot1649.jar:git-Spigot-1649]
    8:06:31 PM Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    8:06:31 PM     at me.Cavasi.ModList.ModList.onCommand(ModList.java:72) ~[?:?]
    8:06:31 PM     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot1649.jar:git-Spigot-1649]
    8:06:31 PM     ... 13 more
    Looks like there's an issue on Line 72 which is:
    Player target = Bukkit.getServer().getPlayer(args[0]);

    Code:java
    1.  
    2. public class ModList extends JavaPlugin implements Listener {
    3.  
    4. public ArrayList<String> admins = new ArrayList<String>();
    5. public ArrayList<String> mods = new ArrayList<String>();
    6. public ArrayList<String> adminsperm = new ArrayList<String>();
    7. public ArrayList<String> modsperm = new ArrayList<String>();
    8.  
    9. @Override
    10. public void onEnable() {
    11. getLogger().info("ModList has been enabled!");
    12. getServer().getPluginManager().registerEvents(this, this);
    13.  
    14. }
    15.  
    16. @Override
    17. public void onDisable() {
    18. getLogger().info("ModList has been disabled!");
    19. }
    20.  
    21. @EventHandler
    22. public void onJoin(PlayerJoinEvent e) {
    23. if (e.getPlayer().hasPermission("admins.add")) {
    24. admins.add(e.getPlayer().getName());
    25. Bukkit.broadcastMessage(ChatColor.GREEN
    26. + "A Staff member has joined the game!");
    27. }
    28. if (e.getPlayer().hasPermission("mods.add")) {
    29. mods.add(e.getPlayer().getName());
    30. Bukkit.broadcastMessage(ChatColor.GREEN
    31. + "A Staff member has joined the game!");
    32. }
    33. /*
    34.   * if(e.getPlayer().hasPermission("permlist.admins.add")){
    35.   * adminsperm.add(e.getPlayer().getName()); }
    36.   * if(e.getPlayer().hasPermission("permlist.mods.add")){
    37.   * modsperm.add(e.getPlayer().getName()); }
    38.   */
    39. }
    40.  
    41. @EventHandler
    42. public void onLeave(PlayerQuitEvent e) {
    43. if (admins.contains(e.getPlayer().getName())) {
    44. admins.remove(e.getPlayer().getName());
    45. Bukkit.broadcastMessage(ChatColor.RED
    46. + "A Staff member has left the game!");
    47. }
    48. if (mods.contains(e.getPlayer().getName())) {
    49. mods.remove(e.getPlayer().getName());
    50. Bukkit.broadcastMessage(ChatColor.RED
    51. + "A Staff member has left the game!");
    52. }
    53. }
    54.  
    55. public boolean onCommand(CommandSender sender, Command cmd, String label,
    56. String[] args) {
    57. Player target = Bukkit.getServer().getPlayer(args[0]);
    58. if (cmd.getName().equalsIgnoreCase("staff")) {
    59. // List<String> admins = new ArrayList<>();
    60. // List<String> mods = new ArrayList<>();
    61. /*
    62.   * for (Player player : getServer().getOnlinePlayers()) { String
    63.   * name = player.getName(); if (admins.contains(name)) {
    64.   * admins.add(name); }else if(mods.contains(name)){ mods.add(name);
    65.   * } }
    66.   */
    67. if (admins.size() < 0 && mods.size() < 0) {
    68. sender.sendMessage(ChatColor.YELLOW
    69. + "No staff is currently online!");
    70. } else {
    71. sender.sendMessage(ChatColor.AQUA + "Admins Online:");
    72. for (String adminsName : admins) {
    73. if (admins.size() < 0) {
    74. sender.sendMessage(ChatColor.YELLOW
    75. + "No admins are currently online.");
    76. } else if (admins.size() > 0) {
    77. sender.sendMessage(ChatColor.AQUA + "• "
    78. + ChatColor.YELLOW + adminsName);
    79. }
    80. }
    81. sender.sendMessage(ChatColor.AQUA + "Mods Online:");
    82. for (String modsName : mods) {
    83. if (mods.size() < 0) {
    84. sender.sendMessage(ChatColor.YELLOW
    85. + "No mods are currently online.");
    86. } else if (mods.size() > 0) {
    87. sender.sendMessage(ChatColor.AQUA + "• "
    88. + ChatColor.YELLOW + modsName);
    89. }
    90. }
    91. }
    92.  
    93. }
    94.  
    95. if(cmd.getName().equalsIgnoreCase("addadmin")){
    96. if(sender.hasPermission("smelly.smells")){
    97. if(args.length == 0){
    98. if(sender instanceof Player){
    99. if(target != null){
    100. adminsperm.add(target.getName());
    101. sender.sendMessage(ChatColor.GREEN + target.getName() + " has been added to the Admin list!");
    102. }
    103. }
    104. }
    105. }
    106. }
    107. if(cmd.getName().equalsIgnoreCase("addmod")){
    108. if(sender.hasPermission("smelly.smells")){
    109. if(args.length == 0){
    110. if(sender instanceof Player){
    111. if(target != null){
    112. modsperm.add(target.getName());
    113. sender.sendMessage(ChatColor.GREEN + target.getName() + " has been added to the Admin list!");
    114. }
    115. }
    116. }
    117. }
    118. }
    119.  
    120. /*if (cmd.getName().equalsIgnoreCase("listadmin")) {
    121.   if (sender.hasPermission("set.admin")) {
    122.   target = Bukkit.getServer().getPlayer(args[1]);
    123.   if (args.length > 0) {
    124.   if (sender instanceof Player) {
    125.   if (target != null) {
    126.   adminsperm.add(target.getName());
    127.   sender.sendMessage(ChatColor.GREEN
    128.   + target.getName()
    129.   + " has been added to the Admin list!");
    130.   target.sendMessage(ChatColor.YELLOW
    131.   + "You have been added to the Admin list!");
    132.   }
    133.   }
    134.   try {
    135.   target = Bukkit.getServer().getPlayer(args[1]);
    136.   } catch (Exception ex) {
    137.   sender.sendMessage("Invalid target");
    138.   }
    139.   }
    140.   }
    141.   }
    142.   if (cmd.getName().equalsIgnoreCase("listmod")) {
    143.   if (sender.hasPermission("set.mod")) {
    144.   target = Bukkit.getServer().getPlayer(args[1]);
    145.   if (args.length > 0) {
    146.   if (sender instanceof Player) {
    147.   if (target != null) {
    148.   modsperm.add(target.getName());
    149.   sender.sendMessage(ChatColor.GREEN
    150.   + target.getName()
    151.   + " has been added to the Mod list!");
    152.   target.sendMessage(ChatColor.YELLOW
    153.   + "You have been added to the Mod list!");
    154.   }
    155.   }
    156.   }
    157.   }
    158.   */
    159. if (cmd.getName().equalsIgnoreCase("stafflist")) {
    160. if (adminsperm.size() == 0 && modsperm.size() == 0) {
    161. sender.sendMessage(ChatColor.YELLOW
    162. + "There is no staff for this server!");
    163. } else {
    164. sender.sendMessage(ChatColor.AQUA + "Admins:");
    165. for (String adminsName : adminsperm) {
    166. if (adminsperm.size() == 0) {
    167. sender.sendMessage(ChatColor.YELLOW
    168. + "There are no admins for this server!");
    169. } else if (adminsperm.size() > 0) {
    170. sender.sendMessage(ChatColor.AQUA + "• "
    171. + ChatColor.YELLOW + adminsName);
    172. }
    173. }
    174. sender.sendMessage(ChatColor.AQUA + "Mods:");
    175. for (String modsName : modsperm) {
    176. if (modsperm.size() == 0) {
    177. sender.sendMessage(ChatColor.YELLOW
    178. + "There are no mods for this server!");
    179. } else if (modsperm.size() > 0) {
    180. sender.sendMessage(ChatColor.AQUA + "• "
    181. + ChatColor.YELLOW + modsName);
    182. }
    183. }
    184. }
    185. }
    186. //}
    187. return true;
    188. }
    189. }
    190.  
     
  4. Offline

    nverdier

    @football70500 'args[1]' doesn't exist. You have to check the length of the array before getting the String at index 1.

    EDIT: Just saw your edit ;3
     
  5. Offline

    football70500

    @nverdier check it again i just added an extra edit
     
  6. Offline

    nverdier

    @football70500 The problem now is that the sender didn't specify any arguments.
     
  7. Offline

    football70500

    When they type /stafflist?
    EDIT: Thought i fixed it but i guess not, Messages on /addadmin and /addmod work now, but /stafflist still throws an error:

    Code:
    8:13:05 PM [SEVERE] null
    8:13:05 PM org.bukkit.command.CommandException: Unhandled exception executing command 'stafflist' in plugin ModList v1.0
    8:13:05 PM     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) ~[spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) ~[spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1043) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:880) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [spigot1649.jar:git-Spigot-1649]
    8:13:05 PM Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
    8:13:05 PM     at me.Cavasi.ModList.ModList.onCommand(ModList.java:72) ~[?:?]
    8:13:05 PM     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[spigot1649.jar:git-Spigot-1649]
    8:13:05 PM     ... 13 more
    Code:java
    1.  
    2. public class ModList extends JavaPlugin implements Listener {
    3.  
    4. public ArrayList<String> admins = new ArrayList<String>();
    5. public ArrayList<String> mods = new ArrayList<String>();
    6. public ArrayList<String> adminsperm = new ArrayList<String>();
    7. public ArrayList<String> modsperm = new ArrayList<String>();
    8.  
    9. @Override
    10. public void onEnable() {
    11. getLogger().info("ModList has been enabled!");
    12. getServer().getPluginManager().registerEvents(this, this);
    13.  
    14. }
    15.  
    16. @Override
    17. public void onDisable() {
    18. getLogger().info("ModList has been disabled!");
    19. }
    20.  
    21. @EventHandler
    22. public void onJoin(PlayerJoinEvent e) {
    23. if (e.getPlayer().hasPermission("admins.add")) {
    24. admins.add(e.getPlayer().getName());
    25. Bukkit.broadcastMessage(ChatColor.GREEN
    26. + "A Staff member has joined the game!");
    27. }
    28. if (e.getPlayer().hasPermission("mods.add")) {
    29. mods.add(e.getPlayer().getName());
    30. Bukkit.broadcastMessage(ChatColor.GREEN
    31. + "A Staff member has joined the game!");
    32. }
    33. /*
    34.   * if(e.getPlayer().hasPermission("permlist.admins.add")){
    35.   * adminsperm.add(e.getPlayer().getName()); }
    36.   * if(e.getPlayer().hasPermission("permlist.mods.add")){
    37.   * modsperm.add(e.getPlayer().getName()); }
    38.   */
    39. }
    40.  
    41. @EventHandler
    42. public void onLeave(PlayerQuitEvent e) {
    43. if (admins.contains(e.getPlayer().getName())) {
    44. admins.remove(e.getPlayer().getName());
    45. Bukkit.broadcastMessage(ChatColor.RED
    46. + "A Staff member has left the game!");
    47. }
    48. if (mods.contains(e.getPlayer().getName())) {
    49. mods.remove(e.getPlayer().getName());
    50. Bukkit.broadcastMessage(ChatColor.RED
    51. + "A Staff member has left the game!");
    52. }
    53. }
    54.  
    55. public boolean onCommand(CommandSender sender, Command cmd, String label,
    56. String[] args) {
    57. Player target = Bukkit.getServer().getPlayer(args[0]);
    58. if (cmd.getName().equalsIgnoreCase("staff")) {
    59. // List<String> admins = new ArrayList<>();
    60. // List<String> mods = new ArrayList<>();
    61. /*
    62.   * for (Player player : getServer().getOnlinePlayers()) { String
    63.   * name = player.getName(); if (admins.contains(name)) {
    64.   * admins.add(name); }else if(mods.contains(name)){ mods.add(name);
    65.   * } }
    66.   */
    67. if (admins.size() < 0 && mods.size() < 0) {
    68. sender.sendMessage(ChatColor.YELLOW
    69. + "No staff is currently online!");
    70. } else {
    71. sender.sendMessage(ChatColor.AQUA + "Admins Online:");
    72. for (String adminsName : admins) {
    73. if (admins.size() < 0) {
    74. sender.sendMessage(ChatColor.YELLOW
    75. + "No admins are currently online.");
    76. } else if (admins.size() > 0) {
    77. sender.sendMessage(ChatColor.AQUA + "• "
    78. + ChatColor.YELLOW + adminsName);
    79. }
    80. }
    81. sender.sendMessage(ChatColor.AQUA + "Mods Online:");
    82. for (String modsName : mods) {
    83. if (mods.size() < 0) {
    84. sender.sendMessage(ChatColor.YELLOW
    85. + "No mods are currently online.");
    86. } else if (mods.size() > 0) {
    87. sender.sendMessage(ChatColor.AQUA + "• "
    88. + ChatColor.YELLOW + modsName);
    89. }
    90. }
    91. }
    92.  
    93. }
    94.  
    95. if (cmd.getName().equalsIgnoreCase("addadmin")) {
    96. if (sender.hasPermission("smelly.smells")) {
    97. if (args.length == 1) {
    98. if (sender instanceof Player) {
    99. if (target != null) {
    100. adminsperm.add(target.getName());
    101. sender.sendMessage(ChatColor.GREEN
    102. + target.getName()
    103. + " has been added to the Admin list!");
    104. }
    105. }
    106. }
    107. }
    108. }
    109. if (cmd.getName().equalsIgnoreCase("addmod")) {
    110. if (sender.hasPermission("smelly.smells")) {
    111. if (args.length == 1) {
    112. if (sender instanceof Player) {
    113. if (target != null) {
    114. modsperm.add(target.getName());
    115. sender.sendMessage(ChatColor.GREEN
    116. + target.getName()
    117. + " has been added to the Admin list!");
    118. }
    119. }
    120. }
    121. }
    122. }
    123.  
    124. /*
    125.   * if (cmd.getName().equalsIgnoreCase("listadmin")) { if
    126.   * (sender.hasPermission("set.admin")) { target =
    127.   * Bukkit.getServer().getPlayer(args[1]); if (args.length > 0) { if
    128.   * (sender instanceof Player) { if (target != null) {
    129.   * adminsperm.add(target.getName()); sender.sendMessage(ChatColor.GREEN
    130.   * + target.getName() + " has been added to the Admin list!");
    131.   * target.sendMessage(ChatColor.YELLOW +
    132.   * "You have been added to the Admin list!"); } } try { target =
    133.   * Bukkit.getServer().getPlayer(args[1]); } catch (Exception ex) {
    134.   * sender.sendMessage("Invalid target"); } } } } if
    135.   * (cmd.getName().equalsIgnoreCase("listmod")) { if
    136.   * (sender.hasPermission("set.mod")) { target =
    137.   * Bukkit.getServer().getPlayer(args[1]); if (args.length > 0) { if
    138.   * (sender instanceof Player) { if (target != null) {
    139.   * modsperm.add(target.getName()); sender.sendMessage(ChatColor.GREEN +
    140.   * target.getName() + " has been added to the Mod list!");
    141.   * target.sendMessage(ChatColor.YELLOW +
    142.   * "You have been added to the Mod list!"); } } } }
    143.   */
    144. if (cmd.getName().equalsIgnoreCase("stafflist")) {
    145.  
    146. if(args.length == 0)
    147. if (adminsperm.size() == 0 && modsperm.size() == 0) {
    148. sender.sendMessage(ChatColor.YELLOW
    149. + "There is no staff for this server!");
    150. } else {
    151. sender.sendMessage(ChatColor.AQUA + "Admins:");
    152. for (String adminsName : adminsperm) {
    153. if (adminsperm.size() == 0) {
    154. sender.sendMessage(ChatColor.YELLOW
    155. + "There are no admins for this server!");
    156. } else if (adminsperm.size() > 0) {
    157. sender.sendMessage(ChatColor.AQUA + "• "
    158. + ChatColor.YELLOW + adminsName);
    159. }
    160. }
    161. sender.sendMessage(ChatColor.AQUA + "Mods:");
    162. for (String modsName : modsperm) {
    163. if (modsperm.size() == 0) {
    164. sender.sendMessage(ChatColor.YELLOW
    165. + "There are no mods for this server!");
    166. } else if (modsperm.size() > 0) {
    167. sender.sendMessage(ChatColor.AQUA + "• "
    168. + ChatColor.YELLOW + modsName);
    169. }
    170. }
    171. }
    172. }
    173. // }
    174. return true;
    175. }
    176. }
     
  8. Offline

    nverdier

  9. Offline

    football70500

    @nverdier check my newest edit on the post RIGHT above the comment you just typed
    EDIT: Think i made an oopsie and forgot a curly bracket xD
     
  10. Offline

    nverdier

    @football70500 In the code, when they type /stafflist, it tries the get the first argument, but it doesn't exist.
     
  11. Offline

    football70500

    @nverdier
    Code:java
    1.  
    2. if (cmd.getName().equalsIgnoreCase("stafflist")) {
    3.  
    4. if (args.length == 0) {
    5. if (adminsperm.size() == 0 && modsperm.size() == 0) {
    6. sender.sendMessage(ChatColor.YELLOW
    7. + "There is no staff for this server!");
    8. } else {
    9. sender.sendMessage(ChatColor.AQUA + "Admins:");
    10. for (String adminsName : adminsperm) {
    11. if (adminsperm.size() == 0) {
    12. sender.sendMessage(ChatColor.YELLOW
    13. + "There are no admins for this server!");
    14. } else if (adminsperm.size() > 0) {
    15. sender.sendMessage(ChatColor.AQUA + "• "
    16. + ChatColor.YELLOW + adminsName);
    17. }
    18. }
    19. sender.sendMessage(ChatColor.AQUA + "Mods:");
    20. for (String modsName : modsperm) {
    21. if (modsperm.size() == 0) {
    22. sender.sendMessage(ChatColor.YELLOW
    23. + "There are no mods for this server!");
    24. } else if (modsperm.size() > 0) {
    25. sender.sendMessage(ChatColor.AQUA + "• "
    26. + ChatColor.YELLOW + modsName);
    27. }
    28. }
    29. }
    30. }
    31. }
    32.  


    Does it still do that? it still throws the same error
     
  12. Offline

    nverdier

    @football70500 At the top of your onCommand, you do
    Code:
    Player target = Bukkit.getServer().getPlayer(args[0]);
     
  13. Offline

    football70500

    Ohai, thank you so much. I just moved that out of there and placed it only where it was needed.It worked! So now, how do I make it so that the stafflist doesn't go away when the server turns off? Would I have to save my ArrayList to a file or can i go about it without doing so?
     
  14. Offline

    nverdier

  15. Offline

    football70500

    @nverdier thank you so much for all of your help! I will look into that!
     
  16. Offline

    nverdier

Thread Status:
Not open for further replies.

Share This Page