0

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.

Elikill58
  • 4,050
  • 24
  • 23
  • 45
  • 2
    It's `API.areLoged(playerName)` and not `API.areLoged(player)` as the method request a string and not the player object – Elikill58 Jan 25 '23 at 10:00
  • I know, but this is a recent change, before PlayerName it was just Player. But it keeps catching error... – Daniyusk Jan 27 '23 at 23:26

1 Answers1

0

On the MoveHandler you entered player instead of player.getName(). Be sure you have the right variable in the function.

  • 1
    As it’s currently written, your answer is unclear. Please [edit] to add additional details that will help others understand how this addresses the question asked. You can find more information on how to write good answers [in the help center](/help/how-to-answer). – Community May 09 '23 at 12:25