• 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!

Wenn spieler Sneakt etwas ausführen

xMcGermanDevx

Minecrafter
Registriert
5 November 2015
Beiträge
2
Alter
30
Diamanten
0
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?
 
V

Verschraubt

Guest
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:
    public boolean onCommand(CommandSender sender, Command cmd, String cmdLabel, String[] args) {
        Player p = (Player) sender;

        if (cmd.getName().equalsIgnoreCase("xy")) {
            if (p.isSneaking()) {
                p.sendMessage("DU SNEAKST");
            } else {
                p.sendMessage("DU SNEAKST NICHT");
            }
        }
    
        return true;
    }

Den Boolean p.isSneaking() kannst du überall einbauen, wo du willst.
 
Zuletzt bearbeitet von einem Moderator:

HardSoul

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
2 August 2012
Beiträge
759
Diamanten
251
Minecraft
HardS0ul
Zum abfragen, ob der Spieler grade sneak geht so:

Code:
    @EventHandler
    public static void onMove(PlayerMoveEvent e){
        if(e.getPlayer().isSneaking()){
           
            //Hier Code einfügen
           
        }
    }

Damit wird immer wenn er sich bewegt gefragt, ob der Spieler sneak. Wenn ja, führt er das aus, was dort steht.
 

HardSoul

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
2 August 2012
Beiträge
759
Diamanten
251
Minecraft
HardS0ul
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:
                            Bukkit.getScheduler().scheduleSyncRepeatingTask(Bukkit.getPluginManager().getPlugin("Plugin name"), new Runnable(){
                                public void run(){
                                    for(Player p : Bukkit.getOnlinePlayers()){
                                        if(p.isSneaking()){
                                            //Hier Code einfügen
                                        }
                                    }
                                }
                            }, 20, 20);

Der Code fragt jede Sekunde ab, ob jemand sneaked. Finde ich aber unschön ^^
 
V

Verschraubt

Guest
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:
private ArrayList<Player> sneak = new ArrayList<>();

    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        Player p = e.getPlayer();

        if (sneak.contains(p)) {
            sneak.remove(p);
        }

    }

    @EventHandler
    public void onSneak(PlayerToggleSneakEvent e) {
        Player p = e.getPlayer();
        if (sneak.contains(p)) {
            sneak.remove(p);
            p.sendMessage("Du sneakst nun nicht mehr!");
        } else {
            sneak.add(p);
            p.sendMessage("Du sneakst nun!");
        }

    }
 
Zuletzt bearbeitet von einem Moderator:
Oben