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

Problem mit Permissions

M

MrBapf

Guest
Hi,
ich hab eine JumpnRun Plugin geschrieben, wenn jemand einen Befehl vom Plugin ausführt bekommt er das er keine Rechte hat und der Befehl wird ausgeführt. Jetzt würde ich gerne wegmachen, dass man bekommt das man angeblich keine Rechte hat obwohl man Rechte hat. Als Permissions Plugin nutze ich Perimmision***.
Als Beispiel wie mein Code aussieht ist hier der Code vom TP befehl mit dem man sich zu einem JumpnRun tp kann.
Denn Befehl gibt es 2 mal in der Klasse einmal wenn er keinen Namen angegaben hat und einmal normal:
Ohne Name:
Code:
//tp
                if(args[0].equalsIgnoreCase("tp")){
                    if(p.hasPermission("Jumping.tp")){
                        p.sendMessage("§cFehler: §c/jumping tp <JumpnRun>");
                    }else{
                        p.sendMessage(plugin.noperm);
                    }
                }
Mit Name:
Code:
//tp
                    if(args[0].equalsIgnoreCase("tp")){
                        if(p.hasPermission("Jumping.tp")){
                            try{
                                String world = cfg.getString("JumpnRuns." + args[1] + ".World");
                                double x = cfg.getDouble("JumpnRuns." + args[1] + ".PosX");
                                double y = cfg.getDouble("JumpnRuns." + args[1] + ".PosY");
                                double z = cfg.getDouble("JumpnRuns." + args[1] + ".PosZ");
                                double yaw = cfg.getDouble("JumpnRuns." + args[1] + ".PosYam");
                                double pitch = cfg.getDouble("JumpnRuns." + args[1] + ".PosPitch");
                                Location loc = new Location(Bukkit.getWorld(world), x, y, z);
                                loc.setPitch((float)pitch);
                                loc.setYaw((float)yaw);
                               
                                p.teleport(loc);
                               
                                p.sendMessage(this.plugin.prefix + "§7Du hast dich zum §8" + args[1] + " §7teleportiert!");
                              }catch(Exception e){
                                  p.sendMessage(this.plugin.prefix + "§cFehler: Dieses JumpnRun gibt es nicht!");
                              }
                        }else{
                            p.sendMessage(plugin.noperm);
                        }
                    }

Hoffe das mir einer weiterhelfen kann.

MFG bapf.
 

_Baum_

Kuhfänger
Registriert
4 August 2013
Beiträge
66
Diamanten
0
Minecraft
PlueschAffe
Hallo Bapf,

kannst du bitte die Frage neu formulieren, ich blick dein Problem irgendwie nicht :D

Wenn man "/<cmd> tp args[1]" schreibt, wird man zum Jump 'n Run args[1] geportet. Aber was hat das mit Permissions zu tun?

MfG
Baum
 
G

games6471

Guest
Du solltest wirklich unbedingt dein Programmcode mal aufräumen, dann lassen sich solche Fehler auch leichter vermeiden. Eclipse, IntelliJ sowie Netbeans (bestimmt auch noch viele weitere), alle drei haben eingebaute automatische Formatierer. Desweiteren können dir diese IDEs auch anzeigen, wo ein Block ({ + }) anfängt und endet.

Du hattest eine falsche Einrückung verwendet, weshalb dir der Fehler wohl nicht sofort aufgefallen ist.

Zeile 205:
Code:
                if (args[0].equalsIgnoreCase("jumpnruns")) {
                    if (p.hasPermission("Jumping.jumpnruns")) {
                        ....
                    }

                } else {
                    p.sendMessage(plugin.noperm);
                }
 
G

games6471

Guest
Du beendest nicht die Methodenausführung mit return, sondern machst einfach weiter. So kommt also die zweite Meldung zustande.

Bisher war es, dass wenn der Command nicht übereinstimmt die Permission-Message zurückgegeben wird.
 
Zuletzt bearbeitet von einem Moderator:

HardSoul

Ehemaliges Teammitglied
Ehem. Teammitglied
Registriert
2 August 2012
Beiträge
759
Diamanten
251
Minecraft
HardS0ul
Ich finde auch, dass man nicht zwingen den Command splitten muss, frag doch am Anfang mal die Anzahl der Argumente ab. Wenn diese übereinstimmt führe einen Teil aus, und wenn nicht den anderen.
 
Oben