diff --git a/build.gradle b/build.gradle index 020604e..8e9b42b 100644 --- a/build.gradle +++ b/build.gradle @@ -1,5 +1,5 @@ plugins { - id 'fabric-loom' version '0.12-SNAPSHOT' + id 'fabric-loom' version '1.1-SNAPSHOT' id 'maven-publish' id "com.modrinth.minotaur" version "2.+" //id 'com.matthewprenger.cursegradle' version '1.4.0' @@ -29,11 +29,12 @@ dependencies { //modCompileOnly 'curse.maven:repurposed-structures-fabric-391366:3542863' - modImplementation include("eu.pb4:sgui:1.1.0+1.19") - modImplementation include("eu.pb4:hologram-api:0.2.2+1.19") - modImplementation include("eu.pb4:polymer:0.2.0+1.19") - modImplementation include("fr.catcore:server-translations-api:1.4.14+1.19-rc2") - modImplementation include("me.lucko:fabric-permissions-api:0.1-SNAPSHOT") + modImplementation include("eu.pb4:sgui:1.2.1+1.19.3") + modImplementation include("eu.pb4:hologram-api:0.2.3+1.19.3") + modImplementation include("eu.pb4:polymer-common:0.4.9+1.19.4") + modImplementation include("eu.pb4:polymer-core:0.4.9+1.19.4") + modImplementation include("xyz.nucleoid:server-translations-api:2.0.0-beta.2+1.19.4-pre2") + modImplementation include("me.lucko:fabric-permissions-api:0.2-SNAPSHOT") } loom { diff --git a/gradle.properties b/gradle.properties index db654dc..91a35d3 100644 --- a/gradle.properties +++ b/gradle.properties @@ -2,22 +2,22 @@ org.gradle.jvmargs=-Xmx2G # Fabric Properties # check these on https://fabricmc.net/versions.html -minecraft_version=1.19 -yarn_mappings=1.19+build.1 -loader_version=0.14.6 +minecraft_version=1.19.4 +yarn_mappings=1.19.4+build.2 +loader_version=0.14.19 # Mod Properties mod_version=3.0.0 maven_group=eu.pb4.polymer-ports archives_base_name=wraith-waystones # Dependencies # currently not on the main fabric site, check on the maven: https://maven.fabricmc.net/net/fabricmc/fabric-api/fabric-api -fabric_version=0.55.1+1.19 +fabric_version=0.81.1+1.19.4 # Optional Dependencies # Journeymap & api -journeymap_api_version=1.18.2-1.8-fabric-SNAPSHOT +journeymap_api_version=1.19.4-1.9-fabric-SNAPSHOT jm_project_id=32274 -jm_file_id=3796377 +jm_file_id=4444873 rs_project_id=391366 -rs_file_id=3794326 +rs_file_id=4465193 sub_version=0 \ No newline at end of file diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index e750102..f72df95 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -1,5 +1,5 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-7.3-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.0.1-bin.zip zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists diff --git a/src/main/java/wraith/fwaystones/block/WaystoneBlock.java b/src/main/java/wraith/fwaystones/block/WaystoneBlock.java index 89ba3f7..f5aab52 100644 --- a/src/main/java/wraith/fwaystones/block/WaystoneBlock.java +++ b/src/main/java/wraith/fwaystones/block/WaystoneBlock.java @@ -1,6 +1,6 @@ package wraith.fwaystones.block; -import eu.pb4.polymer.api.block.PolymerBlock; +import eu.pb4.polymer.core.api.block.PolymerBlock; import net.minecraft.block.*; import net.minecraft.block.entity.BlockEntity; import net.minecraft.block.entity.BlockEntityTicker; @@ -15,6 +15,7 @@ import net.minecraft.item.ItemStack; import net.minecraft.item.Items; import net.minecraft.nbt.NbtCompound; +import net.minecraft.registry.Registries; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.server.world.ServerWorld; import net.minecraft.state.StateManager; @@ -31,9 +32,6 @@ import net.minecraft.util.hit.BlockHitResult; import net.minecraft.util.math.BlockPos; import net.minecraft.util.math.Direction; -import net.minecraft.util.registry.Registry; -import net.minecraft.util.shape.VoxelShape; -import net.minecraft.util.shape.VoxelShapes; import net.minecraft.world.BlockView; import net.minecraft.world.World; import net.minecraft.world.WorldAccess; @@ -126,7 +124,7 @@ public BlockState getPlacementState(ItemPlacementContext ctx) { if (blockPos.getY() < world.getTopY() - 1 && world.getBlockState(blockPos.up()).canReplace(ctx)) { return this.getDefaultState() - .with(FACING, ctx.getPlayerFacing().getOpposite()) + .with(FACING, ctx.getPlayerLookDirection().getOpposite()) .with(HALF, DoubleBlockHalf.LOWER) .with(WATERLOGGED, fluidState.getFluid() == Fluids.WATER) .with(ACTIVE, hasOwner); @@ -251,7 +249,7 @@ public ActionResult onUse(BlockState state, World world, BlockPos pos, PlayerEnt var config = Config.getInstance(); var discoverItemId = config.getDiscoverItem(); if (discoverItemId != null && !player.isCreative()) { - var discoverItem = Registry.ITEM.get(discoverItemId); + var discoverItem = Registries.ITEM.get(discoverItemId); var discoverAmount = config.getDiscoverItemAmount(); if (!Utils.containsItem(player.getInventory(), discoverItem, discoverAmount)) { player.sendMessage(Text.translatable( @@ -332,13 +330,15 @@ public void onStateReplaced(BlockState state, World world, BlockPos pos, BlockSt super.onStateReplaced(state, world, pos, newState, moved); } + @Override public FluidState getFluidState(BlockState state) { return state.get(WATERLOGGED) ? Fluids.WATER.getStill(false) : super.getFluidState(state); } + @Override public BlockState getStateForNeighborUpdate(BlockState state, Direction direction, BlockState neighborState, WorldAccess world, BlockPos pos, BlockPos neighborPos) { if (state.get(WATERLOGGED)) { - world.createAndScheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); + world.scheduleFluidTick(pos, Fluids.WATER, Fluids.WATER.getTickRate(world)); } return super.getStateForNeighborUpdate(state, direction, neighborState, world, pos, neighborPos); } diff --git a/src/main/java/wraith/fwaystones/block/WaystoneBlockEntity.java b/src/main/java/wraith/fwaystones/block/WaystoneBlockEntity.java index c40e602..e97ebe0 100644 --- a/src/main/java/wraith/fwaystones/block/WaystoneBlockEntity.java +++ b/src/main/java/wraith/fwaystones/block/WaystoneBlockEntity.java @@ -2,8 +2,7 @@ import eu.pb4.holograms.api.elements.SpacingHologramElement; import eu.pb4.holograms.api.holograms.WorldHologram; -import eu.pb4.polymer.api.utils.PolymerObject; -import eu.pb4.sgui.virtual.VirtualScreenHandlerInterface; +import eu.pb4.polymer.core.api.utils.PolymerObject; import net.fabricmc.fabric.api.dimension.v1.FabricDimensions; import net.fabricmc.fabric.api.util.NbtType; import net.minecraft.block.BlockState; diff --git a/src/main/java/wraith/fwaystones/block/WaystoneStyle.java b/src/main/java/wraith/fwaystones/block/WaystoneStyle.java index 9f8a400..02f2cbd 100644 --- a/src/main/java/wraith/fwaystones/block/WaystoneStyle.java +++ b/src/main/java/wraith/fwaystones/block/WaystoneStyle.java @@ -1,14 +1,14 @@ package wraith.fwaystones.block; -import net.minecraft.block.AbstractButtonBlock; import net.minecraft.block.BlockState; +import net.minecraft.block.ButtonBlock; import net.minecraft.block.WallBlock; import net.minecraft.block.enums.WallMountLocation; import net.minecraft.block.enums.WallShape; public record WaystoneStyle(BlockState upper, BlockState lower, BlockState upperWater, BlockState lowerWater) { - public static WaystoneStyle simple(AbstractButtonBlock top, WallBlock bottom) { - var baseTop = top.getDefaultState().with(AbstractButtonBlock.FACE, WallMountLocation.FLOOR); + public static WaystoneStyle simple(ButtonBlock top, WallBlock bottom) { + var baseTop = top.getDefaultState().with(ButtonBlock.FACE, WallMountLocation.FLOOR); var baseBottom = bottom.getDefaultState() .with(WallBlock.UP, true) .with(WallBlock.EAST_SHAPE, WallShape.LOW) diff --git a/src/main/java/wraith/fwaystones/gui/PagedGui.java b/src/main/java/wraith/fwaystones/gui/PagedGui.java index f48472f..c8db9af 100644 --- a/src/main/java/wraith/fwaystones/gui/PagedGui.java +++ b/src/main/java/wraith/fwaystones/gui/PagedGui.java @@ -184,6 +184,6 @@ public static DisplayElement empty() { } public static final void playClickSound(ServerPlayerEntity player) { - player.playSound(SoundEvents.UI_BUTTON_CLICK, SoundCategory.MASTER, 1, 1); + player.playSound(SoundEvents.UI_BUTTON_CLICK.value(), SoundCategory.MASTER, 1, 1); } } diff --git a/src/main/java/wraith/fwaystones/gui/UniversalWaystoneGui.java b/src/main/java/wraith/fwaystones/gui/UniversalWaystoneGui.java index b5f8b2d..645beca 100644 --- a/src/main/java/wraith/fwaystones/gui/UniversalWaystoneGui.java +++ b/src/main/java/wraith/fwaystones/gui/UniversalWaystoneGui.java @@ -6,12 +6,12 @@ import net.minecraft.enchantment.Enchantments; import net.minecraft.item.Item; import net.minecraft.item.Items; +import net.minecraft.registry.Registries; import net.minecraft.screen.slot.SlotActionType; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; import net.minecraft.util.Hand; import net.minecraft.util.math.MathHelper; -import net.minecraft.util.registry.Registry; import org.jetbrains.annotations.Nullable; import wraith.fwaystones.FabricWaystones; import wraith.fwaystones.access.PlayerAccess; @@ -236,7 +236,7 @@ protected DisplayElement getCost() { type = "level"; break; case "item": - item = Registry.ITEM.get(Config.getInstance().teleportCostItem()); + item = Registries.ITEM.get(Config.getInstance().teleportCostItem()); type = "item"; break; default: diff --git a/src/main/java/wraith/fwaystones/item/AbyssWatcherItem.java b/src/main/java/wraith/fwaystones/item/AbyssWatcherItem.java index c75aa38..19417d1 100644 --- a/src/main/java/wraith/fwaystones/item/AbyssWatcherItem.java +++ b/src/main/java/wraith/fwaystones/item/AbyssWatcherItem.java @@ -1,6 +1,7 @@ package wraith.fwaystones.item; -import eu.pb4.polymer.api.item.PolymerItem; +import eu.pb4.polymer.core.api.item.PolymerItem; +import net.minecraft.client.item.TooltipContext; import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; @@ -37,9 +38,8 @@ public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayerEntity pla return Items.ENDER_EYE; } - @Override - public ItemStack getPolymerItemStack(ItemStack itemStack, @Nullable ServerPlayerEntity player) { - var stack = PolymerItem.super.getPolymerItemStack(itemStack, player); + public ItemStack getPolymerItemStack(ItemStack itemStack, TooltipContext context, @Nullable ServerPlayerEntity player) { + var stack = PolymerItem.super.getPolymerItemStack(itemStack, context, player); stack.addEnchantment(Enchantments.LURE, 2); return stack; } diff --git a/src/main/java/wraith/fwaystones/item/LocalVoidItem.java b/src/main/java/wraith/fwaystones/item/LocalVoidItem.java index 2795ab8..2a6c682 100644 --- a/src/main/java/wraith/fwaystones/item/LocalVoidItem.java +++ b/src/main/java/wraith/fwaystones/item/LocalVoidItem.java @@ -1,6 +1,6 @@ package wraith.fwaystones.item; -import eu.pb4.polymer.api.item.PolymerItem; +import eu.pb4.polymer.core.api.item.PolymerItem; import net.minecraft.client.item.TooltipContext; import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.player.PlayerEntity; @@ -109,8 +109,8 @@ public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayerEntity pla } @Override - public ItemStack getPolymerItemStack(ItemStack itemStack, @Nullable ServerPlayerEntity player) { - var stack = PolymerItem.super.getPolymerItemStack(itemStack, player); + public ItemStack getPolymerItemStack(ItemStack itemStack, TooltipContext context, @Nullable ServerPlayerEntity player) { + var stack = PolymerItem.super.getPolymerItemStack(itemStack, context, player); stack.addEnchantment(Enchantments.LURE, 2); return stack; } diff --git a/src/main/java/wraith/fwaystones/item/PocketWormholeItem.java b/src/main/java/wraith/fwaystones/item/PocketWormholeItem.java index 1010ad2..70ac2b2 100644 --- a/src/main/java/wraith/fwaystones/item/PocketWormholeItem.java +++ b/src/main/java/wraith/fwaystones/item/PocketWormholeItem.java @@ -1,6 +1,7 @@ package wraith.fwaystones.item; -import eu.pb4.polymer.api.item.PolymerItem; +import eu.pb4.polymer.core.api.item.PolymerItem; +import net.minecraft.client.item.TooltipContext; import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.Item; @@ -37,9 +38,8 @@ public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayerEntity pla return Items.ENDER_PEARL; } - @Override - public ItemStack getPolymerItemStack(ItemStack itemStack, @Nullable ServerPlayerEntity player) { - var stack = PolymerItem.super.getPolymerItemStack(itemStack, player); + public ItemStack getPolymerItemStack(ItemStack itemStack, TooltipContext context, @Nullable ServerPlayerEntity player) { + var stack = PolymerItem.super.getPolymerItemStack(itemStack, context, player); stack.addEnchantment(Enchantments.LURE, 2); return stack; } diff --git a/src/main/java/wraith/fwaystones/item/ScrollOfInfiniteKnowledgeItem.java b/src/main/java/wraith/fwaystones/item/ScrollOfInfiniteKnowledgeItem.java index 0c550dc..97854a2 100644 --- a/src/main/java/wraith/fwaystones/item/ScrollOfInfiniteKnowledgeItem.java +++ b/src/main/java/wraith/fwaystones/item/ScrollOfInfiniteKnowledgeItem.java @@ -1,6 +1,6 @@ package wraith.fwaystones.item; -import eu.pb4.polymer.api.item.PolymerItem; +import eu.pb4.polymer.core.api.item.PolymerItem; import net.minecraft.client.item.TooltipContext; import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.player.PlayerEntity; @@ -99,8 +99,8 @@ public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayerEntity pla } @Override - public ItemStack getPolymerItemStack(ItemStack itemStack, @Nullable ServerPlayerEntity player) { - var stack = PolymerItem.super.getPolymerItemStack(itemStack, player); + public ItemStack getPolymerItemStack(ItemStack itemStack, TooltipContext context, @Nullable ServerPlayerEntity player) { + var stack = PolymerItem.super.getPolymerItemStack(itemStack, context, player); stack.addEnchantment(Enchantments.LURE, 2); return stack; } diff --git a/src/main/java/wraith/fwaystones/item/WaystoneDebuggerItem.java b/src/main/java/wraith/fwaystones/item/WaystoneDebuggerItem.java index 27e54e3..a511fdd 100644 --- a/src/main/java/wraith/fwaystones/item/WaystoneDebuggerItem.java +++ b/src/main/java/wraith/fwaystones/item/WaystoneDebuggerItem.java @@ -1,6 +1,6 @@ package wraith.fwaystones.item; -import eu.pb4.polymer.api.item.PolymerItem; +import eu.pb4.polymer.core.api.item.PolymerItem; import net.minecraft.block.enums.DoubleBlockHalf; import net.minecraft.client.item.TooltipContext; import net.minecraft.entity.LivingEntity; diff --git a/src/main/java/wraith/fwaystones/item/WaystoneItem.java b/src/main/java/wraith/fwaystones/item/WaystoneItem.java index fcbf1f9..c83df09 100644 --- a/src/main/java/wraith/fwaystones/item/WaystoneItem.java +++ b/src/main/java/wraith/fwaystones/item/WaystoneItem.java @@ -1,6 +1,6 @@ package wraith.fwaystones.item; -import eu.pb4.polymer.api.item.PolymerItem; +import eu.pb4.polymer.core.api.item.PolymerItem; import net.minecraft.block.Block; import net.minecraft.client.item.TooltipContext; import net.minecraft.enchantment.Enchantments; @@ -48,8 +48,8 @@ public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayerEntity pla } @Override - public ItemStack getPolymerItemStack(ItemStack itemStack, @Nullable ServerPlayerEntity player) { - var stack = PolymerItem.super.getPolymerItemStack(itemStack, player); + public ItemStack getPolymerItemStack(ItemStack itemStack, TooltipContext context, @Nullable ServerPlayerEntity player) { + var stack = PolymerItem.super.getPolymerItemStack(itemStack, context, player); stack.addEnchantment(Enchantments.LURE, 2); return stack; } diff --git a/src/main/java/wraith/fwaystones/item/WaystoneScrollItem.java b/src/main/java/wraith/fwaystones/item/WaystoneScrollItem.java index 507cf35..06ec9e3 100644 --- a/src/main/java/wraith/fwaystones/item/WaystoneScrollItem.java +++ b/src/main/java/wraith/fwaystones/item/WaystoneScrollItem.java @@ -1,6 +1,6 @@ package wraith.fwaystones.item; -import eu.pb4.polymer.api.item.PolymerItem; +import eu.pb4.polymer.core.api.item.PolymerItem; import net.minecraft.client.item.TooltipContext; import net.minecraft.enchantment.Enchantments; import net.minecraft.entity.player.PlayerEntity; @@ -142,8 +142,8 @@ public Item getPolymerItem(ItemStack itemStack, @Nullable ServerPlayerEntity pla } @Override - public ItemStack getPolymerItemStack(ItemStack itemStack, @Nullable ServerPlayerEntity player) { - var stack = PolymerItem.super.getPolymerItemStack(itemStack, player); + public ItemStack getPolymerItemStack(ItemStack itemStack, TooltipContext context, @Nullable ServerPlayerEntity player) { + var stack = PolymerItem.super.getPolymerItemStack(itemStack, context, player); stack.addEnchantment(Enchantments.LURE, 2); return stack; } diff --git a/src/main/java/wraith/fwaystones/mixin/LivingEntityMixin.java b/src/main/java/wraith/fwaystones/mixin/LivingEntityMixin.java index bfc485b..5e131cb 100644 --- a/src/main/java/wraith/fwaystones/mixin/LivingEntityMixin.java +++ b/src/main/java/wraith/fwaystones/mixin/LivingEntityMixin.java @@ -8,6 +8,7 @@ import net.minecraft.entity.player.PlayerEntity; import net.minecraft.item.ItemStack; import net.minecraft.network.packet.s2c.play.EntityStatusS2CPacket; +import net.minecraft.registry.tag.DamageTypeTags; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.util.Hand; import org.spongepowered.asm.mixin.Mixin; @@ -82,7 +83,7 @@ public void revive(DamageSource source, CallbackInfoReturnable cir) { } } } - cir.setReturnValue(teleported || !source.isOutOfWorld()); + cir.setReturnValue(teleported || !source.isIn(DamageTypeTags.BYPASSES_INVULNERABILITY)); cir.cancel(); } diff --git a/src/main/java/wraith/fwaystones/mixin/PlayerEntityMixin.java b/src/main/java/wraith/fwaystones/mixin/PlayerEntityMixin.java index 93989c0..e2473b1 100644 --- a/src/main/java/wraith/fwaystones/mixin/PlayerEntityMixin.java +++ b/src/main/java/wraith/fwaystones/mixin/PlayerEntityMixin.java @@ -9,6 +9,7 @@ import net.minecraft.nbt.NbtList; import net.minecraft.nbt.NbtString; import net.minecraft.network.PacketByteBuf; +import net.minecraft.registry.tag.DamageTypeTags; import net.minecraft.server.network.ServerPlayerEntity; import org.spongepowered.asm.mixin.Mixin; import org.spongepowered.asm.mixin.injection.At; @@ -48,7 +49,7 @@ public void tick(CallbackInfo ci) { @Inject(method = "applyDamage", at = @At(value = "INVOKE", target = "Lnet/minecraft/entity/player/PlayerEntity;applyArmorToDamage(Lnet/minecraft/entity/damage/DamageSource;F)F")) public void applyDamage(DamageSource source, float amount, CallbackInfo ci) { - if (source == DamageSource.OUT_OF_WORLD) { + if (source.isIn(DamageTypeTags.BYPASSES_INVULNERABILITY)) { return; } setTeleportCooldown(Config.getInstance().getCooldownWhenHurt()); diff --git a/src/main/java/wraith/fwaystones/mixin/StructurePoolBasedGeneratorMixin.java b/src/main/java/wraith/fwaystones/mixin/StructurePoolBasedGeneratorMixin.java index a96f029..c079507 100644 --- a/src/main/java/wraith/fwaystones/mixin/StructurePoolBasedGeneratorMixin.java +++ b/src/main/java/wraith/fwaystones/mixin/StructurePoolBasedGeneratorMixin.java @@ -1,11 +1,11 @@ package wraith.fwaystones.mixin; +import net.minecraft.registry.Registry; import net.minecraft.structure.PoolStructurePiece; import net.minecraft.structure.StructureTemplateManager; import net.minecraft.structure.pool.StructurePool; import net.minecraft.structure.pool.StructurePoolBasedGenerator; import net.minecraft.util.math.random.Random; -import net.minecraft.util.registry.Registry; import net.minecraft.util.shape.VoxelShape; import net.minecraft.world.HeightLimitView; import net.minecraft.world.gen.chunk.ChunkGenerator; @@ -25,7 +25,7 @@ @Mixin(StructurePoolBasedGenerator.class) public class StructurePoolBasedGeneratorMixin { - @Inject(method = "generate(Lnet/minecraft/world/gen/noise/NoiseConfig;IZLnet/minecraft/world/gen/chunk/ChunkGenerator;Lnet/minecraft/structure/StructureTemplateManager;Lnet/minecraft/world/HeightLimitView;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/util/registry/Registry;Lnet/minecraft/structure/PoolStructurePiece;Ljava/util/List;Lnet/minecraft/util/shape/VoxelShape;)V", + @Inject(method = "generate(Lnet/minecraft/world/gen/noise/NoiseConfig;IZLnet/minecraft/world/gen/chunk/ChunkGenerator;Lnet/minecraft/structure/StructureTemplateManager;Lnet/minecraft/world/HeightLimitView;Lnet/minecraft/util/math/random/Random;Lnet/minecraft/registry/Registry;Lnet/minecraft/structure/PoolStructurePiece;Ljava/util/List;Lnet/minecraft/util/shape/VoxelShape;)V", at = @At(value = "INVOKE", target = "Ljava/util/Deque;addLast(Ljava/lang/Object;)V"), locals = LocalCapture.CAPTURE_FAILSOFT) private static void preGenerate2(NoiseConfig noiseConfig, int maxSize, boolean modifyBoundingBox, ChunkGenerator chunkGenerator, StructureTemplateManager structureTemplateManager, HeightLimitView heightLimitView, Random random, Registry structurePoolRegistry, PoolStructurePiece firstPiece, List pieces, VoxelShape pieceShape, CallbackInfo ci, StructurePoolBasedGenerator.StructurePoolGenerator structurePoolGenerator) { diff --git a/src/main/java/wraith/fwaystones/mixin/StructurePoolBasedGenerator_StructurePoolGeneratorMixin.java b/src/main/java/wraith/fwaystones/mixin/StructurePoolBasedGenerator_StructurePoolGeneratorMixin.java index 1339d55..bd751fd 100644 --- a/src/main/java/wraith/fwaystones/mixin/StructurePoolBasedGenerator_StructurePoolGeneratorMixin.java +++ b/src/main/java/wraith/fwaystones/mixin/StructurePoolBasedGenerator_StructurePoolGeneratorMixin.java @@ -1,5 +1,7 @@ package wraith.fwaystones.mixin; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.structure.PoolStructurePiece; import net.minecraft.structure.StructureTemplate; import net.minecraft.structure.pool.SinglePoolElement; @@ -45,12 +47,12 @@ public class StructurePoolBasedGenerator_StructurePoolGeneratorMixin implements @Unique private static boolean isWaystone(StructurePoolElement element) { return element instanceof SinglePoolElement singlePoolElement - && ((SinglePoolElementAccessor) singlePoolElement) - .getLocation() - .left() - .orElse(new Identifier("empty")) - .getNamespace() - .equals(FabricWaystones.MOD_ID); + && ((SinglePoolElementAccessor) singlePoolElement) + .getLocation() + .left() + .orElse(new Identifier("empty")) + .getNamespace() + .equals(FabricWaystones.MOD_ID); } @Unique @@ -69,54 +71,56 @@ private void fabricwaystones_startGeneratePiece(PoolStructurePiece piece, } @Inject(method = "generatePiece(Lnet/minecraft/structure/PoolStructurePiece;Lorg/apache/commons/lang3/mutable/MutableObject;IZLnet/minecraft/world/HeightLimitView;Lnet/minecraft/world/gen/noise/NoiseConfig;)V", - at = @At(value = "INVOKE", target = "Ljava/util/List;addAll(Ljava/util/Collection;)Z", ordinal = 0, shift = At.Shift.AFTER, remap = false), - locals = LocalCapture.CAPTURE_FAILSOFT) - private void fabricwaystones_limitWaystonePieceSpawning(PoolStructurePiece piece, - MutableObject pieceShape, - int minY, - boolean modifyBoundingBox, - HeightLimitView world, - NoiseConfig noiseConfig, - CallbackInfo ci, - StructurePoolElement structurePoolElement, - BlockPos blockPos, - BlockRotation blockRotation, - StructurePool.Projection projection, - boolean bl, - MutableObject mutableObject, - BlockBox blockBox, - int i, - Iterator var14, - StructureTemplate.StructureBlockInfo structureBlockInfo, - Direction direction, - BlockPos blockPos2, - BlockPos blockPos3, - int j, - int k, - Identifier identifier, - Optional optional, - Identifier identifier2, - Optional optional2, - MutableObject mutableObject2, - boolean bl2, - List list) { + at = @At(value = "INVOKE", target = "Ljava/util/List;addAll(Ljava/util/Collection;)Z", ordinal = 0, shift = At.Shift.AFTER, remap = false), + locals = LocalCapture.CAPTURE_FAILSOFT) + private void fabricwaystones_limitWaystonePieceSpawning( + PoolStructurePiece piece, + MutableObject pieceShape, + int minY, + boolean modifyBoundingBox, + HeightLimitView world, + NoiseConfig noiseConfig, + CallbackInfo ci, + StructurePoolElement structurePoolElement, + BlockPos blockPos, + BlockRotation blockRotation, + StructurePool.Projection projection, + boolean bl, + MutableObject mutableObject, + BlockBox blockBox, + int i, + Iterator var15, + StructureTemplate.StructureBlockInfo structureBlockInfo, + Direction direction, + BlockPos blockPos2, + BlockPos blockPos3, + int j, + int k, + RegistryKey registryKey, + Optional optional, + RegistryEntry registryEntry, + RegistryEntry registryEntry2, + MutableObject mutableObject2, + boolean bl2, + List list + ) { if (!Config.getInstance().generateInVillages() || - maxWaystoneCount < 0 || - optional.isEmpty() || - !WaystonesWorldgen.VANILLA_VILLAGES.containsKey(optional.get().getId()) - ) return; + maxWaystoneCount < 0 || + !WaystonesWorldgen.VANILLA_VILLAGES.containsKey(registryKey.getValue())) { + return; + } long villageWaystoneCount = children.stream() - .filter(element -> element instanceof PoolStructurePiece poolStructurePiece - && poolStructurePiece.getPoolElement() instanceof SinglePoolElement singlePoolElement - && ((SinglePoolElementAccessor) singlePoolElement) - .getLocation() - .left() - .orElse(new Identifier("empty")) - .getNamespace() - .equals(FabricWaystones.MOD_ID) - ) - .count(); + .filter(element -> element instanceof PoolStructurePiece poolStructurePiece + && poolStructurePiece.getPoolElement() instanceof SinglePoolElement singlePoolElement + && ((SinglePoolElementAccessor) singlePoolElement) + .getLocation() + .left() + .orElse(new Identifier("empty")) + .getNamespace() + .equals(FabricWaystones.MOD_ID) + ) + .count(); final boolean hasMaxWaystones = villageWaystoneCount >= maxWaystoneCount; list.removeIf(element -> hasMaxWaystones == isWaystone(element)); } -} +} \ No newline at end of file diff --git a/src/main/java/wraith/fwaystones/mixin/TagGroupLoaderMixin.java b/src/main/java/wraith/fwaystones/mixin/TagGroupLoaderMixin.java index b403cbd..59cc5ca 100644 --- a/src/main/java/wraith/fwaystones/mixin/TagGroupLoaderMixin.java +++ b/src/main/java/wraith/fwaystones/mixin/TagGroupLoaderMixin.java @@ -1,8 +1,8 @@ package wraith.fwaystones.mixin; +import net.minecraft.registry.tag.TagEntry; +import net.minecraft.registry.tag.TagGroupLoader; import net.minecraft.resource.ResourceManager; -import net.minecraft.tag.TagEntry; -import net.minecraft.tag.TagGroupLoader; import net.minecraft.util.Identifier; import org.spongepowered.asm.mixin.Final; import org.spongepowered.asm.mixin.Mixin; diff --git a/src/main/java/wraith/fwaystones/registry/BlockEntityRegistry.java b/src/main/java/wraith/fwaystones/registry/BlockEntityRegistry.java index 03e665b..8cd7cc9 100644 --- a/src/main/java/wraith/fwaystones/registry/BlockEntityRegistry.java +++ b/src/main/java/wraith/fwaystones/registry/BlockEntityRegistry.java @@ -1,9 +1,10 @@ package wraith.fwaystones.registry; -import eu.pb4.polymer.api.block.PolymerBlockUtils; +import eu.pb4.polymer.core.api.block.PolymerBlockUtils; import net.fabricmc.fabric.api.object.builder.v1.block.entity.FabricBlockEntityTypeBuilder; import net.minecraft.block.entity.BlockEntityType; -import net.minecraft.util.registry.Registry; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; import wraith.fwaystones.block.WaystoneBlockEntity; import wraith.fwaystones.util.Utils; @@ -21,8 +22,8 @@ public final class BlockEntityRegistry { BlockRegistry.BLACKSTONE_BRICK_WAYSTONE ).build(null); - public static void registerBlockEntities() { - Registry.register(Registry.BLOCK_ENTITY_TYPE, Utils.ID("waystone"), WAYSTONE_BLOCK_ENTITY); + public static void registerBlockEntities() { + Registry.register(Registries.BLOCK_ENTITY_TYPE, Utils.ID("waystone"), WAYSTONE_BLOCK_ENTITY); PolymerBlockUtils.registerBlockEntity(WAYSTONE_BLOCK_ENTITY); } diff --git a/src/main/java/wraith/fwaystones/registry/BlockRegistry.java b/src/main/java/wraith/fwaystones/registry/BlockRegistry.java index 5da2174..6648a2b 100644 --- a/src/main/java/wraith/fwaystones/registry/BlockRegistry.java +++ b/src/main/java/wraith/fwaystones/registry/BlockRegistry.java @@ -4,7 +4,8 @@ import net.minecraft.block.Block; import net.minecraft.block.Material; import net.minecraft.block.*; -import net.minecraft.util.registry.Registry; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; import wraith.fwaystones.block.WaystoneBlock; import wraith.fwaystones.util.Config; import wraith.fwaystones.util.Utils; @@ -39,11 +40,11 @@ public static void registerBlocks() { private static void registerAndAdd(String id, Block block) { WAYSTONE_BLOCKS.put(id, block); - Registry.register(Registry.BLOCK, Utils.ID(id), block); + Registry.register(Registries.BLOCK, Utils.ID(id), block); } private static WaystoneStyle style(Block top, Block bottom) { - return WaystoneStyle.simple((AbstractButtonBlock) top, (WallBlock) bottom); + return WaystoneStyle.simple((ButtonBlock) top, (WallBlock) bottom); } } diff --git a/src/main/java/wraith/fwaystones/registry/CompatRegistry.java b/src/main/java/wraith/fwaystones/registry/CompatRegistry.java index b3d2c43..7dd5627 100644 --- a/src/main/java/wraith/fwaystones/registry/CompatRegistry.java +++ b/src/main/java/wraith/fwaystones/registry/CompatRegistry.java @@ -1,7 +1,8 @@ package wraith.fwaystones.registry; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; import net.minecraft.util.Identifier; -import net.minecraft.util.registry.Registry; import wraith.fwaystones.util.Config; import wraith.fwaystones.util.Utils; @@ -9,16 +10,17 @@ public final class CompatRegistry { - private CompatRegistry() {} + private CompatRegistry() { + } @SuppressWarnings("unchecked") public static void init() { - Registry.REGISTRIES.getOrEmpty(new Identifier("repurposed_structures", "json_conditions")) - .ifPresent(registry -> Registry.register( - (Registry>) registry, - Utils.ID("config"), - () -> Config.getInstance().generateInVillages() - )); + Registries.REGISTRIES.getOrEmpty(new Identifier("repurposed_structures", "json_conditions")) + .ifPresent(registry -> Registry.register( + (Registry>) registry, + Utils.ID("config"), + () -> Config.getInstance().generateInVillages() + )); } } diff --git a/src/main/java/wraith/fwaystones/registry/ItemRegistry.java b/src/main/java/wraith/fwaystones/registry/ItemRegistry.java index 2c3aae2..d2cc10a 100644 --- a/src/main/java/wraith/fwaystones/registry/ItemRegistry.java +++ b/src/main/java/wraith/fwaystones/registry/ItemRegistry.java @@ -1,12 +1,17 @@ package wraith.fwaystones.registry; +import eu.pb4.polymer.core.api.item.PolymerItemGroupUtils; import net.fabricmc.fabric.api.item.v1.FabricItemSettings; +import net.fabricmc.fabric.api.itemgroup.v1.FabricItemGroup; import net.minecraft.item.Item; +import net.minecraft.item.ItemGroup; +import net.minecraft.item.ItemStack; import net.minecraft.item.Items; +import net.minecraft.registry.Registries; +import net.minecraft.registry.Registry; import net.minecraft.util.Rarity; -import net.minecraft.util.registry.Registry; +import wraith.fwaystones.FabricWaystones; import wraith.fwaystones.item.*; -import wraith.fwaystones.util.CustomItemGroup; import wraith.fwaystones.util.Utils; import java.util.HashMap; @@ -14,32 +19,33 @@ public final class ItemRegistry { private static final HashMap ITEMS = new HashMap<>(); + public static final ItemGroup WAYSTONE_GROUP = PolymerItemGroupUtils.builder(Utils.ID(FabricWaystones.MOD_ID)).icon(() -> new ItemStack(BlockRegistry.WAYSTONE)).entries((enabledFeatures, entries) -> ITEMS.values().stream().map(ItemStack::new).forEach(entries::add)).build(); private ItemRegistry() {} private static void registerItem(String id, Item item) { - ITEMS.put(id, Registry.register(Registry.ITEM, Utils.ID(id), item)); + ITEMS.put(id, Registry.register(Registries.ITEM, Utils.ID(id), item)); } public static void init() { if (!ITEMS.isEmpty()) { return; } - registerItem("waystone", new WaystoneItem(BlockRegistry.WAYSTONE, new FabricItemSettings().group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("desert_waystone", new WaystoneItem(BlockRegistry.DESERT_WAYSTONE, new FabricItemSettings().group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("red_desert_waystone", new WaystoneItem(BlockRegistry.RED_DESERT_WAYSTONE, new FabricItemSettings().group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("stone_brick_waystone", new WaystoneItem(BlockRegistry.STONE_BRICK_WAYSTONE, new FabricItemSettings().group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("nether_brick_waystone", new WaystoneItem(BlockRegistry.NETHER_BRICK_WAYSTONE, new FabricItemSettings().group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("red_nether_brick_waystone", new WaystoneItem(BlockRegistry.RED_NETHER_BRICK_WAYSTONE, new FabricItemSettings().group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("end_stone_brick_waystone", new WaystoneItem(BlockRegistry.ENDSTONE_BRICK_WAYSTONE, new FabricItemSettings().group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("deepslate_brick_waystone", new WaystoneItem(BlockRegistry.DEEPSLATE_BRICK_WAYSTONE, new FabricItemSettings().group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("blackstone_brick_waystone", new WaystoneItem(BlockRegistry.BLACKSTONE_BRICK_WAYSTONE, new FabricItemSettings().group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("pocket_wormhole", new PocketWormholeItem(new FabricItemSettings().maxCount(1).group(CustomItemGroup.WAYSTONE_GROUP).fireproof())); - registerItem("abyss_watcher", new AbyssWatcherItem(new FabricItemSettings().maxCount(4).group(CustomItemGroup.WAYSTONE_GROUP).fireproof())); - registerItem("waystone_scroll", new WaystoneScrollItem(new FabricItemSettings().maxCount(1).group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("local_void", new LocalVoidItem(new FabricItemSettings().maxCount(1).group(CustomItemGroup.WAYSTONE_GROUP))); - registerItem("void_totem", new VoidTotem(new FabricItemSettings().maxCount(1).group(CustomItemGroup.WAYSTONE_GROUP).rarity(Rarity.UNCOMMON))); - registerItem("scroll_of_infinite_knowledge", new ScrollOfInfiniteKnowledgeItem(new FabricItemSettings().maxCount(1).group(CustomItemGroup.WAYSTONE_GROUP).fireproof())); + registerItem("waystone", new WaystoneItem(BlockRegistry.WAYSTONE, new FabricItemSettings())); + registerItem("desert_waystone", new WaystoneItem(BlockRegistry.DESERT_WAYSTONE, new FabricItemSettings())); + registerItem("red_desert_waystone", new WaystoneItem(BlockRegistry.RED_DESERT_WAYSTONE, new FabricItemSettings())); + registerItem("stone_brick_waystone", new WaystoneItem(BlockRegistry.STONE_BRICK_WAYSTONE, new FabricItemSettings())); + registerItem("nether_brick_waystone", new WaystoneItem(BlockRegistry.NETHER_BRICK_WAYSTONE, new FabricItemSettings())); + registerItem("red_nether_brick_waystone", new WaystoneItem(BlockRegistry.RED_NETHER_BRICK_WAYSTONE, new FabricItemSettings())); + registerItem("end_stone_brick_waystone", new WaystoneItem(BlockRegistry.ENDSTONE_BRICK_WAYSTONE, new FabricItemSettings())); + registerItem("deepslate_brick_waystone", new WaystoneItem(BlockRegistry.DEEPSLATE_BRICK_WAYSTONE, new FabricItemSettings())); + registerItem("blackstone_brick_waystone", new WaystoneItem(BlockRegistry.BLACKSTONE_BRICK_WAYSTONE, new FabricItemSettings())); + registerItem("pocket_wormhole", new PocketWormholeItem(new FabricItemSettings().maxCount(1).fireproof())); + registerItem("abyss_watcher", new AbyssWatcherItem(new FabricItemSettings().maxCount(4).fireproof())); + registerItem("waystone_scroll", new WaystoneScrollItem(new FabricItemSettings().maxCount(1))); + registerItem("local_void", new LocalVoidItem(new FabricItemSettings().maxCount(1))); + registerItem("void_totem", new VoidTotem(new FabricItemSettings().maxCount(1).rarity(Rarity.UNCOMMON))); + registerItem("scroll_of_infinite_knowledge", new ScrollOfInfiniteKnowledgeItem(new FabricItemSettings().maxCount(1).fireproof())); registerItem("waystone_debugger", new WaystoneDebuggerItem(new FabricItemSettings().maxCount(1).fireproof().rarity(Rarity.EPIC))); } diff --git a/src/main/java/wraith/fwaystones/util/CustomItemGroup.java b/src/main/java/wraith/fwaystones/util/CustomItemGroup.java deleted file mode 100644 index b245ae1..0000000 --- a/src/main/java/wraith/fwaystones/util/CustomItemGroup.java +++ /dev/null @@ -1,12 +0,0 @@ -package wraith.fwaystones.util; - -import eu.pb4.polymer.api.item.PolymerItemGroup; -import net.minecraft.item.ItemGroup; -import net.minecraft.item.ItemStack; -import wraith.fwaystones.registry.BlockRegistry; -import net.minecraft.text.Text; - -public class CustomItemGroup { - public static final ItemGroup WAYSTONE_GROUP = PolymerItemGroup.create(Utils.ID("waystones"), Text.translatable("itemGroup.fwaystones.waystones"), () -> new ItemStack(BlockRegistry.WAYSTONE)); - -} diff --git a/src/main/java/wraith/fwaystones/util/Utils.java b/src/main/java/wraith/fwaystones/util/Utils.java index 1532287..097c728 100644 --- a/src/main/java/wraith/fwaystones/util/Utils.java +++ b/src/main/java/wraith/fwaystones/util/Utils.java @@ -8,6 +8,10 @@ import net.minecraft.entity.player.PlayerInventory; import net.minecraft.item.Item; import net.minecraft.item.ItemStack; +import net.minecraft.registry.Registries; +import net.minecraft.registry.RegistryKey; +import net.minecraft.registry.RegistryKeys; +import net.minecraft.registry.entry.RegistryEntry; import net.minecraft.server.MinecraftServer; import net.minecraft.structure.pool.StructurePool; import net.minecraft.structure.pool.StructurePoolElement; @@ -15,9 +19,6 @@ import net.minecraft.util.Hand; import net.minecraft.util.Identifier; import net.minecraft.util.math.Vec3d; -import net.minecraft.util.registry.Registry; -import net.minecraft.util.registry.RegistryEntry; -import net.minecraft.util.registry.RegistryKey; import net.minecraft.world.World; import wraith.fwaystones.FabricWaystones; import wraith.fwaystones.gui.UniversalWaystoneGui; @@ -37,7 +38,8 @@ public final class Utils { public static final DecimalFormat df = new DecimalFormat("#.##"); public static final Random random = new Random(); private static final RegistryKey EMPTY_PROCESSOR_LIST_KEY = RegistryKey.of( - Registry.STRUCTURE_PROCESSOR_LIST_KEY, new Identifier("minecraft", "empty")); + RegistryKeys.PROCESSOR_LIST, new Identifier("minecraft", "empty")); + private Utils() { } @@ -66,8 +68,8 @@ private static String generateUniqueId() { return "DeatHunter was here"; } var sb = new StringBuilder(); - char[] vowels = { 'a', 'e', 'i', 'o', 'u' }; - char[] consonants = { 'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z' }; + char[] vowels = {'a', 'e', 'i', 'o', 'u'}; + char[] consonants = {'b', 'c', 'd', 'f', 'g', 'h', 'j', 'k', 'l', 'm', 'n', 'p', 'q', 'r', 's', 't', 'v', 'w', 'x', 'y', 'z'}; for (int i = 0; i < 4; ++i) { var consonant = consonants[Utils.random.nextInt(consonants.length)]; if (i == 0) { @@ -82,12 +84,12 @@ private static String generateUniqueId() { public static void addToStructurePool(MinecraftServer server, Identifier village, Identifier waystone, int weight) { RegistryEntry emptyProcessorList = server.getRegistryManager() - .get(Registry.STRUCTURE_PROCESSOR_LIST_KEY) - .entryOf(EMPTY_PROCESSOR_LIST_KEY); + .get(RegistryKeys.PROCESSOR_LIST) + .entryOf(EMPTY_PROCESSOR_LIST_KEY); var poolGetter = server.getRegistryManager() - .get(Registry.STRUCTURE_POOL_KEY) - .getOrEmpty(village); + .get(RegistryKeys.TEMPLATE_POOL) + .getOrEmpty(village); if (poolGetter.isEmpty()) { FabricWaystones.LOGGER.error("Cannot add to " + village + " as it cannot be found!"); @@ -150,7 +152,7 @@ public static boolean canTeleport(PlayerEntity player, String hash, boolean take return false; } if (takeCost) { - player.damage(DamageSource.OUT_OF_WORLD, amount); + player.damage(player.getWorld().getDamageSources().magic(), amount); } return true; case "hunger": @@ -184,12 +186,12 @@ public static boolean canTeleport(PlayerEntity player, String hash, boolean take return true; case "item": Identifier itemId = Config.getInstance().teleportCostItem(); - Item item = Registry.ITEM.get(itemId); + Item item = Registries.ITEM.get(itemId); if (!containsItem(player.getInventory(), item, amount)) { return false; } if (takeCost) { - removeItem(player.getInventory(), Registry.ITEM.get(itemId), amount); + removeItem(player.getInventory(), Registries.ITEM.get(itemId), amount); if (player.world.isClient || FabricWaystones.WAYSTONE_STORAGE == null) { return true; @@ -208,7 +210,7 @@ public static boolean canTeleport(PlayerEntity player, String hash, boolean take } } if (!found) { - oldInventory.add(new ItemStack(Registry.ITEM.get(itemId), amount)); + oldInventory.add(new ItemStack(Registries.ITEM.get(itemId), amount)); } waystoneBE.setInventory(oldInventory); } diff --git a/src/main/java/wraith/fwaystones/util/WaystoneStorage.java b/src/main/java/wraith/fwaystones/util/WaystoneStorage.java index 5094d4d..edc24b1 100644 --- a/src/main/java/wraith/fwaystones/util/WaystoneStorage.java +++ b/src/main/java/wraith/fwaystones/util/WaystoneStorage.java @@ -156,7 +156,7 @@ public void loadOrSaveWaystones(boolean save) { } else { try { NbtCompound compoundTag = world.getPersistentStateManager() - .readNbt(ID, SharedConstants.getGameVersion().getWorldVersion()); + .readNbt(ID, SharedConstants.getGameVersion().getProtocolVersion()); state.writeNbt(compoundTag.getCompound("data")); } catch (IOException ignored) { } diff --git a/src/main/resources/fabric.mod.json b/src/main/resources/fabric.mod.json index cb151d9..7533870 100644 --- a/src/main/resources/fabric.mod.json +++ b/src/main/resources/fabric.mod.json @@ -28,9 +28,9 @@ ], "accessWidener": "fwaystones.accesswidener", "depends": { - "fabricloader": ">=0.13.3", + "fabricloader": ">=0.14.7", "fabric": "*", - "minecraft": "~1.19", + "minecraft": "~1.19.4", "java": ">=17" } } \ No newline at end of file diff --git a/src/main/resources/fwaystones.mixins.json b/src/main/resources/fwaystones.mixins.json index a0fa087..9362f87 100644 --- a/src/main/resources/fwaystones.mixins.json +++ b/src/main/resources/fwaystones.mixins.json @@ -17,11 +17,6 @@ "StructureStartAccessor", "TagGroupLoaderMixin" ], - "client": [ - "ClientPlayerEntityAccessor", - "ClientPlayerEntityMixin", - "ClientPlayNetworkHandlerMixin" - ], "injectors": { "defaultRequire": 1 }