first commit
Build AsminVoicechat / prepare-release (push) Successful in 14s
Build AsminVoicechat / build-and-test (17) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (18) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (19) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (20) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (21) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (22) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (23) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (24) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (25) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (26) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (27-ea) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (16) (push) Canceled after 38s
Build AsminVoicechat / prepare-release (push) Successful in 14s
Build AsminVoicechat / build-and-test (17) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (18) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (19) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (20) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (21) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (22) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (23) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (24) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (25) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (26) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (27-ea) (push) Canceled after 0s
Build AsminVoicechat / build-and-test (16) (push) Canceled after 38s
This commit is contained in:
commit
bbccd4a815
454 files changed
+45050
No files matched your search
+173
@@ -0,0 +1,173 @@
|
||||
/*
|
||||
* Decompiled with CFR 0.152.
|
||||
*
|
||||
* Could not load the following classes:
|
||||
* javax.annotation.Nullable
|
||||
* org.bukkit.Bukkit
|
||||
*/
|
||||
package de.maxhenkel.voicechat.compatibility;
|
||||
|
||||
import de.maxhenkel.voicechat.Version;
|
||||
import de.maxhenkel.voicechat.Voicechat;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_12;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_16;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_17;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_18;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_19;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_19_1;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_20;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_20_2;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_20_3;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_21_5;
|
||||
import de.maxhenkel.voicechat.compatibility.Compatibility1_8;
|
||||
import de.maxhenkel.voicechat.compatibility.CompatibilityReflectionException;
|
||||
import de.maxhenkel.voicechat.compatibility.FallbackCompatibility;
|
||||
import de.maxhenkel.voicechat.compatibility.SpigotCompatibility;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import javax.annotation.Nullable;
|
||||
import org.bukkit.Bukkit;
|
||||
|
||||
public class BukkitCompatibilityManager {
|
||||
private static final Map<Version, Compatibility> COMPATIBILITIES = new HashMap<Version, Compatibility>();
|
||||
|
||||
@Nullable
|
||||
public static Compatibility loadCompatibility() {
|
||||
Version forcedVersion = BukkitCompatibilityManager.getForcedVersion();
|
||||
Version version = forcedVersion != null ? forcedVersion : Version.getVersion();
|
||||
if (version == null) {
|
||||
Voicechat.LOGGER.info("Failed to parse version {}, trying to fall back to Spigot API compatibility mode", Bukkit.getBukkitVersion());
|
||||
return BukkitCompatibilityManager.tryLoadSpigot();
|
||||
}
|
||||
Voicechat.LOGGER.info("Initializing compatibility for version {}", version);
|
||||
if (version.getMajor() == 1 && version.getMinor() <= 7) {
|
||||
Voicechat.LOGGER.fatal("You are running a server that's too old to be able to join with any voice chat client", new Object[0]);
|
||||
return null;
|
||||
}
|
||||
Compatibility compatibility = COMPATIBILITIES.get(version);
|
||||
if (compatibility != null) {
|
||||
try {
|
||||
compatibility.init();
|
||||
}
|
||||
catch (Throwable t) {
|
||||
compatibility = null;
|
||||
Voicechat.LOGGER.warn("Failed to load compatibility for version {}", version, t);
|
||||
}
|
||||
}
|
||||
if (compatibility == null) {
|
||||
Voicechat.LOGGER.warn("Incompatible version {}, trying to fall back to Spigot API compatibility mode", version);
|
||||
compatibility = BukkitCompatibilityManager.tryLoadSpigot();
|
||||
}
|
||||
if (compatibility == null) {
|
||||
compatibility = FallbackCompatibility.INSTANCE;
|
||||
try {
|
||||
compatibility.init();
|
||||
Voicechat.LOGGER.warn("Falling back to Bukkit compatibility mode, expect issues and lack of features", new Object[0]);
|
||||
Voicechat.LOGGER.warn("Chat messages won't be translatable", new Object[0]);
|
||||
}
|
||||
catch (CompatibilityReflectionException e) {
|
||||
compatibility = null;
|
||||
Voicechat.LOGGER.warn("Failed to load Bukkit compatibility mode: {}", e.getMessage());
|
||||
}
|
||||
catch (Throwable t) {
|
||||
compatibility = null;
|
||||
Voicechat.LOGGER.warn("Failed to load Bukkit compatibility mode", t);
|
||||
}
|
||||
}
|
||||
if (compatibility == null) {
|
||||
Voicechat.LOGGER.fatal("Could not load any compatibility for {}", version);
|
||||
}
|
||||
return compatibility;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
private static Compatibility tryLoadSpigot() {
|
||||
if (!SpigotCompatibility.isSpigotCompatible()) {
|
||||
Voicechat.LOGGER.warn("Spigot API not found", new Object[0]);
|
||||
return null;
|
||||
}
|
||||
SpigotCompatibility compatibility = SpigotCompatibility.INSTANCE;
|
||||
try {
|
||||
compatibility.init();
|
||||
Voicechat.LOGGER.warn("Falling back to Spigot API compatibility mode, expect issues and lack of features", new Object[0]);
|
||||
}
|
||||
catch (CompatibilityReflectionException e) {
|
||||
compatibility = null;
|
||||
Voicechat.LOGGER.warn("Failed to load Spigot API compatibility mode: {}", e.getMessage());
|
||||
}
|
||||
catch (Throwable t) {
|
||||
compatibility = null;
|
||||
Voicechat.LOGGER.warn("Failed to load Spigot API compatibility mode", t);
|
||||
}
|
||||
return compatibility;
|
||||
}
|
||||
|
||||
@Nullable
|
||||
public static Version getForcedVersion() {
|
||||
String property = System.getProperty("voicechat.compatibility");
|
||||
if (property == null) {
|
||||
return null;
|
||||
}
|
||||
Version forcedVersion = Version.parse(property);
|
||||
if (forcedVersion == null) {
|
||||
Voicechat.LOGGER.warn("Failed to parse forced compatibility version: {}", property);
|
||||
return null;
|
||||
}
|
||||
Voicechat.LOGGER.info("Forcing compatibility for {}", forcedVersion);
|
||||
Voicechat.LOGGER.warn("Forcing version compatibility could lead to issues - use with caution!", new Object[0]);
|
||||
return forcedVersion;
|
||||
}
|
||||
|
||||
static {
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_PAPER_26_3, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_26_3, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_PAPER_26_2, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_26_2, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_PAPER_26_1_2, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_26_1_2, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_PAPER_26_1_1, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_26_1_1, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_26_1, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_1_21_11, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_1_21_10, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_1_21_9, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_1_21_8, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_1_21_7, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_1_21_6, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_21_5.VERSION_1_21_5, Compatibility1_21_5.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20_3.VERSION_1_21_4, Compatibility1_20_3.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20_3.VERSION_1_21_3, Compatibility1_20_3.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20_3.VERSION_1_21_2, Compatibility1_20_3.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20_3.VERSION_1_21_1, Compatibility1_20_3.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20_3.VERSION_1_21, Compatibility1_20_3.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20_3.VERSION_1_20_6, Compatibility1_20_3.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20_3.VERSION_1_20_5, Compatibility1_20_3.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20_3.VERSION_1_20_4, Compatibility1_20_3.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20_3.VERSION_1_20_3, Compatibility1_20_3.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20_2.VERSION_1_20_2, Compatibility1_20_2.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20.VERSION_1_20_1, Compatibility1_20.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_20.VERSION_1_20, Compatibility1_20.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_19_1.VERSION_1_19_4, Compatibility1_19_1.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_19_1.VERSION_1_19_3, Compatibility1_19_1.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_19_1.VERSION_1_19_2, Compatibility1_19_1.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_19_1.VERSION_1_19_1, Compatibility1_19_1.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_19.VERSION_1_19, Compatibility1_19.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_18.VERSION_1_18_2, Compatibility1_18.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_18.VERSION_1_18_1, Compatibility1_18.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_18.VERSION_1_18, Compatibility1_18.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_17.VERSION_1_17_1, Compatibility1_17.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_17.VERSION_1_17, Compatibility1_17.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_16.VERSION_1_16_5, Compatibility1_16.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_16.VERSION_1_16_4, Compatibility1_16.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_16.VERSION_1_16_3, Compatibility1_16.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_16.VERSION_1_16_2, Compatibility1_16.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_16.VERSION_1_16_1, Compatibility1_16.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_16.VERSION_1_16, Compatibility1_16.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_12.VERSION_1_12_2, Compatibility1_12.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_12.VERSION_1_12_1, Compatibility1_12.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_12.VERSION_1_12, Compatibility1_12.INSTANCE);
|
||||
COMPATIBILITIES.put(Compatibility1_8.VERSION_1_8_8, Compatibility1_8.INSTANCE);
|
||||
}
|
||||
}
|
||||
|
||||
Reference in new issue
Block a user