Solved Error, i don't understand

Discussion in 'Plugin Development' started by jakemaster2003, Jun 26, 2017.

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

    jakemaster2003

    Beste Bukkiters(Yes i really called you all like that),

    I have an problem with my plugin.

    error (open)

    [12:21:03 ERROR]: Could not load 'plugins\joinquitpro.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: Abnormal plugin type
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:80) ~[server.jar:git-Spigot-38ddb34-c19c293]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[server.jar:git-Spigot-38ddb34-c19c293]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[server.jar:git-Spigot-38ddb34-c19c293]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [server.jar:git-Spigot-38ddb34-c19c293]
    at org.bukkit.craftbukkit.v1_11_R1.CraftServer.loadPlugins(CraftServer.java:301) [server.jar:git-Spigot-38ddb34-c19c293]
    at org.bukkit.craftbukkit.v1_11_R1.CraftServer.reload(CraftServer.java:748) [server.jar:git-Spigot-38ddb34-c19c293]
    at org.bukkit.Bukkit.reload(Bukkit.java:540) [server.jar:git-Spigot-38ddb34-c19c293]
    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [server.jar:git-Spigot-38ddb34-c19c293]
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [server.jar:git-Spigot-38ddb34-c19c293]
    at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchCommand(CraftServer.java:650) [server.jar:git-Spigot-38ddb34-c19c293]
    at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchServerCommand(CraftServer.java:636) [server.jar:git-Spigot-38ddb34-c19c293]
    at net.minecraft.server.v1_11_R1.DedicatedServer.aM(DedicatedServer.java:437) [server.jar:git-Spigot-38ddb34-c19c293]
    at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:400) [server.jar:git-Spigot-38ddb34-c19c293]
    at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:678) [server.jar:git-Spigot-38ddb34-c19c293]
    at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:576) [server.jar:git-Spigot-38ddb34-c19c293]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]
    Caused by: java.lang.InstantiationException: me.nl.YourPalJake.JoinQuitPro.Main
    at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_131]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[server.jar:git-Spigot-38ddb34-c19c293]
    ... 15 more
    Caused by: java.lang.NoSuchMethodException: me.nl.YourPalJake.JoinQuitPro.Main.<init>()
    at java.lang.Class.getConstructor0(Unknown Source) ~[?:1.8.0_131]
    at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_131]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:76) ~[server.jar:git-Spigot-38ddb34-c19c293]
    ... 15 more



    Here are my classes that get included:

    main (open)

    Code:
    package me.nl.YourPalJake.JoinQuitPro;
    
    import org.bukkit.Bukkit;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import me.nl.YourPalJake.JoinQuitPro.Registers.CommandRegister;
    import me.nl.YourPalJake.JoinQuitPro.Registers.ListenerRegister;
    import me.nl.YourPalJake.JoinQuitPro.Registers.MessageRegister;
    import me.nl.YourPalJake.JoinQuitPro.Registers.OptionsRegister;
    
    
    
    public class Main extends JavaPlugin{
       
       
        private CommandRegister commandregister;
        private MessageRegister messageregister;
        private OptionsRegister optionsregister;
        private ListenerRegister listenerregister;
       
        SettingsManager settings = SettingsManager.getInstance();
       
        public Main(CommandRegister commandInst, MessageRegister messageInst, OptionsRegister optionsInst, ListenerRegister listInst){
            optionsregister = optionsInst;
            messageregister = messageInst;
            commandregister = commandInst;
            listenerregister = listInst;
           
           
        }
       
       
        @Override
        public void onEnable(){
            settings.Setup(this);
            commandregister.Commands();
            messageregister.Messages();
            listenerregister.Listeners();
            optionsregister.Options();
            Bukkit.getServer().getLogger().info("+==========================+");
            Bukkit.getServer().getLogger().info("   JoinQuitPro V" + settings.getDesc().getVersion() + " Enabled!");
            Bukkit.getServer().getLogger().info("    Made by: YourPalJake    ");
            Bukkit.getServer().getLogger().info("+==========================+");
           
        }
       
        @Override
        public void onDisable(){
           
           
        }
    
    }
    


    settingsmanager (open)

    Code:
    package me.nl.YourPalJake.JoinQuitPro;
    
    import java.io.File;
    
    import org.bukkit.Bukkit;
    import org.bukkit.ChatColor;
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.plugin.Plugin;
    import org.bukkit.plugin.PluginDescriptionFile;
    
    public class SettingsManager {
       
       
        private SettingsManager() { }
        
        static SettingsManager instance = new SettingsManager();
        public static SettingsManager getInstance() {
            return instance;
           
        }
       
        Plugin p;
       
        FileConfiguration config;
        File cfile;
       
        FileConfiguration spawn;
        File sfile;
       
        FileConfiguration messages;
        File mfile;
       
        public void Setup(Plugin p){
           
            if(!p.getDataFolder().exists()){
                p.getDataFolder().mkdir();
            }
           
            cfile = new File(p.getDataFolder(), "config.yml");
            config = p.getConfig();
           
            if(!cfile.exists()){
                try{
                    cfile.createNewFile();
                }
                catch(Exception e){
                    Bukkit.getServer().getLogger().info(ChatColor.RED + "Cannot create config.yml!");
                    e.printStackTrace();
                   
                }
            }
           
           
           
            sfile = new File(p.getDataFolder(), "data.yml");
           
            if(!sfile.exists()){
                try{
                    sfile.createNewFile();
                }
                catch(Exception e){
                    Bukkit.getServer().getLogger().info(ChatColor.RED + "Cannot create spawn.yml!");
                    e.printStackTrace();
                }
                   
               
            }
            spawn = YamlConfiguration.loadConfiguration(sfile);
           
            mfile = new File(p.getDataFolder(), "messages.yml");
           
            if(!mfile.exists()){
                try{
                    mfile.createNewFile();
                }
                catch(Exception e){
                    Bukkit.getServer().getLogger().info(ChatColor.RED + "Cannot create messages.yml!");
                    e.printStackTrace();
                }
               
            }
            messages = YamlConfiguration.loadConfiguration(mfile);
           
        }
       
        public FileConfiguration getSpawn(){
            return spawn;
        }
       
        public void saveSpawn(){
            try{
                spawn.save(sfile);
            }
            catch(Exception e){
                Bukkit.getServer().getLogger().info(ChatColor.RED + "Could not save data.yml!");
            }
           
           
        }
       
        public void reloadData(){
            spawn = YamlConfiguration.loadConfiguration(sfile);
        }
       
        public FileConfiguration getMessage(){
            return messages;
        }
        public void saveMessage(){
            try{
                messages.save(mfile);
            }
            catch(Exception e){
                Bukkit.getServer().getLogger().info(ChatColor.RED + "Could not save messages.yml!");
            }
        }
        public void reloadMessage(){
            messages = YamlConfiguration.loadConfiguration(mfile);
        }
       
        public FileConfiguration getConfig(){
            return config;
           
        }
       
        public void saveConfig(){
            try{
                config.save(cfile);
            }
            catch(Exception e){
                Bukkit.getServer().getLogger().info(ChatColor.RED + "Could not save config.yml!");
            }
        }
        public void reloadConfig(){
            config = YamlConfiguration.loadConfiguration(cfile);
        }
       
        public PluginDescriptionFile getDesc(){
            return p.getDescription();
        }
    
    
       
    }
    
    


    commandregister (open)

    Code:
    package me.nl.YourPalJake.JoinQuitPro.Registers;
    
    import me.nl.YourPalJake.JoinQuitPro.Main;
    import me.nl.YourPalJake.JoinQuitPro.Commands.MainCMD;
    
    public class CommandRegister {
       
        private Main main;
       
        public CommandRegister(Main mainInst){
            main = mainInst;
        }
       
        public void Commands(){
            main.getCommand("joinquitpro").setExecutor(new MainCMD());
           
        }
    
    }
    


    messageregister (open)

    Code:
    package me.nl.YourPalJake.JoinQuitPro.Registers;
    
    public class MessageRegister {
       
        public void Messages(){
           
        }
    
    }



    optionsregister (open)

    Code:
    package me.nl.YourPalJake.JoinQuitPro.Registers;
    
    public class OptionsRegister {
       
        public void Options(){
           
        }
    
    }
    


    listenrregister (open)

    Code:
    package me.nl.YourPalJake.JoinQuitPro.Registers;
    
    import me.nl.YourPalJake.JoinQuitPro.Main;
    import me.nl.YourPalJake.JoinQuitPro.Listeners.JoinMessage;
    import me.nl.YourPalJake.JoinQuitPro.Listeners.QuitMessage;
    
    public class ListenerRegister {
       
       
        private Main main;
       
        public ListenerRegister(Main mainInst){
            main = mainInst;
        }
       
       
        public void Listeners(){
            main.getServer().getPluginManager().registerEvents(new JoinMessage(), main);
            main.getServer().getPluginManager().registerEvents(new QuitMessage(), main);
           
        }
    
    }
    


    quitmessage (open)

    Code:
    package me.nl.YourPalJake.JoinQuitPro.Listeners;
    
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerQuitEvent;
    
    public class QuitMessage implements Listener {
       
        @EventHandler
        public void onPlayerQuit(PlayerQuitEvent e){
           
        }
    
    }
    


    joinmessage (open)

    Code:
    package me.nl.YourPalJake.JoinQuitPro.Listeners;
    
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    
    public class JoinMessage implements Listener{
       
        @EventHandler
        public void onPlayerJoin(PlayerJoinEvent e){
           
        }
    
       
    
    }
    


    maincmd (open)

    Code:
    package me.nl.YourPalJake.JoinQuitPro.Commands;
    
    import org.bukkit.ChatColor;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandExecutor;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    
    import me.nl.YourPalJake.JoinQuitPro.SettingsManager;
    
    public class MainCMD implements CommandExecutor{
       
       
        SettingsManager settings = SettingsManager.getInstance();
       
       
        public void Messages(){
           
        }
       
        public void Options(){
           
        }
       
    
        @Override
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args) {
            if(!(sender instanceof Player)){
                sender.sendMessage(ChatColor.RED + "Console support wil be added in the future!");
                return true;
            }
           
            Player p = (Player)sender;
           
            if(cmd.getName().equalsIgnoreCase("joinquitpro")){
                if(!p.hasPermission("joinquitpro.admin")){
                    p.sendMessage(ChatColor.translateAlternateColorCodes('&', settings.getMessage().getString("main.nopermission")));
                    return true;
                }else{
                    if(args.length == 0){
                        p.sendMessage(org.bukkit.ChatColor.translateAlternateColorCodes('&', "&8+========================+"));
                        p.sendMessage(org.bukkit.ChatColor.translateAlternateColorCodes('&', "      &6JoinQuitPro &7V1.1  "));
                        p.sendMessage(org.bukkit.ChatColor.translateAlternateColorCodes('&', "    &8Author: &aYourPalJake "));
                        p.sendMessage(org.bukkit.ChatColor.translateAlternateColorCodes('&', "      &7Type: &8/jqp &7help "));
                        p.sendMessage(org.bukkit.ChatColor.translateAlternateColorCodes('&', " &7To get a list of commands"));
                        p.sendMessage(org.bukkit.ChatColor.translateAlternateColorCodes('&', "&8+========================+"));
                        return true;
                    }
                }
               
            }
           
            return true;
        }
    
    }



    P.S i got this error when i was trying to test the maincmd command
     
  2. Offline

    timtower Administrator Administrator Moderator

  3. Offline

    jakemaster2003

    But how do i get my instances from others?
     
  4. Offline

    timtower Administrator Administrator Moderator

    You make those instances in the onEnable.
     
  5. Offline

    jakemaster2003

    How do you make those then? @timtower I also searched again on the internet to it so i am not lazy. And i remember a while back when i asked to make my plugins more organized and they said i get can get void methods from other classes by doing that meanwhile i know void is a type of source for information becomming smarter but i still don't know how to get those methods so yeah.
     
    Last edited: Jun 26, 2017
  6. Offline

    timtower Administrator Administrator Moderator

  7. Offline

    jakemaster2003

    Can i also use this in the registers?

    The classes that get an instance of my main class want this

    example:

    new ListenerRegister(null).listeners();

    @timtower

    and when i tried to run my code i got this in my face,

    Code:
    [16:43:02 ERROR]: Error occurred while enabling JoinQuitPro vV1.1 (Is it up to date?)
    java.lang.NullPointerException
            at me.nl.YourPalJake.JoinQuitPro.Registers.ListenerRegister.Listeners(ListenerRegister.java:18) ~[?:?]
            at me.nl.YourPalJake.JoinQuitPro.Main.onEnable(Main.java:23) ~[?:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:271) ~[server.jar:git-Spigot-38ddb34-c19c293]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) [server.jar:git-Spigot-38ddb34-c19c293]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:405) [server.jar:git-Spigot-38ddb34-c19c293]
            at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugin(CraftServer.java:376) [server.jar:git-Spigot-38ddb34-c19c293]
            at org.bukkit.craftbukkit.v1_11_R1.CraftServer.enablePlugins(CraftServer.java:326) [server.jar:git-Spigot-38ddb34-c19c293]
            at org.bukkit.craftbukkit.v1_11_R1.CraftServer.reload(CraftServer.java:750) [server.jar:git-Spigot-38ddb34-c19c293]
            at org.bukkit.Bukkit.reload(Bukkit.java:540) [server.jar:git-Spigot-38ddb34-c19c293]
            at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:25) [server.jar:git-Spigot-38ddb34-c19c293]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) [server.jar:git-Spigot-38ddb34-c19c293]
            at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchCommand(CraftServer.java:650) [server.jar:git-Spigot-38ddb34-c19c293]
            at org.bukkit.craftbukkit.v1_11_R1.CraftServer.dispatchServerCommand(CraftServer.java:636) [server.jar:git-Spigot-38ddb34-c19c293]
            at net.minecraft.server.v1_11_R1.DedicatedServer.aM(DedicatedServer.java:437) [server.jar:git-Spigot-38ddb34-c19c293]
            at net.minecraft.server.v1_11_R1.DedicatedServer.D(DedicatedServer.java:400) [server.jar:git-Spigot-38ddb34-c19c293]
            at net.minecraft.server.v1_11_R1.MinecraftServer.C(MinecraftServer.java:678) [server.jar:git-Spigot-38ddb34-c19c293]
            at net.minecraft.server.v1_11_R1.MinecraftServer.run(MinecraftServer.java:576) [server.jar:git-Spigot-38ddb34-c19c293]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_131]

    And the error lies with the instances that need the null in it

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: Jun 26, 2017
  8. Offline

    timtower Administrator Administrator Moderator

    @jakemaster2003 you put "this" there. Give it something.
    And you can use that everywhere.
     
  9. Offline

    jakemaster2003

    Thnx gonna try this this is gonna help make me big plugins you know organized
     
  10. Offline

    InstanceofDeath

    Pls do mark this Thread as Filled so an idiot like me can't write here anymore
     
    Reflxction and Zombie_Striker like this.
Thread Status:
Not open for further replies.

Share This Page