Bukkit Coding - 在config.yml中设置颜色代码的Kick消息

时间:2014-07-12 22:24:11

标签: java bukkit

所以我有一个插件我正在制作他们被踢的消息。我希望该消息是在config.yml中设置的颜色。继承我的代码:

        }
    if (l == 2) {
        settings.getData().set("" + target.getName() + "", null);
        settings.saveData();
        target.kickPlayer(this.getConfig().getString("BanMessage"));
        target.setBanned(true);
        Bukkit.getServer().broadcastMessage(ChatColor.RED + target.getName() + " " + "Has been tempbanned for 25 Minutes by " + sender.getName() + "" + "(3/3)");           
        Bukkit.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
                public void run() {
                        target.setBanned(false);
                }
        }, 1500 * 20);
        return true;


    }

继承人我的config.yml:

BanMessage: You have been temp banned for 25 Minutes

2 个答案:

答案 0 :(得分:1)

您可以使用ChatColor.translateAlternateColorCodes()

String kickMessage = plugin.getConfig().getString("BanMessage");
kickMessage = ChatColor.translateAlternateColorCodes('&', kickMessage);
target.kickPlayer(kickMessage);
target.setBanned(true);

您可以在配置文件中使用these color codes

所以,输入&amp; 6你已被禁止进行&amp; 4Spamming 会给你 ChatColor.GOLD +“你被禁止使用”+ ChatColor.DARK_RED +“垃圾邮件”< /强>

如果您愿意这样做,那么只要他们加入,他们就会收到同样的信息,如果他们被禁止,您可以使用:

@EventHandler
public void playerJoin(PlayerJoinEvent e){
  if(myMethodToCheckIfAPlayerIsTempBanned(e.getPlayer()){
    String msg = myMethodToGetPlayersBanMessage(e.getPlayer());
    e.getPlayer().kickPlayer(msg);
  }
}

答案 1 :(得分:-1)

这应该有效:

String kickMessage = this.getConfig().getString("BanMessage");
kickMessage.replaceAll("(?i)&([a-f0-9])", "\u00A7$1");
target.kickPlayer(kickMessage);
target.setBanned(true);

然后,您应该可以在配置中使用these color codes

离。

BanMessage:&amp; 3You&amp; 0已被禁止&amp; 1为&amp; 425&amp; 3minutes

将显示为

You have been temp banned for 25 Minutes