• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

Spigot Server MOTD automatisch anpassen lassen von Java plugin

SLINIcraftet204

Redstoneengineer
Mitglied seit
21 Juni 2018
Beiträge
32
Diamanten
6
Minecraft
SLINIcraftet204
Hi, ich code mir ein TTT System und benötige dazu ein kleines bisschen hilfe, es geht um einen Gamestatus, der Als MOTD gesetzt werden soll. ich habe dies hier schon geschrieben aber es scheint etwas falsch zu sein Hier Der Code:

Code aus meinem MotdManager:

Java:
package de.slini.ttt.gamestates;

import org.bukkit.event.Listener;
import org.bukkit.event.server.ServerListPingEvent;

public class MotdManager implements Listener {

    public static void onLobbyState(ServerListPingEvent event) {
        event.setMotd("§4Test");
    }

}
Hier der Code aus meiner LobbyState:

Java:
package de.slini.ttt.gamestates;

public class LobbyState extends GameState {

    @Override
    public void start() {
        MotdManager.onLobbyState();
    }

    @Override
    public void stop() {

    }
}
bei MotdManager.onLobbyState(); will er etwas mit (@)NotNull ServerListPingEvent event
kann mir jemand helfen?
 

Taminoful

Schafhirte
Mitglied seit
3 August 2012
Beiträge
109
Alter
23
Diamanten
58
Minecraft
Taminoful
Du hast in deinem MotdManager die Methode onLobbyState nicht mit der Annotation @EventHandler annotiert. Auch werden Event-Methoden normalerweise nicht per Method-Call abgerufen. Hier wird beschrieben, wie du die EventAPI von Spigot einsetzt - das Tutorial ist auf Englisch, allerdings leicht verdaubar.

Dein Fehler beim Methodenabruf stammt daher, dass deine Methode onLobbyState einen Übergabeparameter verlangt, in diesem Fall eben eine Instanz des ServerListPingEvent und der Überabeparameter nicht null sein darf.
 

SLINIcraftet204

Redstoneengineer
Mitglied seit
21 Juni 2018
Beiträge
32
Diamanten
6
Minecraft
SLINIcraftet204
was muss ich da eintragen,? Ich habe schon ServerListPingEvent probiert, aber da wollte er ein neues object erstellen... this geht auch nicht, da er ansonsten das Event in dem MotdManager.onLobbyState umändern würde...
 

Taminoful

Schafhirte
Mitglied seit
3 August 2012
Beiträge
109
Alter
23
Diamanten
58
Minecraft
Taminoful
was muss ich da eintragen,? Ich habe schon ServerListPingEvent probiert, aber da wollte er ein neues object erstellen... this geht auch nicht, da er ansonsten das Event in dem MotdManager.onLobbyState umändern würde...
Wie bereits gesagt, du verwendest die Event API von Spigot falsch. Der "richtige Weg" wäre es im Event den aktuellen GameState abzufragen und daraufhin die MOTD zu ändern und nicht im GameState das Event zu triggern. Letzteres geht zwar mit Spigots Event API, so wie mit fast allen anderen Event-basierten APIs auch, wäre aber der falsche Anwendungsfall dafür.
 

SLINIcraftet204

Redstoneengineer
Mitglied seit
21 Juni 2018
Beiträge
32
Diamanten
6
Minecraft
SLINIcraftet204
Hi, lange nicht gemeldet :/.
Ich habe es jetzt so gemacht, dass ich mir in der Main einen Int mit dem Namen mode angelegt habe und dann in meinen States die Modes jeweils mit Main.mode = 1/2/3; verändere und dann in dem Motdmanager die MOTD geholt und gesetzt wird. Je nach mode Status
 
Zuletzt bearbeitet:
Oben