Bukkit Plugins AsyncPlayerChatEvent Befehle?
Hi Leute!
Wie kann man in einem AsyncPlayerChatEvent Befehle wie zb +gm 1 ausführen. Also dass nichts ausgegeben wird, sondern der Spieler nur in diesem Fall in den gm1 gesetzt wird.
if (msg.startsWith("+")) {
if (msg.contains("gm 1")) {
p.setGameMode(GameMode.CREATIVE);
p.sendMessage("§lDu bist nun im GM 1");
e.setCancelled(true);
} else if (msg.contains("gm 0")) {
p.setGameMode(GameMode.SURVIVAL);
p.sendMessage("§lDu bist nun im GM 0");
e.setCancelled(true);
}
}
Ich hoffe man kann mir helfen! ;P
LG
2 Antworten
p.sendMessage
entfernen, dann tauchen die nachrichten nicht mehr im chat auf, falls das deine frage war
Ja und nein, das hier ist die Fehlermeldung von dem ganzen:
Could not pass event AsyncPlayerChatEvent to EaZy v1.0
org.bukkit.event.EventException: null
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:308) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:500) [spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:482) [spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at net.minecraft.server.v1_13_R1.PlayerConnection.chat(PlayerConnection.java:1556) [spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at net.minecraft.server.v1_13_R1.PlayerConnection.a(PlayerConnection.java:1494) [spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at net.minecraft.server.v1_13_R1.PacketPlayInChat$1.run(PacketPlayInChat.java:39) [spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_201]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_201]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_201]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_201]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_201]
Caused by: java.lang.IllegalStateException: Asynchronous player tracker update!
at org.spigotmc.AsyncCatcher.catchOp(AsyncCatcher.java:14) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at net.minecraft.server.v1_13_R1.EntityTrackerEntry.updatePlayer(EntityTrackerEntry.java:327) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at net.minecraft.server.v1_13_R1.EntityTracker.a(EntityTracker.java:209) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at net.minecraft.server.v1_13_R1.EntityPlayer.C(EntityPlayer.java:1285) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at net.minecraft.server.v1_13_R1.EntityPlayer.updateAbilities(EntityPlayer.java:1159) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at net.minecraft.server.v1_13_R1.PlayerInteractManager.setGameMode(PlayerInteractManager.java:37) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at net.minecraft.server.v1_13_R1.EntityPlayer.a(EntityPlayer.java:1180) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at org.bukkit.craftbukkit.v1_13_R1.entity.CraftPlayer.setGameMode(CraftPlayer.java:885) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
at at.gandohart.eazy.listener.ChatListener.onChat(ChatListener.java:19) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_201]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_201]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_201]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:304) ~[spigot-1.13.jar:git-Spigot-fe3ab0d-162bda9]
probier mal das normale PlayerChatEvent zu benutzen und nicht das AsyncPlayerChatEvent
Ach, daran lag es tatsächliche^^Danke...!
Hallo 321anonymuuh123,
wie bei deiner anderen Frage kannst du hier die selbe Methode mit .split() verwenden.
Das Async steht dafür, das es nicht sofort ausgeführt wird sondern in einem bestimmten Tickinterval, du siehst es eh nicht weil viel zu schnell.
Würde ich dir eher empfehlen.
Mfg
TOminerTV
Jain