Plugins 更改每个玩家的小报列表名称。(插口) 你好

Plugins 更改每个玩家的小报列表名称。(插口) 你好,plugins,minecraft,bukkit,bungeecord,Plugins,Minecraft,Bukkit,Bungeecord,我目前正在制作一个Minecraft SkyWars插件,希望制作一个更好看的小报 问题是: 假设您有PlayerA和PlayerB。如果PlayerA看着小报作者,他的名字应该是绿色的,PlayerB的名字应该是红色的 但是如果玩家B看他的小报,玩家B的名字应该是绿色的,玩家A的名字应该是红色的 所以基本上你自己的名字应该标记为绿色(颜色代码‘a’),对手的名字应该是红色(颜色代码‘c’) 我如何做到这一点?我是否为每个球员的小报作者发送包裹?如果是,我应该/可以使用哪些软件包 提前感谢。

我目前正在制作一个Minecraft SkyWars插件,希望制作一个更好看的小报


问题是: 假设您有PlayerAPlayerB。如果PlayerA看着小报作者,他的名字应该是绿色的,PlayerB的名字应该是红色的

但是如果玩家B看他的小报,玩家B的名字应该是绿色的,玩家A的名字应该是红色的

所以基本上你自己的名字应该标记为绿色(颜色代码‘a’),对手的名字应该是红色(颜色代码‘c’)


我如何做到这一点?我是否为每个球员的小报作者发送包裹?如果是,我应该/可以使用哪些软件包


提前感谢。

您的问题可以通过两种方式解决

如果您想在小报列表中仅显示每个播放器可见的颜色,可以使用
播放器信息
数据包(规范)修改小报列表内容。完整有效的代码可能非常庞大,所以我给你一个算法(下面我的意思是“包”是
Player Info
packet):

  • 使用PlayerA.uuid将带有操作
    的数据包发送到PlayerA
    删除播放器(请参见wiki获取操作列表)
  • 使用
    删除播放器
    PlayerB.uuid将数据包发送到PlayerA
  • 重复12,但向playerB发送数据包
  • 向PlayerA发送带有:action
    add player
    PlayerA.uuid和彩色PlayerA的显示名称(在您的情况下为绿色)的数据包
  • 向PlayerA发送带有:action
    add player
    PlayerB.uuid和彩色PlayerB的显示名称(在您的情况下为红色)的数据包
  • 重复45,但向播放机B发送数据包并反转颜色
  • 对于数据包管理,您可以使用ProtocolLib插件

    如果你想在tablist和头顶上显示每个球员的可见颜色,你可以对记分板团队数据包使用类似的算法。或者,您可以尝试为每个播放器的可见前缀找到实现的插件api