Wie setzt ich jeden spieler in Gm 2 in Java?
Hey Leute,
Ich programmiere aktuell ein Plugin für Minecraft server, bei dem es wichtig ist das abbauen von Blöcken zu bestimmten Zeiten zu deaktivieren. Das geht ja in dem man im Adventure/Gamemode 2 ist. Wenn ich nun aber bei java eine Variable von Player also: "Player player = (Player) sender;" und dann "player.set(GameMode.ADVENTURE)" schreibe und anschließend den Command (ich habe das in einem Command geschrieben) ausführe, wird nur der Spieler der den Command ausführt in den Gm 2 gesetzt. Bitte bedenkt das ich Anfänger bin und Coden nur als hobby mache und deswegen nicht alles weiß. Weiß jemand von euch wie man "player" auf alle Spieler definieren kann? Danke schon einmal im voraus! :)
(wenn ihr um mir zu helfen den Code Braucht, sagt bitte bescheid :3 )
2 Antworten
wird nur der Spieler der den Command ausführt in den Gm 2 gesetzt.
Deswegen heißt es sender. Wenn du das auf alle Spieler anwenden willst, musst du folgendes ändern:
Player player = Bukkit.getOnlinePlayers();
org.bukkit.command.CommandException Unhandled exception executing command 'ready' in plugin de.geclxptvaro v1.0-SNAPSHOT
at org.bukkit.command.PluginCommand.execute(PluginCommand.java47) ~[patched_1.8.8.jargit-PaperSpigot-445]
at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java146) ~[patched_1.8.8.jargit-PaperSpigot-445]
at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java666) ~[patched_1.8.8.jargit-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java1189) [patched_1.8.8.jargit-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java1001) [patched_1.8.8.jargit-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java45) [patched_1.8.8.jargit-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java1) [patched_1.8.8.jargit-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile13) [patched_1.8.8.jargit-PaperSpigot-445]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java539) []
at java.util.concurrent.FutureTask.run(FutureTask.java264) []
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile44) [patched_1.8.8.jargit-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java774) [patched_1.8.8.jargit-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java378) [patched_1.8.8.jargit-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java713) [patched_1.8.8.jargit-PaperSpigot-445]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java616) [patched_1.8.8.jargit-PaperSpigot-445]
at java.lang.Thread.run(Thread.java833) []
Caused by java.lang.ClassCastException class java.util.Collections$UnmodifiableRandomAccessList cannot be cast to class org.bukkit.entity.Player (java.util.Collections$UnmodifiableRandomAccessList is in module java.base of loader 'bootstrap'; org.bukkit.entity.Player is in unnamed module of loader 'app')
at geclxptvaro.de.geclxpt.De.commands.ReadyCommand.onCommand(ReadyCommand.java18) ~[]
at org.bukkit.command.PluginCommand.execute(PluginCommand.java45) ~[patched_1.8.8.jargit-PaperSpigot-445]
... 15 more
Soll ich dann den Fehler einfach ignorieren? Weil ohne das (Player) wird das ganze rot unterstrichen : /
for (Player p : Bukkit.getOnlinePlayers()) {
p.setGameMode(GameMode.SPECTATOR);
}
Ich bekomme einen fehler wenn ich jetzt meinen Command ausführe. Der fehler liegt im boolean "onCommand". Davor hat es funktioniert. Weißt du wie ich das auch noch lösen kann?
Hier die Java Class:
https://www.toptal.com/developers/hastebin/ogecaxisaz.swift