From 55ee7fc999fd8d74de1bb1e90200b198ab9912a8 Mon Sep 17 00:00:00 2001 From: Jenny Date: Tue, 28 Jan 2025 21:25:38 +0100 Subject: [PATCH] client desync fix (I think) --- gradle.properties | 2 +- .../entities/arrows/tunnelArrow.java | 20 +++++++++++++++---- 2 files changed, 17 insertions(+), 5 deletions(-) diff --git a/gradle.properties b/gradle.properties index 2eb4ec8..679bd0e 100644 --- a/gradle.properties +++ b/gradle.properties @@ -38,7 +38,7 @@ mod_name=Enhanced Explosives # The license of the mod. Review your options at https://choosealicense.com/. All Rights Reserved is the default. mod_license=All Rights Reserved # The mod version. See https://semver.org/ -mod_version=0.9.1 +mod_version=0.9.2 # The group ID for the mod. It is only important when publishing as an artifact to a Maven repository. # This should match the base package used for the mod sources. # See https://maven.apache.org/guides/mini/guide-naming-conventions.html diff --git a/src/main/java/com/jenny/enhancedexplosives/entities/arrows/tunnelArrow.java b/src/main/java/com/jenny/enhancedexplosives/entities/arrows/tunnelArrow.java index f7723d9..53b4df8 100644 --- a/src/main/java/com/jenny/enhancedexplosives/entities/arrows/tunnelArrow.java +++ b/src/main/java/com/jenny/enhancedexplosives/entities/arrows/tunnelArrow.java @@ -11,8 +11,9 @@ import net.minecraft.world.phys.Vec3; import org.jetbrains.annotations.NotNull; public class tunnelArrow extends baseArrow{ - public static int explosionCount = 16; - public static int spacing = 2; + protected static int explosionCount = 12; + protected static int spacing = 2; + protected static float power = 8; public tunnelArrow(EntityType pEntityType, Level pLevel) { super(pEntityType, pLevel); @@ -34,14 +35,17 @@ public class tunnelArrow extends baseArrow{ @Override protected void doPostHurtEffects(@NotNull LivingEntity pTarget) { explode(); - this.discard(); + discard(); } protected void explode() { + sync(); Vec3 rot = getTargetVec( - getXRot(), - getYRot(), 0); for (int i = 0; i < explosionCount; i++) { Vec3 pos = position().add(rot.multiply(i * spacing, i * spacing, i * spacing)); - this.level().explode(this, pos.x, pos.y, pos.z, 8.0f, Level.ExplosionInteraction.TNT); + System.out.println(level().isClientSide + "|" + i + "|" + pos + "|" + getXRot() + "|" + getYRot()); + level().explode(this, pos.x, pos.y, pos.z, + power, Level.ExplosionInteraction.TNT); } } @@ -65,4 +69,12 @@ public class tunnelArrow extends baseArrow{ level().addParticle(particles.TUNNEL_ARROW_PARTICLE.get(), pos.x, pos.y, pos.z, DeltaMovement.x, DeltaMovement.y, DeltaMovement.z); } } + + public void sync() { + if (!level().isClientSide) { + setPos(position()); + setRot(getYRot(), getXRot()); + setDeltaMovement(getDeltaMovement()); + } + } }