更改每个玩家的 Tablist 名称。 (龙头)
Change Tablist names for each individual Player. (Spigot)
你好
我目前正在制作 Minecraft SkyWars-Plugin 并希望制作一个更好看的列表。
问题:
假设您有 PlayerA 和 PlayerB.如果PlayerA在tablist上看,他的名字应该是绿色的,PlayerB[=42的名字应该是绿色的=]应该是红色的。
但是如果PlayerB查看他的列表,PlayerB的名字应该是绿色的,PlayerA的名字应该是红色的。
所以基本上你自己的名字应该被标记为绿色(颜色代码'a')而对手应该有一个红色的名字(颜色代码'c')。
我该如何实现?我是否将包裹发送给每个玩家以获取他的表格列表?如果是,我使用哪些包 should/can?
提前致谢。
您的问题可以通过两种方式解决。
如果你想在标签列表中显示每个玩家可见的颜色 仅,你可以使用 Player Info
数据包(规范 https://wiki.vg/Protocol#Player_Info)作为标签列表内容修改。 full valid code可以很长,所以我给你一个算法(下面我的意思是"packet"是Player Info
包):
- 使用 PlayerA.uuid 向 PlayerA
- 使用 PlayerB.uuid 向 PlayerA
发送带有操作 remove player
的数据包
- 重复1和2,但向玩家B发送数据包。
- 发送数据包:操作
add player
、PlayerA.uuid 和彩色 PlayerA's PlayerA 的显示名称(在您的盒子是绿色的)给玩家A。
- 发送数据包:操作
add player
、PlayerB.uuid 和彩色 PlayerB's PlayerA 的显示名称(在您的盒子是红色的)给玩家A。
- 重复4和5,但向玩家B发送数据包并反转颜色。
对于数据包管理,您可以使用 ProtocolLib 插件。
如果你想在表格列表和头顶上方显示每个玩家可见的颜色,你可以对记分牌团队数据包使用类似的算法。或者您可以尝试为每个玩家可见的前缀找到已实现的插件 api。
你好
我目前正在制作 Minecraft SkyWars-Plugin 并希望制作一个更好看的列表。
问题:
假设您有 PlayerA 和 PlayerB.如果PlayerA在tablist上看,他的名字应该是绿色的,PlayerB[=42的名字应该是绿色的=]应该是红色的。
但是如果PlayerB查看他的列表,PlayerB的名字应该是绿色的,PlayerA的名字应该是红色的。
所以基本上你自己的名字应该被标记为绿色(颜色代码'a')而对手应该有一个红色的名字(颜色代码'c')。
我该如何实现?我是否将包裹发送给每个玩家以获取他的表格列表?如果是,我使用哪些包 should/can?
提前致谢。
您的问题可以通过两种方式解决。
如果你想在标签列表中显示每个玩家可见的颜色 仅,你可以使用 Player Info
数据包(规范 https://wiki.vg/Protocol#Player_Info)作为标签列表内容修改。 full valid code可以很长,所以我给你一个算法(下面我的意思是"packet"是Player Info
包):
- 使用 PlayerA.uuid 向 PlayerA
- 使用 PlayerB.uuid 向 PlayerA 发送带有操作
- 重复1和2,但向玩家B发送数据包。
- 发送数据包:操作
add player
、PlayerA.uuid 和彩色 PlayerA's PlayerA 的显示名称(在您的盒子是绿色的)给玩家A。 - 发送数据包:操作
add player
、PlayerB.uuid 和彩色 PlayerB's PlayerA 的显示名称(在您的盒子是红色的)给玩家A。 - 重复4和5,但向玩家B发送数据包并反转颜色。
remove player
的数据包
对于数据包管理,您可以使用 ProtocolLib 插件。
如果你想在表格列表和头顶上方显示每个玩家可见的颜色,你可以对记分牌团队数据包使用类似的算法。或者您可以尝试为每个玩家可见的前缀找到已实现的插件 api。