1. Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

PlugIn Wenn spieler Sneakt etwas ausführen

Dieses Thema im Forum "Programmierung" wurde erstellt von xMcGermanDevx, 6. November 2015.


  1. xMcGermanDevx
    Offline

    xMcGermanDevx

    Registriert seit:
    5. November 2015
    Beiträge:
    2
    Geschlecht:
    männlich
    Guten Tag,

    ich arbeite gerade an meinem Server Netzwerk und möchte machen, das wenn ein Spieler sneakt (also in die Hocke geht), das dann etwas ausgeführt wird. Wie auf dem Server rewinside.tv, wie geht soetwas?
     
  2. Werbung
    Online

    Werbung

  3. xMcGermanDevx
    Offline

    xMcGermanDevx

    Registriert seit:
    5. November 2015
    Beiträge:
    2
    Geschlecht:
    männlich
    Gibt es dafür ein Event?
    Oder ist dies das PlayerMoveEvent?
     
  4. Verschraubt
    Offline

    Verschraubt

    Die Frage ist, wann du es brauchst.
    Wenn du zum Beispiel überprüfen willst, ob der Spieler sneakt während er den command /xy eingibt, sieht das ungefähr so aus:
    Code (Text):
    1.     public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) {
    2.         Player p = (Player) sender;
    3.  
    4.         if (cmd.getName().equalsIgnoreCase("xy")) {
    5.             if (p.isSneaking()) {
    6.                 p.sendMessage("DU SNEAKST");
    7.             } else {
    8.                 p.sendMessage("DU SNEAKST NICHT");
    9.             }
    10.         }
    11.    
    12.         return true;
    13.     }
    Den Boolean p.isSneaking() kannst du überall einbauen, wo du willst.
     
    Zuletzt von einem Moderator bearbeitet: 6. November 2015
  5. MysticRunes
    Offline

    MysticRunes

    Registriert seit:
    19. November 2013
    Beiträge:
    41
    Ich meine du kannst es mit
    Code (Text):
    1.  
    2. .isSneaking()
    3.  
    testen.
     
  6. HardSoul
    Offline

    HardSoul Ehem. Teammitglied

    Registriert seit:
    2. August 2012
    Beiträge:
    716
    Geschlecht:
    männlich
    Minecraft:
    Basti07711
    Zum abfragen, ob der Spieler grade sneak geht so:

    Code (Text):
    1.     @EventHandler
    2.     public static void onMove(PlayerMoveEvent e){
    3.         if(e.getPlayer().isSneaking()){
    4.            
    5.             //Hier Code einfügen
    6.            
    7.         }
    8.     }
    9.  
    Damit wird immer wenn er sich bewegt gefragt, ob der Spieler sneak. Wenn ja, führt er das aus, was dort steht.
     
  7. Verschraubt
    Offline

    Verschraubt

  8. Verschraubt
    Offline

    Verschraubt

    @Basti07711 Ich bin mir nicht sicher, ob sneaken als Bewegung im PlayerMoveEvent zählt. Sonst wäre das natürlich die beste und einfachste Lösung.
     
  9. HardSoul
    Offline

    HardSoul Ehem. Teammitglied

    Registriert seit:
    2. August 2012
    Beiträge:
    716
    Geschlecht:
    männlich
    Minecraft:
    Basti07711
    Naja, und wenn nicht, zählt schon allein das bloße Bewegen des Kopfes oder sich in eine Richtung bewegen. In aller Regeln fällt dem User das gar nicht erst auf. Ansonsten hätte ich noch die Lösung:

    Code (Text):
    1.                             Bukkit.getScheduler().scheduleSyncRepeatingTask(Bukkit.getPluginManager().getPlugin("Plugin name"), new Runnable(){
    2.                                 public void run(){
    3.                                     for(Player p : Bukkit.getOnlinePlayers()){
    4.                                         if(p.isSneaking()){
    5.                                             //Hier Code einfügen
    6.                                         }
    7.                                     }
    8.                                 }
    9.                             }, 20, 20);
    Der Code fragt jede Sekunde ab, ob jemand sneaked. Finde ich aber unschön ^^
     
    • Gefällt mir Gefällt mir x 1
  10. Verschraubt
    Offline

    Verschraubt

    Habe aber eine andere Lösung gefunden. Ich füge hier einfach mal den funktionierenden Code ein. Der Rest erklärt sich dann von selbst :D
    Code (Text):
    1.  
    2. private ArrayList<Player> sneak = new ArrayList<>();
    3.  
    4.     @EventHandler
    5.     public void onJoin(PlayerJoinEvent e) {
    6.         Player p = e.getPlayer();
    7.  
    8.         if (sneak.contains(p)) {
    9.             sneak.remove(p);
    10.         }
    11.  
    12.     }
    13.  
    14.     @EventHandler
    15.     public void onSneak(PlayerToggleSneakEvent e) {
    16.         Player p = e.getPlayer();
    17.         if (sneak.contains(p)) {
    18.             sneak.remove(p);
    19.             p.sendMessage("Du sneakst nun nicht mehr!");
    20.         } else {
    21.             sneak.add(p);
    22.             p.sendMessage("Du sneakst nun!");
    23.         }
    24.  
    25.     }
    26.  
     
    Zuletzt von einem Moderator bearbeitet: 7. November 2015