InvalidPluginException - Help!

Discussion in 'Plugin Help/Development/Requests' started by 8bitfusion, Oct 3, 2014.

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

    8bitfusion

    So i'm currently creating a plugin that will clear the inventory of, heal, and return to spawn players after they duel each other, but the plugin won't be recognized! I'm getting this exception:

    org.bukkit.plugin.InvalidPluginException: Abnormal plugin type
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:56) ~[minecraft_optimized.jar:git-Spigot-1494]
    at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:127) ~[minecraft_optimized.jar:git-Spigot-1494]
    at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:329) ~[minecraft_optimized.jar:git-Spigot-1494]
    at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) [minecraft_optimized.jar:git-Spigot-1494]
    at org.bukkit.craftbukkit.v1_7_R3.CraftServer.loadPlugins(CraftServer.java:358) [minecraft_optimized.jar:git-Spigot-1494]
    at net.minecraft.server.v1_7_R3.DedicatedServer.init(DedicatedServer.java:135) [minecraft_optimized.jar:git-Spigot-1494]
    at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:457) [minecraft_optimized.jar:git-Spigot-1494]
    at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [minecraft_optimized.jar:git-Spigot-1494]
    Caused by: java.lang.InstantiationException: me.eightbitfusion.Duels
    at java.lang.Class.newInstance0(Unknown Source) ~[?:1.7.0_13]
    at java.lang.Class.newInstance(Unknown Source) ~[?:1.7.0_13]
    at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:52) ~[minecraft_optimized.jar:git-Spigot-1494]



    And here's my source code:

    package me.eightbitfusion;
    import java.util.logging.Logger;

    import org.bukkit.Bukkit;
    import org.bukkit.command.Command;
    import org.bukkit.command.CommandSender;
    import org.bukkit.entity.Player;
    import org.bukkit.event.EventHandler;
    import org.bukkit.event.Listener;
    import org.bukkit.event.entity.PlayerDeathEvent;
    import org.bukkit.event.player.PlayerQuitEvent;
    import org.bukkit.plugin.PluginDescriptionFile;
    import org.bukkit.plugin.java.JavaPlugin;

    import java.util.HashMap;


    public class Duels extends JavaPlugin implements Listener{

    public final Logger logger = Logger.getLogger("Minecraft");
    publicstatic Duels plugin;
    @SuppressWarnings("unused")
    private String msg;
    private HashMap<String, String> inDuelWith;
    public Duels(String msg){
    this.msg=msg;

    }
    @Override
    public void onEnable(){
    PluginDescriptionFile pdf=this.getDescription();
    this.logger.info(pdf.getName()+ " Version " + pdf.getVersion() + " has been enabled.");
    Bukkit.getServer().getPluginManager().registerEvents(this, this);

    }
    @Override
    public void onDisable(){
    PluginDescriptionFile pdf=this.getDescription();
    this.logger.info(pdf.getName()+ " Version " + pdf.getVersion() + " has been disabled.");
    }

    @SuppressWarnings("deprecation")
    public boolean onCommand(CommandSender sender, Command cmd, String commandLabel, String[] args){
    if(commandLabel.equalsIgnoreCase("duellink")){
    if(args.length==2){
    Player p1=getServer().getPlayer(args[0]);
    Player p2=getServer().getPlayer(args[1]);
    inDuelWith.put(p1.getDisplayName(), p2.getDisplayName());
    inDuelWith.put(p2.getDisplayName(), p1.getDisplayName());
    }
    }
    returnfalse;
    }

    @SuppressWarnings("deprecation")
    @EventHandler
    public void onDeath(PlayerDeathEvent ev){
    if(inDuelWith.containsKey(ev.getEntity().getDisplayName())){
    Player p1= ev.getEntity();
    p1.getInventory().setContents(null);
    p1.getInventory().setArmorContents(null);
    p1.setHealth(20);
    Player p2 = getServer().getPlayer(inDuelWith.get(p1.getDisplayName()));
    p2.setHealth(20);
    p2.getInventory().setContents(null);
    p2.getInventory().setArmorContents(null);
    inDuelWith.remove(p1.getDisplayName());
    inDuelWith.remove(p2.getDisplayName());
    p1.teleport(getServer().getWorld("spawn").getSpawnLocation());
    p2.teleport(getServer().getWorld("spawn").getSpawnLocation());
    }
    }

    @SuppressWarnings("deprecation")
    @EventHandler
    public void onDisconnect(PlayerQuitEvent ev){
    if(inDuelWith.containsKey(ev.getPlayer().getDisplayName())){
    Player p1= ev.getPlayer();
    p1.getInventory().setContents(null);
    p1.getInventory().setArmorContents(null);
    p1.setHealth(20);
    Player p2 = getServer().getPlayer(inDuelWith.get(p1.getDisplayName()));
    p2.setHealth(20);
    p2.getInventory().setContents(null);
    p2.getInventory().setArmorContents(null);
    inDuelWith.remove(p1.getDisplayName());
    inDuelWith.remove(p2.getDisplayName());
    p1.teleport(getServer().getWorld("spawn").getSpawnLocation());
    p2.teleport(getServer().getWorld("spawn").getSpawnLocation());
    }
    }




    }


    And Lastly, here's my plugin.yml

    name: DuelLinker
    main: me.eightbitfusion.Duels
    version: 1.0
    description: Returns Players safely to spawn after a duel
    author: 8bitfusion
    commands:
    duellink:


    ^
    commands and duel link are supposed to be indented 2 and 4 spaces respectively, but it won't show up here

    If anyone has seen this before, please help! I need to fix this rather quickly to fix duels on my server!
    Thanks!
     
  2. Offline

    eyamaz

    Moved to the Alternatives section since your issue is with a spigot server.
     
Thread Status:
Not open for further replies.

Share This Page