Minecraft Plugin Spieler Chateingabe nacheinander abfragen?
Ich wollte mit diesem Code, ein Plugin machen, indem nacheinander abgefragt wird ob der Spieler ja oder nein in den Chat schreibt:https://pastebin.com/DRYNkite. Ich habe das folgende Problem: wenn der Spieler "ja" schreibt werden die erste und die zweite IF-Schleife ausgelöst. Die Zweite soll aber erst ausgelöst werden wenn der Spieler das Zweite mal "ja" schreibt.
1 Antwort
- IF ist ein Block und keine Schleife
- Vergleiche macht man mit zwei = (also ==)
- Warum erstellst du für eine Textausgabe einen Task?
- Ich würde das mit einer Art einfachem Automaten machen. Also ein Enum mit den möglichen zuständen, und dann bei einem Befehl, durch einen Switch Block den nächsten Zustand setzen.
- Sowas wie hatkiritoschongefragt ist schlecht lesbar, nutze lieber hatKiritoSchonGefragt. Nennt sich CamelCase. Alternativ gehen auch Unterstriche, das macht man aber eigentlich eher bei c Programmen.
- Man sieht nicht, wo deine Variablen gespeichert werden, aber so wie das aussieht, vermute ich mal, dass du Probleme bekommen wirst, wenn mehrere Spieler gleichzeitig die Fragen beantworten, da du nicht zwischen Spielern unterscheidest.
Caused by: java.lang.IllegalArgumentException: owningPlugin cannot be null
Du hast wohl irgendwo anstelle der Plugin Instanz null übergeben.
ich habe aber keie ahnung wo xD. Wie finde ich das?
https://www.youtube.com/watch?v=0_Qw9MXt_ns
Die HD Version wird noch von Youtube verarbeitet
Im Automaten hats nen kleinen Fehler, der nein Pfeil von dem Zustand V sollte nicht zu N gehen, sondern bei V bleiben. Ist mir zu spät aufgefallen.
Bei Tutorial tr = new Tutorial(this); kommt eine Fehlermeldung: The constructor Tutorial(Lol) is undefined
Jetzt funktioniert irgendwie garnichts mehr :(. Hier meine Main Klasse: https://pastebin.com/ckLCPrFr und hier meine Tutorial Klasse: https://pastebin.com/eN4tAzju
Du erstellst ja auch weder eine Instanz der Tutorial Klasse, noch registrierst du den Eventhandler.
achso ok danke. Jetzt funktioniert alles perfekt.
jetzt steht da in der konsole als fehlermeldung wenn ich ja schreibe:
[22:39:27] [Async Chat Thread - #0/ERROR]: Could not pass event AsyncPlayerChatEvent to Tutorial v1.8
org.bukkit.event.EventException: null
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:319) ~[Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:589) [Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:576) [Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at net.minecraft.server.v1_16_R3.PlayerConnection.chat(PlayerConnection.java:1855) [Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at net.minecraft.server.v1_16_R3.PlayerConnection.c(PlayerConnection.java:1793) [Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at net.minecraft.server.v1_16_R3.PlayerConnection.a(PlayerConnection.java:1731) [Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at net.minecraft.server.v1_16_R3.PacketPlayInChat$1.run(PacketPlayInChat.java:44) [Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_281]
at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_281]
at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source) [?:1.8.0_281]
at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source) [?:1.8.0_281]
at java.lang.Thread.run(Unknown Source) [?:1.8.0_281]
Caused by: java.lang.IllegalArgumentException: owningPlugin cannot be null
at org.apache.commons.lang.Validate.notNull(Validate.java:192) ~[Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at org.bukkit.metadata.MetadataValueAdapter.<init>(MetadataValueAdapter.java:21) ~[Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at org.bukkit.metadata.LazyMetadataValue.<init>(LazyMetadataValue.java:64) ~[Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at org.bukkit.metadata.FixedMetadataValue.<init>(FixedMetadataValue.java:30) ~[Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
at com.gmail.fabianimiau.Tutorial.getPlayerState(Tutorial.java:105) ~[?:?]
at com.gmail.fabianimiau.Tutorial.onPlayerChat(Tutorial.java:117) ~[?:?]
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_281]
at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_281]
at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_281]
at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_281]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:315) ~[Server-1-1.16.5.jar:3036-Spigot-a25e8ed-c85efa8]
... 12 more