Spigot sneakt der Spieler?

3 Antworten

Vom Beitragsersteller als hilfreich ausgezeichnet
List<Player> sneakingPlayers = new ArrayList<>();

@EventHandler
	public void onPlayerToggleSneak(PlayerToggleSneakEvent event) {
    Player player = event.getPlayer();
    boolean isSneaking = player.isSneaking();


    if (isSneaking) {
        if(!sneakingPlayers.contains(player)) {
            sneakingPlayers.add(player);
        }
    } else {
        if(sneakingPlayers.contains(player)) {
            sneakingPlayers.remove(player);
        }
    }
}

Sprax2000  24.06.2019, 13:57

Ich würde den boolean `isSneaking` lieber mit der Variable aus `event.isSneaking​()` füllen. Ansonsten sieht es auf den ersten Blick richtig/sinnvoll aus. Benötigt dann natürlich weiteren Code (z. B. einen Scheduler)

1
PyroRider  24.06.2019, 10:13

Keine ahnung ob das geht aber es sieht erfolgsversprechend aus

0

Ist doch klar, das Event wird nur ausgeführt wenn er Sneaken toggelt. Steht ja im Event Namen. Möglicherweiße geht es wenn du ein Scheduler benutzt. Oder Du könntest es mit Packets machen, oder oder da gibts viele Möglichkeiten wenn man so drüber nachdenkt. Wenn es sein soll während er sich bewegt dann benutz das PlayerMoveEvent.

Woher ich das weiß:Hobby – Zocker, Apple, Minecraft 8 Jahre(PvP), Informatik, Java

Und wenn man in den Sneak reingeht, liefert er dann auch true oder liefert er dann false? Und was liefert er wenn man garnicht sneakt?

Woher ich das weiß:Hobby

KartoffelYT 
Beitragsersteller
 23.06.2019, 18:19

Er gibt mir nur true zurück wenn ich aus dem Sneak rausgehe sonst bleibt der Wert immer false.

0