Java Bukkit / Spigot – Commandes spécifiées pour les blocs

J’essaie de faire un plugin, il doit bloquer les commandes spécifiées par config. Je l’ai fait mais cela ne bloque aucune commande.

Code:

@EventHandler(priority = EventPriority.HIGHEST) public void onPreprocess(PlayerCommandPreprocessEvent event) { Player player = event.getPlayer(); Ssortingng command = event.getMessage(); List bCmds = this.plugin.cfg.getSsortingngList("blocked-commands"); for (Ssortingng bCmd : bCmds) { if(command.equalsIgnoreCase(bCmd)) { event.setCancelled(true); } } } 

Config:

 blocked-commands: - /pl - /op - /sp - /gravityblock 

PS: j’ai essayé d’utiliser:

 Ssortingng command = event.getMessage().subSsortingng(1); 

Merci pour l’aide… 🙂

Événements enregistrés mis en œuvre listner?

De plus, votre code ne fonctionnera pas avec des arguments supplémentaires dans la commande. S’il contient des espaces, divisez-le par “” et obtenez le premier élément pour obtenir la commande

if (cmd.contains (“”)) cmd = cmd.split (“”) [0];

Comme indiqué par le wiki de Bukkit , les priorités sont appelées dans l’ordre suivant:

  • EventPriority.LOWEST
  • EventPriority.LOW
  • EventPriority.NORMAL
  • EventPriority.HIGH
  • EventPriority.HIGHEST
  • EventPriority.MONITOR

Peut-être pourriez-vous essayer d’utiliser la priorité la plus basse pour que l’événement soit annulé avant que la commande ne soit gérée.

Je crois aussi que la commande peut avoir des arguments, donc elle pourrait ne pas être égale à la chaîne fournie, vous devriez également essayer

 Ssortingng command = event.getMessage(); if (command.toLowerCase().startsWith("/command") ) { //cancel }