From 365f8cf7e3702c7737d4d02117c8bcf41fc33b0b Mon Sep 17 00:00:00 2001 From: davchoo Date: Tue, 31 May 2022 14:58:40 -0400 Subject: [PATCH] Translate Warden sonic boom event Bump Protocol to fix Sonic boom flag --- core/pom.xml | 2 +- .../entity/type/living/monster/WardenEntity.java | 14 ++++++++++++++ .../java/entity/JavaEntityEventTranslator.java | 6 ++++++ core/src/main/resources/mappings | 2 +- 4 files changed, 22 insertions(+), 2 deletions(-) diff --git a/core/pom.xml b/core/pom.xml index 39c874d35..b639827b6 100644 --- a/core/pom.xml +++ b/core/pom.xml @@ -121,7 +121,7 @@ com.github.CloudburstMC.Protocol bedrock-beta - 51d4fce + be0cc73 compile diff --git a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/WardenEntity.java b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/WardenEntity.java index 0ec12da83..e99bbd248 100644 --- a/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/WardenEntity.java +++ b/core/src/main/java/org/geysermc/geyser/entity/type/living/monster/WardenEntity.java @@ -44,6 +44,8 @@ public class WardenEntity extends MonsterEntity implements Tickable { private int heartBeatDelay; private int tickCount; + private int sonicBoomTickDuration; + public WardenEntity(GeyserSession session, int entityId, long geyserId, UUID uuid, EntityDefinition definition, Vector3f position, Vector3f motion, float yaw, float pitch, float headYaw) { super(session, entityId, geyserId, uuid, definition, position, motion, yaw, pitch, headYaw); } @@ -77,5 +79,17 @@ public class WardenEntity extends MonsterEntity implements Tickable { packet.setVolume((random.nextFloat() - random.nextFloat()) * 0.2f + 1.0f); session.sendUpstreamPacket(packet); } + + if (--sonicBoomTickDuration == 0) { + setFlag(EntityFlag.SONIC_BOOM, false); + updateBedrockMetadata(); + } + } + + public void onSonicBoom() { + setFlag(EntityFlag.SONIC_BOOM, true); + updateBedrockMetadata(); + + sonicBoomTickDuration = 3 * 20; } } diff --git a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java index ed18dc94c..e16159d3b 100644 --- a/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java +++ b/core/src/main/java/org/geysermc/geyser/translator/protocol/java/entity/JavaEntityEventTranslator.java @@ -37,6 +37,7 @@ import org.geysermc.geyser.entity.type.Entity; import org.geysermc.geyser.entity.type.EvokerFangsEntity; import org.geysermc.geyser.entity.type.FishingHookEntity; import org.geysermc.geyser.entity.type.LivingEntity; +import org.geysermc.geyser.entity.type.living.monster.WardenEntity; import org.geysermc.geyser.session.GeyserSession; import org.geysermc.geyser.translator.protocol.PacketTranslator; import org.geysermc.geyser.translator.protocol.Translator; @@ -245,6 +246,11 @@ public class JavaEntityEventTranslator extends PacketTranslator