炼药锅
Player的sendRawMessage()怎么不起作用?没法把颜色代码过滤掉啊?

void go(PlayerMoveEvent e) {
                e.getPlayer().sendRawMessage("§ahi!");
            }


huanmeng_cn
可以尝试一下以下方法
player.sendMessage(ChatColor.stripColor("§aHi"));

炼药锅
huanmeng_cn 发表于 2021-12-16 19:19
可以尝试一下以下方法
player.sendMessage(ChatColor.stripColor("§aHi"));

另,怎么使用十六进制的颜色代码。org.bukkit.ChatColor的颜色有限啊

huanmeng_cn
本帖最后由 huanmeng_cn 于 2021-12-17 18:12 编辑
炼药锅 发表于 2021-12-17 12:29
另,怎么使用十六进制的颜色代码。org.bukkit.ChatColor的颜色有限啊

#加上hex码即可
例如: #4646B1

炼药锅
huanmeng_cn 发表于 2021-12-17 14:42
#加上数字即可
例如: #123

额,你想表达的是这样使用吗?player.sendMessage("#123"+"Hi");

如果不是,那怎么使用?

huanmeng_cn
炼药锅 发表于 2021-12-17 17:59
额,你想表达的是这样使用吗?player.sendMessage("#123"+"Hi");

如果不是,那怎么使用? ...

如果你要发送的话 可以看一下net.md_5.bungee.api.ChatColor#of(java.lang.String)

Rothes
sendRawMessage 发送的是 chatjson 比如 {"color":"GOLD","text":"aaa"}
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(也可能是我没有找到)