Right Click Compass

Discussion in 'Plugin Development' started by lucatoni1102, Apr 6, 2014.

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

    lucatoni1102

    I am making a plugin and this is row is getting an error. (Row 58.) Please help me!
    Code:java
    1. package com.lucatoni1102.youtube;
    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.event.player.PlayerJoinEvent;
    14. import org.bukkit.inventory.Inventory;
    15. import org.bukkit.inventory.ItemStack;
    16. import org.bukkit.inventory.meta.ItemMeta;
    17. import org.bukkit.plugin.java.JavaPlugin;
    18.  
    19. public class InventoryGUI extends JavaPlugin implements Listener{
    20.  
    21.  
    22. public void onEnable() {
    23. getServer().getPluginManager().registerEvents(this, this);
    24.  
    25. }
    26.  
    27.  
    28. private void teleportInWorld(Player player, int x, int y , int z) {
    29. player.teleport(new Location(player.getWorld(), x, y, z));
    30. }
    31.  
    32. private void openGUI(Player player) {
    33. Inventory inv = Bukkit.createInventory(null, 9, ChatColor.DARK_GREEN + "Select your server!");
    34.  
    35.  
    36. ItemStack prison = new ItemStack (Material.IRON_FENCE);
    37. ItemMeta prisonMeta = prison.getItemMeta();
    38. ItemStack minigame = new ItemStack (Material.BEACON);
    39. ItemMeta minigameMeta = minigame.getItemMeta();
    40.  
    41.  
    42. prisonMeta.setDisplayName(ChatColor.GRAY + "PRISON");
    43. prison.setItemMeta(prisonMeta);
    44.  
    45. minigameMeta.setDisplayName(ChatColor.RED + "MINIGAMES");
    46. minigame.setItemMeta(minigameMeta);
    47.  
    48. inv.setItem(0, prison);
    49. inv.setItem(1, minigame);
    50.  
    51. player.openInventory(inv);
    52. }
    53. @EventHandler
    54. public void onInventoryClick(InventoryClickEvent event) {
    55. if(!ChatColor.stripColor(event.getInventory().getName())
    56. .equalsIgnoreCase("Select your server!"));
    57. return;
    58. Player player = (Player) event.getWhoClicked();
    59. event.setCancelled(true);
    60.  
    61. if (event.getCurrentItem() == null
    62. || event.getCurrentItem().getType() == Material.AIR
    63. || !event.getCurrentItem().hasItemMeta()){
    64. player.closeInventory();
    65. return;
    66. }
    67. switch(event.getCurrentItem().getType()) {
    68. case IRON_FENCE:
    69. teleportInWorld(player, 223, 344, 6);
    70. player.closeInventory();
    71. player.sendMessage(String.format("%sTeleported To %sPrison%s!",
    72. ChatColor.GOLD, ChatColor.RED, ChatColor.GOLD));
    73. break;
    74. case BEACON:
    75. teleportInWorld(player, 223, 344, 6);
    76. player.closeInventory();
    77. player.sendMessage(String.format("%sTeleported To %sMiniGames%s!",
    78. ChatColor.BLUE, ChatColor.RED, ChatColor.BLUE));
    79.  
    80. break;
    81. default:
    82. player.closeInventory();
    83. break;
    84. }
    85. }
    86. @EventHandler
    87. public void onPlayerJoin(PlayerJoinEvent event) {
    88. event.getPlayer().getInventory().addItem(new ItemStack(Material.COMPASS));
    89. }
    90.  
    91.  
    92.  
    93.  
    94. @EventHandler
    95. public void onPlayerInteract(PlayerInteractEvent event) {
    96. Action a = event.getAction();
    97. ItemStack is = event.getItem();
    98.  
    99. if(a == Action.PHYSICAL || is == null || is.getType()== Material.AIR)
    100. return;
    101.  
    102. if(is.getType() == Material.COMPASS);
    103. openGUI(event.getPlayer());
    104. }
    105. }
    106.  
     
  2. Offline

    Glumpz

    Remove the Semicolon on line 56.
     
  3. Like Glumpz said, remove the semicolon on line 56,
    when using an if statement, you can do this without using brackets if you only need the condition for the next line.
    Putting a semicolon there would mean it'll be executing an empty statement, thus doing nothing. After that it'll see the return; and just stop the whole process no matter what.
     
Thread Status:
Not open for further replies.

Share This Page