2016-11-13 6 views
1

vor kurzem habe ich ein Bukkit-Plugin gestartet und ich habe Probleme mit zwei Klassen (main und CommandExecutor). Ich habe alles versucht, aber wenn ich mein Plugin lade, wirft es einen Fehler auf, der am Ende des Posts ist.Verwenden mehrerer Klassen für Befehle in Bukkit?

Main (genannt ekits.java):

package me.mucapapipa.ekits; 

import org.bukkit.Bukkit; 
import org.bukkit.ChatColor; 
import org.bukkit.event.EventHandler; 
import org.bukkit.event.Listener; 
import org.bukkit.event.player.PlayerJoinEvent; 
import org.bukkit.plugin.java.JavaPlugin; 

public class ekits extends JavaPlugin implements Listener { 


@Override 
public void onEnable() { 
    System.out.println("Main plugin enabled"); 
    getCommand("pvp").setExecutor(new NormalPlayer(this)); 
    getServer().getPluginManager().registerEvents(this, this); 
} 
@Override 
public void onDisable() { 
    System.out.println("Main plugin disabled"); 
} 


} 

CommandExecutor (genannt NormalPlayer):

package me.mucapapipa.ekits; 

import org.bukkit.ChatColor; 
import org.bukkit.Material; 
import org.bukkit.command.Command; 
import org.bukkit.command.CommandExecutor; 
import org.bukkit.command.CommandSender; 
import org.bukkit.entity.Player; 
import org.bukkit.inventory.ItemStack; 
import org.bukkit.plugin.java.JavaPlugin; 

public class NormalPlayer extends JavaPlugin implements CommandExecutor { 

@SuppressWarnings("unused") 
private ekits core; 
public NormalPlayer(ekits core) { 
     this.core = core; 
} 

private String kit; 

public boolean onCommand(CommandSender sender, Command cmd, String CommandLabel, String[] args) { 

    if (sender instanceof Player) { 
     Player player = (Player) sender; 
     if (cmd.getName().equalsIgnoreCase("pvp")) { 
      kit = "PvP"; 
      player.getInventory().clear(); 
      player.getInventory().addItem(new ItemStack(Material.DIAMOND_SWORD)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      player.getInventory().addItem(new ItemStack(Material.MUSHROOM_SOUP)); 
      /* We then set the armor */ 
      player.getInventory().setBoots(new ItemStack(Material.IRON_BOOTS)); 
      player.getInventory().setHelmet(new ItemStack(Material.IRON_HELMET)); 
      player.getInventory().setLeggings(new ItemStack(Material.IRON_LEGGINGS)); 
      player.getInventory().setChestplate(new ItemStack(Material.IRON_CHESTPLATE)); 

      player.sendMessage(ChatColor.GRAY + "~ " + ChatColor.AQUA + "Kit: " + kit); 
     } 
     else { 
      sender.sendMessage("The console should not play. It would be so OP."); 
     } 
    } 

    return true; } 
} 

plugin.yml:

name: EKits 
author: Mucapapipa 
main: me.mucapapipa.ekits.ekits 
version: 1.0 
description: The server's main plugin. 

commands: 
    pvp: 
    usage: /<command> 
    aliases: [kitpvp] 
    description: Uses the kit PvP. 

Fehler:

[19:19:01 ERROR]: Error occurred while enabling EKits 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-7019900] at org.bukkit.plugin.java.JavaPlugin.(JavaPlugin.java:66) ~[craftbukkit.jar:git-Bukkit-7019900] at me.mucapapipa.ekits.NormalPlayer.(NormalPlayer.java:16) ~[?:?] at me.mucapapipa.ekits.ekits.onEnable(ekits.java:16) ~[?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[craftbukkit.jar:git-Bukkit-7019900] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:327) [craftbukkit.jar:git-Bukkit-7019900] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404) [craftbukkit.jar:git-Bukkit-7019900] at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugin(CraftServer.java:341) [craftbukkit.jar:git-Bukkit-7019900] at org.bukkit.craftbukkit.v1_8_R1.CraftServer.enablePlugins(CraftServer.java:313) [craftbukkit.jar:git-Bukkit-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.q(MinecraftServer.java:394) [craftbukkit.jar:git-Bukkit-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.k(MinecraftServer.java:362) [craftbukkit.jar:git-Bukkit-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.a(MinecraftServer.java:317) [craftbukkit.jar:git-Bukkit-7019900] at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.java:190) [craftbukkit.jar:git-Bukkit-7019900] at net.minecraft.server.v1_8_R1.MinecraftServer.run(MinecraftServer.java:484) [craftbukkit.jar:git-Bukkit-7019900] at java.lang.Thread.run(Unknown Source) [?:1.8.0_101] Caused by: java.lang.IllegalStateException: Initial initialization at org.bukkit.plugin.java.PluginClassLoader.initialize(PluginClassLoader.java:101) ~[craftbukkit.jar:git-Bukkit-7019900] at org.bukkit.plugin.java.JavaPlugin.(JavaPlugin.java:66) ~[craftbukkit.jar:git-Bukkit-7019900] at me.mucapapipa.ekits.ekits.(ekits.java:10) ~[?:?] at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method) ~[?:1.8.0_101] at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_101] at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source) ~[?:1.8.0_101] at java.lang.reflect.Constructor.newInstance(Unknown Source) ~[?:1.8.0_101] at java.lang.Class.newInstance(Unknown Source) ~[?:1.8.0_101] at org.bukkit.plugin.java.PluginClassLoader.(PluginClassLoader.java:52) ~[craftbukkit.jar:git-Bukkit-7019900] at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:129) ~[craftbukkit.jar:git-Bukkit-7019900] at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:328) ~[craftbukkit.jar:git-Bukkit-7019900] at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:251) ~[craftbukkit.jar:git-Bukkit-7019900] at org.bukkit.craftbukkit.v1_8_R1.CraftServer.loadPlugins(CraftServer.java:288) ~[craftbukkit.jar:git-Bukkit-7019900] at org.bukkit.craftbukkit.v1_8_R1.CraftServer.(CraftServer.java:250) ~[craftbukkit.jar:git-Bukkit-7019900] at net.minecraft.server.v1_8_R1.PlayerList.(PlayerList.java:69) ~[craftbukkit.jar:git-Bukkit-7019900] at net.minecraft.server.v1_8_R1.DedicatedPlayerList.(SourceFile:14) ~[craftbukkit.jar:git-Bukkit-7019900] at net.minecraft.server.v1_8_R1.DedicatedServer.init(DedicatedServer.java:133) ~[craftbukkit.jar:git-Bukkit-7019900] ... 2 more

Antwort

1

public class NormalPlayer extends JavaPlugin implements CommandExecutor

Warum Testamentsvollstrecker hat Ihr Befehl die Haupt Plugin-Klasse erweitern? Das ist der Grund dafür, dass Double-Init und das Entfernen dieser Oberklasse den Code wahrscheinlich reparieren.

+0

WoW! Danke, ich habe nicht einmal gemerkt, dass es eine Ausdehnung gab. Vielen Dank! – MucaP

Verwandte Themen