• Bitte beachte, dass wir eine Serverliste sind!
    Wenn du ein Problem auf einem Server hast (z.B. Entbannantrag, etc), dann ist das Forum hier der falsche Ort.
  • 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!

Rechts-/Linksklick

Enrique123D

Minecrafter
Registriert
7 Februar 2016
Beiträge
3
Alter
24
Diamanten
300
Minecraft
Enrique123D
Hallo Community,

ich habe ein Problem auf meinem Test-Server, unzwar habe ich ein System Programmiert und da kann man per Knopf ein Inventar öffnen. Jetzt zum Problem: Ich habe Permissions vergeben damit man den Button drücken kann, weil dieses Inventar für VIP Spieler sein soll. Wenn ich aber ohne OP auf den Button Rechtsklick mache passiert nichts, mit Linksklick (Schlagen) funktioniert das aber. Und mit OP funktionieren beide Optionen.

Ich bedanke mich im Vorfeld über jede hilfreiche Antwort.

Installierte Plugins:
- PermissionEx
- WorldEdit
- Multiverse-Core

Die Spawn Protection steht auf 0.
 

Enrique123D

Minecrafter
Registriert
7 Februar 2016
Beiträge
3
Alter
24
Diamanten
300
Minecraft
Enrique123D
Hier der Code:
Javascript:
@SuppressWarnings("static-access")
   @EventHandler
   public void onIntEvent1(PlayerInteractEvent e){
 
     Player p = e.getPlayer();
   
    if (p.hasPermission("Traiunity.Supporter") | p.hasPermission("Traiunity.Moderator") | p.hasPermission("Traiunity.SrModerator") | p.hasPermission("Traiunity.Developer") | p.hasPermission("Traiunity.Administrator") | p.hasPermission("Traiunity.Owner")) {
       try{
         if(e.getClickedBlock().getType().equals(Material.WOOD_BUTTON)){
           String loc = e.getClickedBlock().getLocation().toString();
           if(FileManager1.Button1.getString(loc) != null){
             s.openInv(p);
           }
         }
       }catch(Exception npex){}
    }
   
    if (!p.hasPermission("Traiunity.Supporter") && !p.hasPermission("Traiunity.Moderator") && !p.hasPermission("Traiunity.SrModerator") && !p.hasPermission("Traiunity.Developer") && !p.hasPermission("Traiunity.Administrator") && !p.hasPermission("Traiunity.Owner")) {
       try{
         if(e.getClickedBlock().getType().equals(Material.WOOD_BUTTON)){
           String loc = e.getClickedBlock().getLocation().toString();
           if(FileManager1.Button1.getString(loc) != null){
             p.sendMessage(Main.noPerms);
             p.playSound(p.getLocation(), Sound.ITEM_BREAK, 1F, 1F);
           }
         }
       }catch(Exception npex){}     
    }   
   }

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

JOO200

Braumeister
Registriert
18 Dezember 2016
Beiträge
442
Diamanten
228
Ganz am Anfang würde ich das ganze in "[ code ]" sezen (im Anworten-Editor oben auf die Briefklammer, dann auf "Code". -> erhöht lesbarkeit

Code:
p.hasPermission("Traiunity.Supporter") | p.hasPermission("Traiunity.Moderator") | p.hasPermission("Traiunity.SrModerator") | p.hasPermission("Traiunity.Developer") | p.hasPermission("Traiunity.Administrator") | p.hasPermission("Traiunity.Owner")
Zuerst einmal würde ich hier das "Oder" mit den zwei horizontalen Strichen nehmen. (siehe https://docs.oracle.com/javase/tutorial/java/nutsandbolts/opsummary.html )

Dann sollte dir bewusst sein, dass das PlayerInteractEvent verschiedene "Actions" gibt. (siehe hier: https://hub.spigotmc.org/javadocs/spigot/org/bukkit/event/player/PlayerInteractEvent.html )
Wenn du nur "rechtsgeklickte Blöcke" haben möchtest, würde ich dir empfehlen, auf diese Actions zu achten:
Code:
if(event.getAction() != Action.RIGHT_CLICK_BLOCK) return;

Und warum benutzt du kein if(...) { } else { }, wenn du unbedingt noch für die nicht-Berechtigten einen Sound abspielen möchtest?
 

BlackHole

Workaholic
Registriert
1 Juli 2012
Beiträge
752
Diamanten
0
Minecraft
BlackHole
Du solltest zunächst prüfen, ob e.getClickedBlock() null ist, dann tritt dort auch keine NullPointerException auf.

Besser wartbar ist es auf jeden Fall, wenn du für das Klicken eine bestimmte Permission vergibst und diese dann an alle Gruppen verteilst, du es verwenden dürfen sollen.

Das erklärt aber trotzdem nicht, warum Rechtsklicks nicht ankommen. Diese müssten dann von einem weiteren Plugin blockiert werden. In Frage kämen insbesondere Plugins, die ProtocolLib verwenden, um Pakete zu filtern. Dies ist bei sogenannten Lobby-Plugins recht verbreitet.
 
Oben