红石粒子不会改变它们的颜色
Redstone particles don't change their color
我正在尝试使用 ProtocolLib 通过数据包向玩家发送彩色红石粒子。我用谷歌搜索要使它们着色,我需要使用 offset
参数作为 RGB 系统。但是,它没有按预期工作;粒子仍然是红色或具有随机颜色(见下文),并且 offset
仍然用作来自给定位置的每个粒子的随机化器。
我的代码:
PacketContainer packet = new PacketContainer(PacketType.Play.Server.WORLD_PARTICLES);
packet.getModifier().writeDefaults();
packet.getParticles().write(0, Particle.REDSTONE);
float x = (float) loc.getX();
float y = (float) loc.getY() + 3;
float z = (float) loc.getZ();
float red = 0;
float green = 0;
float blue = 1;
packet.getFloat().write(0, x).write(1, y).write(2, z); // Location
packet.getFloat().write(3, red).write(4, green).write(5, blue); // Offset
packet.getFloat().write(6, 0F); // Particle data ?
packet.getIntegers().write(0, 1); // Amount
ProtocolManager manager = ProtocolLibrary.getProtocolManager();
try {
for (Player player : getters) manager.sendServerPacket(player, packet);
} catch (Exception ex) {ex.printStackTrace();}
我尝试更改 amount
和粒子 data
。如果粒子 data
是 0
,则粒子是红色的,在其他情况下最多 1
个粒子是随机着色的。
我正在使用 ProtocolLib 4.3.0 和 Spigot 1.12.2
我解决了我的问题,要生成彩色真正的红石粒子必须有 3 个东西:
Amount
必须是 0
Data
必须是 1
- 红色分量(x偏移量)必须是
x - 1
(因为这个分量在推入数据包之前自动增加了1)
我正在尝试使用 ProtocolLib 通过数据包向玩家发送彩色红石粒子。我用谷歌搜索要使它们着色,我需要使用 offset
参数作为 RGB 系统。但是,它没有按预期工作;粒子仍然是红色或具有随机颜色(见下文),并且 offset
仍然用作来自给定位置的每个粒子的随机化器。
我的代码:
PacketContainer packet = new PacketContainer(PacketType.Play.Server.WORLD_PARTICLES);
packet.getModifier().writeDefaults();
packet.getParticles().write(0, Particle.REDSTONE);
float x = (float) loc.getX();
float y = (float) loc.getY() + 3;
float z = (float) loc.getZ();
float red = 0;
float green = 0;
float blue = 1;
packet.getFloat().write(0, x).write(1, y).write(2, z); // Location
packet.getFloat().write(3, red).write(4, green).write(5, blue); // Offset
packet.getFloat().write(6, 0F); // Particle data ?
packet.getIntegers().write(0, 1); // Amount
ProtocolManager manager = ProtocolLibrary.getProtocolManager();
try {
for (Player player : getters) manager.sendServerPacket(player, packet);
} catch (Exception ex) {ex.printStackTrace();}
我尝试更改 amount
和粒子 data
。如果粒子 data
是 0
,则粒子是红色的,在其他情况下最多 1
个粒子是随机着色的。
我正在使用 ProtocolLib 4.3.0 和 Spigot 1.12.2
我解决了我的问题,要生成彩色真正的红石粒子必须有 3 个东西:
Amount
必须是0
Data
必须是1
- 红色分量(x偏移量)必须是
x - 1
(因为这个分量在推入数据包之前自动增加了1)