13
0
geforkt von Mirrors/Velocity

Change version-name logic (#441)

Dieser Commit ist enthalten in:
FivePB (Xer) 2021-03-11 10:24:04 +01:00 committet von GitHub
Ursprung d2c2b78ab9
Commit 690bcfcaa5
Es konnte kein GPG-Schlüssel zu dieser Signatur gefunden werden
GPG-Schlüssel-ID: 4AEE18F83AFDEB23

Datei anzeigen

@ -1,9 +1,11 @@
package com.velocitypowered.api.network; package com.velocitypowered.api.network;
import com.google.common.collect.ImmutableList;
import com.google.common.collect.ImmutableMap; import com.google.common.collect.ImmutableMap;
import com.google.common.collect.Sets; import com.google.common.collect.Sets;
import java.util.EnumSet; import java.util.EnumSet;
import java.util.HashMap; import java.util.HashMap;
import java.util.List;
import java.util.Map; import java.util.Map;
import java.util.Set; import java.util.Set;
@ -13,16 +15,19 @@ import java.util.Set;
public enum ProtocolVersion { public enum ProtocolVersion {
UNKNOWN(-1, "Unknown"), UNKNOWN(-1, "Unknown"),
LEGACY(-2, "Legacy"), LEGACY(-2, "Legacy"),
MINECRAFT_1_7_2(4, "1.7.2"), MINECRAFT_1_7_2(4,
MINECRAFT_1_7_6(5, "1.7.6"), "1.7.2", "1.7.3", "1.7.4", "1.7.5"),
MINECRAFT_1_8(47, "1.8"), MINECRAFT_1_7_6(5,
"1.7.6", "1.7.7", "1.7.8", "1.7.9", "1.7.10"),
MINECRAFT_1_8(47,
"1.8", "1.8.1", "1.8.2", "1.8.3", "1.8.4", "1.8.5", "1.8.6", "1.8.7", "1.8.8", "1.8.9"),
MINECRAFT_1_9(107, "1.9"), MINECRAFT_1_9(107, "1.9"),
MINECRAFT_1_9_1(108, "1.9.1"), MINECRAFT_1_9_1(108, "1.9.1"),
MINECRAFT_1_9_2(109, "1.9.2"), MINECRAFT_1_9_2(109, "1.9.2"),
MINECRAFT_1_9_4(110, "1.9.4"), MINECRAFT_1_9_4(110, "1.9.3", "1.9.4"),
MINECRAFT_1_10(210, "1.10"), MINECRAFT_1_10(210, "1.10", "1.10.1", "1.10.2"),
MINECRAFT_1_11(315, "1.11"), MINECRAFT_1_11(315, "1.11"),
MINECRAFT_1_11_1(316, "1.11.1"), MINECRAFT_1_11_1(316, "1.11.1", "1.11.2"),
MINECRAFT_1_12(335, "1.12"), MINECRAFT_1_12(335, "1.12"),
MINECRAFT_1_12_1(338, "1.12.1"), MINECRAFT_1_12_1(338, "1.12.1"),
MINECRAFT_1_12_2(340, "1.12.2"), MINECRAFT_1_12_2(340, "1.12.2"),
@ -41,13 +46,13 @@ public enum ProtocolVersion {
MINECRAFT_1_16_1(736, "1.16.1"), MINECRAFT_1_16_1(736, "1.16.1"),
MINECRAFT_1_16_2(751, "1.16.2"), MINECRAFT_1_16_2(751, "1.16.2"),
MINECRAFT_1_16_3(753, "1.16.3"), MINECRAFT_1_16_3(753, "1.16.3"),
MINECRAFT_1_16_4(754, "1.16.4"); MINECRAFT_1_16_4(754, "1.16.4", "1.16.5");
private static final int SNAPSHOT_BIT = 30; private static final int SNAPSHOT_BIT = 30;
private final int protocol; private final int protocol;
private final int snapshotProtocol; private final int snapshotProtocol;
private final String name; private final String[] names;
/** /**
* Represents the lowest supported version. * Represents the lowest supported version.
@ -62,7 +67,8 @@ public enum ProtocolVersion {
* The user-friendly representation of the lowest and highest supported versions. * The user-friendly representation of the lowest and highest supported versions.
*/ */
public static final String SUPPORTED_VERSION_STRING = String public static final String SUPPORTED_VERSION_STRING = String
.format("%s-%s", MINIMUM_VERSION, MAXIMUM_VERSION); .format("%s-%s", MINIMUM_VERSION.getVersionIntroducedIn(),
MAXIMUM_VERSION.getMostRecentSupportedVersion());
/** /**
* A map linking the protocol version number to its {@link ProtocolVersion} representation. * A map linking the protocol version number to its {@link ProtocolVersion} representation.
@ -101,11 +107,11 @@ public enum ProtocolVersion {
SUPPORTED_VERSIONS = Sets.immutableEnumSet(versions); SUPPORTED_VERSIONS = Sets.immutableEnumSet(versions);
} }
ProtocolVersion(int protocol, String name) { ProtocolVersion(int protocol, String... names) {
this(protocol, -1, name); this(protocol, -1, names);
} }
ProtocolVersion(int protocol, int snapshotProtocol, String name) { ProtocolVersion(int protocol, int snapshotProtocol, String... names) {
if (snapshotProtocol != -1) { if (snapshotProtocol != -1) {
this.snapshotProtocol = (1 << SNAPSHOT_BIT) | snapshotProtocol; this.snapshotProtocol = (1 << SNAPSHOT_BIT) | snapshotProtocol;
} else { } else {
@ -113,7 +119,7 @@ public enum ProtocolVersion {
} }
this.protocol = protocol; this.protocol = protocol;
this.name = name; this.names = names;
} }
/** /**
@ -129,9 +135,41 @@ public enum ProtocolVersion {
* Returns the user-friendly name for this protocol. * Returns the user-friendly name for this protocol.
* *
* @return the protocol name * @return the protocol name
* @deprecated A protocol may be shared by multiple versions. Use @link{#getVersionIntroducedIn()}
* or @link{#getVersionsSupportedBy()} to get more accurate version names.
*/ */
@Deprecated
public String getName() { public String getName() {
return name; return getVersionIntroducedIn();
}
/**
* Returns the user-friendly name of the version
* this protocol was introduced in.
*
* @return the version name
*/
public String getVersionIntroducedIn() {
return names[0];
}
/**
* Returns the user-friendly name of the last
* version this protocol is valid for.
*
* @return the version name
*/
public String getMostRecentSupportedVersion() {
return names[names.length - 1];
}
/**
* Returns all versions this protocol is valid for.
*
* @return the version names
*/
public List<String> getVersionsSupportedBy() {
return ImmutableList.copyOf(names);
} }
/** /**
@ -186,6 +224,6 @@ public enum ProtocolVersion {
@Override @Override
public String toString() { public String toString() {
return name; return getVersionIntroducedIn();
} }
} }