2014-02-18 2 views
2

config.yml에 컬러 코드 지원을 추가하고 싶습니다. 내 코드에 translateAlternateColorCode을 올바르게 추가하려면 어떻게해야합니까? 이 Bukkit에 관해서 나는 항상Bukkit 플러그인에 색상 코드 지원 추가

public boolean onCommand(CommandSender sender, Command cmd, String label, String[] args) { 
     Player player = (Player) sender; 
     if(cmd.getName().equalsIgnoreCase("member")) { 
      player.sendMessage(getConfig().getString("MemberText")); 
     } 
+0

당신이 섹션 기호 (§)를 사용하여 시도해 봤어 색상을 연결하는 &를 사용할 수 있습니까? – bb94

+0

아니요 색상을 사용하려면 구성에서 & 기호를 사용하고 싶습니다. – MrBumtart

답변

1

는이 작업을 수행하기 위해 문자열 빌더를 사용할 수 있습니다 : 당신은 단순히 translateAltranateColorCodes을 사용할 수

private String buildText(String text) { 
    sb = new StringBuilder(); 
    String[] textarray = text.split(" "); 
    for (String chunk : textArray) { 
     if (chunk.contains("&")) { 
      if (chunk.equalsIgnoreCase("&black")) 
       sb.append(ChatColor.BLACK); 
      else if (chunk.equalsIgnoreCase("&blue")) 
       sb.append(ChatColor.DARK_BLUE); 
      else if (chunk.equalsIgnoreCase("&green")) 
       sb.append(ChatColor.DARK_GREEN); 
      else if (chunk.equalsIgnoreCase("&white")) 
       sb.append(ChatColor.WHITE); 
      ..... 
      return sb.toString(); 
      } 
     } 
    } 
4

. 다음 예는 다음과 같습니다

String nonColoredText = getConfig().getString("MemberText"); //get the raw string from "MemberText" 
String coloredText = translateAlternateColorCodes('&', nonColoredText); //translate alt color codes 

는 위가 올바른 색상 코드의에 & 기호로 시작 텍스트를 변경합니다. 예를 들어 &a이 config에 있으면 녹색으로 표시되거나 ChatColor.GREEN으로 변경되어 메시지가 녹색으로 표시됩니다. 이것은 다른 문자들과도 작동합니다. 당신은 색상 코드에 대한 $ 기호를 사용하고자하는 경우처럼, 당신은 할 수 있습니다 : 위의 코드에 입력 된

String coloredText = translateAlternateColorCodes('$', nonColoredText); 

그래서 $a 경우, 그것은 텍스트 녹색을, ChatColor.GREEN로 번역합니다. 하고있는 첫 번째 코드는, 그것은 MemberText에서 config 파일에서 문자열을 받고, 그리고 문자열 nonColoredText에 넣어되어 무엇

, 다음, 그것은 &을 시작으로 다른 색상 코드를 변환하고, 퍼팅 그것은 coloredText입니다. 그런 다음 coloredText을 플레이어에게 보내거나 다른 것을 수행 할 수 있습니다.

짧은 예는, 다음 MemberText 아래 인 경우 :

&a Welcome to My Server, &b I hope you have a great time! &e &l Check out the rules a /warp rules 

그것은 nonColoredText에 그것을 넣어 것이며, coloredText가 번역 것 :

ChatColor.GREEN + "Welcome to My Server," + ChatColor.AQUA + "I hope you have a great time!" + ChatColor.YELLOW + ChatColor.BOLD + "Check out the rules a /warp rules" 

가 해당 메시지는 다음 보낼 수 플레이어에게, 그리고 그에 따라, 그리고 다채로운 표시됩니다!

+0

어디에서 코드에 추가합니까? – MrBumtart

+0

텍스트를 색상으로 변환하려는 곳이면 어디든 있습니다. 그래도 메시지를 플레이어에게 보내기 전에 바로 추가하는 것이 좋습니다. 그들에게'coloredText'를 보냅니다. – Jojodmo

1

Colored Texts를 설치하여 서버에서이

player.sendMessage(getConfig().getString(ChatColor.<Your color in caps>"MemberText")); 

을 시도하고