🐛 Fix BukkitCommandManager capability calculations

This commit is contained in:
Alexander Söderberg 2020-10-04 21:18:16 +02:00
parent 38aff56e92
commit 5a89f98a25
No known key found for this signature in database
GPG key ID: FACEA5B0F4C1BF80

View file

@ -62,8 +62,9 @@ import java.util.regex.Pattern;
public class BukkitCommandManager<C> extends CommandManager<C> { public class BukkitCommandManager<C> extends CommandManager<C> {
private static final int VERSION_RADIX = 10; private static final int VERSION_RADIX = 10;
private static final int BRIGADIER_MINIMAL_VERSION = 13; private static final int BRIGADIER_MINIMUM_VERSION = 13;
private static final int PAPER_BRIGADIER_VERSION = 15; private static final int PAPER_BRIGADIER_VERSION = 15;
private static final int ASYNC_TAB_MINIMUM_VERSION = 12;
private final Plugin owningPlugin; private final Plugin owningPlugin;
private final int minecraftVersion; private final int minecraftVersion;
@ -209,20 +210,21 @@ public class BukkitCommandManager<C> extends CommandManager<C> {
*/ */
public final @NonNull Set<@NonNull CloudBukkitCapabilities> queryCapabilities() { public final @NonNull Set<@NonNull CloudBukkitCapabilities> queryCapabilities() {
if (this.paper) { if (this.paper) {
if (this.minecraftVersion >= BRIGADIER_MINIMAL_VERSION) { if (this.minecraftVersion >= ASYNC_TAB_MINIMUM_VERSION) {
if (this.minecraftVersion >= PAPER_BRIGADIER_VERSION) { if (this.minecraftVersion >= PAPER_BRIGADIER_VERSION) {
return EnumSet.of(CloudBukkitCapabilities.NATIVE_BRIGADIER, return EnumSet.of(CloudBukkitCapabilities.NATIVE_BRIGADIER,
CloudBukkitCapabilities.ASYNCHRONOUS_COMPLETION, CloudBukkitCapabilities.ASYNCHRONOUS_COMPLETION,
CloudBukkitCapabilities.BRIGADIER); CloudBukkitCapabilities.BRIGADIER);
} else { } else if (this.minecraftVersion >= BRIGADIER_MINIMUM_VERSION) {
return EnumSet.of(CloudBukkitCapabilities.COMMODORE_BRIGADIER, return EnumSet.of(CloudBukkitCapabilities.COMMODORE_BRIGADIER,
CloudBukkitCapabilities.ASYNCHRONOUS_COMPLETION,
CloudBukkitCapabilities.BRIGADIER); CloudBukkitCapabilities.BRIGADIER);
}
} else { } else {
return EnumSet.of(CloudBukkitCapabilities.ASYNCHRONOUS_COMPLETION); return EnumSet.of(CloudBukkitCapabilities.ASYNCHRONOUS_COMPLETION);
} }
}
} else { } else {
if (this.minecraftVersion >= BRIGADIER_MINIMAL_VERSION) { if (this.minecraftVersion >= BRIGADIER_MINIMUM_VERSION) {
return EnumSet.of(CloudBukkitCapabilities.COMMODORE_BRIGADIER, return EnumSet.of(CloudBukkitCapabilities.COMMODORE_BRIGADIER,
CloudBukkitCapabilities.BRIGADIER); CloudBukkitCapabilities.BRIGADIER);
} }
@ -260,7 +262,9 @@ public class BukkitCommandManager<C> extends CommandManager<C> {
* Reasons to explain why Brigadier failed to initialize * Reasons to explain why Brigadier failed to initialize
*/ */
public enum BrigadierFailureReason { public enum BrigadierFailureReason {
COMMODORE_NOT_PRESENT, VERSION_TOO_LOW, PAPER_BRIGADIER_INITIALIZATION_FAILURE COMMODORE_NOT_PRESENT,
VERSION_TOO_LOW,
PAPER_BRIGADIER_INITIALIZATION_FAILURE
} }