Br_DogTer
不好意思,这个睿智的问题打扰各位了
怎么让config的配置支持&,小节符号太那啥了....
replace转换可以的话,代码发下~谢谢各位dalao~


弱鸡绿毛怪
本帖最后由 MagicLocyDragon 于 2018-9-24 18:05 编辑

config.yml里若是
test:
  example: "&a嘤嘤嘤"
public static void getConfigWithColor(String path) {
         return ChatColor.translateAlternateColorCodes('&', getConfig().getString(path));}



然后Player.sendMessage(getConfigWithColor("test.example"));//就是绿色的嘤嘤嘤(纯属手打,缩进勿喷)


Gyzer
config.yml里若是
test:
  example: "&a嘤嘤嘤"

代码:

p.sendMessage(getConfig().getString("test.example").replace("&","§"));

Gyzer
config.yml里若是
test:
  example: "&a嘤嘤嘤"

代码:

p.sendMessage(getConfig().getString("test.example").replace("&","§"));

ROF
假设config.yml里是
Test:
  one:
代码应该是
getConfig().getString("Test.one").replace("&"."§");

阿淼
本帖最后由 阿淼 于 2018-9-24 22:32 编辑

其实最正确的方法是在config文件里面用章节符:§
然后如果需要指令添加配置的话

  1. private static final Set<Character> colorCodes = new HashSet<>();
  2. static {
  3.     colorCodes.add('0');
  4.     colorCodes.add('1');
  5.     ......
  6.     colorCodes.add('k');
  7. }
复制代码

  1. char[] characters = ((String) cmdComponent).getCharArray();
  2. char previous = 0;
  3. for(int i=characters-1; i>=0; i--) {
  4.     if(characters[i] == '&' && colorCodes.contains(previous)) characters[i] = '§';
  5.     previous = characters[i];
  6. }
  7. cmdComponent = new String(characters);
复制代码


这才是最妥的做法

Br_DogTer
阿淼 发表于 2018-9-24 22:30
其实最正确的方法是在config文件里面用章节符:§
然后如果需要指令添加配置的话

太骚气了,过于真实。