From 5b086bc34cec9d60ee6e1be047e71dd4b24440fc Mon Sep 17 00:00:00 2001 From: Florian Reuth Date: Thu, 1 Oct 2026 14:42:11 +0200 Subject: [PATCH] Fix conditions swap in kinetic weapon restore in 1.21.11->1.21.9 Signed-off-by: Florian Reuth --- .../rewriter/BlockItemPacketRewriter1_21_11.java | 9 +++------ 1 file changed, 3 insertions(+), 6 deletions(-) diff --git a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_11to1_21_9/rewriter/BlockItemPacketRewriter1_21_11.java b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_11to1_21_9/rewriter/BlockItemPacketRewriter1_21_11.java index 5b3756c84..0f44981a2 100644 --- a/common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_11to1_21_9/rewriter/BlockItemPacketRewriter1_21_11.java +++ b/common/src/main/java/com/viaversion/viabackwards/protocol/v1_21_11to1_21_9/rewriter/BlockItemPacketRewriter1_21_11.java @@ -29,11 +29,8 @@ import com.viaversion.viaversion.api.minecraft.SoundEvent; import com.viaversion.viaversion.api.minecraft.data.StructuredDataContainer; import com.viaversion.viaversion.api.minecraft.data.StructuredDataKey; -import com.viaversion.viaversion.api.minecraft.data.predicate.DataComponentPredicate; import com.viaversion.viaversion.api.minecraft.item.Item; -import com.viaversion.viaversion.api.minecraft.item.data.AdventureModePredicate; import com.viaversion.viaversion.api.minecraft.item.data.AttackRange; -import com.viaversion.viaversion.api.minecraft.item.data.BlockPredicate; import com.viaversion.viaversion.api.minecraft.item.data.KineticWeapon; import com.viaversion.viaversion.api.minecraft.item.data.PiercingWeapon; import com.viaversion.viaversion.api.minecraft.item.data.SwingAnimation; @@ -111,14 +108,14 @@ protected void restoreBackupData(final Item item, final StructuredDataContainer if (kineticTag != null) { final int contactCooldownTicks = kineticTag.getInt("contact_cooldown_ticks"); final int delayTicks = kineticTag.getInt("delay_ticks"); - final KineticWeapon.Condition damageConditions = loadDamageCondition(kineticTag, "damage_conditions"); final KineticWeapon.Condition dismountConditions = loadDamageCondition(kineticTag, "dismount_conditions"); final KineticWeapon.Condition knockbackConditions = loadDamageCondition(kineticTag, "knockback_conditions"); + final KineticWeapon.Condition damageConditions = loadDamageCondition(kineticTag, "damage_conditions"); final float forwardMovement = kineticTag.getFloat("forward_movement"); final float damageMultiplier = kineticTag.getFloat("damage_multiplier"); final Holder sound = kineticTag.contains("sound") ? restoreSoundEventHolder(kineticTag, "sound") : null; final Holder hitSound = kineticTag.contains("hit_sound") ? restoreSoundEventHolder(kineticTag, "hit_sound") : null; - container.set(StructuredDataKey.KINETIC_WEAPON, new KineticWeapon(contactCooldownTicks, delayTicks, damageConditions, dismountConditions, knockbackConditions, forwardMovement, damageMultiplier, sound, hitSound)); + container.set(StructuredDataKey.KINETIC_WEAPON, new KineticWeapon(contactCooldownTicks, delayTicks, dismountConditions, knockbackConditions, damageConditions, forwardMovement, damageMultiplier, sound, hitSound)); } final CompoundTag piercingTag = backupTag.getCompoundTag("piercing_weapon"); @@ -199,9 +196,9 @@ protected void backupInconvertibleData(final UserConnection connection, final It final CompoundTag kineticTag = new CompoundTag(); kineticTag.putInt("contact_cooldown_ticks", kineticWeapon.contactCooldownTicks()); kineticTag.putInt("delay_ticks", kineticWeapon.delayTicks()); - saveDamageCondition(kineticTag, "damage_conditions", kineticWeapon.damageConditions()); saveDamageCondition(kineticTag, "dismount_conditions", kineticWeapon.dismountConditions()); saveDamageCondition(kineticTag, "knockback_conditions", kineticWeapon.knockbackConditions()); + saveDamageCondition(kineticTag, "damage_conditions", kineticWeapon.damageConditions()); kineticTag.putFloat("forward_movement", kineticWeapon.forwardMovement()); kineticTag.putFloat("damage_multiplier", kineticWeapon.damageMultiplier()); if (kineticWeapon.sound() != null) {