Custom SG Plugin (From Pogostick29dev's bloodbath with my own changes) Not working...

Discussion in 'Plugin Development' started by plasticono, Jan 25, 2015.

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

    plasticono

    I have an error in my settings manager when I reload and I don't know what do to about it... Here is the error -
    <code>
    [14:14:17 ERROR]: Error occurred while enabling KittySG v1.46 (Is it up to date?)

    java.lang.ExceptionInInitializerError

    at com.plasticono.ArenaManager.setup(ArenaManager.java:24) ~[?:?]

    at com.plasticono.Main.onEnable(Main.java:23) ~[?:?]

    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316) ~[craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:412) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugin(CraftServer.java:476) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins(CraftServer.java:394) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.craftbukkit.v1_7_R4.CraftServer.reload(CraftServer.java:866) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.Bukkit.reload(Bukkit.java:301) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.PlayerConnection.handleCommand(PlayerConnection.java:1043) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.PlayerConnection.a(PlayerConnection.java:880) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.PacketPlayInChat.a(PacketPlayInChat.java:28) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.PacketPlayInChat.handle(PacketPlayInChat.java:65) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.NetworkManager.a(NetworkManager.java:186) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.ServerConnection.c(ServerConnection.java:81) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.v(MinecraftServer.java:734) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:289) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]

    Caused by: java.lang.NullPointerException

    at com.plasticono.SettingsManager.<init>(SettingsManager.java:34) ~[?:?]

    at com.plasticono.SettingsManager.<clinit>(SettingsManager.java:13) ~[?:?]

    ... 23 more
    </code>
     
  2. Offline

    Skionz

    @plasticono Post all relevant classes. We can't magically grab the source from your computer.
     
  3. Offline

    Monkey_Swag

    Just saying, don't copy his tutorial. I saw him fix quite a few things in his livestream, and if you don't want to watch that then you're a but screwed. :/
     
    Experminator and Regablith like this.
  4. Offline

    plasticono

    I watched it

    public class SettingsManager {



    private static final SettingsManager

    configuration = new SettingsManager("config"),

    arenas = new SettingsManager("arenas"),

    signs = new SettingsManager("signs")

    ;



    public static SettingsManager getConfig() {

    returnconfiguration;

    }



    public static SettingsManager getArenas() {

    returnarenas;

    }



    public static SettingsManager getSigns() {

    returnsigns;

    }



    private File file;

    private FileConfiguration config;



    private SettingsManager(String fileName) {

    if (!Main.getPlugin().getDataFolder().exists()) {

    Main.getPlugin().getDataFolder().mkdir();

    }



    file = new File(Main.getPlugin().getDataFolder(), fileName + ".yml");



    if (!file.exists()) {

    try {

    file.createNewFile();

    } catch (Exception e) {

    e.printStackTrace();

    }

    }



    config = YamlConfiguration.loadConfiguration(file);

    }



    @SuppressWarnings("unchecked")

    public <T> T get(String path) {

    return (T) config.get(path);

    }



    public Set<String> getKeys() {

    return config.getKeys(false);

    }



    public void set(String path, Object value) {

    config.set(path, value);

    save();

    }



    public boolean contains(String path) {

    return config.contains(path);

    }



    public ConfigurationSection createSection(String path) {

    ConfigurationSection section = config.createSection(path);

    save();

    returnsection;

    }



    public void save() {

    try {

    config.save(file);

    }



    catch (Exception e) {

    e.printStackTrace();

    }

    }

    }
     
    Last edited by a moderator: Jan 26, 2015
  5. Offline

    Skionz

    @plasticono Post all relevant classes in their entirety and in code tags.
     
    Tehmaker likes this.
  6. Offline

    plasticono

    Code:
    public class SettingsManager {
       
        private static final SettingsManager
                configuration = new SettingsManager("config"),
                arenas = new SettingsManager("arenas"),
                signs = new SettingsManager("signs")
        ;
       
        public static SettingsManager getConfig() {
            return configuration;
        }
       
        public static SettingsManager getArenas() {
            return arenas;
        }
       
        public static SettingsManager getSigns() {
            return signs;
        }
    
        private File file;
        private FileConfiguration config;
       
        private SettingsManager(String fileName) {
            if (!Main.getPlugin().getDataFolder().exists()) {
                Main.getPlugin().getDataFolder().mkdir();
            }
           
            file = new File(Main.getPlugin().getDataFolder(), fileName + ".yml");
           
            if (!file.exists()) {
                try {
                    file.createNewFile();
                } catch (Exception e) {
                    e.printStackTrace();
                }
            }
           
            config = YamlConfiguration.loadConfiguration(file);
        }
       
        @SuppressWarnings("unchecked")
        public <T> T get(String path) {
            return (T) config.get(path);
        }
       
        public Set<String> getKeys() {
            return config.getKeys(false);
        }
       
        public void set(String path, Object value) {
            config.set(path, value);
            save();
        }
       
        public boolean contains(String path) {
            return config.contains(path);
        }
       
        public ConfigurationSection createSection(String path) {
            ConfigurationSection section = config.createSection(path);
            save();
            return section;
        }
       
        public void save() {
            try {
                config.save(file);
            }
           
            catch (Exception e) {
                e.printStackTrace();
            }
        }
    }
    And The arena manager:
    Code:
    public class ArenaManager {
    
        private static ArenaManager instance = new ArenaManager();
       
        public static ArenaManager getInstance() {
            return instance;
        }
       
        private ArrayList<Arena> arenas;
       
        private ArenaManager() {
            this.arenas = new ArrayList<Arena>();
        }
       
        public void setup() {
            arenas.clear();
           
            for (String arenaID : SettingsManager.getArenas().getKeys()) {
                arenas.add(new Arena(arenaID));
            }
        }
       
        public Arena getArena(String id) {
            for (Arena arena : arenas) {
                if (arena.getID().equals(id)) {
                    return arena;
                }
            }
           
            return null;
        }
       
        public Arena getArena(Player p) {
            for (Arena arena : arenas) {
                if (arena.hasPlayer(p)) {
                    return arena;
                }
            }
           
            return null;
        }
    
    
        public ArrayList<Arena> getArenas() {
            return arenas;
        }
    }
    Sry for the late response
     
    Last edited by a moderator: Jan 26, 2015
  7. Offline

    Experminator

    I find it a bit sad that you use almost the entire code of Noah (Aka @PogoStick29 (Dev)).
    And you haven't changed the whole class.... It's copied.. (I have also that tutorials checked).

    Do you want to get the Github repository of Bloodbath..?
     
  8. Offline

    plasticono

    XD I'm going to add a stats system and points and sponsor system after I get this working. I know it's kind of lame.

    Can u help tho?

    I have the github thing. And I will change it, but I just need help making the plugin start.
     
  9. Offline

    Experminator

    @plasticono It's against my principles to have while you are copying literally Noah (I'm a big fan).

    But i would help, because you want to start up yourself.

    If i may give a suggestion, then i suggest to watch the Bloodbath miniseries, but write it yourself fully. (Or maybe only the SettingsManager and ArenaManager classes.), if you do that, you learn from it, and don't copied it.
     
  10. Offline

    plasticono

    OMG. Why is this not allowed... He said that if I want to use the plugin I can't just say it's mine... Why are u even on the forums if ur not gonna help someone with a problem. Im doing this for an educational purpose.
     
  11. Offline

    Experminator

  12. Offline

    plasticono

    I watched the whole series and watched the stream live... I did what he said and thought me how to fix the major minor thing, but I can't get it to work.

    @Experminator why can't u just help me out... the error is:
    Code:
    [KittySG] Enabling KittySG v1.46
    [16:56:18 ERROR]: Error occurred while enabling KittySG v1.46 (Is it up to date?)
    java.lang.ExceptionInInitializerError
        at com.plasticono.ArenaManager.setup(ArenaManager.java:24) ~[?:?]
        at com.plasticono.Main.onEnable(Main.java:23) ~[?:?]
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316) ~[craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:412) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.loadPlugin(CraftServer.java:476) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.enablePlugins(CraftServer.java:394) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.reload(CraftServer.java:866) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at org.bukkit.Bukkit.reload(Bukkit.java:301) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java:23) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:181) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchCommand(CraftServer.java:767) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at org.bukkit.craftbukkit.v1_7_R4.CraftServer.dispatchServerCommand(CraftServer.java:753) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at net.minecraft.server.v1_7_R4.DedicatedServer.aB(DedicatedServer.java:326) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at net.minecraft.server.v1_7_R4.DedicatedServer.v(DedicatedServer.java:290) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at net.minecraft.server.v1_7_R4.MinecraftServer.u(MinecraftServer.java:584) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at net.minecraft.server.v1_7_R4.MinecraftServer.run(MinecraftServer.java:490) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
        at net.minecraft.server.v1_7_R4.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Spigot-1.7.9-R0.2-207-g03373bb]
    Caused by: java.lang.NullPointerException
        at com.plasticono.SettingsManager.<init>(SettingsManager.java:34) ~[?:?]
        at com.plasticono.SettingsManager.<clinit>(SettingsManager.java:13) ~[?:?]
        ... 18 more
     
    Last edited by a moderator: Jan 26, 2015
  13. Offline

    Experminator

    @plasticono That is a great thing of Pogo XD, he has posted a code on Github, that doesn't work. You must add a requird thing to get it work (He did this, because coping, without learning)
     
  14. Offline

    plasticono

    And...
    I watched the whole thing... I didn't copy off github.. I just did what he did.
     
  15. Offline

    Experminator

    @plasticono Can you post the classes: Main, ArenaManager and SettingsManager?
     
  16. Offline

    plasticono

    @Experminator, Im not trying to steal his work. Im just simply trying to learn.

    @Experminator, I posted SettingsManager and ArenaManager Above here's main:
    Code:
    public class Main extends JavaPlugin {
    
        private static RollbackManager rollbackManager;
    
        public void onEnable() {
            ArenaManager.getInstance().setup();
           
            getCommand("sg").setExecutor(new CommandManager());
           
            PluginManager pm = Bukkit.getServer().getPluginManager();
            pm.registerEvents(new EntityDamage(), this);
            pm.registerEvents(new PlayerJoin(), this);
            pm.registerEvents(new PlayerLeaveArena(), this);
            pm.registerEvents(new PlayerMove(), this);
            pm.registerEvents(rollbackManager, this);
            pm.registerEvents(new SignManager(), this);
        }
    
        public static Plugin getPlugin() {
            return Bukkit.getServer().getPluginManager().getPlugin("Bloodbath");
        }
       
        public static WorldEditPlugin getWorldEdit() {
            return (WorldEditPlugin) Bukkit.getServer().getPluginManager().getPlugin("WorldEdit");
        }
    
        public static void saveLocation(Location location, ConfigurationSection section) {
            section.set("world", location.getWorld().getName());
            section.set("x", location.getX());
            section.set("y", location.getY());
            section.set("z", location.getZ());
            section.set("pitch", location.getPitch());
            section.set("yaw", location.getYaw());
        }
       
        public static Location loadLocation(ConfigurationSection section) {
            return new Location(
                    Bukkit.getServer().getWorld(section.getString("world")),
                    section.getDouble("x"),
                    section.getDouble("y"),
                    section.getDouble("z"),
                    (float) section.getDouble("pitch"),
                    (float) section.getDouble("yaw")
            );
        }
    }
    
     
    Last edited by a moderator: Jan 26, 2015
  17. Offline

    Experminator

    @plasticono Please shut up about that, i said i would help you. Because i see that you want to learn from it.
     
  18. Offline

    plasticono

  19. Offline

    Experminator

    @plasticono Two things. Did you have WorldEdit as dependency? (And ofcourse also in server (If you testing it)).
    And another thing: There is a NullPointerException at: SettingsManager, line 34, 13.
     
  20. Offline

    plasticono

    I know, but I don't know much about exceptions.
     
  21. Offline

    TGRHavoc

    @plasticono
    Please use the "edit" button when adding more information/amending to something rather than posting a separate post.
     
    eyamaz and Experminator like this.
Thread Status:
Not open for further replies.

Share This Page