From 24478bdbaa5d9a5fa687962c53e396cfd3534471 Mon Sep 17 00:00:00 2001 From: PinkGoosik <MCGycuk@yandex.ru> Date: Sun, 26 Mar 2023 22:28:03 +0500 Subject: [PATCH] fix respawn position --- src/main/java/skylands/event/SkylandsEvents.java | 12 ++++++++++++ .../skylands/mixin/server/MinecraftServerMixin.java | 4 ++-- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/src/main/java/skylands/event/SkylandsEvents.java b/src/main/java/skylands/event/SkylandsEvents.java index 019a00c..1fb3fc3 100644 --- a/src/main/java/skylands/event/SkylandsEvents.java +++ b/src/main/java/skylands/event/SkylandsEvents.java @@ -1,5 +1,6 @@ package skylands.event; +import net.fabricmc.fabric.api.entity.event.v1.ServerPlayerEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerLifecycleEvents; import net.fabricmc.fabric.api.event.lifecycle.v1.ServerTickEvents; import net.fabricmc.fabric.api.event.player.PlayerBlockBreakEvents; @@ -9,10 +10,21 @@ import net.fabricmc.fabric.api.networking.v1.ServerPlayConnectionEvents; import net.minecraft.util.ActionResult; import net.minecraft.util.TypedActionResult; +import net.minecraft.world.World; +import skylands.logic.Skylands; public class SkylandsEvents { public static void init() { + ServerPlayerEvents.AFTER_RESPAWN.register((oldPlayer, player, alive) -> { + var server = player.getServer(); + if(server != null && server.getFile("hub_template").exists()) { + if(player.getWorld().getRegistryKey().equals(World.OVERWORLD)) { + Skylands.getInstance().hub.visit(player); + } + } + }); + ServerLifecycleEvents.SERVER_STARTING.register(ServerStartEvent::onStarting); ServerTickEvents.END_SERVER_TICK.register(ServerTickEvent::onTick); ServerPlayConnectionEvents.JOIN.register((handler, sender, server) -> PlayerConnectEvent.onJoin(server, handler.player)); diff --git a/src/main/java/skylands/mixin/server/MinecraftServerMixin.java b/src/main/java/skylands/mixin/server/MinecraftServerMixin.java index efb818c..8c0b83f 100644 --- a/src/main/java/skylands/mixin/server/MinecraftServerMixin.java +++ b/src/main/java/skylands/mixin/server/MinecraftServerMixin.java @@ -22,7 +22,7 @@ public abstract class MinecraftServerMixin { @Final private static Logger LOGGER; - @Redirect(method = "save", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V")) + @Redirect(method = "save", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;Ljava/lang/Object;)V", remap = false)) void info(Logger logger, String s, Object o, Object o1) { if(o1 instanceof Identifier id) { if(id.getNamespace().equals(SkylandsMod.MOD_ID)) { @@ -32,7 +32,7 @@ void info(Logger logger, String s, Object o, Object o1) { logger.info(s, o, o1); } - @Redirect(method = "save", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V")) + @Redirect(method = "save", at = @At(value = "INVOKE", target = "Lorg/slf4j/Logger;info(Ljava/lang/String;Ljava/lang/Object;)V", remap = false)) void info(Logger logger, String s, Object o) { try { if(o instanceof String) {