Player的sendRawMessage()怎么不起作用?没法把颜色代码过滤掉啊?
void go(PlayerMoveEvent e) {
e.getPlayer().sendRawMessage("§ahi!");
}
void go(PlayerMoveEvent e) {
e.getPlayer().sendRawMessage("§ahi!");
}
可以尝试一下以下方法
player.sendMessage(ChatColor.stripColor("§aHi"));
player.sendMessage(ChatColor.stripColor("§aHi"));
huanmeng_cn 发表于 2021-12-16 19:19
可以尝试一下以下方法
player.sendMessage(ChatColor.stripColor("§aHi"));
另,怎么使用十六进制的颜色代码。org.bukkit.ChatColor的颜色有限啊
 本帖最后由 huanmeng_cn 于 2021-12-17 18:12 编辑 
#加上hex码即可
例如: #4646B1
炼药锅 发表于 2021-12-17 12:29
另,怎么使用十六进制的颜色代码。org.bukkit.ChatColor的颜色有限啊
#加上hex码即可
例如: #4646B1
huanmeng_cn 发表于 2021-12-17 14:42
#加上数字即可
例如: #123
额,你想表达的是这样使用吗?player.sendMessage("#123"+"Hi");
如果不是,那怎么使用?
炼药锅 发表于 2021-12-17 17:59
额,你想表达的是这样使用吗?player.sendMessage("#123"+"Hi");
如果不是,那怎么使用? ...
如果你要发送的话 可以看一下net.md_5.bungee.api.ChatColor#of(java.lang.String)
sendRawMessage 发送的是 chatjson 比如 {"color":"GOLD","text":"aaa"}
HEX 直接sendMessage("§x§a§b§c§d§e§f MSG") 其效果等同于
sendRawMessage("{\"color\":\"#abcdef\",\"text\":\" MSG\"}")
HEX 直接sendMessage("§x§a§b§c§d§e§f MSG") 其效果等同于
sendRawMessage("{\"color\":\"#abcdef\",\"text\":\" MSG\"}")
@Rothes 
然而sendRawMessage("{\"color\":\"#abcdef\",\"text\":\" MSG\"}")会直接发送 {"color":"#abcdef","text":" MSG"}原文(我用的是mc1.17.1对应的API)。不过谢谢你,让我知道了可以sendMessage("§x§a§b§c§d§e§f MSG")来使用十六进制的颜色代码。
--------------------------------------------------------
@huanmeng_cn
似乎mc1.18对应的API里 没有net.md_5.bungee.api.ChatColor(也可能是我没有找到)
然而sendRawMessage("{\"color\":\"#abcdef\",\"text\":\" MSG\"}")会直接发送 {"color":"#abcdef","text":" MSG"}原文(我用的是mc1.17.1对应的API)。不过谢谢你,让我知道了可以sendMessage("§x§a§b§c§d§e§f MSG")来使用十六进制的颜色代码。
--------------------------------------------------------
@huanmeng_cn
似乎mc1.18对应的API里 没有net.md_5.bungee.api.ChatColor(也可能是我没有找到)