Helping when interacting with signs.

Discussion in 'Plugin Development' started by Nova20012, Jun 18, 2013.

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

    Nova20012

    Hello, I am having problems with my ranks info giver. When you click a sign with certain text it should tell you information about it, but it doesn't - nothing happens. It shows no errors in console or in-game.

    This is my sign layout:
    / = blank

    ////////////////////////​
    [Ranks]​
    Stone​
    ////////////////////////​

    Here is my code:

    Code:JAVA
    1. package me.Nova20012.Bukkit.Ranks;
    2.  
    3. import java.util.logging.Logger;
    4.  
    5. import org.bukkit.ChatColor;
    6. import org.bukkit.Material;
    7. import org.bukkit.block.Block;
    8. import org.bukkit.block.BlockState;
    9. import org.bukkit.block.Sign;
    10. import org.bukkit.entity.Player;
    11. import org.bukkit.event.EventHandler;
    12. import org.bukkit.event.Listener;
    13. import org.bukkit.event.block.Action;
    14. import org.bukkit.event.player.PlayerInteractEvent;
    15. import org.bukkit.plugin.java.JavaPlugin;
    16.  
    17. public class Ranks extends JavaPlugin implements Listener{
    18.  
    19. public final Logger logger = Logger.getLogger("Minecraft");
    20.  
    21. String PREFIX = "[Ranks]";
    22.  
    23. @Override
    24. public void onEnable(){
    25. logger.info("Done!");
    26. }
    27.  
    28. @EventHandler
    29. public void onBlockInteract(PlayerInteractEvent event){
    30. Block block = event.getClickedBlock();
    31. if(event.getAction() == Action.RIGHT_CLICK_BLOCK){
    32. Player p = event.getPlayer();
    33. if(block.getType() == Material.WALL_SIGN || block.getType() == Material.SIGN_POST || block.getType() == Material.SIGN){
    34. BlockState state = block.getState();
    35. if(state instanceof Sign){
    36. final Sign s = (Sign) state;
    37. if(s.getLine(1).equals(ChatColor.stripColor("[Ranks]"))){
    38. switch(s.getLine(2)){
    39. case "Stone":
    40. p.sendMessage(PREFIX + "Stone Rank - Kit Stone");
    41. p.sendMessage(PREFIX + "Access to: /firework, /hat, /suicide, /workbench");
    42. p.sendMessage(PREFIX + "Can join full servers.");
    43. break;
    44. case "Iron":
    45. p.sendMessage(PREFIX + "Iron Rank - Kit Iron");
    46. p.sendMessage(PREFIX + "Access to: /feed, /nick");
    47. p.sendMessage(PREFIX + "Can use Lockette.");
    48. p.sendMessage(PREFIX + "All of Stone Rank permissions.");
    49. break;
    50. case "Gold":
    51. p.sendMessage(PREFIX + "Gold Rank - Kit Gold");
    52. p.sendMessage(PREFIX + "Access to: /bigtree, /compass, /depth, /heal, /tpahere");
    53. p.sendMessage(PREFIX + "All of Iron Rank permissions.");
    54. break;
    55. case "Diamond":
    56. p.sendMessage(PREFIX + "Diamond Rank - Kit Diamond");
    57. p.sendMessage(PREFIX + "Access");
    58. break;
    59. case "Emerald":
    60. p.sendMessage(PREFIX + "");
    61. break;
    62. case "Moderator":
    63. p.sendMessage(PREFIX + "");
    64. break;
    65. case "S-Mod":
    66. p.sendMessage(PREFIX + "");
    67. break;
    68. case "Admin":
    69. p.sendMessage(PREFIX + "");
    70. break;
    71. default:
    72. p.sendMessage(PREFIX + "Unknown Rank!");
    73. break;
    74. }
    75. }
    76. }
    77. }
    78. }
    79. }
    80. }

    All help appreciated, don't think it is to do with my switch (not sure though, first time using them!).
     
  2. Offline

    jojohnson1

    Did you actually register your event? If not, do so by inserting the following line of code into your onEnable():

    Code:JAVA
    1.  
    2. this.getServer().getPluginManager().registerEvents(this, this);
    3.  


    Another useful thing to do is you log a simple message everytime you your event is called, like "Click Event called" or "Click Event: Action = rightclick"
    This makes debugging muuch easier.

    I hope I was able to help you. jojohnson1
     
    Nova20012 likes this.
  3. Offline

    Nova20012

    jojohnson1
    Thanks so much! I can't believe I missed that! Thanks anyway works now!
     
Thread Status:
Not open for further replies.

Share This Page