• 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 Problem mit der Config

WlanGehtNicht

Schafhirte
Registriert
30 Mai 2017
Beiträge
105
Diamanten
312
Hey,
ich habe ein Problem mit der Config.
Wenn ein Spieler joint soll er eine in der Config editierbare Nachricht bekommen. Es kommt aber folgender Fehler, wenn er joint:

Code:
[12:22:22 ERROR]: Could not pass event PlayerJoinEvent to Register v1.0
org.bukkit.event.EventException
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerList.onPlayerJoin(PlayerList.java:298) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.PlayerList.a(PlayerList.java:157) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.LoginListener.b(LoginListener.java:144) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.LoginListener.c(LoginListener.java:54) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.NetworkManager.a(NetworkManager.java:231) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.ServerConnection.c(ServerConnection.java:148) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:814) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_171]
Caused by: java.lang.NullPointerException
        at org.bukkit.ChatColor.translateAlternateColorCodes(ChatColor.java:324) ~[spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        at de.wlangehtnicht.register.join.JoinEvent.onJoin(JoinEvent.java:19) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_171]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_171]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_171]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.8.8-R0.1-SNAPSHOT-latest.jar:git-Spigot-db6de12-18fbb24]
        ... 14 more


Code vom PlayerJoinEvent:

Code:
public class JoinEvent implements Listener {
    
    @EventHandler
    public void onJoin(PlayerJoinEvent e) {
        Player p = e.getPlayer();
        e.setJoinMessage(null);
        if(!Register.isloggedin.contains(p)) {
            p.sendMessage(ChatColor.translateAlternateColorCodes('&', Register.messagecfg.getString("join")));
            
        }
    }

}

Zeile 19:
Code:
p.sendMessage(ChatColor.translateAlternateColorCodes('&', Register.messagecfg.getString("join")));

Config:

Code:
join: "&8test"
 
Registriert
10 Dezember 2017
Beiträge
161
Alter
26
Diamanten
322
Minecraft
DerFrZocker
ok, das sind jetzt mal ein par punkte woran es liegen könnte, für eine genauere Lösung bräuchte man mehr code.

1: du hast dich beim folder vertippt ("plugins/Register"), da empfhilt sich die Methode JavaPlugin#getDataFolder().

2: du hast dich beim File Namen vertippt, gerade das 's' am schluss von "messages.yml" würde ich nochmal überprüfen da du sonst nur "message" schreibst ohne 's'.

3: Du hast dich bei vorherigen Messages in der yml vertippt / Leerzeichen falsch gesetzt, so das die yamlSnake "join" falsch zu geordnet hat.

4: Du hast die "messages.yml" erst nach Server Start generiert, bzw nach dem festlegen der "messagecfg" variable.
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Damit bestätigst du meine Vermutung, "joins" wird in der config nicht gefunden. Du kannst das auch nochmal mit messagecfg.hasKey("joins") (oder sowas ähnliches, was einen boolean zurückgibt) überprüfen.
Es kann auch gut sein, dass deine Datei gar nicht an dem Pfad gefunden wird, das kannst du mit messageFile.exists() überprüfen... Dann solltest du deine Ordnerstruktur auf Richtigkeit überprüfen. Das solltest du bestenfalls machen, bevor du YamlConfiguration.loadConfiguration(messageFile) ausführst
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Von alleine erstellt sich eine Datei ja auch nicht. Wo hast du die Datei davor liegen? Wenn du die Datei wie die config.yml bereitstellen möchtest, kannst du sie mithilfe dieser Methode aus der .jar in den Pluginordner kopieren. Aber um dir wirklich weiterhelfen zu können, solltest du dein grundlegendes Vorhaben weiter erläutern.
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
java:
File customConfigFile = new File(getDataFolder(), "messages.yml");
if (!customConfigFile.exists()) {
    // Erstelle eine "messages.yml" in dem Dateiordner deines Plugins
    // mit dem Inhalt der Datei "messages.yml" in deiner .jar
    saveResource("messages.yml");
}
FileConfiguration customConfig = YamlConfiguration.loadConfiguration(customConfigFile);

Kann Fehler enthalten, weil auswendig aufgeschrieben.
 
Oben