SpiCrafter Posted April 9, 2017 Share Posted April 9, 2017 (edited) 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? Edited April 12, 2017 by SpiCrafter Link to comment Share on other sites More sharing options...
BloodSKreaper Posted April 11, 2017 Share Posted April 11, 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 to comment Share on other sites More sharing options...
SpiCrafter Posted April 12, 2017 Author Share Posted April 12, 2017 (edited) 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. Edited April 12, 2017 by SpiCrafter Link to comment Share on other sites More sharing options...
ludgart Posted April 14, 2017 Share Posted April 14, 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 to comment Share on other sites More sharing options...
SpiCrafter Posted April 14, 2017 Author Share Posted April 14, 2017 (edited) 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? Edited April 14, 2017 by SpiCrafter Link to comment Share on other sites More sharing options...
Joey Posted April 14, 2017 Share Posted April 14, 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 to comment Share on other sites More sharing options...
SpiCrafter Posted April 14, 2017 Author Share Posted April 14, 2017 (edited) Ok, alles funktioniert. Ich dachte, man braucht kein Multiverse, wenn man den Code selber schreibt. Vielen Dank für eure Antworten. LG SpiCrafter Edited April 14, 2017 by SpiCrafter Link to comment Share on other sites More sharing options...
Recommended Posts
Create an account or sign in to comment
You need to be a member in order to leave a comment
Create an account
Sign up for a new account in our community. It's easy!
Register a new accountSign in
Already have an account? Sign in here.
Sign In Now