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

Command wird nicht ausgeführt

banyan

Redstoneengineer
Mitglied seit
25 Dezember 2014
Beiträge
34
Heyho!

Hab schon vieles versucht, allerdings funktioniert nix. Commands werden erkannt, aber nix passiert!

Code:
public class Main extends JavaPlugin{

    public boolean nickbefehl(CommandSender sender, Command cmd, String args[]){
        if(cmd.getName().equalsIgnoreCase("hideme")){
            if(sender.hasPermission("hideme.use")){
                if(args.length == 0){
                    sender.sendMessage("§a[HideMe] §cZuwenig Argumente!");
                }
                if(args.length == 1){
                    String realname = sender.getName(); //nicht beachten, brauche ich später erst
                    String fakename = args[0];
                    sender.sendMessage("§a[HideMe] §6Du hast deinen Namen erfolgreich zu §b'"+fakename+"§b' §6geändert!");
                    Player p = (Player) sender;
                    p.setDisplayName(fakename);
                    p.setPlayerListName(fakename);
                    p.setAllowFlight(true);
                }else{
                    sender.sendMessage("§a[HideMe] §cZuviele Argumente!");
                }
               
               
            }else{
                sender.sendMessage("§a[HideMe] §cDu hast keine Berechtigungen diesen Befehl auszuführen!");               
            }
           
        }
           
       
       
       
       
        if(cmd.getName().equalsIgnoreCase("showme")){

                sender.sendMessage("test");  //nur zum Test
           
        }
        return false;
    }
   
}

Bitte um Hilfe, und schonmal sehr vielen Dank im Vorraus!

MfG
 

KeVoZ_

Kuhfänger
Mitglied seit
9 Mai 2015
Beiträge
78
Minecraft
Curverneur
Da fehlt leider das gesamte Grundgerüst :/
 

KeVoZ_

Kuhfänger
Mitglied seit
9 Mai 2015
Beiträge
78
Minecraft
Curverneur
Du musst dem Server auch sagen, dass die .java auch ein Plugin ist, welches auch als solches verwendet werden soll.

Das machst du zudem mit der plugin.yml und mit entsprechenden Angaben in der (deiner) main.class.

Vor deinem CommandExecutor müssen die noch fehlenden, notwendigen "onEnable()" und "onDisable()" Methoden eingesetzt werden.


Google, dein Freund und Helfer steht dir immer zur Verfügung, wennn du etwas wissen willst. ;)

Sorry^^ wenn du mehr wissen willst, setzt ich nich nochmal an' PC, da kann ich dir auch korrekte Code-Schnipsel hinlegen... ich will dir hier keine halben Sachen mitm Handy hinkritzeln. ;)

Einfach fragen.
Mit freundlichen Grüßen
 

banyan

Redstoneengineer
Mitglied seit
25 Dezember 2014
Beiträge
34
Heyho @KeVoZ_ !

Vielen Dank erstmal für deine Hilfe!

Meine Plugin.yml sieht so aus:
commands:
hideme:
description: Teaminterner Befehl!
permission: hideme.use
showme:
description: Blabla

und meine Main Klasse jetzt so:

Code:
public class Main extends JavaPlugin{

    public void onEnable(){
        Bukkit.broadcastMessage("§a[HideMe] wurde aktiviert!");
    }
    public void onDisable(){
        Bukkit.broadcastMessage("§a[HideMe] wurde deaktiviert!");
    }
   
    public boolean onCommand(CommandSender sender, Command cmd, String args[]){
        if(cmd.getName().equalsIgnoreCase("hideme")){
            if(sender.hasPermission("hideme.use")){
                if(args.length == 0){
                    sender.sendMessage("§a[HideMe] §cZuwenig Argumente!");
                }
                if(args.length == 1){
                    String realname = sender.getName();
                    String fakename = args[0];
                    sender.sendMessage("§a[HideMe] §6Du hast deinen Namen erfolgreich zu §b'"+fakename+"§b' §6geändert!");
                    Player p = (Player) sender;
                    p.setDisplayName(fakename);
                    p.setPlayerListName(fakename);
                    p.setAllowFlight(true);
                }else{
                    sender.sendMessage("§a[HideMe] §cZuviele Argumente!");
                }
               
               
            }else{
                sender.sendMessage("§a[HideMe] §cDu hast keine Berechtigungen diesen Befehl auszuführen!");               
            }
           
        }
           
       
       
       
       
        if(cmd.getName().equalsIgnoreCase("showme")){

                sender.sendMessage("test");
           
        }
        return false;
    }
   
}
[/quote]

Könntest du mir vllt kurze Stichpunkte einfach nur geben was fehlt/ergänz werden muss? Will dich nicht an den PC zwingen :)

MfG
 
F

Figz

Guest
- return true, wenn der Befehl erfolgreich ausgeführt wurde
- Bei jeder Methode die Annotation @Override hinzufügen:
@Override
public void onEnable(){}

- ich GLAUBE (bin mir nicht sicher), dass man den Spieler, erstmal für alle Leute verstecken und dann wieder sichtbar machen muss, damit die Änderungen übernommmen werden.. wie gesagt bin mir da nicht sicher
Methode dafür: Player#hidePlayer

Bei der Plugin.yml denke ich mal, dass die Einrückung passt.

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

Da fehlt ein Argument:
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)

Dann kannst du auch in der Abfrage anstatt cmd.getName(), einfach nur label verwenden.

EDIT2: Plugin.yml passt doch nicht, muss so aussehen:

Code:
name: PluginName
version: 1.0.0
main: package.NameDerMainClass (z.B: de.bla.Main

commands:
  hideme:
    usage: /<command>
    ...
 
Zuletzt bearbeitet von einem Moderator:

banyan

Redstoneengineer
Mitglied seit
25 Dezember 2014
Beiträge
34
- return true, wenn der Befehl erfolgreich ausgeführt wurde
- Bei jeder Methode die Annotation @Override hinzufügen:
@Override
public void onEnable(){}

- ich GLAUBE (bin mir nicht sicher), dass man den Spieler, erstmal für alle Leute verstecken und dann wieder sichtbar machen muss, damit die Änderungen übernommmen werden.. wie gesagt bin mir da nicht sicher
Methode dafür: Player#hidePlayer

Bei der Plugin.yml denke ich mal, dass die Einrückung passt.

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

Da fehlt ein Argument:
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args)

Dann kannst du auch in der Abfrage anstatt cmd.getName(), einfach nur label verwenden.

EDIT2: Plugin.yml passt doch nicht, muss so aussehen:

Code:
name: PluginName
version: 1.0.0
main: package.NameDerMainClass (z.B: de.bla.Main

commands:
  hideme:
    usage: /<command>
    ...
Override mal gucken, obs was bringt..

Playerhideevent bla brauch ich gerade nicht, da ich nicht frage warum die Funktion nicht funktioniert, sondern warum der Command an sich überhaupt nix auslöst.

"Dann kannst du [...]"
Kann, muss nicht :)

Plugin.yml habe ich bewusst nur den commands-teil kopiert, da er sonst dass hier:
"Commands werden erkannt, [...]"
nicht machen würd..

MfG
 
F

Figz

Guest
Override mal gucken, obs was bringt..
Ja tut es, denn dann hättest du den einen Parameter in dem Methodenkopf nicht vergessen.

Playerhideevent bla...
Wo habe ich etwas von Playerhideevent geschrieben???

Ja hast recht, warum auch direkt auf das gegebene Objekt zugreifen, wenn man auch eine Methode eines Objektes aufrufen kann.

Durch diese blöde Aussagen hast du mir gezeigt, dass du 0 Ahnung hast von dem was du da tust.
 
Zuletzt bearbeitet von einem Moderator:
F

Figz

Guest
Glaubst du echt er wird das lesen? xD Er liest ja nichteinmal meine Beiträge, sondern überfliegt sie nur
 

moinless

Schafhirte
Mitglied seit
4 Oktober 2013
Beiträge
103
Ich frag mich überhaupt wie er es geschafft hat ein Plugin ohne onEnable und onDisable Teil zu schreiben? Ich meine irgendwo muss er sich ja informiert haben wie das geht :D
Und dann das hier noch *facepalm*
Code:
public class Main extends JavaPlugin{
    public boolean nickbefehl(CommandSender sender, Command cmd, String args[]){
 
F

Figz

Guest
Ich frag mich überhaupt wie er es geschafft hat ein Plugin ohne onEnable und onDisable Teil zu schreiben? Ich meine irgendwo muss er sich ja informiert haben wie das geht :D
Und dann das hier noch *facepalm*
Code:
public class Main extends JavaPlugin{
    public boolean nickbefehl(CommandSender sender, Command cmd, String args[]){
onEnable und onDisable muss nicht zwingend in der Klasse stehen, sondern nur wenn du dort etwas ausführen willst.
 

Twitter

Allgemein
Hilfe Benutzer
    Kroseida Kroseida: Ja, EIGENTLICH, haben die bei mir dieses mal nicht gemacht
    Oben