Solved InvalidPluginExeption-Error

Discussion in 'Plugin Development' started by ThrustLP, May 22, 2016.

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

    ThrustLP

    Hey guys! Whenever I startup my server I get the following error:

    Code:
    [01:54:30 ERROR]: Could not load 'plugins\CUNChat.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: java.lang.NullPointerException
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:135) ~[spigot_server.jar:git-Spigot-2038f4a-cd36f6f]
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[spigot_server.jar:git-Spigot-2038f4a-cd36f6f]
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [spigot_server.jar:git-Spigot-2038f4a-cd36f6f]
            at org.bukkit.craftbukkit.v1_9_R1.CraftServer.loadPlugins(CraftServer.java:296) [spigot_server.jar:git-Spigot-2038f4a-cd36f6f]
            at net.minecraft.server.v1_9_R1.DedicatedServer.init(DedicatedServer.java:201) [spigot_server.jar:git-Spigot-2038f4a-cd36f6f]
            at net.minecraft.server.v1_9_R1.MinecraftServer.run(MinecraftServer.java:527) [spigot_server.jar:git-Spigot-2038f4a-cd36f6f]
            at java.lang.Thread.run(Unknown Source) [?:1.7.0_79]
    Caused by: java.lang.NullPointerException
            at de.thruzzd.cunchat.Main.<init>(Main.java:52) ~[?:?]
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.7.0_79]
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.7.0_79]
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.7.0_79]
            at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.7.0_79]
            at java.lang.Class.newInstance(Unknown Source) ~[?:1.7.0_79]
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[spigot_server.jar:git-Spigot-2038f4a-cd36f6f]
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:131) ~[spigot_server.jar:git-Spigot-2038f4a-cd36f6f]
            ... 6 more
    This is my Main.class (I know it is noobish af, but just a "try" with everything in it):

    Code:
    package de.thruzzd.cunchat;
    
    
    import java.io.File;
    import java.io.IOException;
    import java.lang.reflect.Field;
    import java.util.Date;
    import java.util.HashMap;
    import java.util.List;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.craftbukkit.v1_9_R1.entity.CraftPlayer;
    import org.bukkit.entity.Player;
    import org.bukkit.plugin.RegisteredServiceProvider;
    import org.bukkit.plugin.java.JavaPlugin;
    import org.bukkit.scoreboard.Scoreboard;
    
    import net.milkbowl.vault.chat.Chat;
    import net.milkbowl.vault.economy.Economy;
    import net.milkbowl.vault.permission.Permission;
    import net.minecraft.server.v1_9_R1.IChatBaseComponent;
    import net.minecraft.server.v1_9_R1.IChatBaseComponent.ChatSerializer;
    
    import net.minecraft.server.v1_9_R1.PacketPlayOutPlayerListHeaderFooter;
    import net.minecraft.server.v1_9_R1.PlayerConnection;
    
    
    
    
    public class Main extends JavaPlugin{
      
      
      
        public static Permission permission = null;
        public static Economy economy = null;
        public static Chat chat = null;
        public String vor1 = getConfig().getString("prefix");
        public String vor = ChatColor.translateAlternateColorCodes('&', vor1);
        public String theader1 = getConfig().getString("tab.header");
        public String theader = ChatColor.translateAlternateColorCodes('&', theader1);
        public String tfooter1 = getConfig().getString("tab.footer");
        public String tfooter = ChatColor.translateAlternateColorCodes('&', tfooter1);
     
        public File f = new File("plugins/CUNChat/muted.yml");
        public YamlConfiguration yamlFile = YamlConfiguration.loadConfiguration(f);
      
    
      
        public Boolean mte = false;
        Scoreboard sb = Bukkit.getScoreboardManager().getNewScoreboard();
     
       public HashMap<String, Date> mutes = new HashMap<String, Date>();
        public HashMap<String, String> tabprefixes = new HashMap<String, String>();
      
        @Override
        public void onEnable(){
            System.out.println("[CUNChat] Gestartet");
          
          
            saveDefaultConfig();
            loadGroups();
            setupPermissions();
            setupChat();
            reigsterEvents();
            registerCommands();
            muteLoadin();
            muteLoad();  
        }
      
        @Override
        public void onDisable(){
            System.out.println("[CUNChat] Erfolgreich beendet!");
            muteSave();
            muteLoad();
          
        }
      
    
    
        private boolean setupPermissions(){
            RegisteredServiceProvider<Permission> permissionProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.permission.Permission.class);
            if (permissionProvider != null) {
                permission = permissionProvider.getProvider();
            }
            return (permission != null);
        }
      
        private boolean setupChat()
        {
            RegisteredServiceProvider<Chat> chatProvider = getServer().getServicesManager().getRegistration(net.milkbowl.vault.chat.Chat.class);
            if (chatProvider != null) {
                chat = chatProvider.getProvider();
            }
    
            return (chat != null);
        }
    
    
        public void reigsterEvents(){
            Bukkit.getPluginManager().registerEvents(new CUNListener(this), this);
            Bukkit.getPluginManager().registerEvents(new CUNMute(this), this);
            Bukkit.getPluginManager().registerEvents(new CUNTab(this), this);
          
          
          
        }
      
        public void registerCommands(){
          
            CUNNick cNick = new CUNNick(this);
            getCommand("nick").setExecutor(cNick);
            getCommand("renick").setExecutor(cNick);
          
            CUNMute cMute = new CUNMute(this);
            getCommand("mute").setExecutor(cMute);
            getCommand("gmute").setExecutor(cMute);
          
            CUNClear cClear = new CUNClear(this);
            getCommand("cchat").setExecutor(cClear);
          
          
          
          
          
        }
      
        public void muteLoad(){
      
            try {
                  yamlFile.save(f);
                } catch(IOException e) {
                
                  e.printStackTrace();
                }
          
      
        }
      
        public void muteSave(){
            yamlFile.set("muted", null);
            List<String> s = yamlFile.getStringList("muted");
            for(String p : mutes.keySet()){
              
                s.add(p + ":" + mutes.get(p).getTime());
              
            }
            yamlFile.set("muted", s);
          
        }
      
        public void muteLoadin(){
          
            List<String> s = yamlFile.getStringList("muted");
            for(String str : s){
              
                String[] words = str.split(":");
                Long longg;
                longg = Long.parseLong(words[1]);
                Date date = new Date(longg);
                mutes.put(words[0], date);
              
              
              
            }
          
          
        }
      
        public void loadGroups(){
            List<String> s = getConfig().getStringList("groups");
            for(String str : s){
              
                String[] words = str.split(":");
                words[0] = ChatColor.translateAlternateColorCodes('&', words[0]);
                words[1] = ChatColor.translateAlternateColorCodes('&', words[1]);
              
                tabprefixes.put(words[0], words[1]);
              
              
            }
          
          
        }
      
        public void tablist(Player p, String header, String footer){
            if(header == null)header = "";
            if(footer == null)footer = "";
            header = ChatColor.translateAlternateColorCodes('&', header);
            footer = ChatColor.translateAlternateColorCodes('&', footer);
          
            PlayerConnection con = ((CraftPlayer)p).getHandle().playerConnection;
          
            IChatBaseComponent tabheader = ChatSerializer.a("{\"text\": \"" + header + "\"}");
            IChatBaseComponent tabfooter = ChatSerializer.a("{\"text\": \"" + footer + "\"}");
          
            PacketPlayOutPlayerListHeaderFooter packet = new PacketPlayOutPlayerListHeaderFooter(tabheader);
          
            try {
                Field f = packet.getClass().getDeclaredField("b");
                f.setAccessible(true);
                f.set(packet, tabfooter);
            } catch (Exception e) {
                e.printStackTrace();
            } finally {
                con.sendPacket(packet);
            }
          
          
        }
      
    
      
      
    
    
      
    
    
    }
    
    Can you guys help me out?

    Thanks!
    Tobi
     
  2. Offline

    Zombie_Striker

  3. Offline

    ThrustLP

  4. Offline

    Zombie_Striker

    @ThrustLP
    If so, mark this thread as solved. (Top Left side of this page, click ThreadTools, click EditTitle, click on [Prefix] and select the "[Solved]" prefix)
     
Thread Status:
Not open for further replies.

Share This Page