diff --git a/gradle.properties b/gradle.properties index f9440a6..e322d45 100644 --- a/gradle.properties +++ b/gradle.properties @@ -4,13 +4,13 @@ org.gradle.parallel=true # Fabric Properties # check these on https://fabricmc.net/develop -minecraft_version=1.20.5 -loader_version=0.15.10 +minecraft_version=1.21-pre2 +loader_version=0.15.11 # Mod Properties -mod_version=1.7.0 +mod_version=1.8.0-beta1 maven_group=io.github.misode archives_base_name=packtest # Dependencies -fabric_version=0.97.5+1.20.5 +fabric_version=0.99.4+1.21 diff --git a/src/main/java/io/github/misode/packtest/PackTestFunction.java b/src/main/java/io/github/misode/packtest/PackTestFunction.java index 5dec87a..f8f1e5c 100644 --- a/src/main/java/io/github/misode/packtest/PackTestFunction.java +++ b/src/main/java/io/github/misode/packtest/PackTestFunction.java @@ -175,7 +175,7 @@ public record CommandStep(String line, int lineNumber, CommandDispatcher function = CommandFunction.fromLines(id, this.dispatcher, source, List.of(this.line)); InstantiatedFunction instantiated = function.instantiate(null, this.dispatcher); Runnable runCommands = () -> { diff --git a/src/main/java/io/github/misode/packtest/dummy/Dummy.java b/src/main/java/io/github/misode/packtest/dummy/Dummy.java index c34fbec..36b3a6e 100644 --- a/src/main/java/io/github/misode/packtest/dummy/Dummy.java +++ b/src/main/java/io/github/misode/packtest/dummy/Dummy.java @@ -3,6 +3,7 @@ import com.mojang.authlib.GameProfile; import net.minecraft.core.BlockPos; import net.minecraft.core.UUIDUtil; +import net.minecraft.network.DisconnectionDetails; import net.minecraft.network.chat.Component; import net.minecraft.network.protocol.PacketFlow; import net.minecraft.network.protocol.game.ClientboundRotateHeadPacket; @@ -18,6 +19,7 @@ import net.minecraft.server.players.GameProfileCache; import net.minecraft.util.RandomSource; import net.minecraft.world.damagesource.DamageSource; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.EquipmentSlot; import net.minecraft.world.item.ItemStack; import net.minecraft.world.level.GameRules; @@ -87,11 +89,11 @@ public String getUsername() { public void leave(Component reason) { server.getPlayerList().remove(this); - this.connection.onDisconnect(reason); + this.connection.onDisconnect(new DisconnectionDetails(reason)); } public void respawn() { - server.getPlayerList().respawn(this, false); + server.getPlayerList().respawn(this, false, Entity.RemovalReason.KILLED); } @Override diff --git a/src/main/java/io/github/misode/packtest/mixin/ArgumentTypeInfosMixin.java b/src/main/java/io/github/misode/packtest/mixin/ArgumentTypeInfosMixin.java index be9b6ee..518771a 100644 --- a/src/main/java/io/github/misode/packtest/mixin/ArgumentTypeInfosMixin.java +++ b/src/main/java/io/github/misode/packtest/mixin/ArgumentTypeInfosMixin.java @@ -28,10 +28,10 @@ private static , T extends ArgumentTypeInfo.Template, T extends ArgumentTypeInfo.Template> void bootstrap(Registry> registry, CallbackInfoReturnable> cir) { if (!SharedConstants.IS_RUNNING_IN_IDE) { - if (!registry.containsKey(new ResourceLocation("test_argument"))) { + if (!registry.containsKey(ResourceLocation.withDefaultNamespace("test_argument"))) { register(registry, "test_argument", TestFunctionArgument.class, SingletonArgumentInfo.contextFree(TestFunctionArgument::testFunctionArgument)); } - if (!registry.containsKey(new ResourceLocation("test_class"))) { + if (!registry.containsKey(ResourceLocation.withDefaultNamespace("test_class"))) { register(registry, "test_class", TestClassNameArgument.class, SingletonArgumentInfo.contextFree(TestClassNameArgument::testClassName)); } } diff --git a/src/main/java/io/github/misode/packtest/mixin/PlayerListMixin.java b/src/main/java/io/github/misode/packtest/mixin/PlayerListMixin.java index d43025f..52b3f81 100644 --- a/src/main/java/io/github/misode/packtest/mixin/PlayerListMixin.java +++ b/src/main/java/io/github/misode/packtest/mixin/PlayerListMixin.java @@ -11,6 +11,7 @@ import net.minecraft.server.level.ServerLevel; import net.minecraft.server.level.ServerPlayer; import net.minecraft.server.players.PlayerList; +import net.minecraft.world.entity.Entity; import net.minecraft.world.entity.player.Player; import net.minecraft.world.level.storage.PlayerDataStorage; import net.minecraft.world.phys.Vec3; @@ -72,7 +73,7 @@ private ServerPlayer createDummy(MinecraftServer server, ServerLevel level, Game } @Inject(method = "respawn", at = @At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerPlayer;restoreFrom(Lnet/minecraft/server/level/ServerPlayer;Z)V")) - private void teleportDummy(ServerPlayer serverPlayer, boolean bl, CallbackInfoReturnable cir, @Local(ordinal = 1) ServerPlayer player) { + private void teleportDummy(ServerPlayer serverPlayer, boolean bl, Entity.RemovalReason removalReason, CallbackInfoReturnable cir, @Local(ordinal = 1) ServerPlayer player) { if (player instanceof Dummy dummy) { Vec3 pos = dummy.originalSpawn; dummy.moveTo(pos.x, pos.y, pos.z, 0, 0); diff --git a/src/main/java/io/github/misode/packtest/mixin/ReloadableServerResourcesMixin.java b/src/main/java/io/github/misode/packtest/mixin/ReloadableServerResourcesMixin.java index 7d6e63e..7bfc5b7 100644 --- a/src/main/java/io/github/misode/packtest/mixin/ReloadableServerResourcesMixin.java +++ b/src/main/java/io/github/misode/packtest/mixin/ReloadableServerResourcesMixin.java @@ -34,7 +34,7 @@ private void init(RegistryAccess.Frozen frozen, FeatureFlagSet featureFlagSet, C } @ModifyReturnValue(method = "listeners", at = @At("RETURN")) - private static List listeners(List list) { + private List listeners(List list) { List result = new ArrayList<>(list); result.add(PackTestLibrary.INSTANCE); return result; diff --git a/src/main/java/io/github/misode/packtest/mixin/TagLoaderMixin.java b/src/main/java/io/github/misode/packtest/mixin/TagLoaderMixin.java index 7632080..f6ebc41 100644 --- a/src/main/java/io/github/misode/packtest/mixin/TagLoaderMixin.java +++ b/src/main/java/io/github/misode/packtest/mixin/TagLoaderMixin.java @@ -21,7 +21,7 @@ public class TagLoaderMixin { private static Logger LOGGER; @WrapOperation(method = "load", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;error(Ljava/lang/String;[Ljava/lang/Object;)V", remap = false)) - private static void catchTagError(Logger logger, String message, Object[] args, Operation original) { + private void catchTagError(Logger logger, String message, Object[] args, Operation original) { String error = ((Exception)args[3]).getMessage().replaceFirst("^[A-Za-z0-9.]+Exception: ", ""); String type = ((ResourceLocation)args[1]).getPath().replaceFirst("tags/", "").replaceFirst("s?/.*", ""); LoadDiagnostics.error(LOGGER, type + " tag", ((ResourceLocation)args[0]).toString(), error); diff --git a/src/main/java/io/github/misode/packtest/mixin/server/EulaMixin.java b/src/main/java/io/github/misode/packtest/mixin/server/EulaMixin.java index 104709e..78746b6 100644 --- a/src/main/java/io/github/misode/packtest/mixin/server/EulaMixin.java +++ b/src/main/java/io/github/misode/packtest/mixin/server/EulaMixin.java @@ -21,7 +21,7 @@ public class EulaMixin { @Shadow @Final private boolean agreed; @WrapOperation(method = "readFile", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;warn(Ljava/lang/String;Ljava/lang/Object;)V", remap = false)) - private static void readFile(Logger logger, String message, Object path, Operation original) { + private void readFile(Logger logger, String message, Object path, Operation original) { if (!PackTest.isAutoEnabled()) { original.call(logger, message, path); } diff --git a/src/main/java/io/github/misode/packtest/mixin/server/MainMixin.java b/src/main/java/io/github/misode/packtest/mixin/server/MainMixin.java index fa18981..c141abc 100644 --- a/src/main/java/io/github/misode/packtest/mixin/server/MainMixin.java +++ b/src/main/java/io/github/misode/packtest/mixin/server/MainMixin.java @@ -15,7 +15,7 @@ */ @Mixin(Main.class) public class MainMixin { - @Inject(method = "main", cancellable = true, at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/server/packs/repository/ServerPacksSource;createPackRepository(Lnet/minecraft/world/level/storage/LevelStorageSource$LevelStorageAccess;)Lnet/minecraft/server/packs/repository/PackRepository;")) + @Inject(method = "main", cancellable = true, at = @At(value = "INVOKE_ASSIGN", target = "Lnet/minecraft/server/packs/repository/ServerPacksSource;createPackRepository(Lnet/minecraft/world/level/storage/LevelStorageSource$LevelStorageAccess;)Lnet/minecraft/server/packs/repository/PackRepository;", shift = At.Shift.AFTER)) private static void mainStartServer(String[] args, CallbackInfo ci, @Local LevelStorageSource.LevelStorageAccess storage, @Local PackRepository packRepository) { if (PackTest.isAutoEnabled()) { PackTest.runHeadlessServer(storage, packRepository); diff --git a/src/main/resources/data/packtest/structures/empty.nbt b/src/main/resources/data/packtest/structure/empty.nbt similarity index 100% rename from src/main/resources/data/packtest/structures/empty.nbt rename to src/main/resources/data/packtest/structure/empty.nbt