CustomCode

Untitled

Feb 5th, 2017
160
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 4.23 KB | None | 0 0
  1. import com.google.common.base.Optional;
  2. import com.google.common.primitives.Ints;
  3. import com.parapvp.util.BukkitUtils;
  4. import java.util.Arrays;
  5. import java.util.Collections;
  6. import java.util.List;
  7. import org.bukkit.ChatColor;
  8. import org.bukkit.command.Command;
  9. import org.bukkit.command.CommandExecutor;
  10. import org.bukkit.command.CommandSender;
  11. import org.bukkit.command.TabCompleter;
  12. import org.bukkit.entity.Player;
  13. import org.bukkit.inventory.ItemStack;
  14. import org.bukkit.inventory.PlayerInventory;
  15. import org.bukkit.inventory.meta.ItemMeta;
  16.  
  17. public class CrowbarCommand
  18. implements CommandExecutor, TabCompleter
  19. {
  20. private final List<String> completions;
  21.  
  22. public CrowbarCommand()
  23. {
  24. this.completions = Arrays.asList(new String[] { "spawn", "setspawners", "setendframes" });
  25. }
  26.  
  27. public boolean onCommand(CommandSender sender, Command command, String label, String[] args)
  28. {
  29. if (!(sender instanceof Player))
  30. {
  31. sender.sendMessage(ChatColor.RED + "This command is only executable by players.");
  32. return true;
  33. }
  34. if (args.length < 1)
  35. {
  36. sender.sendMessage(ChatColor.RED + "Usage: /" + label + " <spawn|setspawners|setendframes>");
  37. return true;
  38. }
  39. Player player = (Player)sender;
  40. if (args[0].equalsIgnoreCase("spawn"))
  41. {
  42. ItemStack stack = new Crowbar().getItemIfPresent();
  43. player.getInventory().addItem(new ItemStack[] { stack });
  44. sender.sendMessage(ChatColor.YELLOW + "You have given yourself a " + stack.getItemMeta().getDisplayName() + ChatColor.YELLOW + '.');
  45. return true;
  46. }
  47. Optional<Crowbar> crowbarOptional = Crowbar.fromStack(player.getItemInHand());
  48. if (!crowbarOptional.isPresent())
  49. {
  50. sender.sendMessage(ChatColor.RED + "You are not holding a Crowbar.");
  51. return true;
  52. }
  53. if (args[0].equalsIgnoreCase("setspawners"))
  54. {
  55. if (args.length < 2)
  56. {
  57. sender.sendMessage(ChatColor.RED + "Usage: /" + label + ' ' + args[0].toLowerCase() + " <amount>");
  58. return true;
  59. }
  60. Integer amount = Ints.tryParse(args[1]);
  61. if (amount == null)
  62. {
  63. sender.sendMessage(ChatColor.RED + "'" + args[1] + "' is not a number.");
  64. return true;
  65. }
  66. if (amount.intValue() < 0)
  67. {
  68. sender.sendMessage(ChatColor.RED + "You cannot set Spawner uses to an amount less than " + 0 + '.');
  69. return true;
  70. }
  71. if (amount.intValue() > 1)
  72. {
  73. sender.sendMessage(ChatColor.RED + "Crowbars have maximum Spawner uses of " + 1 + '.');
  74. return true;
  75. }
  76. Crowbar crowbar = (Crowbar)crowbarOptional.get();
  77. crowbar.setSpawnerUses(amount.intValue());
  78. player.setItemInHand(crowbar.getItemIfPresent());
  79. sender.sendMessage(ChatColor.YELLOW + "Set Spawner uses of held Crowbar to " + amount + '.');
  80. return true;
  81. }
  82. if (!args[0].equalsIgnoreCase("setendframes"))
  83. {
  84. sender.sendMessage(ChatColor.RED + "Usage: /" + label + " <spawn|setspawners|setendframes>");
  85. return true;
  86. }
  87. if (args.length < 2)
  88. {
  89. sender.sendMessage(ChatColor.RED + "Usage: /" + label + ' ' + args[0].toLowerCase() + " <amount>");
  90. return true;
  91. }
  92. Integer amount = Ints.tryParse(args[1]);
  93. if (amount == null)
  94. {
  95. sender.sendMessage(ChatColor.RED + "'" + args[1] + "' is not a number.");
  96. return true;
  97. }
  98. if (amount.intValue() < 0)
  99. {
  100. sender.sendMessage(ChatColor.RED + "You cannot set End Frame uses to an amount less than " + 0 + '.');
  101. return true;
  102. }
  103. if (amount.intValue() > 5)
  104. {
  105. sender.sendMessage(ChatColor.RED + "Crowbars have maximum End Frame uses of " + 1 + '.');
  106. return true;
  107. }
  108. Crowbar crowbar = (Crowbar)crowbarOptional.get();
  109. crowbar.setEndFrameUses(amount.intValue());
  110. player.setItemInHand(crowbar.getItemIfPresent());
  111. sender.sendMessage(ChatColor.YELLOW + "Set End Frame uses of held Crowbar to " + amount + '.');
  112. return true;
  113. }
  114.  
  115. public List<String> onTabComplete(CommandSender sender, Command command, String label, String[] args)
  116. {
  117. return args.length == 1 ? BukkitUtils.getCompletions(args, this.completions) : Collections.emptyList();
  118. }
  119. }
Advertisement
Add Comment
Please, Sign In to add comment