Using switch statement on same material

Discussion in 'Plugin Development' started by Kend2000, May 6, 2014.

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

    Kend2000

    I have a thought that this won't work because I am using the item meta. If this is wrong, can anyone tell me an alternative way to go?

    Code:java
    1. import java.util.ArrayList;
    2. import java.util.List;
    3.  
    4. import org.bukkit.Bukkit;
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Material;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.Listener;
    9. import org.bukkit.event.block.Action;
    10. import org.bukkit.event.inventory.InventoryClickEvent;
    11. import org.bukkit.event.player.PlayerInteractEvent;
    12. import org.bukkit.inventory.Inventory;
    13. import org.bukkit.inventory.ItemStack;
    14. import org.bukkit.inventory.meta.ItemMeta;
    15. import org.bukkit.plugin.Plugin;
    16.  
    17. public class LobbyMenuGui implements Listener{
    18. Visibility vsB = new Visibility();
    19.  
    20. public void onEnable(){
    21. Bukkit.getServer().getPluginManager().registerEvents(this, (Plugin) this);
    22. }
    23.  
    24. private void openMainGui(Player player){
    25. Inventory inv = Bukkit.createInventory(null, 9, "Lobby Menu");
    26.  
    27. //Visibility
    28. ItemStack visibility = new ItemStack(Material.ENDER_PEARL);
    29. ItemMeta vsMeta = visibility.getItemMeta();
    30. vsMeta.setDisplayName("Player Visibility");
    31. List<String> vsLore = new ArrayList<String>();
    32. String vsLLine1 = ChatColor.GRAY + "Toggle player visibility";
    33. vsLore.add(vsLLine1);
    34. vsMeta.setLore(vsLore);
    35. visibility.setItemMeta(vsMeta);
    36.  
    37. inv.setItem(0, visibility);
    38. }
    39.  
    40. private ItemStack vsNone = new ItemStack(Material.ENDER_PEARL);
    41. private ItemStack vsPremium = new ItemStack(Material.ENDER_PEARL);
    42. private ItemStack vsAll = new ItemStack(Material.ENDER_PEARL);
    43.  
    44. private void openPVGui(Player player){
    45. Inventory inv = Bukkit.createInventory(null, 9, "Player Visibility");
    46.  
    47. //View none
    48. ItemMeta vsNMeta = vsNone.getItemMeta();
    49. vsNMeta.setDisplayName("View none.");
    50. List<String> vsNLore = new ArrayList<String>();
    51. String vsLNLine1 = ChatColor.GRAY + "Hides all players.";
    52. vsNLore.add(vsLNLine1);
    53. vsNMeta.setLore(vsNLore);
    54. vsNone.setItemMeta(vsNMeta);
    55.  
    56. //View premium only
    57. ItemMeta vsPMeta = vsPremium.getItemMeta();
    58. vsPMeta.setDisplayName("View premium only.");
    59. List<String> vsPLore = new ArrayList<String>();
    60. String vsLPLine1 = ChatColor.GRAY + "Shows only premium members.";
    61. vsPLore.add(vsLPLine1);
    62. vsPMeta.setLore(vsPLore);
    63. vsPremium.setItemMeta(vsPMeta);
    64.  
    65. //View all
    66. ItemMeta vsAllMeta = vsAll.getItemMeta();
    67. vsAllMeta.setDisplayName("View all.");
    68. List<String> vsAllLore = new ArrayList<String>();
    69. String vsLALine1 = ChatColor.GRAY + "Shows all players.";
    70. vsAllLore.add(vsLALine1);
    71. vsAllMeta.setLore(vsAllLore);
    72. vsAll.setItemMeta(vsAllMeta);
    73.  
    74. inv.setItem(0, vsNone);
    75. inv.setItem(4, vsPremium);
    76. inv.setItem(8, vsAll);
    77. }
    78.  
    79. public void onInventoryClick(InventoryClickEvent event){
    80. Player player = (Player) event.getWhoClicked();
    81. event.setCancelled(true);
    82.  
    83. switch (event.getCurrentItem().getData().toItemStack().getItemMeta().getDisplayName()){
    84. case "Player Visibility":
    85. player.closeInventory();
    86. openPVGui(player);
    87. case "View none.":
    88. vsNone = new ItemStack(Material.EYE_OF_ENDER);
    89. vsPremium = new ItemStack(Material.ENDER_PEARL);
    90. vsAll = new ItemStack(Material.ENDER_PEARL);
    91.  
    92. vsB.playerVisibility(player, 1);
    93. player.closeInventory();
    94. case "View premium only.":
    95. vsNone = new ItemStack(Material.ENDER_PEARL);
    96. vsPremium = new ItemStack(Material.EYE_OF_ENDER);
    97. vsAll = new ItemStack(Material.ENDER_PEARL);
    98.  
    99. vsB.playerVisibility(player, 2);
    100. player.closeInventory();
    101. case "View all.":
    102. vsNone = new ItemStack(Material.ENDER_PEARL);
    103. vsPremium = new ItemStack(Material.ENDER_PEARL);
    104. vsAll = new ItemStack(Material.EYE_OF_ENDER);
    105.  
    106. vsB.playerVisibility(player, 3);
    107. player.closeInventory();
    108. default:
    109. break;
    110.  
    111. }
    112. }
    113.  
    114. @SuppressWarnings("deprecation")
    115. public void onPlayerInteract(PlayerInteractEvent event){
    116. ItemStack is = event.getItem();
    117. Action a = event.getAction();
    118.  
    119. if (a == Action.PHYSICAL || is.getType() == Material.AIR){
    120. return;
    121. }
    122.  
    123. if (is.getType().getId() == 347){
    124. openMainGui(event.getPlayer());
    125. }
    126. }
    127. }
    128.  
     
  2. Offline

    Garris0n

    Is...is that your main class?

    If so, it doesn't extend JavaPlugin.

    If not, there is no onEnable method to override nor can the class be cast to a Plugin.

    Also, this is a perfect example of why people should use @Override.
     
  3. Offline

    Gater12

    Kend2000
    You should be registering the events in your Main class's onEnable method. Also you are missing the @EventHandler annotation above your event methods. Refer to this: http://wiki.bukkit.org/Event_API_Reference

    You should be breaking out of each case (Unless you intend to run all the cases below it or they will "fall through").
     
  4. Offline

    Kend2000

    It is not the main class.

    My classes do not need @EventHandler because it is handled by the main class.
    Here's one of my classes that works:
    Code:java
    1. import java.util.ArrayList;
    2.  
    3. import org.bukkit.Bukkit;
    4. import org.bukkit.ChatColor;
    5. import org.bukkit.Location;
    6. import org.bukkit.Material;
    7. import org.bukkit.entity.Player;
    8. import org.bukkit.event.EventHandler;
    9. import org.bukkit.event.Listener;
    10. import org.bukkit.event.block.Action;
    11. import org.bukkit.event.inventory.InventoryClickEvent;
    12. import org.bukkit.event.player.PlayerInteractEvent;
    13. import org.bukkit.inventory.Inventory;
    14. import org.bukkit.inventory.ItemStack;
    15. import org.bukkit.inventory.meta.ItemMeta;
    16. import org.bukkit.plugin.Plugin;
    17.  
    18. public class MenuInventoryGui implements Listener{
    19.  
    20. public void onEnable(){
    21. Bukkit.getServer().getPluginManager().registerEvents(this, (Plugin) this);
    22. }
    23.  
    24. private void teleportInWorld(Player player, int x, int y, int z){
    25. player.teleport(new Location(player.getWorld(), x, y, z));
    26. }
    27.  
    28. private void openGui(Player player){
    29. Inventory inv = Bukkit.createInventory(null, 45, "Game Menu");
    30.  
    31. Ranks rank = new Ranks();
    32. Currency currency = new Currency();
    33.  
    34. //Survival Games
    35. ItemStack sg = new ItemStack(Material.IRON_SWORD);
    36. ItemMeta sgMeta = sg.getItemMeta();
    37. sgMeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "" +
    38. ChatColor.UNDERLINE + "Survival Games");
    39.  
    40. sg.setItemMeta(sgMeta);
    41.  
    42. //Arcade
    43. ItemStack arcade = new ItemStack(Material.SLIME_BALL);
    44. ItemMeta arcadeMeta = arcade.getItemMeta();
    45. arcadeMeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "" +
    46. ChatColor.UNDERLINE + "Arcade");
    47.  
    48. arcade.setItemMeta(arcadeMeta);
    49.  
    50. //PVP Games
    51. ItemStack pvp = new ItemStack(Material.BOW);
    52. ItemMeta pvpMeta = pvp.getItemMeta();
    53. pvpMeta.setDisplayName(ChatColor.GOLD + "" + ChatColor.BOLD + "" +
    54. ChatColor.UNDERLINE + "PVP Games");
    55.  
    56. pvp.setItemMeta(pvpMeta);
    57.  
    58. //Back to hub
    59. ItemStack hub = new ItemStack(Material.PORTAL);
    60. ItemMeta hubMeta = hub.getItemMeta();
    61. hubMeta.setDisplayName(ChatColor.WHITE + "" + ChatColor.BOLD + "" + "Back to hub");
    62. hub.setItemMeta(hubMeta);
    63.  
    64. //Help
    65. ItemStack help = new ItemStack(Material.BOOKSHELF);
    66. ItemMeta helpMeta = help.getItemMeta();
    67. helpMeta.setDisplayName(ChatColor.WHITE + "" + ChatColor.BOLD + "" + "Help");
    68. help.setItemMeta(helpMeta);
    69.  
    70. //Player Stats
    71. ItemStack plrs = new ItemStack(Material.WRITTEN_BOOK);
    72. ItemMeta plrsMeta = plrs.getItemMeta();
    73. plrsMeta.setDisplayName(ChatColor.GREEN + "Player Stats");
    74. java.util.List<String> plrslore = new ArrayList<String>();
    75. String pllore1 = ChatColor.GOLD + "Coins: " + currency.getCoins(player);
    76. String pllore2 = ChatColor.GREEN +"Membership: " + rank.getRank(player);
    77. plrslore.add(pllore1);
    78. plrslore.add(pllore2);
    79. plrsMeta.setLore(plrslore);
    80. plrs.setItemMeta(plrsMeta);
    81.  
    82. //Visit Website
    83. ItemStack vs = new ItemStack(Material.COMMAND);
    84. ItemMeta vsMeta = vs.getItemMeta();
    85. vsMeta.setDisplayName(ChatColor.WHITE + "" + ChatColor.BOLD + "" + "Visit Website");
    86. vs.setItemMeta(vsMeta);
    87.  
    88. //Set the items
    89. inv.setItem(4, sg);
    90. inv.setItem(3, arcade);
    91. inv.setItem(5, pvp);
    92. inv.setItem(22, hub);
    93. inv.setItem(35, help);
    94. inv.setItem(40, plrs);
    95. inv.setItem(44, vs);
    96.  
    97. player.openInventory(inv);
    98. }
    99.  
    100. public void onInventoryClick(InventoryClickEvent event){
    101. Player player = (Player) event.getWhoClicked();
    102. event.setCancelled(true);
    103.  
    104. switch(event.getCurrentItem().getType()){
    105. case IRON_SWORD:
    106. teleportInWorld(player, 1024, 55, 1121);
    107. player.closeInventory();
    108. break;
    109. case SLIME_BALL:
    110. teleportInWorld(player, 970, 55, 1175);
    111. player.closeInventory();
    112. break;
    113. case BOW:
    114. teleportInWorld(player, 1024, 55, 1231);
    115. player.closeInventory();
    116. break;
    117. case PORTAL:
    118. player.performCommand("spawn");
    119. player.closeInventory();
    120. break;
    121. case BOOKSHELF:
    122. player.performCommand("anhelp");
    123. player.closeInventory();
    124. break;
    125. case COMMAND:
    126. player.performCommand("website");
    127. player.closeInventory();
    128. break;
    129. default:
    130. break;
    131. }
    132. }
    133.  
    134. @EventHandler
    135. public void onPlayerInteract(PlayerInteractEvent event){
    136. ItemStack is = event.getItem();
    137. Action a = event.getAction();
    138.  
    139. if (a == Action.PHYSICAL || is.getType() == Material.AIR){
    140. return;
    141. }
    142.  
    143. if (is.getType() == Material.COMPASS){
    144. openGui(event.getPlayer());
    145. }
    146. }
    147. }
    148.  
     
  5. Offline

    Garris0n

    Well post your main class, then, I obviously don't have enough context.

    Either way, you can't just magically cast the listener class to a Plugin and expect it to work, the listener class isn't a Plugin.
     
  6. Offline

    Kend2000

    Here's the main class then:

    Code:java
    1. import java.io.File;
    2. import java.util.ArrayList;
    3. import java.util.Arrays;
    4. import java.util.List;
    5. import java.util.logging.Logger;
    6.  
    7. import net.milkbowl.vault.chat.Chat;
    8. import net.milkbowl.vault.economy.Economy;
    9. import net.milkbowl.vault.permission.Permission;
    10.  
    11. import org.bukkit.Bukkit;
    12. import org.bukkit.ChatColor;
    13. import org.bukkit.Material;
    14. import org.bukkit.command.Command;
    15. import org.bukkit.command.CommandSender;
    16. import org.bukkit.configuration.file.FileConfiguration;
    17. import org.bukkit.entity.Player;
    18. import org.bukkit.event.EventHandler;
    19. import org.bukkit.event.Listener;
    20. import org.bukkit.event.inventory.InventoryClickEvent;
    21. import org.bukkit.event.player.AsyncPlayerChatEvent;
    22. import org.bukkit.event.player.PlayerDropItemEvent;
    23. import org.bukkit.event.player.PlayerInteractEvent;
    24. import org.bukkit.event.player.PlayerJoinEvent;
    25. import org.bukkit.event.player.PlayerQuitEvent;
    26. import org.bukkit.event.entity.EntityDamageByEntityEvent;
    27. import org.bukkit.event.entity.EntityDamageEvent;
    28. import org.bukkit.event.entity.ItemSpawnEvent;
    29. import org.bukkit.event.entity.ProjectileLaunchEvent;
    30. import org.bukkit.event.player.PlayerToggleFlightEvent;
    31. import org.bukkit.event.player.PlayerMoveEvent;
    32. import org.bukkit.inventory.ItemStack;
    33. import org.bukkit.inventory.meta.BookMeta;
    34. import org.bukkit.inventory.meta.ItemMeta;
    35. import org.bukkit.plugin.Plugin;
    36. import org.bukkit.plugin.java.JavaPlugin;
    37.  
    38. public class Anaminus extends JavaPlugin implements Listener{
    39.  
    40. Currency currency = new Currency();
    41. DoubleJump dJump = new DoubleJump();
    42. Mail mail = new Mail();
    43. ManageScoreboard msb = new ManageScoreboard();
    44. MenuInventoryGui menuGUI = new MenuInventoryGui();
    45. MOTD motd = new MOTD();
    46. PlayerExtras pExtras = new PlayerExtras();
    47. Ranks rank = new Ranks();
    48. Stacker stacker = new Stacker();
    49. ShopInventoryGui shopGui = new ShopInventoryGui();
    50. Gadgets gadgets = new Gadgets();
    51. ChatFilter chatF = new ChatFilter();
    52. StringBuilder stringB = new StringBuilder();
    53. GrappleHook grappleH = new GrappleHook();
    54. LobbyMenuGui lobbyGUI = new LobbyMenuGui();
    55.  
    56. File file = new File(getDataFolder() + File.separator + "config.yml");
    57. public static Plugin instance;
    58. public static Bukkit plugin;
    59. public final Logger logger = Logger.getLogger("Minecraft");
    60. public static Economy econ = null;
    61. public static Permission perms = null;
    62. public static Chat chat = null;
    63.  
    64. @Override
    65. public void onDisable(){
    66. getLogger().info("Anaminus is now disabled!");
    67. this.saveConfig();
    68. }
    69.  
    70. @Override
    71. public void onEnable(){
    72. instance = this;
    73.  
    74. getLogger().info("Anaminus Loaded.");
    75.  
    76. if (!file.exists()){
    77. this.getLogger().info("Generating config.yml...");
    78.  
    79.  
    80. this.getConfig().addDefault("Anaminus.Options", "");
    81. this.getConfig().addDefault("Anaminus.Options.BarMessageColor", "Green");
    82. this.getConfig().addDefault("Anaminus.Options.BarMessage", "Grand Opening!");
    83. this.getConfig().addDefault("Anaminus.Options.BarHealth", 300.0);
    84. this.getConfig().addDefault("Anaminus.UserData", "");
    85.  
    86. this.getConfig().options().copyDefaults(true);
    87. this.saveConfig();
    88. }
    89.  
    90. this.saveConfig();
    91.  
    92. this.getServer().getPluginManager().registerEvents(this, this);
    93. }
    94.  
    95. public FileConfiguration getCustomConfig() {
    96. if (this.getConfig() == null) {
    97. reloadConfig();
    98. }
    99. return this.getConfig();
    100. }
    101.  
    102. @SafeVarargs
    103. public static <E> Object[] unpack(E... objects) {
    104. List<Object> list = new ArrayList<Object>();
    105. for (Object object : objects) {
    106. if (object instanceof Object[]) {
    107. list.addAll(Arrays.asList((Object[]) object));
    108. }
    109. else{
    110. list.add(object);
    111. }
    112. }
    113.  
    114. return list.toArray(new Object[list.size()]);
    115. }
    116.  
    117. @EventHandler
    118. public void onPlayerJoin(PlayerJoinEvent event){
    119. //Currency
    120. currency.loadCoins(event);
    121. //Ranks
    122. rank.findRank(event);
    123. //Draw Main Scoreboard
    124. msb.drawMainSB(event);
    125. //PXtras
    126. pExtras.onPlayerJoin(event);
    127. //Mail
    128. mail.welcomeMail(event);
    129. mail.notifyMail(event);
    130.  
    131. getConfig().addDefault("Anaminus.UserData." + event.getPlayer().getName() + ".BoughtGadgets", gadgets.bought);
    132. getConfig().addDefault("Anaminus.UserData." + event.getPlayer().getName() + ".Mail", mail.MailBox);
    133. getConfig().addDefault("Anaminus.UserData." + event.getPlayer().getName() + ".Membership", ChatColor.stripColor(rank.getRank(event.getPlayer()).toString()));
    134. if (!event.getPlayer().hasPlayedBefore()){
    135. getConfig().addDefault("Anaminus.UserData." + event.getPlayer().getName() + ".Coins", 0);
    136. }
    137.  
    138. this.saveDefaultConfig();
    139. this.saveConfig();
    140. }
    141.  
    142. @EventHandler
    143. public void onPlayerQuit(PlayerQuitEvent event){
    144. //Currency
    145. currency.saveCoins(event);
    146. }
    147.  
    148. @EventHandler
    149. public void onPlayerInteract(PlayerInteractEvent event){
    150. //Gui
    151. menuGUI.onPlayerInteract(event);
    152. gadgets.onPlayerInteract(event);
    153. lobbyGUI.onPlayerInteract(event);
    154. }
    155.  
    156. @EventHandler
    157. public void onPlayerToggleFlightEvent(PlayerToggleFlightEvent event){
    158. if (event.getPlayer().hasPermission("anaminus.gold")){
    159. dJump.onPlayerToggleFlight(event);
    160. }
    161. }
    162.  
    163. @EventHandler
    164. public void onPlayerMove(PlayerMoveEvent event){
    165. if (event.getPlayer().hasPermission("anaminus.gold")){
    166. dJump.onPlayerMove(event);
    167. }
    168. }
    169.  
    170. @EventHandler
    171. public void onInventoryClick(InventoryClickEvent event){
    172. if (ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Game Menu")){
    173. menuGUI.onInventoryClick(event);
    174. }
    175. if (ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Gadgets")){
    176. gadgets.onInventoryClick(event);
    177. }
    178. if (ChatColor.stripColor(event.getInventory().getName()).equalsIgnoreCase("Lobby Menu")){
    179. lobbyGUI.onInventoryClick(event);
    180. }
    181. }
    182.  
    183. @EventHandler
    184. public void onEDBE(EntityDamageByEntityEvent event){
    185. stacker.ridePlayers(event);
    186. }
    187.  
    188. @EventHandler
    189. public void onPlayerDrop(PlayerDropItemEvent event){
    190. pExtras.onPlayerDrop(event);
    191. }
    192.  
    193. @EventHandler
    194. public void onItemSpawn(ItemSpawnEvent event){
    195. pExtras.onItemSpawn(event);
    196. }
    197.  
    198. @EventHandler
    199. public void onPlayerChat(AsyncPlayerChatEvent event){
    200. chatF.onPlayerChat(event);
    201. }
    202.  
    203. @EventHandler
    204. public void onProjectileThrow(ProjectileLaunchEvent event){
    205. grappleH.onGrappleThrow(event);
    206. }
    207.  
    208. @EventHandler
    209. public void onEntityDamage(EntityDamageEvent event){
    210. grappleH.onEntityDamage(event);
    211. }
    212.  
    213. @SuppressWarnings("deprecation")
    214. @Override
    215. public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args){
    216. //Note: There is 10 lines of text that the player can see in unfocused mode.
    217. String prefix = ChatColor.BLUE + "Commands> ";
    218.  
    219. //Help
    220. if (label.equalsIgnoreCase("anhelp")){
    221. if (sender.hasPermission("anaminus.free")){
    222. sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    223. sender.sendMessage(ChatColor.BLUE + "" + ChatColor.BOLD + "Anaminus " +
    224. ChatColor.GOLD + "" + ChatColor.BOLD + "Network");
    225. sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    226. sender.sendMessage(ChatColor.BLUE + "/about" + ChatColor.WHITE + " - " + ChatColor.BLUE + "Info about the server");
    227. sender.sendMessage(ChatColor.BLUE + "/donate" + ChatColor.WHITE + " - " + ChatColor.BLUE + "Donate to the server");
    228. sender.sendMessage(ChatColor.BLUE + "/buy" + ChatColor.WHITE + " - " + ChatColor.BLUE + "Gets Anaminus' Shop");
    229. sender.sendMessage(ChatColor.BLUE + "/coins" + ChatColor.WHITE + " - " + ChatColor.BLUE + "Displays your current coin balance");
    230. sender.sendMessage(ChatColor.BLUE + "/membership" + ChatColor.WHITE + " - " + ChatColor.BLUE + "Displays your memebership level");
    231. sender.sendMessage(ChatColor.BLUE + "/restoreitems" + ChatColor.WHITE + " - " + ChatColor.BLUE + "Lost your items? Get them back with this command");
    232. sender.sendMessage(ChatColor.BLUE + "/mail" + ChatColor.WHITE + " - " + ChatColor.BLUE + "Displays your mail commands");
    233. sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    234. }
    235. }
    236.  
    237. //Website
    238. if (label.equalsIgnoreCase("website")){
    239. sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    240. sender.sendMessage("");
    241. sender.sendMessage(ChatColor.BLUE + "Website: [url]http://anaminus.enjin.com/[/url]");
    242. sender.sendMessage("");
    243. sender.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    244. }
    245.  
    246. //Report
    247. if (label.equalsIgnoreCase("report")){
    248. if (args.length == 2){
    249. Player target = getServer().getPlayer(args[1]);
    250. if (target != null){
    251. String reason = args[2];
    252. if (reason != null){
    253. //TODO: Send to admin's mail and owner's email
    254. //Email
    255. }
    256. }else{
    257. sender.sendMessage(ChatColor.RED + "Cannot find player!");
    258. }
    259. }
    260. }
    261.  
    262. //About
    263. if (label.equalsIgnoreCase("about")){
    264. sender.sendMessage("");
    265. sender.sendMessage("");
    266. sender.sendMessage(ChatColor.GOLD + "Anaminus build: " + String.format("%s", getDescription().getVersion()));
    267. sender.sendMessage(ChatColor.GOLD + "Developed by: Kend2000");
    268. sender.sendMessage("");
    269. sender.sendMessage(ChatColor.GOLD + "Anaminus plugin is the Anaminus Network's main plugin.");
    270. }
    271.  
    272. if (sender instanceof Player){
    273. Player player = (Player) sender;
    274. //Heal
    275. if (label.equalsIgnoreCase("heal")){
    276. if (player.hasPermission("anaminus.heal")){
    277. player.setHealth(20.0);
    278. player.sendMessage(ChatColor.YELLOW + "You have been healed.");
    279. }
    280. }
    281. //eat
    282. if (label.equalsIgnoreCase("eat")){
    283. if (player.hasPermission("anaminus.feed")){
    284. player.setFoodLevel(20);
    285. player.sendMessage(ChatColor.YELLOW + "You have been fed.");
    286. }
    287. }
    288.  
    289. //Coins
    290. if (label.equalsIgnoreCase("coins")){
    291. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    292. player.sendMessage("");
    293. player.sendMessage(ChatColor.BLUE + " Your current balance: " + ChatColor.GOLD + currency.getCoins(player) + ChatColor.BLUE + " coins.");
    294. player.sendMessage(ChatColor.BLUE + " Purchase more at [url]http://anaminus.enjin.com/shop[/url]");
    295. player.sendMessage("");
    296. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    297. }
    298. //Donate
    299. if (label.equalsIgnoreCase("donate")){
    300. if (!(player.hasPermission("anaminus.basicpremium") || player.hasPermission("anaminus.goldPremium") || player.hasPermission("anaminus.ultraPremium"))){
    301. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    302. player.sendMessage("");
    303. player.sendMessage(ChatColor.BLUE + "Buy a membership at [url]http://anaminus.enjin.com/shop[/url]");
    304. player.sendMessage("");
    305. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    306. }else{
    307. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    308. player.sendMessage("");
    309. player.sendMessage(ChatColor.BLUE + "You already have a membership.");
    310. player.sendMessage(ChatColor.BLUE + "If you want to upgrade then go to [url]http://anaminus.enjin.com/shop[/url]");
    311. player.sendMessage("");
    312. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    313. }
    314. }
    315. //Membership
    316. if (label.equalsIgnoreCase("membership")){
    317. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    318. player.sendMessage("");
    319. player.sendMessage(ChatColor.BLUE + "" + ChatColor.BOLD + "Your membership level is: " + rank.getRank(player));
    320. player.sendMessage("");
    321. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    322. }
    323. //Mail
    324. if (label.equalsIgnoreCase("mail")){
    325. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    326. player.sendMessage(ChatColor.BLUE + "" + ChatColor.WHITE + "Mail");
    327. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    328. player.sendMessage(ChatColor.BLUE + "/maildisplay" + ChatColor.WHITE + " - " + ChatColor.BLUE + "Displays mail");
    329. player.sendMessage(ChatColor.BLUE + "/mailclear" + ChatColor.WHITE + " - " + ChatColor.BLUE + "Clears mailbox");
    330. player.sendMessage(ChatColor.BLUE + "/mailsend" + ChatColor.WHITE + " - " + ChatColor.BLUE + "Sends mail to desired player");
    331. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    332. }
    333. //MailDisplay
    334. if (label.equalsIgnoreCase("maildisplay")){
    335. Mail mail = new Mail();
    336.  
    337. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    338. player.sendMessage(ChatColor.BLUE + "" + ChatColor.WHITE + "Mail");
    339. player.sendMessage(ChatColor.GOLD + "" + ChatColor.BOLD + "" + ChatColor.STRIKETHROUGH + "------------------------------------------");
    340. player.sendMessage(mail.getMail(player).toString());
    341. }
    342. //MailClear
    343. if (label.equalsIgnoreCase("mailclear")){
    344. mail.clearMail(player);
    345. player.sendMessage(ChatColor.GOLD + "Your mailbox has been cleared");
    346. }
    347. //MailSend
    348. if (label.equalsIgnoreCase("mailsend")){
    349. if (args.length == 2){
    350. Player target = (Player) getServer().getOfflinePlayer(args[1]);
    351. if (target != null){
    352. String msg = args[2];
    353. if (msg != null){
    354. mail.sendMail(player, target, msg);
    355. }
    356. }else{
    357. player.sendMessage(ChatColor.RED + "Player cannot be found!");
    358. }
    359. }
    360. }
    361. //restoreitems
    362. if (label.equalsIgnoreCase("restoreitems")){
    363. if (!(player.getInventory().contains(Material.COMPASS))){
    364. ItemStack gamemenu = new ItemStack(Material.COMPASS);
    365. ItemMeta gamemenuMeta = gamemenu.getItemMeta();
    366. gamemenuMeta.setDisplayName(ChatColor.GOLD + "" + "" +
    367. "- " + ChatColor.WHITE + "Game Menu" +
    368. ChatColor.GOLD + "" + " -");
    369.  
    370. gamemenu.setItemMeta(gamemenuMeta);
    371. player.getInventory().setItem(0, gamemenu);
    372. }
    373. if (!(player.getInventory().contains(347))){
    374. ItemStack lobbyMenu = new ItemStack(347);
    375. ItemMeta lobbyMenuMeta = lobbyMenu.getItemMeta();
    376. lobbyMenuMeta.setDisplayName(ChatColor.GOLD + "" + "" +
    377. "- " + ChatColor.WHITE + "Lobby Menu" +
    378. ChatColor.GOLD + "" + " -");
    379.  
    380. lobbyMenu.setItemMeta(lobbyMenuMeta);
    381. player.getInventory().setItem(1, lobbyMenu);
    382. }
    383. if (!(player.getInventory().contains(Material.BONE))){
    384. ItemStack petShop = new ItemStack(Material.BONE);
    385. ItemMeta petShopMeta = petShop.getItemMeta();
    386. petShopMeta.setDisplayName(ChatColor.GOLD + "" + "" +
    387. "- " + ChatColor.WHITE + "Pet Menu" +
    388. ChatColor.GOLD + "" + " -");
    389.  
    390. petShop.setItemMeta(petShopMeta);
    391. player.getInventory().setItem(3, petShop);
    392. }
    393. if (!(player.getInventory().contains(Material.EMERALD))){
    394. ItemStack anShop = new ItemStack(Material.EMERALD);
    395. ItemMeta anShopMeta = anShop.getItemMeta();
    396. anShopMeta.setDisplayName(ChatColor.GOLD + "" + "" +
    397. "- " + ChatColor.WHITE + "Shop" +
    398. ChatColor.GOLD + "" + " -");
    399.  
    400. anShop.setItemMeta(anShopMeta);
    401. player.getInventory().setItem(8, anShop);
    402. }
    403. if (!(player.getInventory().contains(Material.WORKBENCH))){
    404. ItemStack wardrobe = new ItemStack(Material.WORKBENCH);
    405. ItemMeta wardrobeMeta = wardrobe.getItemMeta();
    406. wardrobeMeta.setDisplayName(ChatColor.GOLD + "" + "" +
    407. "- " + ChatColor.WHITE + "Wardrobe" +
    408. ChatColor.GOLD + "" + " -");
    409. wardrobe.setItemMeta(wardrobeMeta);
    410. player.getInventory().setItem(7, wardrobe);
    411. }
    412. if (!(player.getInventory().contains(Material.WRITTEN_BOOK))){
    413. ItemStack achievements = new ItemStack(Material.WRITTEN_BOOK);
    414. BookMeta achieveBookMeta = (BookMeta) achievements.getItemMeta();
    415.  
    416. achieveBookMeta.setPages(Arrays.asList(ChatColor.AQUA + "" + ChatColor.BOLD + "Achievements\n" + "\n" +
    417. ChatColor.GRAY + "" + ChatColor.BOLD + "Hub Achievements\n" +
    418. ChatColor.GRAY + ">Join the network!: " + pExtras.wTN + "\n" +
    419. ChatColor.GRAY + ""));
    420. achieveBookMeta.setAuthor(ChatColor.DARK_RED + "" + ChatColor.BOLD + "Owner");
    421. achieveBookMeta.setTitle(ChatColor.GOLD + "" + "" +
    422. "- " + ChatColor.WHITE + "Achievements" +
    423. ChatColor.GOLD + "" + " -");
    424.  
    425. achievements.setItemMeta(achieveBookMeta);
    426. player.getInventory().setItem(6, achievements);
    427. }
    428. if (!(player.getInventory().contains(Material.BLAZE_POWDER))){
    429. ItemStack gadget = new ItemStack(Material.BLAZE_POWDER);
    430. ItemMeta gMeta = gadget.getItemMeta();
    431. gMeta.setDisplayName(ChatColor.GOLD + "" + "" +
    432. "- " + ChatColor.WHITE + "Gadgets" +
    433. ChatColor.GOLD + "" + " -");
    434. gadget.setItemMeta(gMeta);
    435. player.getInventory().setItem(5, gadget);
    436. }
    437. if (!(player.getInventory().contains(Material.COMMAND))){
    438. ItemStack options = new ItemStack(Material.COMMAND);
    439. ItemMeta optMeta = options.getItemMeta();
    440. optMeta.setDisplayName(ChatColor.GOLD + "" + "" +
    441. "- " + ChatColor.WHITE + "Player Options" +
    442. ChatColor.GOLD + "" + " -");
    443. options.setItemMeta(optMeta);
    444. player.getInventory().setItem(2, options);
    445. }
    446. if (!(player.getInventory().contains(102))){
    447. ItemStack blankSlot = new ItemStack(102);
    448. ItemMeta bSlotMeta = blankSlot.getItemMeta();
    449. bSlotMeta.setDisplayName(ChatColor.GOLD + "" + "" +
    450. "- " + ChatColor.GRAY + "Empty Gadget Slot" +
    451. ChatColor.GOLD + "" + " -");
    452. blankSlot.setItemMeta(bSlotMeta);
    453. player.getInventory().setItem(4, blankSlot);
    454. }
    455. }
    456. //register
    457. if (label.equalsIgnoreCase("register")){
    458. if (args.length == 1){
    459. String playerName = player.getName();
    460. String email = args[1];
    461.  
    462. }
    463. }
    464. //nick
    465. if (label.equalsIgnoreCase("nick")){
    466. if (args.length == 1){
    467. if (args[1].contains("&")){
    468. args[1].replace("&", "ยง");
    469. }
    470. player.setDisplayName(args[1]);
    471. player.sendMessage(prefix + ChatColor.GRAY + "Your name is now: " + args[1]);
    472. }
    473. }
    474. }else if (!(sender instanceof Player)){
    475.  
    476. //AddCoins
    477. if (label.equalsIgnoreCase("addcoins")){
    478. int amount;
    479. if (args.length == 2){
    480. if (Integer.parseInt(args[1]) > 0){
    481. amount = Integer.parseInt(args[1]);
    482. Player target = Bukkit.getPlayer(args[2]);
    483. if (target != null){
    484. currency.increaseAmountBy(target, amount);
    485. sender.sendMessage(ChatColor.GREEN + "Successfully added " + amount + " coins to " + target.getName() + "'s account.");
    486. }else{
    487. sender.sendMessage(ChatColor.RED + "Cannot find player");
    488. }
    489. }
    490. }
    491. }
    492. //removecoins
    493. if (label.equalsIgnoreCase("addcoins")){
    494. int amount;
    495. if (args.length == 2){
    496. if (Integer.parseInt(args[1]) > 0){
    497. amount = Integer.parseInt(args[1]);
    498. Player target = Bukkit.getPlayer(args[2]);
    499. if (target != null){
    500. currency.decreaseAmountBy(target, amount);
    501. sender.sendMessage(ChatColor.GREEN + "Successfully removed " + amount + " coins to " + target.getName() + "'s account.");
    502. }else{
    503. sender.sendMessage(ChatColor.RED + "Cannot find player");
    504. }
    505. }
    506. }
    507. }
    508. }
    509. return false;
    510. }
    511. }
    512.  
     
  7. Offline

    Drkmaster83

    I'd honestly switch upon ChatColor.stripColor(event.getCurrentItem().getData().toItemStack().getItemMeta().getDisplayName()).toLowerCase(), that way that it's a built-in equalsIgnoreCase and removal of color codes.

    Edit: Of course, all your cases would be lowercased, so you'd have to modify that.
     
  8. Offline

    Kend2000

    Thanks!
     
  9. Offline

    Drkmaster83

    No problem bud, and I'm a fan of the modularization! Keep up the good work!
     
  10. Offline

    Garris0n

    Okay, first of all, stop implementing listener and get rid of all those onEnable methods (they are never called by anything, and if they were called by anything, they would throw ClassCastExceptions because, as I said, you can not cast the classes to Plugins). This is of course unless you actually want to switch to using the event system, in which case you could register them in the onEnable in your main class. You should also pass the main class instance through the constructors of the other classes instead of using that static instance, but whatever. Anyway, I would recommend actually using the event system as it was designed. Along with a few other changes I'd say you should make:

    1. Instead of using Logger.getLogger("Minecraft"), JavaPlugin contains a handy getLogger() method that will also prefix any logged messages with your plugin name. Use that instead.
    2. What on earth is "public static Bukkit plugin"? I have no idea why that's there, but you should probably remove it.
    3. As I said, switch to the proper event system, it's cleaner.
    4. Don't print enable/disable messages, the server does that automatically.
    5. I'm not even going to ask about that unpack method.

    There are probably more things but I don't really have time to read through all of that code.

    Oh, and for that original issue, uh...you might want to try actually opening the inventory ;)
     
    mazentheamazin likes this.
Thread Status:
Not open for further replies.

Share This Page