bukkit - 如何在 config.yml 上使用变量?
bukkit - How to use a variable on config.yml?
我对 Bukkit 的配置还很陌生 API,所以我有一个问题:如何在 YAML 文件上设置一个字符串,其中包含类似 %player% 的内容,代表播放器(例如广播当有人使用包含可以配置的发件人姓名的命令时)。如何将 sender.getDisplayName() 解析为 config.yml 中的 %player%?
我现在的代码是:
String message = core.getConfig().getString("message"); //Get the message from the config file
message = message.replace("%player%", player.getDisplayName()); //Replace %player% with the player's name.
ChatColor.translateAlternateColorCodes('&', message);
Bukkit.broadcastMessage(message);
我的 config.yml 是:
message: &6%player% just launched the cow party!
错误是:
你要做的是从 config.yml
文件中获取字符串,然后你需要将 %player% 替换为玩家的名字或显示名称。
像这样的东西会起作用;
String message = getConfig().getString("path.to.string"); //Get the message from the config file
message = message.replace("%player%", player.getName()); //Replace %player% with the player's name.
ChatColor.translateAlternateColorCodes('&', message); //Translate colors to color codes
player.sendMessage(message); //Send the message
你也可以使用这个单线:
player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("path.to.message").replace("%player%", player.getName()));
当然,您需要将 player
替换为您的有效播放器。
关于您的错误:
您需要在消息两边加上引号 ("),因此请更改
message: &6%player% just launched the cow party!
进入
message: "&6%player% just launched the cow party!"
我认为参数调用的更好解决方案,不仅应该通过替换它来使用特定参数,对于长期解决方案应该是这样的,并且 str 表示为来自 yaml 的参数:
ChatColor.translateAlternateColorCodes('&', str.replace(StringUtils.substringBetween(str, "%", "%"), msg_config.getString(StringUtils.substringBetween(str, "%", "%"))).replace("%",""));
我对 Bukkit 的配置还很陌生 API,所以我有一个问题:如何在 YAML 文件上设置一个字符串,其中包含类似 %player% 的内容,代表播放器(例如广播当有人使用包含可以配置的发件人姓名的命令时)。如何将 sender.getDisplayName() 解析为 config.yml 中的 %player%?
我现在的代码是:
String message = core.getConfig().getString("message"); //Get the message from the config file
message = message.replace("%player%", player.getDisplayName()); //Replace %player% with the player's name.
ChatColor.translateAlternateColorCodes('&', message);
Bukkit.broadcastMessage(message);
我的 config.yml 是:
message: &6%player% just launched the cow party!
错误是:
你要做的是从 config.yml
文件中获取字符串,然后你需要将 %player% 替换为玩家的名字或显示名称。
像这样的东西会起作用;
String message = getConfig().getString("path.to.string"); //Get the message from the config file
message = message.replace("%player%", player.getName()); //Replace %player% with the player's name.
ChatColor.translateAlternateColorCodes('&', message); //Translate colors to color codes
player.sendMessage(message); //Send the message
你也可以使用这个单线:
player.sendMessage(ChatColor.translateAlternateColorCodes('&', getConfig().getString("path.to.message").replace("%player%", player.getName()));
当然,您需要将 player
替换为您的有效播放器。
关于您的错误:
您需要在消息两边加上引号 ("),因此请更改
message: &6%player% just launched the cow party!
进入
message: "&6%player% just launched the cow party!"
我认为参数调用的更好解决方案,不仅应该通过替换它来使用特定参数,对于长期解决方案应该是这样的,并且 str 表示为来自 yaml 的参数:
ChatColor.translateAlternateColorCodes('&', str.replace(StringUtils.substringBetween(str, "%", "%"), msg_config.getString(StringUtils.substringBetween(str, "%", "%"))).replace("%",""));