Plugin Already Initialized!

Discussion in 'Plugin Development' started by Omer H., May 28, 2017.

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

    Omer H.

    Ok, I have a bug that when I run the server it says Plugin already initialized and I don't know how to fix it tho...

    CONSOLE :
    Code:
    Java HotSpot(TM) 64-Bit Server VM warning: ignoring option MaxPermSize=128M; support was removed in 8.0
    Loading libraries, please wait...
    [20:44:17 INFO]: Starting minecraft server version 1.8.8
    [20:44:17 INFO]: Loading properties
    [20:44:17 INFO]: Default game type: SURVIVAL
    [20:44:17 INFO]: Generating keypair
    [20:44:17 INFO]: Starting Minecraft server on *:25565
    [20:44:17 INFO]: Using default channel type
    [20:44:17 INFO]: This server is running CraftBukkit version git-Bukkit-18fbb24 (MC: 1.8.8) (Implementing API version 1.8.8-R0.1-SNAPSHOT)
    [20:44:17 INFO]: [FreeForAll] Loading FreeForAll v1.0
    [20:44:17 INFO]: Preparing level "world"
    [20:44:17 INFO]: Preparing start region for level 0 (Seed: 1131568168246138847)
    [20:44:18 INFO]: Preparing start region for level 1 (Seed: 5304587007688184775)
    [20:44:18 INFO]: Preparing start region for level 2 (Seed: 5304587007688184775)
    [20:44:18 INFO]: [FreeForAll] Enabling FreeForAll v1.0
    [20:44:18 INFO]: FreeForAll is now enabled.
    [20:44:18 ERROR]: Error occurred while enabling FreeForAll v1.0 (Is it up to date?)
    java.lang.IllegalArgumentException: Plugin already initialized!
            at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:98) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:66) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at me.blazingfiree.freeforall.MainClass.<init>(MainClass.java:18) ~[?:?]
            at me.blazingfiree.freeforall.Events.onJoinEvent.<init>(onJoinEvent.java:17) ~[?:?]
            at me.blazingfiree.freeforall.MainClass.registerEvents(MainClass.java:53) ~[?:?]
            at me.blazingfiree.freeforall.MainClass.onEnable(MainClass.java:32) ~[?:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:342) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:314) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:406) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:370) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:325) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:235) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:504) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
    Caused by: java.lang.IllegalStateException: Initial initialization
            at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:101) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.java.JavaPlugin.<init>(JavaPlugin.java:66) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at me.blazingfiree.freeforall.MainClass.<init>(MainClass.java:18) ~[?:?]
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_121]
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_121]
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_121]
            at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_121]
            at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_121]
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:52) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:328) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugins(CraftServer.java:289) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.<init>(CraftServer.java:251) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.PlayerList.<init>(PlayerList.java:69) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.DedicatedPlayerList.<init>(SourceFile:14) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:179) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            ... 2 more
    [20:44:18 INFO]: Server permissions file permissions.yml is empty, ignoring it
    [20:44:19 INFO]: Done (1.339s)! For help, type "help" or "?"
    MAIN CLASS:

    Code:
    package me.blazingfiree.freeforall;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import me.blazingfiree.freeforall.Events.onJoinEvent;
    
    public class MainClass extends JavaPlugin implements Listener {
        public ArrayList<Player> ingame = new ArrayList<Player>();
        private Logger logger = getServer().getLogger();
        FileConfiguration config;
        File file;
    
        @Override
        public void onEnable() {
            logger.log(Level.INFO, "FreeForAll is now enabled.");
            file = new File(getDataFolder(), "config.yml");
            config = YamlConfiguration.loadConfiguration(file);
            addConfigurationSections();
            saveConfiguration();
            registerCommands();
            registerEvents();
        }
    
        @Override
        public void onDisable() {
            logger.log(Level.INFO, "FreeForAll is now disabled.");
            saveConfiguration();
        }
    
        public void saveConfiguration() {
            try {
                config.save(file);
            } catch (IOException e) {
                e.printStackTrace();
                logger.log(Level.WARNING, "Cannot save configuration file.");
    
            }
        }
    
        private void registerEvents() {
            PluginManager pm = getServer().getPluginManager();
            pm.registerEvents(new onJoinEvent(), this);
    
        }
    
        private void registerCommands() {
        }
    
        public ArrayList<Player> getPlayersIngame() {
            if (ingame.isEmpty() == true) {
                return null;
            }
            return ingame;
        }
    
        private void addConfigurationSections() {
            if (config.isConfigurationSection("Player Data") == false) {
                config.createSection("Player Data");
            }
    
            // Scoreboard Stuff
            if (config.isConfigurationSection("Scoreboard") == false) {
                config.set("Scoreboard" + ".Scoreboard Name", null);
                config.createSection("Scoreboard");
            }
    
        }
    
        public FileConfiguration getCustomConfigFile() {
            return this.config;
    
        }
    
    }
    


    onJoinEvent Class, Since It is being mentioned in the error..

    Code:
    package me.blazingfiree.freeforall.Events;
    
    import java.util.UUID;
    
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    
    import me.blazingfiree.freeforall.MainClass;
    import me.blazingfiree.freeforall.PlayerData.PlayerManager;
    import me.blazingfiree.freeforall.arenaUtils.ScoreboardClass;
    
    public class onJoinEvent implements Listener {
       
        private MainClass mainClass = new MainClass();
        private FileConfiguration config = mainClass.getConfig();
        private ScoreboardClass scoreboardClass = new ScoreboardClass();
    
        @EventHandler
        public void onJoin(PlayerJoinEvent event) {
    
            Player player = event.getPlayer();
            UUID uuid = player.getUniqueId();
    
            scoreboardClass.addScoreboard(player);
            // First join config add
            if (event.getPlayer().hasPlayedBefore() == false) {
                PlayerManager pm = new PlayerManager(uuid, 0, 0, 1);
                config.set("Player Data", uuid.toString());
                config.set("Player Data." + uuid.toString(), "Player");
                config.set("Player Data." + uuid.toString(), "Kills");
                config.set("Player Data." + uuid.toString(), "Deaths");
                config.set("Player Data." + uuid.toString(), "Coins");
    
                config.set("Player Data." + uuid.toString() + ".Player", player.getName());
                config.set("Player Data." + uuid.toString() + ".Kills", pm.getKills());
                config.set("Player Data." + uuid.toString() + ".Deaths", pm.getDeaths());
                config.set("Player Data." + uuid.toString() + ".Coins", pm.getCoins());
            }
    
            // on Player name change :
            if (player.getName() != config.getString("Player Data." + uuid.toString() + ".Player")) {
                config.set("Player Data." + uuid.toString() + ".Player", player.getName());
            }
    
        }
    
    }
    
    Please help me...
    I can't find any solutions to this error...

    :/
     
  2. @Omer H.
    You can't instantiate the main class again! You have to pass the instances from class to class. In your case it'd probably be easiest through the constructor.
     
  3. Offline

    Omer H.

    What do you mean...?

    can you tell me how to fix it?
     
  4. @Omer H.
    Pass the mainclass instance through the constructor.
    Code:java
    1. YourMainClass plugin;
    2.  
    3. public YourListenerClass(YourMainClass plugin) {
    4. this.plugin = plugin;
    5. }
    6.  
     
  5. Offline

    Omer H.

    Now this error is gone but another one came up....

    Code:
    [21:03:09 ERROR]: Error occurred while enabling FreeForAll v1.0 (Is it up to date?)
    java.lang.NullPointerException
            at me.blazingfiree.freeforall.Events.onJoinEvent.<init>(onJoinEvent.java:18) ~[?:?]
            at me.blazingfiree.freeforall.MainClass.registerEvents(MainClass.java:53) ~[?:?]
            at me.blazingfiree.freeforall.MainClass.onEnable(MainClass.java:32) ~[?:?]
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:342) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:314) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:406) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:370) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:325) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:235) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:504) [CraftBukkit.jar:git-Bukkit-18fbb24]
            at java.lang.Thread.run(Unknown Source) [?:1.8.0_121]
     
  6. @Omer H.
    Please post the code again.
     
  7. Offline

    Omer H.

    Code:
    package me.blazingfiree.freeforall.Events;
    
    import java.util.UUID;
    
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    
    import me.blazingfiree.freeforall.MainClass;
    import me.blazingfiree.freeforall.PlayerData.PlayerManager;
    import me.blazingfiree.freeforall.arenaUtils.ScoreboardClass;
    
    public class onJoinEvent implements Listener {
       
        private MainClass mainClass;
        private FileConfiguration config = mainClass.getConfig();
        private ScoreboardClass scoreboardClass = new ScoreboardClass();
    
        @EventHandler
        public void onJoin(PlayerJoinEvent event) {
           
            Player player = event.getPlayer();
            UUID uuid = player.getUniqueId();
    
            scoreboardClass.addScoreboard(player);
            // First join config add
            if (event.getPlayer().hasPlayedBefore() == false) {
                PlayerManager pm = new PlayerManager(uuid, 0, 0, 1);
                config.set("Player Data", uuid.toString());
                config.set("Player Data." + uuid.toString(), "Player");
                config.set("Player Data." + uuid.toString(), "Kills");
                config.set("Player Data." + uuid.toString(), "Deaths");
                config.set("Player Data." + uuid.toString(), "Coins");
    
                config.set("Player Data." + uuid.toString() + ".Player", player.getName());
                config.set("Player Data." + uuid.toString() + ".Kills", pm.getKills());
                config.set("Player Data." + uuid.toString() + ".Deaths", pm.getDeaths());
                config.set("Player Data." + uuid.toString() + ".Coins", pm.getCoins());
            }
    
            // on Player name change :
            if (player.getName() != config.getString("Player Data." + uuid.toString() + ".Player")) {
                config.set("Player Data." + uuid.toString() + ".Player", player.getName());
            }
    
        }
    
    }
    



    Code:
    package me.blazingfiree.freeforall;
    
    import java.io.File;
    import java.io.IOException;
    import java.util.ArrayList;
    import java.util.logging.Level;
    import java.util.logging.Logger;
    
    import org.bukkit.configuration.file.FileConfiguration;
    import org.bukkit.configuration.file.YamlConfiguration;
    import org.bukkit.entity.Player;
    import org.bukkit.event.Listener;
    import org.bukkit.plugin.PluginManager;
    import org.bukkit.plugin.java.JavaPlugin;
    
    import me.blazingfiree.freeforall.Events.onJoinEvent;
    
    public class MainClass extends JavaPlugin implements Listener {
        public ArrayList<Player> ingame = new ArrayList<Player>();
        private Logger logger = getServer().getLogger();
        FileConfiguration config;
        File file;
    
        @Override
        public void onEnable() {
            logger.log(Level.INFO, "FreeForAll is now enabled.");
            file = new File(getDataFolder(), "config.yml");
            config = YamlConfiguration.loadConfiguration(file);
            addConfigurationSections();
            saveConfiguration();
            registerCommands();
            registerEvents();
        }
    
        @Override
        public void onDisable() {
            logger.log(Level.INFO, "FreeForAll is now disabled.");
            saveConfiguration();
        }
    
        public void saveConfiguration() {
            try {
                config.save(file);
            } catch (IOException e) {
                e.printStackTrace();
                logger.log(Level.WARNING, "Cannot save configuration file.");
    
            }
        }
    
        private void registerEvents() {
            PluginManager pm = getServer().getPluginManager();
            pm.registerEvents(new onJoinEvent(), this);
    
        }
    
        private void registerCommands() {
        }
    
        public ArrayList<Player> getPlayersIngame() {
            if (ingame.isEmpty() == true) {
                return null;
            }
            return ingame;
        }
    
        private void addConfigurationSections() {
            if (config.isConfigurationSection("Player Data") == false) {
                config.createSection("Player Data");
            }
    
            // Scoreboard Stuff
            if (config.isConfigurationSection("Scoreboard") == false) {
                config.set("Scoreboard" + ".Scoreboard Name", null);
                config.createSection("Scoreboard");
            }
    
        }
    
        public FileConfiguration getCustomConfigFile() {
            return this.config;
    
        }
    
    }
    
     
  8. Offline

    timtower Administrator Administrator Moderator

    @Omer H. You don't have a constructor.
    mainClass is still null.
     
  9. Offline

    Omer H.

    Why do I need a constructor if I don't have any thing to set up....?
    It will be empty..
     
  10. @Omer H.
    No, you pass your main class instance through the constructor.
     
  11. Offline

    MomentHCF

    Also, for config I'm not sure if you need to do this but type (Classname).plugin.<your normal code>
     
  12. Offline

    timtower Administrator Administrator Moderator

    That would be static abuse.
     
    MomentHCF likes this.
  13. Offline

    MomentHCF

    Thanks for telling me before I broke my own plugin doing this, lol.
     
Thread Status:
Not open for further replies.

Share This Page