ProtocolVersion#SUPPORTED_VERSIONS, relocate javassist

This commit is contained in:
creeper123123321 2018-12-13 09:47:41 -02:00
parent 94422dab77
commit 1932c7af4f
No known key found for this signature in database
GPG Key ID: 0AC57D54786721D1
2 changed files with 9 additions and 13 deletions

View File

@ -54,7 +54,7 @@
<shadedPattern>us.myles.viaversion.libs.gson</shadedPattern>
</relocation>
<relocation>
<pattern>org.javassist</pattern>
<pattern>javassist</pattern>
<shadedPattern>us.myles.viaversion.libs.javassist</shadedPattern>
</relocation>
<relocation>

View File

@ -8,28 +8,24 @@ import us.myles.ViaVersion.protocols.base.ProtocolInfo;
import us.myles.ViaVersion.protocols.base.VersionProvider;
import us.myles.ViaVersion.velocity.platform.VelocityViaInjector;
import java.util.ArrayList;
import java.util.Collections;
import java.util.List;
import java.util.*;
import java.util.stream.Collectors;
public class VelocityVersionProvider extends VersionProvider {
private static final List<Integer> VELOCITY_PROTOCOLS = com.velocitypowered.api.network.ProtocolVersion.SUPPORTED_VERSIONS.stream()
.map(com.velocitypowered.api.network.ProtocolVersion::getProtocol)
.collect(Collectors.toList());
@Override
public int getServerProtocol(UserConnection user) throws Exception {
// TODO Have one constant list forever until restart? (Might limit plugins if they change this)
List<Integer> sorted = new ArrayList<>(com.velocitypowered.api.network.ProtocolVersion.ID_TO_PROTOCOL_CONSTANT.keySet());
sorted.remove(Integer.valueOf(-1)); // Unknown
sorted.remove(Integer.valueOf(-2)); // Legacy
Collections.sort(sorted);
int playerVersion = user.get(ProtocolInfo.class).getProtocolVersion();
// Bungee supports it
if (sorted.contains(playerVersion))
if (Collections.binarySearch(VELOCITY_PROTOCOLS, playerVersion) >= 0)
return playerVersion;
// Older than bungee supports, get the lowest version
if (playerVersion < sorted.get(0)) {
if (playerVersion < VELOCITY_PROTOCOLS.get(0)) {
return VelocityViaInjector.getLowestSupportedProtocolVersion();
}
@ -37,7 +33,7 @@ public class VelocityVersionProvider extends VersionProvider {
// TODO: This needs a better fix, i.e checking ProtocolRegistry to see if it would work.
// This is more of a workaround for snapshot support by bungee.
for (Integer protocol : Lists.reverse(sorted)) {
for (Integer protocol : Lists.reverse(VELOCITY_PROTOCOLS)) {
if (playerVersion > protocol && ProtocolVersion.isRegistered(protocol))
return protocol;
}