Skip to content

Commit c785866

Browse files
committed
The 1.20.5 attribute fix has been mostly moved into ViaVersion
1 parent 8564f5e commit c785866

File tree

1 file changed

+10
-47
lines changed

1 file changed

+10
-47
lines changed

src/main/java/net/raphimc/viaproxy/injection/mixins/MixinEntityPacketRewriter1_20_5.java

Lines changed: 10 additions & 47 deletions
Original file line numberDiff line numberDiff line change
@@ -18,68 +18,31 @@
1818

1919
package net.raphimc.viaproxy.injection.mixins;
2020

21-
import com.viaversion.viaversion.api.connection.UserConnection;
2221
import com.viaversion.viaversion.api.protocol.packet.PacketWrapper;
23-
import com.viaversion.viaversion.api.protocol.version.ProtocolVersion;
24-
import com.viaversion.viaversion.api.type.Types;
25-
import com.viaversion.viaversion.protocols.v1_20_2to1_20_3.packet.ClientboundPacket1_20_3;
26-
import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.Protocol1_20_3To1_20_5;
27-
import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.packet.ClientboundPackets1_20_5;
2822
import com.viaversion.viaversion.protocols.v1_20_3to1_20_5.rewriter.EntityPacketRewriter1_20_5;
29-
import com.viaversion.viaversion.rewriter.EntityRewriter;
3023
import net.raphimc.vialegacy.api.LegacyProtocolVersion;
31-
import org.spongepowered.asm.mixin.Final;
3224
import org.spongepowered.asm.mixin.Mixin;
33-
import org.spongepowered.asm.mixin.Overwrite;
3425
import org.spongepowered.asm.mixin.Shadow;
26+
import org.spongepowered.asm.mixin.injection.At;
27+
import org.spongepowered.asm.mixin.injection.Redirect;
3528

3629
import java.util.UUID;
3730

3831
@Mixin(value = EntityPacketRewriter1_20_5.class, remap = false)
39-
public abstract class MixinEntityPacketRewriter1_20_5 extends EntityRewriter<ClientboundPacket1_20_3, Protocol1_20_3To1_20_5> {
40-
41-
@Shadow
42-
@Final
43-
private static UUID CREATIVE_BLOCK_INTERACTION_RANGE;
44-
45-
@Shadow
46-
@Final
47-
private static UUID CREATIVE_ENTITY_INTERACTION_RANGE;
48-
49-
protected MixinEntityPacketRewriter1_20_5(Protocol1_20_3To1_20_5 protocol) {
50-
super(protocol);
51-
}
32+
public abstract class MixinEntityPacketRewriter1_20_5 {
5233

5334
@Shadow
5435
protected abstract void writeAttribute(PacketWrapper wrapper, String attributeId, double base, UUID modifierId, double amount);
5536

56-
/**
57-
* @author RK_01
58-
* @reason Fix interaction range and step height differences
59-
*/
60-
@Overwrite
61-
private void sendRangeAttributes(final UserConnection connection, final boolean creativeMode) {
62-
final PacketWrapper updateAttributes = PacketWrapper.create(ClientboundPackets1_20_5.UPDATE_ATTRIBUTES, connection);
63-
updateAttributes.write(Types.VAR_INT, this.tracker(connection).clientEntityId());
64-
if (connection.getProtocolInfo().serverProtocolVersion().olderThanOrEqualTo(ProtocolVersion.v1_7_6)) {
65-
updateAttributes.write(Types.VAR_INT, 3); // Number of attributes
66-
this.writeAttribute(updateAttributes, "generic.step_height", 0.5D, null, 0D);
67-
} else {
68-
updateAttributes.write(Types.VAR_INT, 2); // Number of attributes
69-
}
70-
if (connection.getProtocolInfo().serverProtocolVersion().olderThan(LegacyProtocolVersion.r1_0_0tor1_0_1)) {
71-
this.writeAttribute(updateAttributes, "player.block_interaction_range", 4D, creativeMode ? CREATIVE_BLOCK_INTERACTION_RANGE : null, 1D);
72-
} else {
73-
this.writeAttribute(updateAttributes, "player.block_interaction_range", 4.5D, creativeMode ? CREATIVE_BLOCK_INTERACTION_RANGE : null, 0.5D);
74-
}
75-
if (connection.getProtocolInfo().serverProtocolVersion().olderThanOrEqualTo(LegacyProtocolVersion.r1_6_4)) {
76-
this.writeAttribute(updateAttributes, "player.entity_interaction_range", 3D, creativeMode ? CREATIVE_ENTITY_INTERACTION_RANGE : null, 3D);
77-
} else if (connection.getProtocolInfo().serverProtocolVersion().olderThanOrEqualTo(ProtocolVersion.v1_13_2)) {
78-
this.writeAttribute(updateAttributes, "player.entity_interaction_range", 3D, creativeMode ? CREATIVE_ENTITY_INTERACTION_RANGE : null, 1D);
37+
@Redirect(method = "sendRangeAttributes", at = @At(value = "INVOKE", target = "Lcom/viaversion/viaversion/protocols/v1_20_3to1_20_5/rewriter/EntityPacketRewriter1_20_5;writeAttribute(Lcom/viaversion/viaversion/api/protocol/packet/PacketWrapper;Ljava/lang/String;DLjava/util/UUID;D)V"))
38+
private void useLegacyValues(EntityPacketRewriter1_20_5 instance, PacketWrapper wrapper, String attributeId, double base, UUID modifierId, double amount) {
39+
if (attributeId.equals("player.block_interaction_range") && wrapper.user().getProtocolInfo().serverProtocolVersion().olderThan(LegacyProtocolVersion.r1_0_0tor1_0_1)) {
40+
this.writeAttribute(wrapper, attributeId, 4D, modifierId, 1D);
41+
} else if (attributeId.equals("player.entity_interaction_range") && wrapper.user().getProtocolInfo().serverProtocolVersion().olderThanOrEqualTo(LegacyProtocolVersion.r1_6_4)) {
42+
this.writeAttribute(wrapper, attributeId, 3D, modifierId, 3D);
7943
} else {
80-
this.writeAttribute(updateAttributes, "player.entity_interaction_range", 3D, creativeMode ? CREATIVE_ENTITY_INTERACTION_RANGE : null, 2D);
44+
this.writeAttribute(wrapper, attributeId, base, modifierId, amount);
8145
}
82-
updateAttributes.scheduleSend(Protocol1_20_3To1_20_5.class);
8346
}
8447

8548
}

0 commit comments

Comments
 (0)