From 7777a85d41efe82d1cdcd33a40dac8ca95cb8ae0 Mon Sep 17 00:00:00 2001 From: Jason <11360596+jpenilla@users.noreply.github.com> Date: Thu, 8 Dec 2022 10:45:22 -0700 Subject: [PATCH] cloud-fabric: Update for Minecraft 1.19.3 (#411) This also removes support for older versions (1.19-1.19.2) Co-authored-by: zml --- cloud-minecraft/cloud-fabric/build.gradle.kts | 4 ++++ .../fabric/FabricCommandManager.java | 10 ++++---- .../FabricCommandRegistrationHandler.java | 2 +- .../fabric/argument/ItemInputArgument.java | 6 ++--- .../fabric/argument/MobEffectArgument.java | 14 +++++++---- .../fabric/argument/ParticleArgument.java | 3 +-- .../argument/RegistryEntryArgument.java | 9 +------ .../fabric/testmod/FabricExample.java | 24 +++++++++++++++++++ gradle/libs.versions.yml | 8 +++---- 9 files changed, 52 insertions(+), 28 deletions(-) diff --git a/cloud-minecraft/cloud-fabric/build.gradle.kts b/cloud-minecraft/cloud-fabric/build.gradle.kts index 0be8d802..22eb3d96 100644 --- a/cloud-minecraft/cloud-fabric/build.gradle.kts +++ b/cloud-minecraft/cloud-fabric/build.gradle.kts @@ -6,6 +6,10 @@ plugins { id("cloud.base-conventions") } +indra { + javaVersions().target(17) +} + tasks { compileJava { options.errorprone { diff --git a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/FabricCommandManager.java b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/FabricCommandManager.java index 09830d35..120a37fd 100644 --- a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/FabricCommandManager.java +++ b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/FabricCommandManager.java @@ -69,16 +69,16 @@ import net.minecraft.commands.arguments.ObjectiveCriteriaArgument; import net.minecraft.commands.arguments.OperationArgument; import net.minecraft.commands.arguments.ParticleArgument; import net.minecraft.commands.arguments.RangeArgument; +import net.minecraft.commands.arguments.ResourceKeyArgument; import net.minecraft.commands.arguments.ResourceLocationArgument; -import net.minecraft.commands.arguments.ResourceOrTagLocationArgument; import net.minecraft.commands.arguments.UuidArgument; import net.minecraft.commands.arguments.blocks.BlockPredicateArgument; import net.minecraft.commands.arguments.coordinates.SwizzleArgument; import net.minecraft.commands.arguments.item.ItemArgument; import net.minecraft.commands.arguments.item.ItemInput; import net.minecraft.core.Direction; -import net.minecraft.core.Registry; import net.minecraft.core.particles.ParticleOptions; +import net.minecraft.core.registries.Registries; import net.minecraft.nbt.CompoundTag; import net.minecraft.nbt.Tag; import net.minecraft.resources.ResourceKey; @@ -181,7 +181,6 @@ public abstract class FabricCommandManager>() { }, SwizzleArgument.swizzle()); @@ -189,6 +188,7 @@ public abstract class FabricCommandManager>() { }, builder -> { - builder.to(argument -> ResourceOrTagLocationArgument.resourceOrTag((ResourceKey) argument.registryKey())); + builder.to(argument -> ResourceKeyArgument.key((ResourceKey) argument.registryKey())); } ); @@ -217,7 +217,7 @@ public abstract class FabricCommandManager this.registerClientCommand(dispatcher, (Command) command) ); diff --git a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/ItemInputArgument.java b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/ItemInputArgument.java index ca19e0d2..65317fc8 100644 --- a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/ItemInputArgument.java +++ b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/ItemInputArgument.java @@ -30,7 +30,7 @@ import java.util.List; import java.util.function.BiFunction; import net.minecraft.commands.arguments.item.ItemArgument; import net.minecraft.commands.arguments.item.ItemInput; -import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; import net.minecraft.world.item.ItemStack; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; @@ -150,9 +150,9 @@ public final class ItemInputArgument extends CommandArgument { public @NonNull Builder asOptionalWithDefault(final @NonNull ItemStack defaultValue) { final String serializedDefault; if (defaultValue.hasTag()) { - serializedDefault = Registry.ITEM.getKey(defaultValue.getItem()) + defaultValue.getTag().toString(); + serializedDefault = BuiltInRegistries.ITEM.getKey(defaultValue.getItem()) + defaultValue.getTag().toString(); } else { - serializedDefault = Registry.ITEM.getKey(defaultValue.getItem()).toString(); + serializedDefault = BuiltInRegistries.ITEM.getKey(defaultValue.getItem()).toString(); } return this.asOptionalWithDefault(serializedDefault); } diff --git a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/MobEffectArgument.java b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/MobEffectArgument.java index 5861c8d6..6c2cbd32 100644 --- a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/MobEffectArgument.java +++ b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/MobEffectArgument.java @@ -25,21 +25,25 @@ package cloud.commandframework.fabric.argument; import cloud.commandframework.ArgumentDescription; import cloud.commandframework.arguments.CommandArgument; -import cloud.commandframework.brigadier.argument.WrappedBrigadierParser; import cloud.commandframework.context.CommandContext; import java.util.List; import java.util.function.BiFunction; -import net.minecraft.core.Registry; +import net.minecraft.core.registries.BuiltInRegistries; +import net.minecraft.core.registries.Registries; import net.minecraft.world.effect.MobEffect; +import org.apiguardian.api.API; import org.checkerframework.checker.nullness.qual.NonNull; import org.checkerframework.checker.nullness.qual.Nullable; /** - * An argument parsing a status effect from the {@link net.minecraft.core.Registry#MOB_EFFECT status effect registry}. + * An argument parsing a status effect from the {@link net.minecraft.core.registries.Registries#MOB_EFFECT status effect registry}. * * @param the sender type * @since 1.5.0 + * @deprecated backing vanilla type was removed in Minecraft 1.19.3. Uses {@link RegistryEntryArgument.Parser}. */ +@API(status = API.Status.DEPRECATED, since = "1.8.0") +@Deprecated public final class MobEffectArgument extends CommandArgument { MobEffectArgument( @@ -52,7 +56,7 @@ public final class MobEffectArgument extends CommandArgument { super( required, name, - new WrappedBrigadierParser<>(net.minecraft.commands.arguments.MobEffectArgument.effect()), + new RegistryEntryArgument.Parser<>(Registries.MOB_EFFECT), defaultValue, MobEffect.class, suggestionsProvider, @@ -151,7 +155,7 @@ public final class MobEffectArgument extends CommandArgument { * @since 1.5.0 */ public @NonNull Builder asOptionalWithDefault(final @NonNull MobEffect defaultValue) { - return this.asOptionalWithDefault(Registry.MOB_EFFECT.getKey(defaultValue).toString()); + return this.asOptionalWithDefault(BuiltInRegistries.MOB_EFFECT.getKey(defaultValue).toString()); } } } diff --git a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/ParticleArgument.java b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/ParticleArgument.java index 4945b118..0e33047c 100644 --- a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/ParticleArgument.java +++ b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/ParticleArgument.java @@ -25,7 +25,6 @@ package cloud.commandframework.fabric.argument; import cloud.commandframework.ArgumentDescription; import cloud.commandframework.arguments.CommandArgument; -import cloud.commandframework.brigadier.argument.WrappedBrigadierParser; import cloud.commandframework.context.CommandContext; import java.util.List; import java.util.function.BiFunction; @@ -51,7 +50,7 @@ public final class ParticleArgument extends CommandArgument(net.minecraft.commands.arguments.ParticleArgument.particle()), + FabricArgumentParsers.contextual(net.minecraft.commands.arguments.ParticleArgument::particle), defaultValue, ParticleOptions.class, suggestionsProvider, diff --git a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/RegistryEntryArgument.java b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/RegistryEntryArgument.java index 1e8ae4d9..e0afedb9 100644 --- a/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/RegistryEntryArgument.java +++ b/cloud-minecraft/cloud-fabric/src/main/java/cloud/commandframework/fabric/argument/RegistryEntryArgument.java @@ -234,16 +234,9 @@ public class RegistryEntryArgument extends CommandArgument { return ArgumentParseResult.success(entry); } - @SuppressWarnings("unchecked") Registry resolveRegistry(final CommandContext ctx) { final SharedSuggestionProvider reverseMapped = ctx.get(FabricCommandContextKeys.NATIVE_COMMAND_SOURCE); - // First try dynamic registries (for things loaded from data-packs) - Registry registry = reverseMapped.registryAccess().registry(this.registryIdent).orElse(null); - if (registry == null) { - // And then static registries - registry = (Registry) Registry.REGISTRY.get(this.registryIdent.location()); - } - return registry; + return reverseMapped.registryAccess().registry(this.registryIdent).orElse(null); } @Override diff --git a/cloud-minecraft/cloud-fabric/src/testmod/java/cloud/commandframework/fabric/testmod/FabricExample.java b/cloud-minecraft/cloud-fabric/src/testmod/java/cloud/commandframework/fabric/testmod/FabricExample.java index 6bb2b9ab..817ea622 100644 --- a/cloud-minecraft/cloud-fabric/src/testmod/java/cloud/commandframework/fabric/testmod/FabricExample.java +++ b/cloud-minecraft/cloud-fabric/src/testmod/java/cloud/commandframework/fabric/testmod/FabricExample.java @@ -32,6 +32,7 @@ import cloud.commandframework.execution.CommandExecutionCoordinator; import cloud.commandframework.fabric.FabricServerCommandManager; import cloud.commandframework.fabric.argument.ItemInputArgument; import cloud.commandframework.fabric.argument.NamedColorArgument; +import cloud.commandframework.fabric.argument.RegistryEntryArgument; import cloud.commandframework.fabric.argument.server.ColumnPosArgument; import cloud.commandframework.fabric.argument.server.MultipleEntitySelectorArgument; import cloud.commandframework.fabric.argument.server.MultiplePlayerSelectorArgument; @@ -54,6 +55,7 @@ import net.fabricmc.loader.api.metadata.Person; import net.minecraft.ChatFormatting; import net.minecraft.commands.CommandSourceStack; import net.minecraft.commands.arguments.item.ItemInput; +import net.minecraft.core.registries.Registries; import net.minecraft.network.chat.ClickEvent; import net.minecraft.network.chat.Component; import net.minecraft.network.chat.ComponentUtils; @@ -62,6 +64,7 @@ import net.minecraft.network.chat.MutableComponent; import net.minecraft.network.chat.TextColor; import net.minecraft.server.level.ServerPlayer; import net.minecraft.world.level.ChunkPos; +import net.minecraft.world.level.biome.Biome; import net.minecraft.world.phys.Vec3; public final class FabricExample implements ModInitializer { @@ -96,6 +99,27 @@ public final class FabricExample implements ModInitializer { .withStyle(style -> style.withBold(true)), false); })); + final CommandArgument biomeArgument = RegistryEntryArgument.of( + "biome", + Biome.class, + Registries.BIOME + ); + + manager.command(base + .literal("land") + .argument(biomeArgument) + .handler(ctx -> { + ctx.getSender().sendSuccess(Component.literal("Yes, the biome ") + .append(Component.literal( + ctx.getSender().registryAccess() + .registryOrThrow(Registries.BIOME) + .getKey(ctx.get(biomeArgument)).toString()) + .withStyle(ChatFormatting.DARK_PURPLE, ChatFormatting.BOLD)) + .append(Component.literal(" is pretty cool")) + .withStyle(style -> style.withColor(0x884433)), false); + }) + ); + final CommandArgument playerSelector = MultiplePlayerSelectorArgument.of("players"); final CommandArgument textColor = NamedColorArgument.of("color"); diff --git a/gradle/libs.versions.yml b/gradle/libs.versions.yml index 6215f3ed..7c974420 100644 --- a/gradle/libs.versions.yml +++ b/gradle/libs.versions.yml @@ -47,10 +47,10 @@ versions: velocityApi: 3.1.0 spongeApi7: 7.3.0 jetbrainsAnnotations: 23.0.0 - fabricMinecraft: 1.19 - fabricLoader: 0.14.7 - fabricApi: 0.55.3+1.19 - fabricPermissionsApi: 0.1-SNAPSHOT + fabricMinecraft: 1.19.3 + fabricLoader: 0.14.11 + fabricApi: 0.68.1+1.19.3 + fabricPermissionsApi: 0.2-SNAPSHOT # testing jupiterEngine : 5.8.2