Hilfe bei schildern :3

Dieses Thema im Forum "Programmierung" wurde erstellt von SasukeKawaii, 8. März 2014.

  1. SasukeKawaii
    Offline

    SasukeKawaii Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    940
    Code (Text):
    1. @EventHandler
    2.     public void OnMove(PlayerInteractEvent e){
    3.         Player p = e.getPlayer();
    4.         if(e.getLine(0).equalsIgnoreCase("[test]")){       
    5.            
    6.            
    7.         }

    Egal was ich mache ich bekomme immer einen fehler, dass getline einfach nicht da ist. Wie verwende ich es richtig ? Ich möchte beim klicken auf ein schild überprüfen ob etwas auf dem Schild steht. Wie mach ich das richtig ?
     
    #1
  2. MiCrJonas
    Offline

    MiCrJonas

    Registriert seit:
    29. Oktober 2012
    Beiträge:
    1.069
    Das PlayerInteractEvent gilt für alle Blöcke. Du musst erst sichergehen, dass der block auch ein Schild ist.
    Code (Text):
    1. import org.bukkit.block.Sign;
    Code (Text):
    1. if (e.getAction() == Action.RIGHT_CLICK_BLOCK && e.getClickedBlock().getType() == Material.SIGN_POST) {
    2.   Sign s = (Sign) e.getClickedBlock().getState();
    3.   if (s.getLine(1).equalsIgnoreCase("[test]")) {
    4.     e.getPlayer().sendMessage("Du hast ein besonderes Schild geklickt!");
    5.     // weiterer Code
    6.   }
    7. }
    8.  
     
    #2
  3. SasukeKawaii
    Offline

    SasukeKawaii Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    940
    getline finde ich trotzdem nicht:

    Code (Text):
    1. @EventHandler
    2.     public void OnMove(PlayerInteractEvent e){
    3.         if (e.getAction() == Action.RIGHT_CLICK_BLOCK && e.getClickedBlock() instanceof Sign) {
    4.               Sign s = (Sign) e.getClickedBlock();
    5.               if (e.getLine(0).equalsIgnoreCase("[test]")) {
    6.                 e.getPlayer().sendMessage("Du hast ein besonderes Schild geklickt!");
    7.                 // weiterer Code
    8.               }
    9.             }

    Das getline kennt er einfach so nicht...
     
    #3
  4. Benni1000
    Offline

    Benni1000 Ehem. Teammitglied

    Registriert seit:
    4. Mai 2012
    Beiträge:
    1.408
    Du greifst auch noch immer auf das PlayerInteractEvent objekt, und nicht auf das Sign Objekt zu das du erstellt hast.
    Und ausserdem musst du den BlockState casten und nicht den Block. Schau dir das Beispiel von Jonas an.
     
    #4
  5. SasukeKawaii
    Offline

    SasukeKawaii Ehem. Teammitglied

    Registriert seit:
    5. Januar 2014
    Beiträge:
    940
    Ist schon gelöst :) Hatte das falsche Sign importiert und musste noch auf das sign objekt wechseln..
     
    #5