diff --git a/src/main/java/io/ib67/sfcraft/Listener.java b/src/main/java/io/ib67/sfcraft/Listener.java index eccfacf..8693055 100644 --- a/src/main/java/io/ib67/sfcraft/Listener.java +++ b/src/main/java/io/ib67/sfcraft/Listener.java @@ -18,6 +18,7 @@ import net.minecraft.server.network.ServerPlayNetworkHandler; import net.minecraft.server.network.ServerPlayerEntity; import net.minecraft.text.RawFilteredPair; import net.minecraft.text.Text; +import net.minecraft.util.Colors; import net.minecraft.util.Unit; import net.minecraft.util.Uuids; import net.minecraft.util.math.BlockPos; @@ -138,8 +139,10 @@ public class Listener { } } - public Either onPlayerSleep(BlockPos pos) { + public Either onPlayerSleep(PlayerEntity player, BlockPos pos) { if (LongNightEvent.isRunning()) { + player.sendMessage(Text.literal("你感到焦躁不安!").withColor(Colors.LIGHT_RED) + .append(Text.literal(" (永夜事件期间无法睡觉)").withColor(Colors.LIGHT_GRAY))); return Either.left(PlayerEntity.SleepFailureReason.NOT_POSSIBLE_HERE); } return Either.right(Unit.INSTANCE); diff --git a/src/main/java/io/ib67/sfcraft/mixin/server/PlayerEntityMixin.java b/src/main/java/io/ib67/sfcraft/mixin/server/PlayerEntityMixin.java index ff1a1a7..812afd3 100644 --- a/src/main/java/io/ib67/sfcraft/mixin/server/PlayerEntityMixin.java +++ b/src/main/java/io/ib67/sfcraft/mixin/server/PlayerEntityMixin.java @@ -22,6 +22,7 @@ public class PlayerEntityMixin { @Inject(method = "trySleep", at = @At("HEAD"), cancellable = true) public void onSleep(BlockPos pos, CallbackInfoReturnable> cir) { - if (cir.isCancellable()) cir.setReturnValue(SFCraft.getInstance().getListener().onPlayerSleep(pos)); + if (cir.isCancellable()) + cir.setReturnValue(SFCraft.getInstance().getListener().onPlayerSleep((ServerPlayerEntity) (Object) this, pos)); } }