• 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!

Wen ich einen Befehl eingebe wird dieser in weiß einfach nur gezeigt

abcabc

Redstoneengineer
Registriert
2 Mai 2018
Beiträge
35
Diamanten
250
Javascript:
package me.lonzbonz.info;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class Info extends JavaPlugin {
 
    @Override
    public void onEnable() {
        System.out.println("[Info] Plugin Erfolgreich geladen");
        System.out.println("[Info] Dieses Plugin ist so geil.");
        System.out.println("[Beste Plugin Ever] WOW COOL NICE KRASS BESSER GEHTS NICHT");
    }
 
    @Override
    public void onDisable() {
        System.out.println("[Info] Plugin erfolgreich deaktiviert");
    }
 
    public boolean onCommand(CommandSender sender, Command cmd, String[] args) {
        Player p = (Player) sender;
     
        if(cmd.getName().equalsIgnoreCase("info")) { 
        } 
        p.sendMessage("§6[Info] §5Dieses Plugin ist von §4NT_ProfiJumper");
        p.sendMessage("§7Abonniert den Kanal Experimentinsde");
         
        return true;
    }
     
}
show.php


Der Text ist




Und die Plugin.yml ist

Code:
name: MEP
main: me.lonzbonz.info.Info
version: 1.0
commands:
     info:
          description: Info des Plugins
          usage: /<command>

//Dean: Logs, Code & Configs bitte entweder als Code einfügen oder als Dateianhang, bzw.auf pastebin.com hochladen! Danke!
 
Zuletzt bearbeitet von einem Moderator:

abcabc

Redstoneengineer
Registriert
2 Mai 2018
Beiträge
35
Diamanten
250
das hier ist der quelltext

Javascript:
package me.lonzbonz.info;
import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
public class Info extends JavaPlugin {

@Override
public void onEnable() {
System.out.println("[Info] Plugin Erfolgreich geladen");
System.out.println("[Info] Dieses Plugin ist so geil.");
System.out.println("[Beste Plugin Ever] WOW COOL NICE KRASS BESSER GEHTS NICHT");
}

@Override
public void onDisable() {
System.out.println("[Info] Plugin erfolgreich deaktiviert");
}

public boolean onCommand(CommandSender sender, Command cmd, String[] args) {
Player p = (Player) sender;

if(cmd.getName().equalsIgnoreCase("info")) {
}
p.sendMessage("§6[Info] §5Dieses Plugin ist von §4NT_ProfiJumper");
p.sendMessage("§7Abonniert den Kanal Experimentinsde");

return true;
}

}
 
Zuletzt bearbeitet von einem Moderator:

BloodSKreaper

Vorarbeiter
Registriert
12 Oktober 2014
Beiträge
249
Diamanten
316
Minecraft
BloodSKreaper
Guten Tag Nici Toni,
Code:
if(cmd.getName().equalsIgnoreCase("info")) {
}
mal abgesehen davon, dass diese Verzweigung hier komplett sinnlos ist sollte der Code meiner Meinung nach funktionieren.
Hast du in der plugin.yml den Command angegeben, kommen beim Laden des Plugins irgendwelche Fehler, oder ist sonst iwas auffällig?

Zum Verbessern, unabhängig vom Plugin wäre das hier:
Code:
Player p = (Player) sender;
an sich ist diese Zuweisung richtig, allerdings könnte der sender auch die Console oder was weiß ich sein. Deshalb solltest du davor zunächst prüfen, ob es sich beim sender um einen Spieler handelt.
Code:
if(sender instanceof Player){
   Player p = (Player) sender;
}

Freundliche Grüße
BloodSKreaper
 

abcabc

Redstoneengineer
Registriert
2 Mai 2018
Beiträge
35
Diamanten
250
das habe ich in der Plugin.yml angegeben
Code:
name: MEP
main: me.lonzbonz.info.Info
version: 1.0
commands:
     info:
          description: Info des Plugins
          usage: /<command>
 
Zuletzt bearbeitet von einem Moderator:

BloodSKreaper

Vorarbeiter
Registriert
12 Oktober 2014
Beiträge
249
Diamanten
316
Minecraft
BloodSKreaper
das habe ich in der Plugin.yml angegeben
name: MEP
main: me.lonzbonz.info.Info
version: 1.0
commands:
info:
description: Info des Plugins
usage: /<command>
Bitte füg deine ganzen Code-Schnipsel als Code ein: Auf die Büroklammer klicken, Code auswählen und Text einfügen. Dann werden auch Formatierungen berücksichtigt. Mit dem Zeug da oben kann ich nicht die Syntax(vor allem Einrückungen) überprüfen.

Freundliche Grüße
BloodSKreaper
 

BloodSKreaper

Vorarbeiter
Registriert
12 Oktober 2014
Beiträge
249
Diamanten
316
Minecraft
BloodSKreaper
public boolean onCommand(CommandSender sender, Command cmd, String[] args) {
Ich glaub, dass du in der Zeile darüber ein "@Override" vergessen hast, aber weiß nicht ob das so weitreichende Folgen haben kann. Am Besten versuchst du einfach mal das @Override hinzuzufügen.

EDIT: Dabei dürftest du wahrscheinlich eine Fehlermeldung bekommen, da die Methode zum Überschreiben nicht vorhanden ist. Die Methode hat nämlich eine andere Parameterliste:
Code:
onCommand(CommandSender sender, Command command, java.lang.String label, java.lang.String[] args)
Das heißt du musst deine Methode anpassen, damit sie sich mit dem oben deckt (label hinzufügen)//EDIT ENDE

Freundliche Grüße
BloodSKreaper
 
Zuletzt bearbeitet:

abcabc

Redstoneengineer
Registriert
2 Mai 2018
Beiträge
35
Diamanten
250
Code:
package me.lonzbonz.info;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Info extends JavaPlugin {
   
    @Override
    public void onEnable() {
        System.out.println("[Info] Plugin Erfolgreich geladen");
        System.out.println("[Info] Dieses Plugin ist so geil.");
        System.out.println("[Beste Plugin Ever] WOW COOL NICE KRASS BESSER GEHTS NICHT");
    }
   
    @Override
    public void onDisable() {
        System.out.println("[Info] Plugin erfolgreich deaktiviert");
    }
   
    public boolean onCommand(CommandSender sender, Command cmd, String[] args) {
        Player Spieler = (Player) sender;
       
        if(cmd.getName().equalsIgnoreCase("info")) {   
        }   
        Spieler.sendMessage("§6[Info] §5Dieses Plugin ist von §4NT_ProfiJumper");
        Spieler.sendMessage("§7Abonniert den Kanal Experimentinsde");
           
        return true;
    }
       


}
 

BloodSKreaper

Vorarbeiter
Registriert
12 Oktober 2014
Beiträge
249
Diamanten
316
Minecraft
BloodSKreaper
Ich glaub, dass du in der Zeile darüber ein "@Override" vergessen hast, aber weiß nicht ob das so weitreichende Folgen haben kann. Am Besten versuchst du einfach mal das @Override hinzuzufügen.

EDIT: Dabei dürftest du wahrscheinlich eine Fehlermeldung bekommen, da die Methode zum Überschreiben nicht vorhanden ist. Die Methode hat nämlich eine andere Parameterliste:
Code:
onCommand(CommandSender sender, Command command, java.lang.String label, java.lang.String[] args)
Das heißt du musst deine Methode anpassen, damit sie sich mit dem oben deckt (label hinzufügen)//EDIT ENDE

Freundliche Grüße
BloodSKreaper
Hast du das eigentlich gelesen/berücksichtigt? Wenn nicht, dann lege ich dir das nahe.
Anschließend kannst du es ja mal probieren, ob es dann geht und uns dein Ergebnis hier mitteilen.

Freundliche Grüße
BloodSKreaper
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Ein @Override ändert im Allgemeinen nichts an der Funktionalität sondern gibt nur den Hinweis darauf, dass eine aus einer Superklasse stammende Methode überschrieben wird. So ist es auch, wenn man in einer Klasse einen CommandExecutor implementiert. Diese CommandExecutor-Subklasse muss dann übrigens in der JavaPlugin-Subklasse mit getCommand("abc").setExecutor(new CommandExecutorSubclass()) einem Befehl zugewiesen werden.
 

UnityGaming

Workaholic
Registriert
25 Oktober 2015
Beiträge
527
Alter
26
Diamanten
312
Minecraft
FastFelix771
Nach welchem Video richtest du dich denn eigentlich?

Sagt mir einfach nur was ich machen muss
So funktioniert das hier nicht ;)

Ich hab die Beiträge jetzt nur ganz grob überflogen, aber evtl. ist die Formatierung deiner plugin.yml falsch.
Code:
commands:
    info:
      description: bla bla

Man beachte die Einrückung!
Nutze aber Leerzeichen, keine Tabs - das kann SnakeYAML überhaupt nicht ab.

Das heißt du musst deine Methode anpassen, damit sie sich mit dem oben deckt (label hinzufügen)//EDIT ENDE
Das kommt auch noch hinzu.
Damit die Veerbung greift, musst du die Methode entsprechend der Superklasse / Interface definieren.
Wenn du die @Override Annotation drüber setzt, dürfte dich deine IDE auch auf solche Fehler hinweisen, da du logischer Weise nur Methoden überschreiben kannst, die auch vorhanden sind in der übergeordneten Instanz.
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Ein @Override ändert im Allgemeinen nichts an der Funktionalität sondern gibt nur den Hinweis darauf, dass eine aus einer Superklasse stammende Methode überschrieben wird. So ist es auch, wenn man in einer Klasse einen CommandExecutor implementiert. Diese CommandExecutor-Subklasse muss dann übrigens in der JavaPlugin-Subklasse mit getCommand("abc").setExecutor(new CommandExecutorSubclass()) einem Befehl zugewiesen werden.

Ein @Override hätte hier einen deutlichen Hinweis geliefert, dass die onCommand-Methode wie von @BloodSKreaper bemerkt eine falsche Parameterliste hat.
Die übergeordnete Klasse JavaPlugin implementiert u.A. CommandExecutor. Pluginbefehle, deren Executor man nicht ändert, laufen dann hier auf. Die Standardimplementierung gibt false zurück, was dann dazu führt, dass die Syntax auszugeben wird.
 

SirYwell

PlotSquared Entwickler
Registriert
30 Juni 2017
Beiträge
540
Diamanten
488
Minecraft
SirYwell
Die übergeordnete Klasse JavaPlugin implementiert u.A. CommandExecutor. Pluginbefehle, deren Executor man nicht ändert, laufen dann hier auf. Die Standardimplementierung gibt false zurück, was dann dazu führt, dass die Syntax auszugeben wird.
Stimmt, ich lager meine Befehle sinnvoller Weise immer aus, weshalb ich da vorhin nicht mehr dran gedacht habe.

Habt ihr TS dann könnt ihr mir das erklären
Da gibt es nicht sehr viel zu erklären. Überleg dir einfach, woher Spigot/Bukkit wissen soll, welche Methode aufgerufen werden soll, wenn ein Befehl ausgeführt wird. Diese Methode hat in allen Plugins die gleichen Parameter und lässt sich hier in der Dokumentation nachschauen.
 

UnityGaming

Workaholic
Registriert
25 Oktober 2015
Beiträge
527
Alter
26
Diamanten
312
Minecraft
FastFelix771
Was erhoffst du dir genau davon?
Wenn du einfach ein paar der Begriffe die gefallen sind googeln würdest, dann wärst du überhaupt nicht verwirrt.
Die Erklärungen hier sind nämlich recht simpel gehalten und einleuchtend.

Ich habe den Verdacht, dass du eher jemanden suchst, der dir das auf dem Silbertablett serviert?
 

Taminoful

Schafhirte
Registriert
3 August 2012
Beiträge
137
Diamanten
390
Minecraft
Taminoful
Was erhoffst du dir genau davon?
Wenn du einfach ein paar der Begriffe die gefallen sind googeln würdest, dann wärst du überhaupt nicht verwirrt.
Die Erklärungen hier sind nämlich recht simpel gehalten und einleuchtend.

Ich habe den Verdacht, dass du eher jemanden suchst, der dir das auf dem Silbertablett serviert?
Ich erwarte nicht viel mehr von jemandem der falsch aus einem YouTube Video abschreibt.

BTT:
Lerne Java, setze dich mit den Grundlagen der Programmierung auseinander und beschäftige dich dann mit Spigot/Bukkit. Ansonsten schreibst du nur "viel Müll" aus dem Internet ab von Leuten, die es nicht anders vermitteln, da sie es in vielen Fällen selbst nur so "gelernt" haben.
Was nicht heißen soll, dass etwas gegen Video Tutorials einzuwenden ist. (nur würde ich da "Wie lerne ich ein Plugin zu schreiben" nicht mit reinzählen.)
 
Zuletzt bearbeitet:

SyntaxWolf

Redstoneengineer
Registriert
26 Oktober 2017
Beiträge
46
Diamanten
250
Guten Tag,

ich habe es mal so getestet und bei mir ging es:

Code:
package me.lonzbonz.info;

import org.bukkit.command.Command;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;

public class Info extends JavaPlugin {

    String prefix = "§6[Info] ";

    @Override
    public void onEnable() {
        System.out.println("[Info] Plugin Erfolgreich geladen");
        System.out.println("[Info] Dieses Plugin ist so geil.");
        System.out.println("[Beste Plugin Ever] WOW COOL NICE KRASS BESSER GEHTS NICHT");
    }

    @Override
    public void onDisable() {
        System.out.println("[Info] Plugin erfolgreich deaktiviert");
    }

    public boolean onCommand(CommandSender sender, Command cmd, String lable, String[] args) {
        if (sender instanceof Player) {
            Player p = (Player) sender;
            if (cmd.getName().equalsIgnoreCase("info")) {
                p.sendMessage(prefix + "§5Dieses Plugin ist von §4NT_ProfiJumper");
                p.sendMessage("§7Abonniert den Kanal Experimentinsde");
            }
        }
        return true;
    }
}

Mit freundlichen Grüßen
SyntaxWolf
 
Zuletzt bearbeitet:
F

Figz

Guest
Oben