2017-02-26 8 views
0

다른 플러그인에서 명령을 실행할 때 플레이어 인벤토리를 지울 수있는 방법이 있는지 알아야합니다. PlayerCommandPreprocessEvent를 사용할 수 있다고 생각하지만 직접 가져올 수는 없습니다. 나는 내 문제에 대해 도움을주고 싶다.Bukkit : 다른 플러그인의 다른 명령이 실행되었을 때 Inv Invoice 만들기

public class PlayerCommandPreprocessListener implements Listener { 
    @EventHandler 
    public void onPlayerCommandPreprocess(PlayerCommandPreprocessEvent event) { 
     if (event.getMessage().toLowerCase().startsWith("/otherplugincommand")) { 
      event.getPlayer().getInventory().clear(); 
     } 
    } 
} 

하기 전에 사건을 정상화하는 것을 잊지 마십시오 : 명령을 확인 PlayerCommandPreprocessEvent에 대한 리스너를 만드는 것은 당신이 원하는 무엇을하고 플레이어의 목록을 지우 -

답변

2

당신이 올바른 궤도에있어 당신을 :) 감사 (메시지에서 toUpperCase() 또는 toLowerCase()을 호출하십시오), Bukkit의 명령 처리는 대소 문자를 구분하지 않으므로 비교하십시오.

equals()과 반대로 startsWith()을 사용하면 다음 인수가 무시됩니다. 인수가 정확히 일치하는지 확인해야하는 경우 equals() 호출을 사용하십시오.

실제로 플레이어의 인벤토리를 지우는 일은 드문 일이며 한 줄짜리로 할 수 있습니다.