diff --git a/build.gradle b/build.gradle index 4bf8086..56f234c 100644 --- a/build.gradle +++ b/build.gradle @@ -21,7 +21,7 @@ repositories { } dependencies { - // To change the versions see the gradle.properties file + // To change the versions see the gradle.properties file1 minecraft "com.mojang:minecraft:${project.minecraft_version}" mappings "net.fabricmc:yarn:${project.yarn_mappings}:v2" modImplementation "net.fabricmc:fabric-loader:${project.loader_version}" diff --git a/gradle.properties b/gradle.properties index 3cd1458..43e4f0d 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,11 +1,11 @@ # Done to increase the memory available to gradle. org.gradle.jvmargs=-Xmx4G -minecraft_version=1.21.5 -yarn_mappings=1.21.5+build.1 -loader_version=0.16.10 +minecraft_version=1.21.6 +yarn_mappings=1.21.6+build.1 +loader_version=0.16.14 # Fabric API -fabric_version=0.119.5+1.21.5 +fabric_version=0.127.0+1.21.6 # Mod Properties mod_version=1.1 maven_group=io.ib67 -archives_base_name=sfcraft \ No newline at end of file +archives_base_name=sfcraft diff --git a/src/main/java/io/ib67/sfcraft/mixin/common/fixes/ProjectileEntityMixin.java b/src/main/java/io/ib67/sfcraft/mixin/common/fixes/ProjectileEntityMixin.java index 0f4270e..4eb8805 100644 --- a/src/main/java/io/ib67/sfcraft/mixin/common/fixes/ProjectileEntityMixin.java +++ b/src/main/java/io/ib67/sfcraft/mixin/common/fixes/ProjectileEntityMixin.java @@ -1,6 +1,7 @@ package io.ib67.sfcraft.mixin.common.fixes; import net.minecraft.entity.Entity; +import net.minecraft.entity.LazyEntityReference; import net.minecraft.entity.player.PlayerEntity; import net.minecraft.entity.projectile.ProjectileEntity; import net.minecraft.server.world.ServerWorld; @@ -18,10 +19,8 @@ import java.util.UUID; @Mixin(ProjectileEntity.class) public class ProjectileEntityMixin { @Shadow - private @Nullable Entity owner; - - @Shadow - private @Nullable UUID ownerUuid; + @Nullable + protected LazyEntityReference owner; @Unique private boolean isPlayer; @@ -37,20 +36,16 @@ public class ProjectileEntityMixin { */ @Overwrite public @Nullable Entity getOwner() { - if (this.owner != null && !this.owner.isRemoved()) { - return this.owner; - } else if (this.ownerUuid != null) { + if (this.owner != null) { + var ownerUuid = this.owner.getUuid(); var server = $().getWorld().getServer(); if (server == null) { return null; } if (isPlayer) { - return server.getPlayerManager().getPlayer(this.ownerUuid); + return server.getPlayerManager().getPlayer(ownerUuid); } else { - for (ServerWorld world : server.getWorlds()) { - var entity = world.getEntity(this.ownerUuid); - if (entity != null) return entity; - } + return LazyEntityReference.resolve(this.owner, $().getWorld(), Entity.class); } } return null; diff --git a/src/main/java/io/ib67/sfcraft/mixin/server/SleepManagerMixin.java b/src/main/java/io/ib67/sfcraft/mixin/server/SleepManagerMixin.java index 6df3638..eaee20d 100644 --- a/src/main/java/io/ib67/sfcraft/mixin/server/SleepManagerMixin.java +++ b/src/main/java/io/ib67/sfcraft/mixin/server/SleepManagerMixin.java @@ -17,7 +17,7 @@ public abstract class SleepManagerMixin { cir.setReturnValue(false); return; } - var world = players.getFirst().getServerWorld(); + var world = players.getFirst().getWorld(); if (world.getTimeOfDay() % 24000 >= 12544) { if(!world.isRaining()){ cir.setReturnValue(false); diff --git a/src/main/java/io/ib67/sfcraft/module/AFKModule.java b/src/main/java/io/ib67/sfcraft/module/AFKModule.java index d3a0dd2..ee83b10 100644 --- a/src/main/java/io/ib67/sfcraft/module/AFKModule.java +++ b/src/main/java/io/ib67/sfcraft/module/AFKModule.java @@ -6,18 +6,10 @@ import io.ib67.sfcraft.callback.SFCallbacks; import io.ib67.sfcraft.inject.MinecraftServerSupplier; import io.ib67.sfcraft.module.chat.ChatPrefix; import io.ib67.sfcraft.module.chat.ChatPrefixModule; -import net.fabricmc.fabric.api.networking.v1.PacketSender; -import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; -import net.minecraft.network.packet.s2c.play.TeamS2CPacket; -import net.minecraft.scoreboard.Team; -import net.minecraft.server.MinecraftServer; -import net.minecraft.server.network.ServerPlayNetworkHandler; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.Text; import net.minecraft.util.Colors; -import java.util.Objects; - public class AFKModule extends ServerModule { @Inject private MinecraftServerSupplier serverSupplier; @@ -47,7 +39,7 @@ public class AFKModule extends ServerModule { private void enAFK(ServerPlayerEntity player) { chatPrefixModule.applyPrefix(player, prefix); - player.server.getPlayerManager().broadcast( + player.getServer().getPlayerManager().broadcast( Text.literal(" * " + player.getName().getLiteralString() + " 正在挂机.").withColor(Colors.LIGHT_GRAY), false ); @@ -57,7 +49,7 @@ public class AFKModule extends ServerModule { public void deAFK(ServerPlayerEntity player) { String playerName = player.getName().getLiteralString(); chatPrefixModule.removePrefix(player, prefix); - player.server.getPlayerManager().broadcast( + player.getServer().getPlayerManager().broadcast( Text.literal(" * " + playerName + " 回来了.").withColor(Colors.LIGHT_GRAY), false ); diff --git a/src/main/java/io/ib67/sfcraft/module/chat/decorator/ChatSendLocModule.java b/src/main/java/io/ib67/sfcraft/module/chat/decorator/ChatSendLocModule.java index 763c8dd..bf2d6ed 100644 --- a/src/main/java/io/ib67/sfcraft/module/chat/decorator/ChatSendLocModule.java +++ b/src/main/java/io/ib67/sfcraft/module/chat/decorator/ChatSendLocModule.java @@ -41,7 +41,7 @@ public class ChatSendLocModule extends ServerModule implements MessageDecorator var x = sender.getBlockPos().getX(); var y = sender.getBlockPos().getY(); var z = sender.getBlockPos().getZ(); - var key = sender.getServerWorld().getRegistryKey(); + var key = sender.getWorld().getRegistryKey(); var world = translate(key); return Text .literal(" " + x + ", " + y + ", " + z + world + " ") diff --git a/src/main/java/io/ib67/sfcraft/module/command/BackModule.java b/src/main/java/io/ib67/sfcraft/module/command/BackModule.java index 4817446..a55f8d7 100644 --- a/src/main/java/io/ib67/sfcraft/module/command/BackModule.java +++ b/src/main/java/io/ib67/sfcraft/module/command/BackModule.java @@ -36,7 +36,7 @@ public class BackModule extends ServerModule { public int onBack(CommandContext it) { var player = it.getSource().getPlayer(); var pos = player.getLastDeathPos().get(); - var wld = player.server.getWorld(pos.dimension()); + var wld = player.getServer().getWorld(pos.dimension()); var _pos = pos.pos(); if (wld == null) return 0; var nearby = wld.getClosestPlayer(_pos.getX(), _pos.getY(), _pos.getZ(), 100, true); diff --git a/src/main/java/io/ib67/sfcraft/module/room/CreativeRoomModule.java b/src/main/java/io/ib67/sfcraft/module/room/CreativeRoomModule.java index 6ce40f0..5fb312b 100644 --- a/src/main/java/io/ib67/sfcraft/module/room/CreativeRoomModule.java +++ b/src/main/java/io/ib67/sfcraft/module/room/CreativeRoomModule.java @@ -84,7 +84,7 @@ public class CreativeRoomModule extends ServerModule { private @NotNull TriState onOtherCommands(@NotNull CommandSource commandSource, @NotNull String s) { if (commandSource instanceof ServerCommandSource source && source.getPlayer() != null) { var p = source.getPlayer(); - if (p.getServerWorld().getRegistryKey().equals(CreativeSpaceRoom.WORLD)) { + if (p.getWorld().getRegistryKey().equals(CreativeSpaceRoom.WORLD)) { if (BYPASS_PERMISSIONS.contains(s)) { return TriState.TRUE; } @@ -96,7 +96,7 @@ public class CreativeRoomModule extends ServerModule { private @NotNull TriState onWorldEdit(@NotNull CommandSource commandSource, @NotNull String s) { if (commandSource instanceof ServerCommandSource source && source.getPlayer() != null) { var p = source.getPlayer(); - if (p.getServerWorld().getRegistryKey().equals(CreativeSpaceRoom.WORLD)) { + if (p.getWorld().getRegistryKey().equals(CreativeSpaceRoom.WORLD)) { if (s.startsWith("worldedit") && SFConsts.WORLDEDIT_AT_PLAYGROUND.hasPermission(p)) { return TriState.TRUE; } @@ -132,10 +132,10 @@ public class CreativeRoomModule extends ServerModule { if (src instanceof ServerCommandSource source && source.getPlayer() != null) { var p = source.getPlayer(); var dest = EntityArgumentType.getEntity(ctx, "dest"); - if (p.getServerWorld().getRegistryKey().equals(CreativeSpaceRoom.WORLD)) { - if (dest.getWorld() == p.getServerWorld()) { + if (p.getWorld().getRegistryKey().equals(CreativeSpaceRoom.WORLD)) { + if (dest.getWorld() == p.getWorld()) { Helper.teleportSafely( - p, p.getServerWorld(), + p, p.getWorld(), dest.getBlockX(), dest.getBlockY(), dest.getBlockZ(), dest.getYaw(), dest.getPitch() ); @@ -152,7 +152,7 @@ public class CreativeRoomModule extends ServerModule { if (src instanceof ServerCommandSource source && source.getPlayer() != null) { var p = source.getPlayer(); var mode = ctx.getArgument("mode", GameMode.class); - if (p.getServerWorld().getRegistryKey().equals(CreativeSpaceRoom.WORLD)) { + if (p.getWorld().getRegistryKey().equals(CreativeSpaceRoom.WORLD)) { p.changeGameMode(mode); p.sendMessage(Text.of("Your gamemode has been changed to " + mode.asString())); } else { diff --git a/src/main/java/io/ib67/sfcraft/util/Helper.java b/src/main/java/io/ib67/sfcraft/util/Helper.java index 23a5235..326e282 100644 --- a/src/main/java/io/ib67/sfcraft/util/Helper.java +++ b/src/main/java/io/ib67/sfcraft/util/Helper.java @@ -43,7 +43,7 @@ public class Helper { public static boolean canBack(ServerPlayerEntity player) { if (!SFConsts.COMMAND_BACK.hasPermission(player)) return false; var pos = player.getLastDeathPos().get(); - var wld = player.server.getWorld(pos.dimension()); + var wld = player.getServer().getWorld(pos.dimension()); var _pos = pos.pos(); if (wld == null) return false; var nearby = wld.getClosestPlayer(_pos.getX(), _pos.getY(), _pos.getZ(), 100, true);