SpiCrafter Geschrieben 9. April 2017 Share Geschrieben 9. April 2017 (bearbeitet) Hallo, ich bin noch ein Anfänger, was Plugin Programmierung angeht. Ich habe zwei Klassen: Main und JoinQuitEvents. Main ließt die Config und registriert die Events aus der JoinQuitEvents Klasse. Wenn der Spieler den Server betritt, soll er an eine bestimmte Position teleportiert werden. // Main Klasse public class Main extends JavaPlugin{ @override public void onEnable() { getServer().getPluginManager().registerEvents(new JoinQuitEvents(this), this); loadConfig(); } public void loadConfig() { getConfig().addDefault("Spawns.Lobby.w", "Lobby"); getConfig().addDefault("Spawns.Lobby.x", 0); getConfig().addDefault("Spawns.Lobby.y", 50); getConfig().addDefault("Spawns.Lobby.z", 0); getConfig().addDefault("Spawns.Lobby.yaw", 0); getConfig().addDefault("Spawns.Lobby.pitch", 0); getConfig().options().copyDefaults(true); saveConfig(); lw = getConfig().getString("Spawns.Lobby.w"); lx = getConfig().getInt("Spawns.Lobby.x"); ly = getConfig().getInt("Spawns.Lobby.y"); lz = getConfig().getInt("Spawns.Lobby.z"); lyaw = getConfig().getInt("Spawns.Lobby.yaw"); lpitch = getConfig().getInt("Spawns.Lobby.pitch"); } } // JoinQuitEvents Klasse public class JoinQuitEvents implements Listener{ Main pl; public JoinQuitEvents(Main pl) { this.pl = pl; } @EventHandler public void onJoin(PlayerJoinEvent e) { e.setJoinMessage(""); Player p = e.getPlayer(); Location loc = new Location(pl.getServer().getWorld(pl.lw), pl.lx, pl.ly, pl.lz); 52: p.teleport(loc); } } Wenn ich dann auf meinen Testserver joine, kommt dan diese Fehlermeldung: [01:21:20 ERROR]: Could not pass event PlayerJoinEvent to Lobby v0.0.0 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at net.minecraft.server.v1_11_R1.PlayerList.onPlayerJoin(PlayerList.java:327) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at net.minecraft.server.v1_11_R1.PlayerList.a(PlayerList.java:160) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at net.minecraft.server.v1_11_R1.LoginListener.b(LoginListener.java:147) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at net.minecraft.server.v1_11_R1.LoginListener.F_(LoginListener.java:57) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at net.minecraft.server.v1_11_R1.NetworkManager.a(NetworkManager.java:233) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at net.minecraft.server.v1_11_R1.ServerConnection.c(ServerConnection.java:140) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at net.minecraft.server.v1_11_R1.MinecraftServer.D(MinecraftServer.java:842) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:399) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:678) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:576) [spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at java.lang.Thread.run(Unknown Source) [?:1.8.0_121] Caused by: java.lang.NullPointerException at org.bukkit.craftbukkit.v1_11_R1.entity.CraftPlayer.teleport(CraftPlayer.java:497) ~[spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at org.bukkit.craftbukkit.v1_11_R1.entity.CraftEntity.teleport(CraftEntity.java:260) ~[spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] at me.spicrafter.events.JoinQuitEvents.onJoin(JoinQuitEvents.java:52 (p.teleport(loc)) ~[?:?] at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_121] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_121] at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_121] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:302) ~[spigot-1.11.2.jar:git-Spigot-d276ab1-1f6c04c] ... 14 more Weiß jemand, was ich falsch gemacht habe? bearbeitet 12. April 2017 von SpiCrafter Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
BloodSKreaper Geschrieben 11. April 2017 Share Geschrieben 11. April 2017 Am 10.4.2017 um 01:42 schrieb SpiCrafter: INIT pl; Was ist denn INIT? Diese Variablenart ist mir unbekannt. Was kann das denn? Also ich hätte anstelle von INIT "Plugin" eingesetzt. Das kannst du ja mal probieren. Freundliche Grüße BloodSKreaper Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
SpiCrafter Geschrieben 12. April 2017 Autor Share Geschrieben 12. April 2017 (bearbeitet) INIT war der name der Main Klasse. Ich hab es jetzt wieder auf Main umgeändert. P.S. Ich habe ein bisschen rumprobiert und herausgefunden, dass keine Exception auftritt, wenn ich die Standartwelten (world, world_nether, world_the_end) in Location reinschreibe. bearbeitet 12. April 2017 von SpiCrafter Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
ludgart Geschrieben 14. April 2017 Share Geschrieben 14. April 2017 Hallo SpiCrafter, Wie du schon geschrieben hast, tritt der Fehler nicht auf, wenn du die Welt manuel einträgst. Somit weißt du woher der Fehler kommt. Ist die Config Datei richtig aufgebaut? Woher kommt "lw"? Außerdem solltest e.setJoinMessage(""); zu e.setJoinMessage(null); ersetzten. Dadurch wird keine leere Box beim Server beitritt angezeigt. Mit freundlichen Grüßen, ludgart Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
SpiCrafter Geschrieben 14. April 2017 Autor Share Geschrieben 14. April 2017 (bearbeitet) An der Config kann es nicht liegen. Wenn ich dort world reinschreibe bekomme ich keine Exception. World ist auch der Standartname, die ich in den server.propeties festgelegt habe. Schreibe ich aber den Namen einer anderen Welt rein, die aber im Serverordner drin ist z.B. Lobby, funkioniert das nicht. Muss ich die Welt irgendwie bei Bukkit registrieren oder importieren wie bei Multiverse? bearbeitet 14. April 2017 von SpiCrafter Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Joey Geschrieben 14. April 2017 Share Geschrieben 14. April 2017 Hast du die Welt geladen bzw ist die aktiv? Einfach ne Karte in den Serverordner packen bringt nichts. Versuch sie mal mit Multiverse zu importieren Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
SpiCrafter Geschrieben 14. April 2017 Autor Share Geschrieben 14. April 2017 (bearbeitet) Ok, alles funktioniert. Ich dachte, man braucht kein Multiverse, wenn man den Code selber schreibt. Vielen Dank für eure Antworten. LG SpiCrafter bearbeitet 14. April 2017 von SpiCrafter Link zu diesem Kommentar Auf anderen Seiten teilen More sharing options...
Empfohlene Beiträge
Erstelle ein Benutzerkonto oder melde dich an, um zu kommentieren
Du musst ein Benutzerkonto haben, um einen Kommentar verfassen zu können
Benutzerkonto erstellen
Neues Benutzerkonto für unsere Community erstellen. Es ist einfach!
Neues Benutzerkonto erstellenAnmelden
Du hast bereits ein Benutzerkonto? Melde dich hier an.
Jetzt anmelden