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;
    }
}

Java, Minecraft, Bukkit, Spigot, PaperMC
Minecraft Plugin zu .jar umwandeln?

Ich habe ein Minecraft Plugin programmiert welches ich jetzt zu einer .jar Datei umwandeln will damit ich es auf meinen Server benutzen kann. Allerdings wenn ich javac in dem Verzeichnis mit der Main.java datei ausführe, werden mir viele Großbuchstaben und andere Sachen als Fehler angezeigt.

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;
  }
}

Außerdem werden mir in IntelliJ 5 Warnungen angezeigt, weiß aber nicht wie man das fixen könnte:

Bild zum Beitrag
Java, Minecraft, Minecraft Plugin, PaperMC

Meistgelesene Fragen zum Thema PaperMC