Setting gamemode for other players issues

Discussion in 'Plugin Development' started by OptimalBread, Mar 24, 2014.

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

    OptimalBread

    So I have java working for setting your own gamemode and it tests if you were already in that gamemode.
    Code:java
    1. /* Gamemodes */
    2. if(cmd.getName().equalsIgnoreCase("gm")){
    3. if(args.length == 0) {
    4. player.sendMessage(ChatColor.GRAY + "Chose Gamemode.");
    5. player.sendMessage(ChatColor.YELLOW + "-----------------");
    6. player.sendMessage(ChatColor.GRAY + "0 = Survival Mode");
    7. player.sendMessage(ChatColor.GRAY + "1 = Creative Mode");
    8. player.sendMessage(ChatColor.GRAY + "2 = Adventure Mode");
    9. player.sendMessage(ChatColor.YELLOW + "-----------------");
    10. } else if(args.length == 1){
    11. /* Gamemode 0 */
    12. if(args[0].equalsIgnoreCase("0")) {
    13. if(player.getGameMode() != GameMode.SURVIVAL){
    14. player.setGameMode(GameMode.SURVIVAL);
    15. player.sendMessage(ChatColor.GRAY + "You are now in Survival Mode.");
    16. } else {
    17. player.sendMessage(ChatColor.RED + "You are already in Survival Mode.");
    18. }
    19. }
    20. /* Gamemode 1 */
    21. if(args[0].equalsIgnoreCase("1")) {
    22. if(player.getGameMode() != GameMode.CREATIVE){
    23. player.setGameMode(GameMode.CREATIVE);
    24. player.sendMessage(ChatColor.GRAY + "You are now in Creative Mode.");
    25. } else {
    26. player.sendMessage(ChatColor.RED + "You are already in Creative Mode.");
    27. }
    28. }
    29. /* Gamemode 2 */
    30. if(args[0].equalsIgnoreCase("2")) {
    31. if(player.getGameMode() != GameMode.ADVENTURE){
    32. player.setGameMode(GameMode.ADVENTURE);
    33. player.sendMessage(ChatColor.GRAY + "You are now in Adventure Mode.");
    34. } else {
    35. player.sendMessage(ChatColor.RED + "You are already in Adventure Mode.");
    36. }
    37. }
    38. } else if(args.length == 2){
    39. if(player.getServer().getPlayer(args[0]) == null){
    40. player.sendMessage(ChatColor.RED + "That player is not online.");
    41. } else{
    42.  
    43. /* Gamemode 0 */
    44. if(args[0].equalsIgnoreCase("0")) {
    45. Player targetPlayer = player.getServer().getPlayer(args[0]);
    46. if(player.getGameMode() != GameMode.SURVIVAL){
    47. targetPlayer.setGameMode(GameMode.SURVIVAL);
    48. targetPlayer.sendMessage(ChatColor.GRAY + "You are now in Survival Mode.");
    49. player.sendMessage(ChatColor.GRAY + "They are now in Survival Mode.");
    50. } else {
    51. player.sendMessage(ChatColor.RED + "They are already in Survival Mode.");
    52. targetPlayer.sendMessage(ChatColor.RED + "You are already in Adventure Mode.");
    53. }
    54. }
    55. /* Gamemode 1 */
    56. if(args[0].equalsIgnoreCase("1")) {
    57. Player targetPlayer = player.getServer().getPlayer(args[0]);
    58. if(targetPlayer.getGameMode() != GameMode.CREATIVE){
    59. targetPlayer.setGameMode(GameMode.CREATIVE);
    60. targetPlayer.sendMessage(ChatColor.GRAY + "You are now in Creative Mode.");
    61. player.sendMessage(ChatColor.GRAY + "They are now in Creative Mode.");
    62. } else {
    63. player.sendMessage(ChatColor.RED + "They are already in Creative Mode.");
    64. targetPlayer.sendMessage(ChatColor.RED + "You are already in Adventure Mode.");
    65. }
    66. }
    67. /* Gamemode 2 */
    68. if(args[0].equalsIgnoreCase("2")) {
    69. Player targetPlayer = player.getServer().getPlayer(args[0]);
    70. if(targetPlayer.getGameMode() != GameMode.ADVENTURE){
    71. targetPlayer.setGameMode(GameMode.ADVENTURE);
    72. targetPlayer.sendMessage(ChatColor.GRAY + "You are now in Adventure Mode.");
    73. player.sendMessage(ChatColor.GRAY + "They are now in Adventure Mode.");
    74. } else {
    75. player.sendMessage(ChatColor.RED + "They are already in Adventure Mode.");
    76. targetPlayer.sendMessage(ChatColor.RED + "You are already in Adventure Mode.");
    77. }
    78. }
    79. }
    80. }
    81. }

    So what am I missing to set gamemodes of other players. I am fairly new to java any help would be great. I want the command of setting other peoples gamemode to be /gm 1 <username> Thank you very much.
     
  2. Offline

    Booshayy

    I have a solution to the issue. I'll post my solution when I get to my computer - I'm currently at school.

    Also, why are you using equalsIgnoreCase for a number? Numbers don't have cases :p
     
  3. Offline

    OptimalBread

    Booshayy Like I said I am relatively new to java. I can wait thanks.
     
  4. Offline

    Opacification

    OptimalBread

    Here's an example of what you want to do.

    Code:java
    1. public boolean onCommand(CommandSender sender, Command command, String commandLabel, String[] args) {
    2.  
    3. Player player = (Player) sender;
    4.  
    5. if(commandLabel.equalsIgnoreCase("gm") {
    6.  
    7. if(player.hasPermission("permission");
    8.  
    9. if(args.length > 1) { //If the arguments are not equal to one, meaning less or more.
    10. player.sendMessage("Not enough arguments");
    11.  
    12. }
    13.  
    14. if(args[0].equals("1") { //sub-command.
    15. player.setGamemode(GAMEMODE.CREATIVE); //sets the gamemode for the player.
    16. player.sendMessage("Gamemode set to CREATIVE");
    17.  
    18. } else {
    19. player.sendMessage("No permissions.");
    20.  
    21. return true;


    Hope this helped.
     
Thread Status:
Not open for further replies.

Share This Page