Spigot plugin Command Blockieren?

2 Antworten

Vom Fragesteller als hilfreich ausgezeichnet
@EventHandler
private void onCommandPreProcess(PlayerCommandPreprocessEvent e) {
    Player p = e.getPlayer();
    if(!Rang.isTeam(p)) {
        if(e.getMessage().split(" ")[0].equalsIgnoreCase("/pl")) {
            e.setCancelled(true);
        }
    }
}

Die Antwort ist zwar bisschen spät, aber für die anderen die das lesen:
Diese Methode sollte auf jeden Fall funktionieren.

Woher ich das weiß:eigene Erfahrung

Erstmal ist das ".toLowerCase()" nach "pl" unnötig, da "pl" ja schon kleingeschrieben ist ^^. Hast du das Event registriert? Wenn ja, prüfe doch z.B. mit einer Broadcast Nachricht ob der Code überhaupt bis zum setCancelled(true); kommt?

1. toLowerCase ist wichtig, da man sonnst einfach /PL schreiben könnte.

2. Ist Regsitriert

3. Versuche ich eben.

EDIT : Ist gecancelt!

0
@Hendrik2708

Hehehehe Jaguut. Trotzdem ich habe Jetzt 

if(e.isCancelled()){

p.sendMessage("1");

}else{

p.sendMessage("2");

}

Genutzt, es wird auch 1 gesendet.

0
@Hendrik2708

Habe das Jetzt testweise so:

@EventHandler

private void onCommandPreProcess(PlayerCommandPreprocessEvent e) {
Player p = e.getPlayer();
if (!Rang.isTeam(p)) {
if (e.getMessage().toLowerCase().contains("pl")) {
if (!e.isCancelled()) {
p.sendMessage("0");
} else {
p.sendMessage("0.5");
}
e.setCancelled(true);
if (e.isCancelled()) {
p.sendMessage("1");
} else {
p.sendMessage("2");
}
}
}
}

Omg die Formatierung ._.

0
@AdlerCraft

Scheint irgendwie ein allgemeines Problem zu sein, sonst entzieh den Usern, welche nicht im Team sind, die Permission bukkit.command.plugins

0
@Hendrik2708

Ich wollte aber auch Comamnds wie /version /bukkit:pl /? /aac etc. Blockerien. Dafür gibt es keine Permissions

0

Was möchtest Du wissen?