Skip to content

Commit 6a0747c

Browse files
committed
Fix issue with packets not being registered because protocolversion mapping end is higher than proxy-server version
1 parent 04c2fe3 commit 6a0747c

File tree

3 files changed

+13
-2
lines changed

3 files changed

+13
-2
lines changed

protocolize-api/src/main/java/dev/simplix/protocolize/api/mapping/AbstractProtocolMapping.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -15,7 +15,12 @@
1515
public abstract class AbstractProtocolMapping implements ProtocolMapping {
1616

1717
private final int protocolRangeStart;
18-
private final int protocolRangeEnd;
18+
private int protocolRangeEnd;
19+
20+
@Override
21+
public final void protocolRangeEnd(int protocolRangeEnd) {
22+
this.protocolRangeEnd = protocolRangeEnd;
23+
}
1924

2025
public static ProtocolIdMapping rangedIdMapping(int start, int end, int id) {
2126
return new RangeProtocolIdMapping(start, end, id);

protocolize-api/src/main/java/dev/simplix/protocolize/api/mapping/ProtocolMapping.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -11,6 +11,8 @@ public interface ProtocolMapping {
1111

1212
int protocolRangeEnd();
1313

14+
void protocolRangeEnd(int protocolRangeStart);
15+
1416
default boolean inRange(int version) {
1517
return version >= protocolRangeStart() && version <= protocolRangeEnd();
1618
}

protocolize-velocity/src/main/java/dev/simplix/protocolize/velocity/providers/VelocityProtocolRegistrationProvider.java

Lines changed: 5 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -81,14 +81,18 @@ public void registerPacket(List<ProtocolIdMapping> mappings, Protocol protocol,
8181
Class<? extends MinecraftPacket> velocityPacket = generateVelocityPacket(packetClass);
8282
List<StateRegistry.PacketMapping> velocityMappings = new ArrayList<>();
8383

84+
final int maximumProtocolVersion = ProtocolVersion.MAXIMUM_VERSION.getProtocol();
8485
var sortedMappings = mappings.stream()
85-
.filter(mapping -> !(ProtocolVersion.MAXIMUM_VERSION.getProtocol() < mapping.protocolRangeStart() || ProtocolVersion.MAXIMUM_VERSION.getProtocol() < mapping.protocolRangeEnd()))
86+
.filter(mapping -> maximumProtocolVersion >= mapping.protocolRangeStart())
8687
.sorted(Comparator.comparingInt(ProtocolMapping::protocolRangeEnd))
8788
.toArray(ProtocolIdMapping[]::new);
8889

8990
for (int i = 0; i < sortedMappings.length; i++) {
9091
var mapping = sortedMappings[i];
9192
mappingProvider.registerMapping(new RegisteredPacket(direction, packetClass), mapping);
93+
if (mapping.protocolRangeEnd() > maximumProtocolVersion) {
94+
mapping.protocolRangeEnd(maximumProtocolVersion);
95+
}
9296
velocityMappings.add(createVelocityMapping(mapping.protocolRangeStart(), mapping.protocolRangeEnd(), mapping.id(), i == sortedMappings.length - 1));
9397
}
9498
try {

0 commit comments

Comments
 (0)