wie geht gamemode java programieren?
Hallo ich programiere momentan ein gamemode pl aber irgendwie kommt ein fehler unten ist der consolen log und die class
fehler: https://hasteb.in/uwucupux.md
4 Antworten
![](https://images.gutefrage.net/media/user/SALEGAMERMC/1617640288597_nmmslarge__27_0_555_555_d8fb3ed66d3c62397bf9dc84aa320321.jpg?v=1617640289000)
if (t != null) {
p.sendMessage(Main.prefix + " §6§lDer Spieler ist offline");
}
if (args[0].equalsIgnoreCase("0")) {
t.setGameMode(GameMode.SURVIVAL);
t.sendMessage(gm0);
p.sendMessage(Main.prefix + " §6§lDu has den Spieler " + t.getPlayer()
+ " §6§lIn den GameMode 0 gesetzt");
}
Dieser Code macht keinen sinn. Wenn t NICHT null ist, dann wird dem Spieler die Nachricht gesendet, dass der Spieler offline ist. Sprich: Die Abfrage ist falsch. Es muss heißen: if(t == null). Außerdem musst du dann abbrechen, sonst läuft der Code ja weiter. Also nach der Nachricht "ist offline" kommt noch ein return true;
Achja, die nächste Abfrage ergibt auch keinen Sinn. Du hilfst dir den Player t aus args[0], frägst abet gleichzeitig ab, ob args[0] gleich mit "0" ist.
Du musst Player t = Bukkit.getPlayer(args[1]); nehmen.
![](https://images.gutefrage.net/media/user/SALEGAMERMC/1617640288597_nmmslarge__27_0_555_555_d8fb3ed66d3c62397bf9dc84aa320321.jpg?v=1617640289000)
Cool, dass einfach nal der halbe Code den ich eingefügt habe, fehlt.
![](https://images.gutefrage.net/media/default/user/13_nmmslarge.png?v=1551279448000)
Ich kann dir helfen wenn du willst also ich kenne mich gut mit Spigot API aus also nur falls du was mit Spigot machst
![](https://images.gutefrage.net/media/user/Soracent/1647593909215_nmmslarge__0_0_265_265_72cd8126bedd866c43e4764092995470.jpg?v=1647593909000)
Guten Abend,
Wie fängt dein programm ab welcher Command eingegeben wurde?
Z.B: in meinem fall habe ich im OnCommand() {}
ein If das den eingegebenen command checkt also so:
if (cmd.getName().equalsIgnoreCase("gm")) {
//Code mit Permissions abfrage etc.
}
Der code checkt ob der eingegebene Command (CMD) egal ob klein oder gross geschrieben /GM ist
![](https://images.gutefrage.net/media/default/user/9_nmmslarge.png?v=1551279448000)
![](https://images.gutefrage.net/media/user/Bennnii/1590950230078_nmmslarge__0_0_736_736_223e6eeeb6b0d7103e0b5018571eede0.jpg?v=1590950230000)
Player t = Bukkit.getPlayer(args[1]);
Müsste es doch eigentlich heißen oder? Du definierst sowohl in der if-Abfrage als auch im Spieler t das Argument 0
![](https://images.gutefrage.net/media/user/MrCommandBlock/1567440756260_nmmslarge__0_0_800_800_652274479ef18736e8e74e289a116f5b.png?v=1567440756000)
Eigentlich nicht
/gm 1
> der auszuführende Spieler wird bearbeitet
/gm MineTec 1
> der Spielernamen im Argument 0 wird bearbeitet
Nach meinem (nicht Java fähigen) Verständnis ist das richtig.
![](https://images.gutefrage.net/media/user/Bennnii/1590950230078_nmmslarge__0_0_736_736_223e6eeeb6b0d7103e0b5018571eede0.jpg?v=1590950230000)
Dann muss er aber in der if-Abfrage auch das Argument 1 und nicht 0 abfragen.
![](https://images.gutefrage.net/media/default/user/11_nmmslarge.png?v=1551279448000)
Und vorallem nicht
[23:32:59 INFO]: CrazyLasy issued server command: /gm 0 CrazyLasy
eingeben ;)
Dadurch, dass es sich um einen CommandExecutor handelt wird der Command beim registrieren in der Main festgelegt.