Skip to content

Commit 6f7e24a

Browse files
committed
1.21.11-pre1
1 parent 54bd8fb commit 6f7e24a

File tree

10 files changed

+68
-26
lines changed

10 files changed

+68
-26
lines changed

api/src/main/java/com/viaversion/viaversion/api/minecraft/data/StructuredDataKey.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -37,6 +37,7 @@
3737
import com.viaversion.viaversion.api.minecraft.data.version.StructuredDataKeys1_21_5;
3838
import com.viaversion.viaversion.api.minecraft.item.data.AdventureModePredicate;
3939
import com.viaversion.viaversion.api.minecraft.item.data.ArmorTrim;
40+
import com.viaversion.viaversion.api.minecraft.item.data.AttackRange;
4041
import com.viaversion.viaversion.api.minecraft.item.data.AttributeModifiers1_20_5;
4142
import com.viaversion.viaversion.api.minecraft.item.data.AttributeModifiers1_21;
4243
import com.viaversion.viaversion.api.minecraft.item.data.BannerPatternLayer;
@@ -145,6 +146,7 @@ public record StructuredDataKey<T>(String identifier, Type<T> type) {
145146
public static final StructuredDataKey<ToolProperties> TOOL1_20_5 = new StructuredDataKey<>("tool", ToolProperties.TYPE1_20_5);
146147
public static final StructuredDataKey<ToolProperties> TOOL1_21_5 = new StructuredDataKey<>("tool", ToolProperties.TYPE1_21_5);
147148
public static final StructuredDataKey<Weapon> WEAPON = new StructuredDataKey<>("weapon", Weapon.TYPE);
149+
public static final StructuredDataKey<AttackRange> ATTACK_RANGE = new StructuredDataKey<>("attack_range", AttackRange.TYPE);
148150
public static final StructuredDataKey<Enchantable> ENCHANTABLE = new StructuredDataKey<>("enchantable", Enchantable.TYPE);
149151
public static final StructuredDataKey<Equippable> EQUIPPABLE1_21_2 = new StructuredDataKey<>("equippable", Equippable.TYPE1_21_2);
150152
public static final StructuredDataKey<Equippable> EQUIPPABLE1_21_5 = new StructuredDataKey<>("equippable", Equippable.TYPE1_21_5);
Lines changed: 59 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,59 @@
1+
/*
2+
* This file is part of ViaVersion - https://github.com/ViaVersion/ViaVersion
3+
* Copyright (C) 2016-2025 ViaVersion and contributors
4+
*
5+
* Permission is hereby granted, free of charge, to any person obtaining a copy
6+
* of this software and associated documentation files (the "Software"), to deal
7+
* in the Software without restriction, including without limitation the rights
8+
* to use, copy, modify, merge, publish, distribute, sublicense, and/or sell
9+
* copies of the Software, and to permit persons to whom the Software is
10+
* furnished to do so, subject to the following conditions:
11+
*
12+
* The above copyright notice and this permission notice shall be included in all
13+
* copies or substantial portions of the Software.
14+
*
15+
* THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR
16+
* IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY,
17+
* FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE
18+
* AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER
19+
* LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM,
20+
* OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
21+
* SOFTWARE.
22+
*/
23+
package com.viaversion.viaversion.api.minecraft.item.data;
24+
25+
import com.viaversion.viaversion.api.minecraft.codec.Ops;
26+
import com.viaversion.viaversion.api.type.Type;
27+
import com.viaversion.viaversion.api.type.Types;
28+
import io.netty.buffer.ByteBuf;
29+
30+
public record AttackRange(float minRange, float maxRange, float hitboxMargin, float mobFactor) {
31+
32+
public static final Type<AttackRange> TYPE = new Type<>(AttackRange.class) {
33+
@Override
34+
public AttackRange read(final ByteBuf buffer) {
35+
final float minRange = Types.FLOAT.readPrimitive(buffer);
36+
final float maxRange = Types.FLOAT.readPrimitive(buffer);
37+
final float hitboxMargin = Types.FLOAT.readPrimitive(buffer);
38+
final float mobFactor = Types.FLOAT.readPrimitive(buffer);
39+
return new AttackRange(minRange, maxRange, hitboxMargin, mobFactor);
40+
}
41+
42+
@Override
43+
public void write(final ByteBuf buffer, final AttackRange value) {
44+
Types.FLOAT.writePrimitive(buffer, value.minRange);
45+
Types.FLOAT.writePrimitive(buffer, value.maxRange);
46+
Types.FLOAT.writePrimitive(buffer, value.hitboxMargin);
47+
Types.FLOAT.writePrimitive(buffer, value.mobFactor);
48+
}
49+
50+
@Override
51+
public void write(final Ops ops, final AttackRange AttackRange) {
52+
ops.writeMap(map -> map
53+
.writeOptional("min_range", Types.FLOAT, AttackRange.minRange, 0F)
54+
.writeOptional("max_range", Types.FLOAT, AttackRange.maxRange, 3F)
55+
.writeOptional("hitbox_margin", Types.FLOAT, AttackRange.hitboxMargin, 0.3F)
56+
.writeOptional("mob_factor", Types.FLOAT, AttackRange.mobFactor, 1F));
57+
}
58+
};
59+
}

api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/KineticWeapon.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,18 +30,14 @@
3030
import io.netty.buffer.ByteBuf;
3131
import org.checkerframework.checker.nullness.qual.Nullable;
3232

33-
public record KineticWeapon(float minReach, float maxReach, float hitboxMargin,
34-
int contactCooldownTicks, int delayTicks, @Nullable Condition dismountConditions,
33+
public record KineticWeapon(int contactCooldownTicks, int delayTicks, @Nullable Condition dismountConditions,
3534
@Nullable Condition knockbackConditions, @Nullable Condition damageConditions,
3635
float forwardMovement, float damageMultiplier,
3736
@Nullable Holder<SoundEvent> sound, @Nullable Holder<SoundEvent> hitSound) {
3837

3938
public static final Type<KineticWeapon> TYPE = new Type<>(KineticWeapon.class) {
4039
@Override
4140
public KineticWeapon read(final ByteBuf buffer) {
42-
final float minReach = Types.FLOAT.readPrimitive(buffer);
43-
final float maxReach = Types.FLOAT.readPrimitive(buffer);
44-
final float hitboxMargin = Types.FLOAT.readPrimitive(buffer);
4541
final int contactCooldownTicks = Types.VAR_INT.readPrimitive(buffer);
4642
final int delayTicks = Types.VAR_INT.readPrimitive(buffer);
4743
final Condition dismountConditions = Condition.TYPE.read(buffer);
@@ -51,14 +47,11 @@ public KineticWeapon read(final ByteBuf buffer) {
5147
final float damageMultiplier = Types.FLOAT.readPrimitive(buffer);
5248
final Holder<SoundEvent> sound = Types.OPTIONAL_SOUND_EVENT.read(buffer);
5349
final Holder<SoundEvent> hitSound = Types.OPTIONAL_SOUND_EVENT.read(buffer);
54-
return new KineticWeapon(minReach, maxReach, hitboxMargin, delayTicks, contactCooldownTicks, dismountConditions, knockbackConditions, damageConditions, forwardMovement, damageMultiplier, sound, hitSound);
50+
return new KineticWeapon(contactCooldownTicks, delayTicks, dismountConditions, knockbackConditions, damageConditions, forwardMovement, damageMultiplier, sound, hitSound);
5551
}
5652

5753
@Override
5854
public void write(final ByteBuf buffer, final KineticWeapon value) {
59-
Types.FLOAT.writePrimitive(buffer, value.minReach);
60-
Types.FLOAT.writePrimitive(buffer, value.maxReach);
61-
Types.FLOAT.writePrimitive(buffer, value.hitboxMargin);
6255
Types.VAR_INT.writePrimitive(buffer, value.contactCooldownTicks);
6356
Types.VAR_INT.writePrimitive(buffer, value.delayTicks);
6457
Condition.TYPE.write(buffer, value.dismountConditions);
@@ -73,9 +66,6 @@ public void write(final ByteBuf buffer, final KineticWeapon value) {
7366
@Override
7467
public void write(final Ops ops, final KineticWeapon value) {
7568
ops.writeMap(map -> map
76-
.writeOptional("min_reach", Types.FLOAT, value.minReach, 0F)
77-
.writeOptional("max_reach", Types.FLOAT, value.maxReach, 3F)
78-
.writeOptional("hitbox_margin", Types.FLOAT, value.hitboxMargin, 0.3F)
7969
.writeOptional("contact_cooldown_ticks", Types.INT, value.contactCooldownTicks, 10)
8070
.writeOptional("delay_ticks", Types.INT, value.delayTicks, 0)
8171
.writeOptional("dismount_conditions", Condition.TYPE, value.dismountConditions)

api/src/main/java/com/viaversion/viaversion/api/minecraft/item/data/PiercingWeapon.java

Lines changed: 2 additions & 12 deletions
Original file line numberDiff line numberDiff line change
@@ -30,28 +30,21 @@
3030
import io.netty.buffer.ByteBuf;
3131
import org.checkerframework.checker.nullness.qual.Nullable;
3232

33-
public record PiercingWeapon(float minReach, float maxReach, float hitboxMargin,
34-
boolean dealsKnockback, boolean dismounts,
33+
public record PiercingWeapon(boolean dealsKnockback, boolean dismounts,
3534
@Nullable Holder<SoundEvent> sound, @Nullable Holder<SoundEvent> hitSound) {
3635

3736
public static final Type<PiercingWeapon> TYPE = new Type<>(PiercingWeapon.class) {
3837
@Override
3938
public PiercingWeapon read(final ByteBuf buffer) {
40-
final float minReach = Types.FLOAT.readPrimitive(buffer);
41-
final float maxReach = Types.FLOAT.readPrimitive(buffer);
42-
final float hitboxMargin = Types.FLOAT.readPrimitive(buffer);
4339
final boolean dealsKnockback = Types.BOOLEAN.read(buffer);
4440
final boolean dismounts = Types.BOOLEAN.read(buffer);
4541
final Holder<SoundEvent> sound = Types.OPTIONAL_SOUND_EVENT.read(buffer);
4642
final Holder<SoundEvent> hitSound = Types.OPTIONAL_SOUND_EVENT.read(buffer);
47-
return new PiercingWeapon(minReach, maxReach, hitboxMargin, dealsKnockback, dismounts, sound, hitSound);
43+
return new PiercingWeapon(dealsKnockback, dismounts, sound, hitSound);
4844
}
4945

5046
@Override
5147
public void write(final ByteBuf buffer, final PiercingWeapon value) {
52-
Types.FLOAT.writePrimitive(buffer, value.minReach);
53-
Types.FLOAT.writePrimitive(buffer, value.maxReach);
54-
Types.FLOAT.writePrimitive(buffer, value.hitboxMargin);
5548
Types.BOOLEAN.write(buffer, value.dealsKnockback);
5649
Types.BOOLEAN.write(buffer, value.dismounts);
5750
Types.OPTIONAL_SOUND_EVENT.write(buffer, value.sound);
@@ -61,9 +54,6 @@ public void write(final ByteBuf buffer, final PiercingWeapon value) {
6154
@Override
6255
public void write(final Ops ops, final PiercingWeapon value) {
6356
ops.writeMap(map -> map
64-
.writeOptional("min_reach", Types.FLOAT, value.minReach, 0F)
65-
.writeOptional("max_reach", Types.FLOAT, value.maxReach, 3F)
66-
.writeOptional("hitbox_margin", Types.FLOAT, value.hitboxMargin, 0.3F)
6757
.writeOptional("deals_knockback", Types.BOOLEAN, value.dealsKnockback, true)
6858
.writeOptional("dismounts", Types.BOOLEAN, value.dismounts, false)
6959
.writeOptional("sound", Types.SOUND_EVENT, value.sound)

api/src/main/java/com/viaversion/viaversion/api/protocol/version/ProtocolVersion.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -92,7 +92,7 @@ public class ProtocolVersion implements Comparable<ProtocolVersion> {
9292
public static final ProtocolVersion v1_21_6 = register(771, "1.21.6");
9393
public static final ProtocolVersion v1_21_7 = register(772, "1.21.7-1.21.8", new SubVersionRange("1.21", 7, 8));
9494
public static final ProtocolVersion v1_21_9 = register(773, "1.21.9-1.21.10", new SubVersionRange("1.21", 9, 10));
95-
public static final ProtocolVersion v1_21_11 = register(774, 278, "1.21.11");
95+
public static final ProtocolVersion v1_21_11 = register(774, 279, "1.21.11");
9696
public static final ProtocolVersion unknown = new ProtocolVersion(VersionType.SPECIAL, -1, -1, "UNKNOWN", null);
9797

9898
static {

common/src/main/java/com/viaversion/viaversion/protocols/v1_21_9to1_21_11/Protocol1_21_9To1_21_11.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -177,7 +177,7 @@ protected void onMappingDataLoaded() {
177177
StructuredDataKey.POT_DECORATIONS, StructuredDataKey.BLOCK_STATE, StructuredDataKey.BEES1_21_9, StructuredDataKey.LOCK1_21_2,
178178
StructuredDataKey.CONTAINER_LOOT, StructuredDataKey.TOOL1_21_5, StructuredDataKey.ITEM_NAME, StructuredDataKey.OMINOUS_BOTTLE_AMPLIFIER,
179179
StructuredDataKey.FOOD1_21_2, StructuredDataKey.JUKEBOX_PLAYABLE1_21_5, StructuredDataKey.ATTRIBUTE_MODIFIERS1_21_6,
180-
StructuredDataKey.REPAIRABLE, StructuredDataKey.ENCHANTABLE, StructuredDataKey.CONSUMABLE1_21_2,
180+
StructuredDataKey.REPAIRABLE, StructuredDataKey.ENCHANTABLE, StructuredDataKey.CONSUMABLE1_21_2, StructuredDataKey.ATTACK_RANGE,
181181
StructuredDataKey.USE_COOLDOWN, StructuredDataKey.DAMAGE, StructuredDataKey.EQUIPPABLE1_21_6, StructuredDataKey.ITEM_MODEL,
182182
StructuredDataKey.GLIDER, StructuredDataKey.TOOLTIP_STYLE, StructuredDataKey.DEATH_PROTECTION, StructuredDataKey.WEAPON,
183183
StructuredDataKey.POTION_DURATION_SCALE, StructuredDataKey.VILLAGER_VARIANT, StructuredDataKey.WOLF_VARIANT, StructuredDataKey.WOLF_COLLAR,

common/src/main/java/com/viaversion/viaversion/protocols/v1_21_9to1_21_11/rewriter/BlockItemPacketRewriter1_21_11.java

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -98,5 +98,6 @@ public static void downgradeData(final Item item, final StructuredDataContainer
9898
container.remove(StructuredDataKey.MINIMUM_ATTACK_CHARGE);
9999
container.remove(StructuredDataKey.USE_EFFECTS);
100100
container.remove(StructuredDataKey.ZOMBIE_NAUTILUS_VARIANT);
101+
container.remove(StructuredDataKey.ATTACK_RANGE);
101102
}
102103
}
Binary file not shown.
Binary file not shown.
Binary file not shown.

0 commit comments

Comments
 (0)