• Es freut uns dass du in unser Minecraft Forum gefunden hast. Hier kannst du mit über 130.000 Minecraft Fans über Minecraft diskutieren, Fragen stellen und anderen helfen. In diesem Minecraft Forum kannst du auch nach Teammitgliedern, Administratoren, Moderatoren , Supporter oder Sponsoren suchen. Gerne kannst du im Offtopic Bereich unseres Minecraft Forums auch über nicht Minecraft spezifische Themen reden. Wir hoffen dir gefällt es in unserem Minecraft Forum!

PlugIn Ich kann irgenwie kein Command plugin zum Laufen bekommen

Mycodeeditor

Minecrafter
Registriert
1 April 2020
Beiträge
4
Diamanten
250
Ich habe schon etwas rumprobiert,aber ich habe es trotzdem nicht hinbekommen es zum Laufen zu kriegen.
Dazu muss ich sagen das ich mit Java fast noch keine Erfahrung habe.
Screenshot (2).png


Screenshot (3).png
 
Zuletzt bearbeitet:

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Es wäre hilfreich, wenn du den Code deiner Main-Klasse (wahrscheinlich "commands") mit uns teilen könntest. Der Fehler tritt eindeutig in Zeile 17 auf (commands.java:17). Ohne zu wissen was in Zeile 17 steht, können wir dir jedoch nicht helfen.

Übrigens: Klassennamen werden in Java mit einem Großbuchstaben begonnen. Das ist zwar technisch egal, aber einfach Standard und hilft bei der Lesbarkeit und dem Debugging von komplizierterem Code deutlich, daher sollte man es sich früh angewöhnen.
Ansonsten solltest du Spigot statt Bukkit nutzen, da Bukkit seit 2014 nicht mehr weiterentwickelt wird. Es ist nur noch als Basis für Spigot vorhanden.
 

Malfrador

Threadripper
Registriert
16 Juni 2013
Beiträge
1.473
Diamanten
396
Minecraft
Malfrador
Die Main-Klasse deines Plugins erweitert ("extends") die Klasse JavaPlugin. Das bedeutet unter anderem, das sie standardmäßig der CommandExecutor eines Plugins ist.

Das bedeutet in der Praxis, das du keinen CommandExecutor registrieren musst (oder überhaupt kannst), wenn sich der Befehl (onCommand-Methode) in der Main-Klasse selbst befindet. Du kannst Zeile 17 also einfach löschen, denn sie wird nur benötigt wenn sich die Logik des Befehls in einer anderen Klasse befindet, was bei dir nicht der Fall ist.

Zum vergleichen eines Strings (Text, z.B. das Ergebnis von cmd.getName()) nutzt man nicht ==, sondern .equals bzw (oft sinnvoller, da Groß-/Kleinschreibung egal) equalsIgnoreCase.
Bei dir also: if (cmd.getName().equalsIgnoreCase("report") {

Ansonsten wirft dein Code ein paar Fragen auf: Was möchtest du mit dem ConsoleCommandSender? Für was nutzt du den Listener?

Ein weiterer wichtiger Hinweis: Solange du nur einen Befehl hast, kann man das so machen. Sobald dein Plugin aber mehrere Befehle besitzt, solltest du diese unbedingt in ihre eigenen Klassen auslagern. Das gleiche gilt für Listener. Und bitte fix deine Einrückung, das ist nicht schön zu lesen.
 

Mycodeeditor

Minecrafter
Registriert
1 April 2020
Beiträge
4
Diamanten
250
ja habe ich
plugin.yml:
Code:
name: ReportSystem
author: Mycodeeditor
version: 1.0
main: report_plugin.commands
api-version: 1.13
command:
    report:
      usage:/<command>

commands.java:
Code:
package report_plugin;

import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.command.ConsoleCommandSender;
import org.bukkit.entity.Player;

import org.bukkit.plugin.java.JavaPlugin;

public class commands extends JavaPlugin{
    private final ConsoleCommandSender Console = getServer().getConsoleSender();
    @Override
    public void onEnable() {
        
        
        this.getCommand("report").setExecutor((CommandExecutor) this);
        }
    @Override
        public void onDisable() {
        
    }
        @Override
    public boolean onCommand(CommandSender sender, Command cmd, String Label, String[] args) {
        if(cmd.getName().equalsIgnoreCase("report")) {
            if(!(sender instanceof Player)) {
                Console.sendMessage("Nur Spieler können den Command nutzen");
            }
            return true;
        }
        return false;
        
    }
    

}
 
Oben