Plugin load error

Discussion in 'Plugin Development' started by PiggerCast, Jun 25, 2014.

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

    PiggerCast

    Hey! I've been working on a plugin simulare to the one SSundee uses in his prison server.
    This plugin I am making, adds Points (simulare to SSundee's tickets) that you can use to enchant items, buy items and do quests.
    I finished the plugin, and it has no errors in Eclipse, but for some reason, when I try to load it on the server, it wont load.

    This is a plugin I really need to work, so any help would be much apprechiated!

    Error message:
    Code:
    [14:31:40 ERROR]: Could not load 'plugins\Points.jar' in folder 'plugins'
    org.bukkit.plugin.InvalidPluginException: Abnormal plugin type
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.jav
    a:56) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j
    ava:127) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.
    java:328) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager
    .java:251) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.craftbukkit.v1_7_R3.CraftServer.loadPlugins(CraftServer.ja
    va:355) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at org.bukkit.craftbukkit.v1_7_R3.CraftServer.<init>(CraftServer.java:31
    7) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.PlayerList.<init>(PlayerList.java:68) [c
    raftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.DedicatedPlayerList.<init>(SourceFile:14
    ) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.DedicatedServer.init(DedicatedServer.jav
    a:126) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java
    :436) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:6
    28) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
    Caused by: java.lang.InstantiationException: me.piggercast.points.Core
            at java.lang.Class.newInstance(Unknown Source) ~[?:1.7.0_51]
            at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.jav
    a:52) ~[craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks]
            ... 10 more
    Main class code (called Core):
    Code:
    package me.piggercast.points;
     
     
    import java.io.BufferedReader;
    import java.io.File;
    import java.io.FileReader;
    import java.io.FileWriter;
    import java.io.PrintWriter;
    import java.util.ArrayList;
    import java.util.List;
     
    import me.piggercast.points.Aquire.Mining;
    import me.piggercast.points.Shop.ClickListener;
    import me.piggercast.points.Shop.ShopOpener;
     
    import org.bukkit.Bukkit;
    import org.bukkit.Material;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.craftbukkit.Main;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.player.PlayerJoinEvent;
    import org.bukkit.inventory.Inventory;
    import org.bukkit.inventory.ItemStack;
    import org.bukkit.inventory.meta.ItemMeta;
    import org.bukkit.plugin.java.JavaPlugin;
     
    public class Core extends JavaPlugin implements Listener { 
     
        Main plugin;
        public Core(Main plugin){
            this.plugin = plugin;
        }
        @EventHandler
        public void createAccount(PlayerJoinEvent event){
            File users = new File(this.getDataFolder(), "users");
            if(!users.exists())users.mkdir();
            File playerFolder = new File(users, event.getPlayer().getName());
            if(!playerFolder.exists())playerFolder.mkdir();
            File points = new File(playerFolder, "points.info");
            if(!points.exists())points.mkdir();
        }
        public static Inventory shop(){
            Inventory inv = Bukkit.createInventory(null, 9, "Select a shop!");
            {
            ItemStack item = new ItemStack(Material.STICK);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("§aItem Shop");
            List<String> lore = new ArrayList<String>();
            lore.add("§5Buy InGame Items");
            meta.setLore(lore);
            item.setItemMeta(meta);
            inv.addItem(item);
            }
            {
            ItemStack item = new ItemStack(Material.EMERALD);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("§aMoney Shop");
            List<String> lore = new ArrayList<String>();
            lore.add("§5Buy InGame Money");
            meta.setLore(lore);
            item.setItemMeta(meta);
            inv.addItem(item);
            }
            return inv;
        }
        public static Inventory ItemShop(){
            Inventory inv = Bukkit.createInventory(null, 9, "Buy an item!");
            {
            ItemStack item = new ItemStack(Material.FURNACE);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("§aSmelter Pickaxe");
            List<String> lore = new ArrayList<String>();
            lore.add("§aSmelts your stuff for you!");
            lore.add("§aCosts 5k points");
            meta.setLore(lore);
            item.setItemMeta(meta);
            inv.addItem(item);
            }
            {
            ItemStack item = new ItemStack(Material.TNT);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("§aExplosive Pickaxe");
            List<String> lore = new ArrayList<String>();
            lore.add("§aMine with explosions!");
            lore.add("§aCosts 10k points");
            meta.setLore(lore);
            item.setItemMeta(meta);
            inv.addItem(item);
            }
            {
            ItemStack item = new ItemStack(Material.DIAMOND_PICKAXE);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("§aExplosive Smelter Pickaxe");
            List<String> lore = new ArrayList<String>();
            lore.add("§aMine with explosions!");
            lore.add("§aSmelts your stuff for you!");
            lore.add("§aCosts 20k points");
            meta.setLore(lore);
            item.setItemMeta(meta);
            inv.addItem(item);
            }
            return inv;
        }
        public static Inventory MoneyShop(){
            Inventory inv = Bukkit.createInventory(null, 9, "Select an ammount of money!");
            {
            ItemStack item = new ItemStack(Material.EMERALD, 1);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("§a1,000,000");
            List<String> lore = new ArrayList<String>();
            lore.add("§aSmelts your stuff for you!");
            lore.add("§aCosts 400 points");
            meta.setLore(lore);
            item.setItemMeta(meta);
            inv.addItem(item);
            }
            {
            ItemStack item = new ItemStack(Material.EMERALD, 10);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("§a10,000,000");
            List<String> lore = new ArrayList<String>();
            lore.add("§aMine with explosions!");
            lore.add("§aCosts 3500 points");
            meta.setLore(lore);
            item.setItemMeta(meta);
            inv.addItem(item);
            }
            {
            ItemStack item = new ItemStack(Material.EMERALD, 64);
            ItemMeta meta = item.getItemMeta();
            meta.setDisplayName("§a100,000,000");
            List<String> lore = new ArrayList<String>();
            lore.add("§aMine with explosions!");
            lore.add("§aCosts 38000 points");
            meta.setLore(lore);
            item.setItemMeta(meta);
            inv.addItem(item);
            }
            return inv;
        }
     
        @Override
        public void onEnable(){
         
            getServer().getPluginManager().registerEvents(new Mining(this), this);
            getServer().getPluginManager().registerEvents(new ClickListener(this), this);
            getServer().getPluginManager().registerEvents(new ShopOpener(), this);
            getServer().getPluginManager().registerEvents(this, this);
         
            File dir = new File(this.getDataFolder().getAbsolutePath());
            if(!dir.exists())dir.mkdir();
        }
        @Override
        public void onDisable(){
        }
        public static String Prefix = "§a[§6Points§a] ";
     
        @SuppressWarnings({ "unused", "resource" })
        public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
            Player player = (Player)sender;
         
            if(commandLabel.equalsIgnoreCase("points")){
                File playerFolder = new File(this.getDataFolder() + "/users/", player.getName());
                try{
                    PrintWriter pw = new PrintWriter(new FileWriter(new File(playerFolder, "points.info")), false);
                    BufferedReader br = new BufferedReader(new FileReader(new File(playerFolder, "points.info")));
                    String line = null;
                    int currPoints =-1;
                 
                    while((line = br.readLine()) !=null){
                        currPoints = Integer.valueOf(line);
                        break;
                    }
                    player.sendMessage("§aYou have " + currPoints + "§apoints!");
                }catch(Exception e){
                    e.printStackTrace();
                }         
            }
            if(commandLabel.equalsIgnoreCase("getpoints")){
                if(player.hasPermission("Points.test")){
                    File playerFolder = new File(this.getDataFolder() + "/users/", player.getName());
                    try{
                        PrintWriter pw = new PrintWriter(new FileWriter(new File(playerFolder, "points.info")), false);
                        BufferedReader br = new BufferedReader(new FileReader(new File(playerFolder, "points.info")));
                        String line = null;
                        int currPoints =-1;
                     
                        while((line = br.readLine()) !=null){
                            currPoints = Integer.valueOf(line);
                            break;
                        }
                        int newPoints = currPoints+10;
                        pw.println(newPoints);
                        br.close();
                        pw.close();
                    }catch(Exception e){
                        e.printStackTrace();
                    }
                 
                    player.sendMessage(Core.Prefix + "You gained §610 §apoints!");
                }else{
                    player.sendMessage(Core.Prefix + "§cHow bout naw?");
                }
            }
            return false;
        }
    }
    
     
  2. Offline

    JEREMSPEED

    Code:
    Caused by: java.lang.InstantiationException: me.piggercast.points.Core
            at java.lang.Class.newInstance(Unknown Source) ~[?:1.7.0_51]
    This part of the error is interesting. There is an error while instantiating your plugin.

    I think this part of your code is causing the problem:

    Code:java
    1. Main plugin;
    2. public Core(Main plugin){
    3. this.plugin = plugin;
    4. }



    edit: Which version of Bukkit API are you using?
     
  3. Offline

    PiggerCast

  4. Offline

    Konkz

    Do this.plugin = plugin; inside your onEnable.
     
Thread Status:
Not open for further replies.

Share This Page