Jump to content

Fehler mit teleport(location) [Bukkit/Spigot]


SpiCrafter
 Share

Recommended Posts

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? :huh::)

Edited by SpiCrafter
Link to comment
Share on other sites

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

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 by SpiCrafter
Link to comment
Share on other sites

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

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 by SpiCrafter
Link to comment
Share on other sites

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 account

Sign in

Already have an account? Sign in here.

Sign In Now
 Share

×
×
  • Create New...
B
B