mirror of
https://github.com/GeyserMC/Geyser.git
synced 2024-08-14 23:57:35 +00:00
Limit particle amount in LevelParticlesPacket (#4802)
This commit is contained in:
parent
ca2312c7f6
commit
130b27203f
1 changed files with 4 additions and 2 deletions
|
@ -60,6 +60,7 @@ import java.util.function.Function;
|
||||||
|
|
||||||
@Translator(packet = ClientboundLevelParticlesPacket.class)
|
@Translator(packet = ClientboundLevelParticlesPacket.class)
|
||||||
public class JavaLevelParticlesTranslator extends PacketTranslator<ClientboundLevelParticlesPacket> {
|
public class JavaLevelParticlesTranslator extends PacketTranslator<ClientboundLevelParticlesPacket> {
|
||||||
|
private static final int MAX_PARTICLES = 100;
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void translate(GeyserSession session, ClientboundLevelParticlesPacket packet) {
|
public void translate(GeyserSession session, ClientboundLevelParticlesPacket packet) {
|
||||||
|
@ -71,7 +72,8 @@ public class JavaLevelParticlesTranslator extends PacketTranslator<ClientboundLe
|
||||||
session.sendUpstreamPacket(particleCreateFunction.apply(position));
|
session.sendUpstreamPacket(particleCreateFunction.apply(position));
|
||||||
} else {
|
} else {
|
||||||
Random random = ThreadLocalRandom.current();
|
Random random = ThreadLocalRandom.current();
|
||||||
for (int i = 0; i < packet.getAmount(); i++) {
|
int amount = Math.min(MAX_PARTICLES, packet.getAmount());
|
||||||
|
for (int i = 0; i < amount; i++) {
|
||||||
double offsetX = random.nextGaussian() * (double) packet.getOffsetX();
|
double offsetX = random.nextGaussian() * (double) packet.getOffsetX();
|
||||||
double offsetY = random.nextGaussian() * (double) packet.getOffsetY();
|
double offsetY = random.nextGaussian() * (double) packet.getOffsetY();
|
||||||
double offsetZ = random.nextGaussian() * (double) packet.getOffsetZ();
|
double offsetZ = random.nextGaussian() * (double) packet.getOffsetZ();
|
||||||
|
|
Loading…
Reference in a new issue