help please

Discussion in 'Plugin Development' started by kxpeep93, Jun 30, 2014.

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

    kxpeep93

    my main class
    Code:java
    1.  
    2. String blue = ChatColor.BLUE + "";
    3. String red = ChatColor.RED + "";
    4. String aqua = ChatColor.AQUA + "";
    5. String green = ChatColor.GREEN + "";
    6. String daqua = ChatColor.DARK_AQUA + "";
    7. String bold = ChatColor.BOLD + "";
    8. String uline = ChatColor.UNDERLINE + "";
    9. String reset = ChatColor.RESET + "";
    10. String gold = ChatColor.GOLD + "";
    11. String purp = ChatColor.DARK_PURPLE + "";
    12. String white = ChatColor.WHITE + "";
    13. String dred = ChatColor.DARK_RED + "";
    14. String Prefix = green + bold +"[" + purp + bold + "Harlem War" + green + bold + "] ";
    15.  
    16. public void onEnable() {
    17. Bukkit.getServer().getConsoleSender().sendMessage(Prefix + "Has Been Enabled");
    18. }
    19. @Override
    20. public void onDisable() {
    21. Bukkit.getServer().getConsoleSender().sendMessage(Prefix + "Has Been Disbled");
    22. }
    23.  
    24. @Override
    25. public boolean onCommand(CommandSender sender, Command command,
    26. String label, String[] args) {
    27. if (label.equalsIgnoreCase("team")) {
    28. if(!(sender instanceof Player)) {
    29. sender.sendMessage(red + bold + "This command is for players only");
    30. return true;
    31. }else{
    32. Player p = (Player) sender;
    33. if (args[0].equalsIgnoreCase("join")) {
    34. sender.sendMessage(Prefix + "please specify a team " + daqua + bold + "Romans" + green + "or" + bold + aqua + "Greek");
    35. return true;
    36.  
    37. }else{
    38. if(args[1].equalsIgnoreCase("romans")) {
    39. sender.sendMessage(Prefix + "You join" + daqua + bold + "The Romans");
    40. Team.addToTeam(TeamType.ROMAN, p);
    41. return true;
    42. }
    43. }
    44. }
    45. }
    46. return true;
    47. }
    48. }

    my team class
    Code:java
    1. private static List<String> romanTeam = new ArrayList<String>();
    2. private static List<String> greekTeam = new ArrayList<String>();
    3.  
    4. public static void addToTeam(TeamType type, Player player) {
    5. if(isInTeam(player)){
    6. player.sendMessage("your already in a team");
    7. return;
    8. }
    9. switch (type) {
    10. case ROMAN:
    11. romanTeam.add(player.getName());
    12. break;
    13. case GREEK:
    14. greekTeam.add(player.getName());
    15. break;
    16. }
    17. player.sendMessage("added to " + type.toString() + "team!" );
    18. }
    19.  
    20. public static boolean isInTeam(Player player) {
    21. return greekTeam.contains(player.getName()) || romanTeam.contains(player.getName());
    22. }
    23. public static void clearTeams(){
    24. romanTeam.clear();
    25. greekTeam.clear();
    26. }
    27.  
    28. public static List<String> getromanTeam() {
    29. return romanTeam;
    30. }
    31.  
    32. public static List<String> getgreekTeam() {
    33. return greekTeam;
    34. }
    35.  
    36. public static List<String> getAllPlayersInTeams() {
    37. List<String> combinedTeams = new ArrayList<String>();
    38. combinedTeams.addAll(greekTeam);
    39. combinedTeams.addAll(romanTeam);
    40. return combinedTeams;
    41. }
    42.  
    43.  
    44. }

    team type enom
    Code:java
    1. public enum TeamType {
    2. ROMAN,GREEK
    3. }
    4.  

    when i do /team join romans it returns with this
    "please specify a team " + daqua + bold + "Romans" + green + "or" + bold + aqua + "Greek");
    how do i fix that any suggestions?
    Code:
    [19:08:49 ERROR]: null
     
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:46) ~[cra
    ftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:17
    5) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at org.bukkit.craftbukkit.v1_7_R1.CraftServer.dispatchCommand(CraftServe
    r.java:683) ~[craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.PlayerConnection.handleCommand(PlayerCon
    nection.java:952) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.PlayerConnection.a(PlayerConnection.java
    :814) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.PacketPlayInChat.a(PacketPlayInChat.java
    :28) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.PacketPlayInChat.handle(PacketPlayInChat
    .java:47) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.NetworkManager.a(NetworkManager.java:146
    ) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.ServerConnection.c(SourceFile:134) [craf
    tbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.u(MinecraftServer.java:6
    55) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.DedicatedServer.u(DedicatedServer.java:2
    50) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.t(MinecraftServer.java:5
    45) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.MinecraftServer.run(MinecraftServer.java
    :457) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            at net.minecraft.server.v1_7_R1.ThreadServerApplication.run(SourceFile:6
    17) [craftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
    Caused by: java.lang.ArrayIndexOutOfBoundsException: 0
            at me.kxpeep93.HarlemWar.HarlemWar.onCommand(HarlemWar.java:43) ~[?:?]
            at org.bukkit.command.PluginCommand.execute(PluginCommand.java:44) ~[cra
    ftbukkit.jar:git-Bukkit-1.7.2-R0.3-2-g85f5776-b3024jnks]
            ... 13 more
     
    
    this is my error log
     
  2. Offline

    An0nym8us

    Your code always returns "please specify the team" it doesn't care if typed any argument. Here's repaired part of code:

    Code:java
    1. if (args[0].equalsIgnoreCase("join"))
    2. {
    3. if(args.length > 1)
    4. {
    5. if(args[1].equalsIgnoreCase("romans")
    6. {
    7. sender.sendMessage(Prefix + "You join" + daqua + bold + "The Romans");
    8. Team.addToTeam(TeamType.ROMAN, p);
    9. return true;
    10. }
    11. else if(args[1].equalsIgnoreCase("greek")
    12. {
    13. sender.sendMessage(Prefix + "You join" + aqua + bold + "The Greek");
    14. Team.addToTeam(TeamType.GREEK, p);
    15. return true;
    16. }
    17.  
    18. }
    19.  
    20. sender.sendMessage(Prefix + "please specify a team " + daqua + bold + "Romans" + green + "or" + bold + aqua + "Greek");
    21. return true;
    22. }
     
  3. Offline

    kxpeep93

    An0nym8us can you put that in the full code, like copy my start and put in yours because its throwing errors for me?
     
  4. Offline

    An0nym8us

    kxpeep93 Bitte

    Code:java
    1. String blue = ChatColor.BLUE + "";
    2. String red = ChatColor.RED + "";
    3. String aqua = ChatColor.AQUA + "";
    4. String green = ChatColor.GREEN + "";
    5. String daqua = ChatColor.DARK_AQUA + "";
    6. String bold = ChatColor.BOLD + "";
    7. String uline = ChatColor.UNDERLINE + "";
    8. String reset = ChatColor.RESET + "";
    9. String gold = ChatColor.GOLD + "";
    10. String purp = ChatColor.DARK_PURPLE + "";
    11. String white = ChatColor.WHITE + "";
    12. String dred = ChatColor.DARK_RED + "";
    13. String Prefix = green + bold +"[" + purp + bold + "Harlem War" + green + bold + "] ";
    14.  
    15. public void onEnable() {
    16. Bukkit.getServer().getConsoleSender().sendMessage(Prefix + "Has Been Enabled");
    17. }
    18.  
    19. @Override
    20. public void onDisable() {
    21. Bukkit.getServer().getConsoleSender().sendMessage(Prefix + "Has Been Disbled");
    22. }
    23.  
    24. @Override
    25. public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
    26. {
    27. if (label.equalsIgnoreCase("team"))
    28. {
    29. if(!(sender instanceof Player))
    30. {
    31. sender.sendMessage(red + bold + "This command is for players only");
    32. return true;
    33. }
    34. else
    35. {
    36. Player p = (Player) sender;
    37.  
    38. if (args[0].equalsIgnoreCase("join"))
    39. {
    40. if(args.length > 1)
    41. {
    42. if(args[1].equalsIgnoreCase("romans")
    43. {
    44. sender.sendMessage(Prefix + "You join" + daqua + bold + "The Romans");
    45. Team.addToTeam(TeamType.ROMAN, p);
    46. return true;
    47. }
    48. else if(args[1].equalsIgnoreCase("greek")
    49. {
    50. sender.sendMessage(Prefix + "You join" + aqua + bold + "The Greek");
    51. Team.addToTeam(TeamType.GREEK, p);
    52. return true;
    53. }
    54.  
    55. }
    56.  
    57. sender.sendMessage(Prefix + "please specify a team " + daqua + bold + "Romans" + green + "or" + bold + aqua + "Greek");
    58. return true;
    59. }
    60. }
    61. }
    62.  
    63. return true;
    64. }
    65. }


    One adnotation: In my code onEnable(), onDisable() and onCommand() works finely without @Override, but (in my opinion) if you adding @Override tag to onDisable, you should add the same to onEnable ;)
     
  5. Offline

    kxpeep93

    An0nym8us /team join and /team join <team> works but when i just do /team by its self it says an internal error

    An0nym8us do you know what it could be ? and thanks for all the help to :)

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 9, 2016
  6. Offline

    unrealdesign

    You have to check the args length. And if it's not a valid length, then you return.
     
  7. Offline

    kxpeep93

    unrealdesign when i return it none of the other commands work im using
    if (label.equalsIgnoreCase("team")) {
    if (args.length == 0);
    return true;
     
  8. Offline

    unrealdesign

    kxpeep93 It's because you put a colon after the if statement LOL
     
  9. Offline

    kxpeep93

    ? unrealdesign

    unrealdesign even after i deleted the semi colon after the if(args.length == 0)
    none of the commands work

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 9, 2016
  10. Offline

    unrealdesign

    Code:text
    1.  
    2. @Override
    3. public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
    4. {
    5. if (label.equalsIgnoreCase("team"))
    6. {
    7. if(!(sender instanceof Player))
    8. {
    9. sender.sendMessage(red + bold + "This command is for players only");
    10. return true;
    11. }
    12. else
    13. {
    14. if(args.length > 0)
    15. Player p = (Player) sender;
    16.  
    17. if (args[0].equalsIgnoreCase("join"))
    18. {
    19. if(args.length > 1)
    20. {
    21. if(args[1].equalsIgnoreCase("romans")
    22. {
    23. sender.sendMessage(Prefix + "You join" + daqua + bold + "The Romans");
    24. Team.addToTeam(TeamType.ROMAN, p);
    25. return true;
    26. }
    27. else if(args[1].equalsIgnoreCase("greek")
    28. {
    29. sender.sendMessage(Prefix + "You join" + aqua + bold + "The Greek");
    30. Team.addToTeam(TeamType.GREEK, p);
    31. return true;
    32. }
    33.  
    34. }
    35.  
    36. sender.sendMessage(Prefix + "please specify a team " + daqua + bold + "Romans" + green + "or" + bold + aqua + "Greek");
    37. return true;
    38. }
    39. }
    40. }
    41. }
    42.  
    43. return true;
    44. }
    45. }
    46.  
     
Thread Status:
Not open for further replies.

Share This Page