From 0f17e8f844b81cdc1fe1c7b53c9801aea01b9e5d Mon Sep 17 00:00:00 2001 From: hypherionmc Date: Fri, 5 Jul 2024 20:49:37 +0200 Subject: [PATCH] [FEAT] Add a way for login/logout event to know if it was sent from vanish --- .../api/events/server/CraterPlayerEvent.java | 15 +++++++++++++++ .../com/hypherionmc/craterlib/compat/Vanish.java | 4 ++-- .../com/hypherionmc/craterlib/compat/Vanish.java | 4 ++-- 3 files changed, 19 insertions(+), 4 deletions(-) diff --git a/Common/src/main/java/com/hypherionmc/craterlib/api/events/server/CraterPlayerEvent.java b/Common/src/main/java/com/hypherionmc/craterlib/api/events/server/CraterPlayerEvent.java index 7eb3701..a28db00 100644 --- a/Common/src/main/java/com/hypherionmc/craterlib/api/events/server/CraterPlayerEvent.java +++ b/Common/src/main/java/com/hypherionmc/craterlib/api/events/server/CraterPlayerEvent.java @@ -4,6 +4,7 @@ import com.hypherionmc.craterlib.core.event.CraterEvent; import com.hypherionmc.craterlib.nojang.world.entity.player.BridgedPlayer; import lombok.Getter; import lombok.RequiredArgsConstructor; +import lombok.Setter; @RequiredArgsConstructor @Getter @@ -11,18 +12,32 @@ public class CraterPlayerEvent extends CraterEvent { private final BridgedPlayer player; + @Getter public static class PlayerLoggedIn extends CraterPlayerEvent { + private final boolean isFromVanish; public PlayerLoggedIn(BridgedPlayer player) { + this(player, false); + } + + public PlayerLoggedIn(BridgedPlayer player, boolean isFromVanish) { super(player); + this.isFromVanish = false; } } + @Getter @Setter public static class PlayerLoggedOut extends CraterPlayerEvent { + private final boolean isFromVanish; public PlayerLoggedOut(BridgedPlayer player) { + this(player, false); + } + + public PlayerLoggedOut(BridgedPlayer player, boolean isFromVanish) { super(player); + this.isFromVanish = false; } } diff --git a/Fabric/src/main/java/com/hypherionmc/craterlib/compat/Vanish.java b/Fabric/src/main/java/com/hypherionmc/craterlib/compat/Vanish.java index cc6c1e0..e75b13d 100644 --- a/Fabric/src/main/java/com/hypherionmc/craterlib/compat/Vanish.java +++ b/Fabric/src/main/java/com/hypherionmc/craterlib/compat/Vanish.java @@ -12,9 +12,9 @@ public class Vanish { public static void register() { VanishEvents.VANISH_EVENT.register((serverPlayer, b) -> { if (b) { - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(serverPlayer), true)); } else { - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(serverPlayer), true)); } }); } diff --git a/NeoForge/src/main/java/com/hypherionmc/craterlib/compat/Vanish.java b/NeoForge/src/main/java/com/hypherionmc/craterlib/compat/Vanish.java index 0302e29..8d19f4c 100644 --- a/NeoForge/src/main/java/com/hypherionmc/craterlib/compat/Vanish.java +++ b/NeoForge/src/main/java/com/hypherionmc/craterlib/compat/Vanish.java @@ -15,9 +15,9 @@ public class Vanish { @SubscribeEvent public void vanishevent(PlayerVanishEvent event) { if (event.isVanished()) { - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedOut(BridgedPlayer.of(event.getEntity()), true)); } else { - CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()))); + CraterEventBus.INSTANCE.postEvent(new CraterPlayerEvent.PlayerLoggedIn(BridgedPlayer.of(event.getEntity()), true)); } }