2016-07-11 8 views
2

プラグインを作成しようとしていますが、configによって設定された指定されたコマンドをブロックする必要があります。私はこれを夢中にしましたが、コマンドをブロックしません。Java Bukkit/Spigot - 指定されたブロックをブロックする

コード:

@EventHandler(priority = EventPriority.HIGHEST) 
    public void onPreprocess(PlayerCommandPreprocessEvent event) 
    { 
    Player player = event.getPlayer(); 
    String command = event.getMessage(); 
    List<String> bCmds = this.plugin.cfg.getStringList("blocked-commands"); 

    for (String bCmd : bCmds) 
    { 
     if(command.equalsIgnoreCase(bCmd)) 
     { 
      event.setCancelled(true); 
     } 
    } 
    } 

設定:

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

PS:私が使用することを試みた:ヘルプ

String command = event.getMessage().subString(1); 

感謝を... :)

答えて

0

登録されたイベント?実装されたリスナー?

また、このコードでは、コマンドで追加の引数を使用することはできません。 空白が含まれている場合は、 ""で分割し、最初の要素を取得してコマンドを取得します。

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

+0

すっごいを試してみてください、引数を持っているかもしれないと信じている

...私はのためのイベントXDDDDのおかげで登録されていません助けて! –

0

Bukkit's wiikiにより述べたように、優先順位は次の順序で呼び出され:

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

最低優先度を使用すると、コマンドが処理される前にイベントがキャンセルされる可能性があります。私もコマンドは、それが提供する文字列に等しいではないかもしれませんので、あなたも

String command = event.getMessage(); 


if (command.toLowerCase().startsWith("/command")) { 
    //cancel 
} 
関連する問題