mirror of
https://github.com/songoda/SongodaCore.git
synced 2024-10-22 12:20:26 +02:00
feat: introduce MajorServerVersion class based on old ServerVersion class
FSB has too many usages of the ServerVersion class and I don't feel like updating 50+ or 100+ or whatever uses of it. It takes too much brain time for me to re-think the version constraints
This commit is contained in:
parent
54494c8ad9
commit
157150a2f1
@ -0,0 +1,95 @@
|
|||||||
|
package com.craftaro.core.compatibility;
|
||||||
|
|
||||||
|
import org.apache.commons.lang3.ArrayUtils;
|
||||||
|
|
||||||
|
public enum MajorServerVersion {
|
||||||
|
UNKNOWN, V1_7, V1_8, V1_9, V1_10, V1_11, V1_12, V1_13, V1_14, V1_15, V1_16, V1_17, V1_18, V1_19, V1_20, V1_21, V1_22, V1_23;
|
||||||
|
|
||||||
|
private static final MajorServerVersion SERVER_VERSION = getVersion();
|
||||||
|
|
||||||
|
public boolean isLessThan(MajorServerVersion other) {
|
||||||
|
if (SERVER_VERSION == UNKNOWN) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.ordinal() < other.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isAtOrBelow(MajorServerVersion other) {
|
||||||
|
if (SERVER_VERSION == UNKNOWN && other != UNKNOWN) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.ordinal() <= other.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isGreaterThan(MajorServerVersion other) {
|
||||||
|
if (SERVER_VERSION == UNKNOWN) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.ordinal() > other.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean isAtLeast(MajorServerVersion other) {
|
||||||
|
if (SERVER_VERSION == UNKNOWN && other != UNKNOWN) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return this.ordinal() >= other.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static MajorServerVersion getServerVersion() {
|
||||||
|
return SERVER_VERSION;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isServerVersion(MajorServerVersion version) {
|
||||||
|
return SERVER_VERSION == version;
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isServerVersion(MajorServerVersion... versions) {
|
||||||
|
return ArrayUtils.contains(versions, SERVER_VERSION);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isServerVersionAbove(MajorServerVersion version) {
|
||||||
|
if (SERVER_VERSION == UNKNOWN) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SERVER_VERSION.ordinal() > version.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isServerVersionAtLeast(MajorServerVersion version) {
|
||||||
|
if (SERVER_VERSION == UNKNOWN && version != UNKNOWN) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SERVER_VERSION.ordinal() >= version.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isServerVersionAtOrBelow(MajorServerVersion version) {
|
||||||
|
if (SERVER_VERSION == UNKNOWN && version != UNKNOWN) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SERVER_VERSION.ordinal() <= version.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean isServerVersionBelow(MajorServerVersion version) {
|
||||||
|
if (SERVER_VERSION == UNKNOWN) {
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
return SERVER_VERSION.ordinal() < version.ordinal();
|
||||||
|
}
|
||||||
|
|
||||||
|
private static MajorServerVersion getVersion() {
|
||||||
|
for (MajorServerVersion version : values()) {
|
||||||
|
if (ServerVersion.serverPackageVersion.toUpperCase().startsWith(version.name())) {
|
||||||
|
return version;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return UNKNOWN;
|
||||||
|
}
|
||||||
|
}
|
@ -60,7 +60,7 @@ public enum ServerVersion {
|
|||||||
|
|
||||||
;
|
;
|
||||||
|
|
||||||
private static final String serverPackageVersion;
|
static final String serverPackageVersion;
|
||||||
private static final String serverReleaseVersion;
|
private static final String serverReleaseVersion;
|
||||||
private static final ServerVersion serverVersion;
|
private static final ServerVersion serverVersion;
|
||||||
private static final boolean isMocked;
|
private static final boolean isMocked;
|
||||||
|
Loading…
Reference in New Issue
Block a user