I'm trying to make a Register/Login plugin in spigot for minecraft and I caught a error:
[06:03:10 ERROR]: Could not pass event PlayerMoveEvent to AuthPlugin v1.0-SNAPSHOT
org.bukkit.event.EventException: null
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) ~[Spigot.jar:git-Spigot-21fe707-741a1bd]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[Spigot.jar:git-Spigot-21fe707-741a1bd]
at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:270) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at net.minecraft.server.v1_8_R3.PacketPlayInFlying.a(SourceFile:126) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at net.minecraft.server.v1_8_R3.PacketPlayInFlying$PacketPlayInPosition.a(SourceFile:57) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:539) [?:?]
at java.util.concurrent.FutureTask.run(FutureTask.java:264) [?:?]
at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [Spigot.jar:git-Spigot-21fe707-741a1bd]
at java.lang.Thread.run(Thread.java:833) [?:?]
Caused by: java.lang.NoSuchMethodError: 'boolean br.com.daniyusk.API.areLoged(java.lang.String)'
at br.com.daniyusk.Events.doNotMove(Events.java:39) ~[?:?]
at jdk.internal.reflect.DirectMethodHandleAccessor.invoke(DirectMethodHandleAccessor.java:104) ~[?:?]
at java.lang.reflect.Method.invoke(Method.java:577) ~[?:?]
at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) ~[Spigot.jar:git-Spigot-21fe707-741a1bd]
... 15 more
And here's the Events code:
package br.com.daniyusk;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.player.AsyncPlayerChatEvent;
import org.bukkit.event.player.PlayerJoinEvent;
import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.scheduler.BukkitRunnable;
public class Events implements Listener {
@EventHandler
public void playerJoined(PlayerJoinEvent e) {
Player player = e.getPlayer();
String playerName = player.getName();
if (!API.areLoged(player)) {
if (!Config.Contains(playerName)) {
player.sendMessage("§a Registre-se por favor: /register <password> <password>");
} else {
player.sendMessage("§a Logue-se por favor: /login <password>");
}
}
new BukkitRunnable() {
public void run(){
if (!API.areLoged(player)) {
player.kickPlayer("§cTempo esgotado!");
}
}
}.runTaskLater(authplugin.getInstance(), 20*60 );
}
@EventHandler
public void doNotMove(PlayerMoveEvent e) {
Player player = e.getPlayer();
if (!API.areLoged(player)) {
player.teleport(e.getFrom());
}
}
@EventHandler
public void doNotChat(AsyncPlayerChatEvent e){
Player player = e.getPlayer();
if (!API.areLoged(player)) {
e.setCancelled(true);
player.sendMessage("§cRegistre-se/Logue para digitar no chat!");
}
}
}
API.areLoged() :
public static boolean areLoged(String player) {
try {
return playersLoged.contains(player);
}catch (NullPointerException e){
System.out.println("Player == NULL");
return false;
}
}
One day before this error, the plugin was working correctly, but in the next day, I caught this error. I believed the error came from the "API" class, but I'm not sure about that. But maybe it's the API that causes this error, because all classes that use the API have this error (only in areLoged(), I haven't tested it in the other methods of the API).
I looked at the old versions of the classes, but they seem to me to be the same things as the current ones (with minimal differences, I believe that it is not affecting)
I dont have so much details from this error.
I tried using an if, as I thought that maybe Contains would return null, but I was wrong. I also changed the parameter that uses String (before it was Player). It didn't solve either.