2014-02-18 2 views
1
public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { 
    if(sender instanceof Player) { 
     Player player = (Player) sender; 
     if(cmd.getName().equalsIgnoreCase("member")) { 
      String member = "member " + player.getName(); 
      Bukkit.dispatchCommand(Bukkit.getConsoleSender(), member); 
      player.sendMessage(getConfig().getStringList("MemberText")); 

player.sendMessage (getConfig(). getStringList ("MemberText")); 작업? 게시하려고하면 오류 메시지가 나타납니다.bukkit의 설정을 통해 메시지를 추가하려면 어떻게해야합니까?

오류 : 타입 CommandSender의 메소드 sendMessage 첨부 (String)를 인수 적용되지 않습니다 (목록)

답변

1

나는이 아닌 마인 크래프트 모더는, 그러나, 표시 문자열 만 반환 player.sendMessage()가 기대하는 것처럼 getConfig().getStringList("MemberText") 유형은 List 유형입니다.

결과를 문자열로 변환하거나 루프 스루하고 목록의 각 항목에서 sendMessage을 시도해보십시오.

1

의 설정 변경의 텍스트가 한 줄이 나있는 경우, 모든 라인을 보내 MemberText의 경우, 그 중 하나 또는 그 중 하나를 플레이어에게 보냅니다. 예를 들면 :

:

List<String> memberTextMessage = new ArrayList<String>(); 
memberTextMessage = this.getConfig.getStringList("MemberText"); 
//we now have all of the strings under "MemberText" 

for(int i = 0; i < memberTextMessage.size(); i++){ 
    //loop threw all the messages 
    String s = memberTextMessage.get(i); 

    player.sendMessage(s); //send the player the string 
    //This will send them all of the messages under "MemberText" in the config 
} 

그냥 그렇지 않으면, 당신은 설정에서 MemberText에서 아무것도 단지 넣다의 설정에 무엇이에 memberTextMessage를 할당 직전에 널 체크를해야합니다, 당신은 NullPointerException를 얻을 것이다

if(this.getConfig.contains("MemberText"){ 

다른 사람은 MemberText에 아무것도 없다는 메시지를 보내거나 아무것도 보내지 마십시오.

관련 문제