From eff25664f3baa5102c246cde1bfa546dc3a9bbc2 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Tue, 2 Jan 2024 21:10:06 -0600 Subject: [PATCH] clean: move gamemode and world hidden checks to player join --- .../hmccosmetics/database/types/Data.java | 2 +- .../listener/PlayerConnectionListener.java | 24 ++++++++++++++++++- 2 files changed, 24 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/Data.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/Data.java index 6214ab88..e298053f 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/Data.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/Data.java @@ -103,7 +103,7 @@ public abstract class Data { private boolean shouldHiddenSave(CosmeticUser.HiddenReason reason) { switch (reason) { - case EMOTE, NONE -> { + case EMOTE, NONE, GAMEMODE, WORLD -> { return false; } default -> { diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java index 064c4b41..a18cdcba 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerConnectionListener.java @@ -2,6 +2,7 @@ package com.hibiscusmc.hmccosmetics.listener; import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; import com.hibiscusmc.hmccosmetics.config.DatabaseSettings; +import com.hibiscusmc.hmccosmetics.config.Settings; import com.hibiscusmc.hmccosmetics.database.Database; import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.user.CosmeticUsers; @@ -35,7 +36,28 @@ public class PlayerConnectionListener implements Listener { CosmeticUser user = Database.get(event.getPlayer().getUniqueId()); CosmeticUsers.addUser(user); MessagesUtil.sendDebugMessages("Run User Join"); - Bukkit.getScheduler().runTaskLater(HMCCosmeticsPlugin.getInstance(), () -> user.updateCosmetic(), 4); + + // Handle gamemode check + if (Settings.getDisabledGamemodes().contains(user.getPlayer().getGameMode().toString())) { + user.hideCosmetics(CosmeticUser.HiddenReason.GAMEMODE); + } else { + if (user.getHiddenReason() != null && user.getHiddenReason().equals(CosmeticUser.HiddenReason.GAMEMODE)) { + user.showCosmetics(); + } + } + // Handle world check + if (Settings.getDisabledWorlds().contains(user.getPlayer().getWorld().getName())) { + user.hideCosmetics(CosmeticUser.HiddenReason.WORLD); + } else { + if (user.getHiddenReason() != null && user.getHiddenReason().equals(CosmeticUser.HiddenReason.WORLD)) { + user.showCosmetics(); + } + } + // And finally, launch an update for the cosmetics they have. + Bukkit.getScheduler().runTaskLater(HMCCosmeticsPlugin.getInstance(), () -> { + if (user.getPlayer() == null) return; + user.updateCosmetic(); + }, 4); }; if (DatabaseSettings.isEnabledDelay()) {