Selbstprogramiertes Plugin auf lokalen Server funktioniert nicht?
Ich habe ein Minecraft Plugin selbst programmiert aber jetzt wird diese Fehlermeldung angezeigt:
[08:53:05] [Server thread/ERROR]: Could not load 'plugins\EasyConvert+1.0.0.jar' in folder 'plugins'
org.bukkit.plugin.InvalidPluginException: Cannot find main class `easytrade.thepixel3261.easytrade.EasyTrade'
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:69) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.java:145) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager.java:394) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager.java:301) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.craftbukkit.v1_20_R1.CraftServer.loadPlugins(CraftServer.java:435) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3871-Spigot-d2eba2c-3f9263b]
at net.minecraft.server.dedicated.DedicatedServer.e(DedicatedServer.java:219) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3871-Spigot-d2eba2c-3f9263b]
at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:972) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3871-Spigot-d2eba2c-3f9263b]
at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:303) ~[spigot-1.20.1-R0.1-SNAPSHOT.jar:3871-Spigot-d2eba2c-3f9263b]
at java.lang.Thread.run(Thread.java:1583) ~[?:?]
Caused by: java.lang.ClassNotFoundException: easytrade.thepixel3261.easytrade.EasyTrade
at org.bukkit.plugin.java.PluginClassLoader.loadClass0(PluginClassLoader.java:147) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at org.bukkit.plugin.java.PluginClassLoader.loadClass(PluginClassLoader.java:99) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
at java.lang.ClassLoader.loadClass(ClassLoader.java:526) ~[?:?]
at java.lang.Class.forName0(Native Method) ~[?:?]
at java.lang.Class.forName(Class.java:534) ~[?:?]
at java.lang.Class.forName(Class.java:513) ~[?:?]
at org.bukkit.plugin.java.PluginClassLoader.<init>(PluginClassLoader.java:67) ~[spigot-api-1.20.1-R0.1-SNAPSHOT.jar:?]
... 8 more
Als Server Software benutze ich Spigot. Das ist der Code der Main.java Datei:
package easytrade.thepixel3261.easytrade;
import org.bukkit.Material;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
import org.bukkit.plugin.java.JavaPlugin;
public class Main extends JavaPlugin {
@Override
public void onEnable() {
getLogger().info("Plugin enabled!");
}
@Override
public void onDisable() {
getLogger().info("Plugin disabled!");
}
@Override
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) {
if (cmd.getName().equalsIgnoreCase("convert")) {
if (!(sender instanceof Player)) {
sender.sendMessage("Only players can use this command.");
return true;
}
Player player = (Player) sender;
if (args.length != 2) {
player.sendMessage("Usage: /convert <material> <amount>");
return true;
}
Material fromMaterial = Material.getMaterial(args[0].toUpperCase());
int amount = Integer.parseInt(args[1]);
if (fromMaterial == null) {
player.sendMessage("Invalid material specified.");
return true;
}
Material toMaterial = null;
if (fromMaterial == Material.COPPER_INGOT && amount >= 2) {
toMaterial = Material.EMERALD;
amount /= 2;
} else if (fromMaterial == Material.EMERALD && amount >= 1) {
toMaterial = Material.COPPER_INGOT;
amount *= 2;
} else {
player.sendMessage("Invalid material specified or not enough items.");
return true;
}
ItemStack fromItem = new ItemStack(fromMaterial, amount);
if (!player.getInventory().containsAtLeast(fromItem, amount)) {
player.sendMessage("You do not have enough " + fromMaterial.toString().toLowerCase() + "s in your inventory.");
return true;
}
ItemStack toItem = new ItemStack(toMaterial, amount);
// Remove the specified number of items from the player's inventory
player.getInventory().removeItem(fromItem);
// Add the converted items to the player's inventory
player.getInventory().addItem(toItem);
player.sendMessage("Successfully converted " + amount + " " + fromMaterial.toString().toLowerCase() + "s to " + amount + " " + toMaterial.toString().toLowerCase() + "s.");
return true;
}
return false;
}
}