Sign isn't changing

Discussion in 'Plugin Development' started by Zandor300, Jul 25, 2013.

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

    Zandor300

    When i make a sign my sign doesn't change!

    Code:java
    1. @EventHandler
    2. public void onSignCreate(SignChangeEvent sign)
    3. {
    4. if(sign.getLine(0).equalsIgnoreCase("[mcm]"))
    5. {
    6. server = sign.getLine(1);
    7.  
    8. sign.setLine(0, ChatColor.DARK_AQUA + "[MCM]");
    9. sign.setLine(1, ChatColor.GREEN + "Goto server:");
    10. sign.setLine(2, ChatColor.GREEN + server);
    11. sign.setLine(3, "");
    12. }
    13. }
     
  2. I think you need something like "sign.update();"
     
  3. Offline

    Henzz

    Zandor300
    I don't think you can use ChatColor Enums, might want to use the simolean symbol.
     
  4. Offline

    Tarestudio

    Zandor300
    Maybe try ChatColor.strip(sign.getLine(0)).equalsIgnoreCase("[mcm]").
    Or debug: log content of first line and log if your condition was true. Just to see where the problem is.
     
  5. Offline

    Zandor300

    Stupid me

    @AlexMI
    Getting error on "sign.update();"

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
  6. why you saying : server = sign.getline(1);
     
  7. Maybe that will work:

    Code:java
    1. @EventHandler
    2. public void onSignCreate(SignChangeEvent event)
    3. {
    4. if(event.getLine(0).equalsIgnoreCase("[mcm]"))
    5. {
    6. Sign sign = (Sign)event.getBlock().getState();
    7. server = event.getLine(1);
    8.  
    9. event.setLine(0, ChatColor.DARK_AQUA + "[MCM]");
    10. event.setLine(1, ChatColor.GREEN + "Goto server:");
    11. event.setLine(2, ChatColor.GREEN + server);
    12. event.setLine(3, "");
    13. sign.update();
    14. }
    15. }
     
  8. Just do something like this.

    Code:java
    1. public void Sign(SignChangeEvent evt){
    2. if(evt.getLine(0).equalsIgnoreCase("[Hello]")){
    3. evt.setLine(0, ChatColor.BLUE + "[Hi]");
    4. evt.getPlayer().sendMessage(ChatColor.GOLD + "Sign Created !");
    5. }
     
  9. Offline

    Garris0n

    In the sign change event you have to do 'event.setLine(). There was nothing actually wrong with the OP, perhaps the listener wasn't registered?
     
  10. Do you have this in your on enable

    Code:java
    1. getServer().getPluginManager().registerEvents(this, this);


    and have you implemented the listener

    Code:java
    1. public class <YOURCLASSNAMEHERE> extends JavaPlugin implements Listener
     
  11. Offline

    Zandor300

    This is what i have but it still doesn't work:
    Code:java
    1. public class Signs extends JavaPlugin implements Listener


    Code:java
    1. @EventHandler
    2. public void onSignCreate(SignChangeEvent event)
    3. {
    4. if(event.getLine(0).equalsIgnoreCase("[mcm]"))
    5. {
    6. Sign sign = (Sign)event.getBlock().getState();
    7. server = event.getLine(1);
    8.  
    9. event.setLine(0, ChatColor.DARK_AQUA + "[MCM]");
    10. event.setLine(1, ChatColor.GREEN + "Goto server:");
    11. event.setLine(2, ChatColor.GREEN + server);
    12. event.setLine(3, "");
    13.  
    14. sign.update();
    15. }
    16. }


    That works! TNX!

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
  12. Offline

    Zandor300

    But now this doesn't work:

    Code:java
    1. @EventHandler
    2. public void onInteract(PlayerInteractEvent event, Player sender) {
    3.  
    4. if (event.getClickedBlock().getType() == Material.SIGN || event.getClickedBlock().getType() == Material.SIGN_POST)
    5. {
    6. Sign sign = (Sign) event.getClickedBlock().getState();
    7.  
    8. if (sign.getLine(0).equalsIgnoreCase("[MCM]"))
    9. {
    10. server = sign.getLine(2);
    11.  
    12. sender.sendMessage(ChatColor.GOLD + "[ServerSwitcher] " + "Sending to " + server + ".");
    13.  
    14. Bukkit.getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
    15.  
    16.  
    17. try
    18. {
    19. out.writeUTF("Connect");
    20. out.writeUTF(server); // Target Server
    21. }
    22. catch (IOException ex)
    23. {
    24. // Can never happen
    25. }
    26. ((PluginMessageRecipient) sender).sendPluginMessage(this.plugin, "BungeeCord", b.toByteArray());
    27. }
    28.  
    29. }
    30. }


    bumb

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 3, 2016
Thread Status:
Not open for further replies.

Share This Page