Could not pass event PlayerJoinEvent

Discussion in 'Plugin Development' started by commandmaster_1, Feb 4, 2021.

Thread Status:
Not open for further replies.
  1. Offline

    commandmaster_1

    Hey guys,
    I have a little problem.
    Whenever I join my Server I got this this error:


    Code:
    [20:38:19] [User Authenticator #1/INFO]: UUID of player commandmaster_1 is 1484aa32-2a55-44e0-91c6-92896b500a94
    [20:38:19] [Server thread/ERROR]: Could not pass event PlayerJoinEvent to Tests1 v1.0-SNAPSHOT
    org.bukkit.event.EventException: null
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:320) ~[spigot.jar:git-Spigot-800b93f-8160e29]
        at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:70) ~[spigot.jar:git-Spigot-800b93f-8160e29]
        at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:529) [spigot.jar:git-Spigot-800b93f-8160e29]
        at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:514) [spigot.jar:git-Spigot-800b93f-8160e29]
        at net.minecraft.server.v1_15_R1.PlayerList.a(PlayerList.java:176) [spigot.jar:git-Spigot-800b93f-8160e29]
        at net.minecraft.server.v1_15_R1.LoginListener.c(LoginListener.java:154) [spigot.jar:git-Spigot-800b93f-8160e29]
        at net.minecraft.server.v1_15_R1.LoginListener.tick(LoginListener.java:53) [spigot.jar:git-Spigot-800b93f-8160e29]
        at net.minecraft.server.v1_15_R1.NetworkManager.a(NetworkManager.java:220) [spigot.jar:git-Spigot-800b93f-8160e29]
        at net.minecraft.server.v1_15_R1.ServerConnection.c(ServerConnection.java:129) [spigot.jar:git-Spigot-800b93f-8160e29]
        at net.minecraft.server.v1_15_R1.MinecraftServer.b(MinecraftServer.java:1105) [spigot.jar:git-Spigot-800b93f-8160e29]
        at net.minecraft.server.v1_15_R1.DedicatedServer.b(DedicatedServer.java:399) [spigot.jar:git-Spigot-800b93f-8160e29]
        at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:984) [spigot.jar:git-Spigot-800b93f-8160e29]
        at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:824) [spigot.jar:git-Spigot-800b93f-8160e29]
        at java.lang.Thread.run(Unknown Source) [?:1.8.0_281]
    Caused by: java.lang.NullPointerException
        at de.david.tests1.listeners.JoinListener.onJoin(JoinListener.java:23) ~[?:?]
        at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:1.8.0_281]
        at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_281]
        at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) ~[?:1.8.0_281]
        at java.lang.reflect.Method.invoke(Unknown Source) ~[?:1.8.0_281]
        at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:316) ~[spigot.jar:git-Spigot-800b93f-8160e29]
        ... 13 more
    My PlayerJoinListener:

    Code:
    package de.david.tests1.listeners;
    
    import de.david.tests1.Main;
    import de.david.tests1.util.FW;
    import de.david.tests1.util.Message;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    
    public class JoinListener implements Listener {
    
        @EventHandler
        public void onJoin(PlayerJoinEvent e){
    
            e.setJoinMessage(null);
    
            if(!e.getPlayer().hasPlayedBefore()){
                e.setJoinMessage(Message.MSG_FirstJoined.getMessage().replace("{Player}", e.getPlayer().getName()));
            } else
            e.setJoinMessage(Message.MSG_Joined.getMessage().replace("{Player}", e.getPlayer().getName()));
    
            FW fw = new FW("plugin//" + Main.getInstance().getName() + "//Users//", e.getPlayer().getUniqueId().toString() + ".yml");
            if(fw.exist()) {
                fw.setValue("joined", fw.getInt("joined") + 1);
            }else
                fw.setValue("joined", 1);
            fw.save();
            e.getPlayer().sendMessage(Message.Prefix.getRawMessage() + "Du bist schon " + fw.getInt("joined") + " mal auf dem Server gewesen.");
    
        }
    }
    My Main:

    Code:
    package de.david.tests1;
    
    import de.david.tests1.listeners.JoinListener;
    import org.bukkit.Bukkit;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public final class Main extends JavaPlugin {
        private static Main instance = null;
    
        public static Main getInstance(){
            return instance;
        }
    
        @Override
        public void onEnable() {
        ListenerRegestration();
    
        }
    
        @Override
        public void onDisable() {
    
        }
    
        private void ListenerRegestration() {
            PluginManager pluginManager = Bukkit.getPluginManager();
            pluginManager.registerEvents(new JoinListener(),this);
        }
    }
    This is my filewriter:

    Code:
    package de.david.tests1.util;
    
    import org.bukkit.configuration.ConfigurationSection;
    import org.bukkit.configuration.file.YamlConfiguration;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.HashMap;
    import java.util.List;
    import java.util.Set;
    
    public class FW {
    
    
        private File f;
        private YamlConfiguration c;
    
        public FW(String FilePath, String FileName){
            this.f = new File(FilePath, FileName);
            this.c = YamlConfiguration.loadConfiguration(this.f);
        }
    
        public FW setValue(String ValuePath, Object Value){
            c.set(ValuePath, Value);
            return this;
        }
        public boolean exist(){
            return f.exists();
        }
        public Object getObject(String ValuePath){
            return c.get(ValuePath);
        }
    
        public int getInt(String ValuePath) {
           return c.getInt(ValuePath);
        }
        public String getSring(String ValuePath) {
            return c.getString(ValuePath);
        }
        public boolean getBoolean(String ValuePath) {
            return c.getBoolean(ValuePath);
        }
        public List<String> getStringList(String ValuePath) {
            return c.getStringList(ValuePath);
        }
        public long getLong(String ValuePath) {
            return c.getLong(ValuePath);
        }
        public Set<String> getKeys(boolean deep) {
            return c.getKeys(deep);
        }
        public ConfigurationSection getConfigurationSection(String Section){
            return c.getConfigurationSection(Section);
        }
        public FW save(){
            try {
                this.c.save(this.f);
            } catch (IOException e) {
            }
            return this;
        }
    }
     
    Last edited: Feb 4, 2021
  2. Offline

    commandmaster_1

    @timtower I programnot yet that long.
    Can you please explain to me what I should change to fix the problem
    ?
     
    Last edited: Feb 5, 2021
  3. Offline

    timtower Administrator Administrator Moderator

  4. Offline

    timtower Administrator Administrator Moderator

    In your onEnable:
    instance = this

    Or remove it and pass the value using constructors instead of the unneeded static usage.
     
  5. Offline

    commandmaster_1

    Now my Main looks like this,
    but i get the same error
    Code:
    package de.david.tests1;
    
    import de.david.tests1.listeners.JoinListener;
    import org.bukkit.Bukkit;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public final class Main extends JavaPlugin {
        private static Main instance = null;
    
        public static Main getInstance(){
            return instance;
        }
    
        public Main() {
        }
    
        @Override
        public void onEnable() {
        instance = this;
        ListenerRegistration();
    
        }
    
        @Override
        public void onDisable() {
    
        }
    
        private void ListenerRegistration() {
            PluginManager pluginManager = Bukkit.getPluginManager();
            pluginManager.registerEvents(new JoinListener(),this);
        }
    }
     
  6. Offline

    timtower Administrator Administrator Moderator

  7. Offline

    commandmaster_1

    The same Error
    Code:
    package de.david.tests1;
    
    import de.david.tests1.listeners.JoinListener;
    import org.bukkit.Bukkit;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public final class Main extends JavaPlugin {
        private static Main instance = null;
    
        public static Main getInstance(){
            return instance;
        }
    
    
        @Override
        public void onEnable() {
            instance = this;
            ListenerRegistration();
    
        }
    
        @Override
        public void onDisable() {
    
        }
    
        private void ListenerRegistration() {
            PluginManager pluginManager = Bukkit.getPluginManager();
            pluginManager.registerEvents(new JoinListener(),this);
        }
    }
     
  8. Offline

    timtower Administrator Administrator Moderator

    @commandmaster_1 Remove all static stuff. You don't need it.
    Call "new JoinListener(this)"
    Then you can pass the main class along.
     
  9. Offline

    commandmaster_1

    @timtower I have remove it but what I need to call "new JoinListener(this)"?


    Code:
    package de.david.tests1;
    
    import de.david.tests1.listeners.JoinListener;
    import org.bukkit.Bukkit;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public final class Main extends JavaPlugin {
    
    
        @Override
        public void onEnable() {
    
            PluginManager pluginManager = Bukkit.getPluginManager();
            pluginManager.registerEvents(new JoinListener(), this);
    
        }
    
    }
     
  10. Offline

    timtower Administrator Administrator Moderator

    @commandmaster_1 Where do you think? I would try the current "new Joinlistener()"
     
  11. Offline

    commandmaster_1

    Always the same Error
    My Main now
    Code:
    package de.david.tests1;
    
    import de.david.tests1.listeners.JoinListener;
    import org.bukkit.Bukkit;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    public final class Main extends JavaPlugin {
        private static Main plugin;
    
        @Override
        public void onEnable() {
            plugin = this;
            PluginManager pluginManager = Bukkit.getPluginManager();
            pluginManager.registerEvents(new JoinListener(), this);
    
        }
            public static Main getPlugin() {
                return plugin;
            }
    }
     
  12. Offline

    Newdel

    You still didn't do that
     
  13. Offline

    timtower Administrator Administrator Moderator

  14. Offline

    commandmaster_1

    @timtower Found the mistake thanks for your help.
     
    Last edited: Feb 6, 2021
Thread Status:
Not open for further replies.

Share This Page