Discord

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

WlanGehtNicht

Kuhfänger
Osterei Experte
Mitglied seit
30 Mai 2017
Beiträge
52
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"
 

DerFrZocker

Miner
Osterei Experte
Mitglied seit
10 Dezember 2017
Beiträge
155
Alter
19
Minecraft
DerFrZocker
Es wäre noch hilfreich den Code Abschnitt zu sehen, wo du die "messagecfg" Variable zuweist.
 

DerFrZocker

Miner
Osterei Experte
Mitglied seit
10 Dezember 2017
Beiträge
155
Alter
19
Minecraft
DerFrZocker
Ich meine nicht den Wert in der config, sondern die messagecfg variable. Du must doch irgendwo
Code:
 Register.messagecfg = ...
stehen haben.
 

WlanGehtNicht

Kuhfänger
Osterei Experte
Mitglied seit
30 Mai 2017
Beiträge
52
Code:
        Register.messageFile = new File("plugins/Register", "messages.yml");
        Register.messagecfg = YamlConfiguration.loadConfiguration(messageFile);
 

DerFrZocker

Miner
Osterei Experte
Mitglied seit
10 Dezember 2017
Beiträge
155
Alter
19
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

Vorarbeiter
Osterei Experte
Mitglied seit
30 Juni 2017
Beiträge
268
Alter
20
Minecraft
SirYwell
ChatColor.translateAlternateColorCodes löst meines Wissens einen NPE aus, wenn das zweite Argument null ist. In deinem Fall gibt also getString("join") null zurück, vermutlich wird der Pfad in der Config nicht gefunden.
 

SirYwell

Vorarbeiter
Osterei Experte
Mitglied seit
30 Juni 2017
Beiträge
268
Alter
20
Minecraft
SirYwell
Dann gib ihn mal ohne Verwendung von ChatColor.translateAlternateColorCodes aus.
 

SirYwell

Vorarbeiter
Osterei Experte
Mitglied seit
30 Juni 2017
Beiträge
268
Alter
20
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
 

WlanGehtNicht

Kuhfänger
Osterei Experte
Mitglied seit
30 Mai 2017
Beiträge
52
Die "messages.yml" wird beim Start vom Plugin nicht erstellt.
 
Zuletzt bearbeitet:

SirYwell

Vorarbeiter
Osterei Experte
Mitglied seit
30 Juni 2017
Beiträge
268
Alter
20
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.
 

WlanGehtNicht

Kuhfänger
Osterei Experte
Mitglied seit
30 Mai 2017
Beiträge
52
Mein Vorhaben ist:
ich erstelle die Datei wie eine plugin.yml Datei.
Ich schreibe die ganzen Pfade mit den Nachrichten in die Config.
 

SirYwell

Vorarbeiter
Osterei Experte
Mitglied seit
30 Juni 2017
Beiträge
268
Alter
20
Minecraft
SirYwell
Code:
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