getLine() of onSignChange doesn't work

Discussion in 'Plugin Development' started by TigerHix, Jul 21, 2013.

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

    TigerHix

    Code:java
    1. @EventHandler (priority = EventPriority.HIGHEST)
    2. public void onSignChange(SignChangeEvent evt) {
    3. Sign sign = (Sign) evt.getBlock().getState();
    4. Player p = evt.getPlayer();
    5. String[] lines = sign.getLines();
    6.  
    7. p.sendMessage(lines[0].toString());
    8.  
    9. }


    I can't figure out. When I finish editing a sign, it just output a blank line to me, whatever sign text is.
     
  2. Offline

    JazzaG

    TigerHix

    Get the lines from the event instead.
     
  3. Offline

    caseif

    Why not just call .getLine(0)? Additionally, why are you using the highest event priority?
     
  4. Offline

    TigerHix

    JazzaG
    Not working.
    AngryNerd
    That was what I'd done at first, but it didn't work too. And priority, just for testing; whatever it is, problem still exists.

    I add these codes to my plugin:

    Code:java
    1. s.setLine(0, "TEST");
    2. s.update(true);
    3. p.sendMessage(s.getLine(0));


    It won't set line 1 of sign to "TEST", but s.getLine(0) returns "TEST".

    So I am wondering, maybe the line of defining sign is wrong?

    Bump!

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

    Henzz

    TigerHix
    if (event.getLine(0) !=null || (!(event.getLine(0).equals("")))) {
    event.getPlayer().sendMessage(event.getLine(0));
    }
     
  6. Offline

    TigerHix

    Henzz

    It works! Thanks!
     
  7. Offline

    Me4502


    Always use event.getLine and event.setLine during the SignChangeEvent.
     
Thread Status:
Not open for further replies.

Share This Page