From 57d5e02275bc3bfafba9fb98736f4a39faf199e6 Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Wed, 1 Feb 2023 15:51:06 -0600 Subject: [PATCH] Add more hidden reasons & show, hide, and toggle actions --- .../hmccosmetics/command/CosmeticCommand.java | 2 +- .../hmccosmetics/gui/action/Actions.java | 5 ++++- .../action/actions/ActionCosmeticHide.java | 19 ++++++++++++++++ .../action/actions/ActionCosmeticShow.java | 19 ++++++++++++++++ .../action/actions/ActionCosmeticToggle.java | 22 +++++++++++++++++++ .../hooks/worldguard/WGListener.java | 7 +++--- .../listener/PlayerGameListener.java | 2 +- .../hmccosmetics/user/CosmeticUser.java | 5 ++++- 8 files changed, 74 insertions(+), 7 deletions(-) create mode 100644 common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticHide.java create mode 100644 common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticShow.java create mode 100644 common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticToggle.java diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/command/CosmeticCommand.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/command/CosmeticCommand.java index 848cc60b..8f10385d 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/command/CosmeticCommand.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/command/CosmeticCommand.java @@ -327,7 +327,7 @@ public class CosmeticCommand implements CommandExecutor { CosmeticUser user = CosmeticUsers.getUser(player); MessagesUtil.sendMessage(sender, "hide-cosmetic"); - user.hideCosmetics(CosmeticUser.HiddenReason.PLUGIN); + user.hideCosmetics(CosmeticUser.HiddenReason.COMMAND); return true; } case ("show") -> { diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/Actions.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/Actions.java index 692f57ac..35cab251 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/Actions.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/Actions.java @@ -22,6 +22,9 @@ public class Actions { private static ActionEquip ACTION_EQUIP = new ActionEquip(); private static ActionUnequip ACTION_UNEQUIP = new ActionUnequip(); private static ActionParticle ACTION_PARTICLE = new ActionParticle(); + private static ActionCosmeticShow ACTION_SHOW = new ActionCosmeticShow(); + private static ActionCosmeticHide ACTION_HIDE = new ActionCosmeticHide(); + private static ActionCosmeticToggle ACTION_TOGGLE = new ActionCosmeticToggle(); public static Action getAction(String id) { @@ -40,7 +43,7 @@ public class Actions { for (String a : raw) { String id = StringUtils.substringBetween(a, "[", "]").toUpperCase(); String message = StringUtils.substringAfter(a, "] "); - MessagesUtil.sendDebugMessages("ID is " + id + " // Message is " + message); + MessagesUtil.sendDebugMessages("ID is " + id + " // Raw Data is " + message); if (isAction(id)) { getAction(id).run(user, message); } else { diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticHide.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticHide.java new file mode 100644 index 00000000..40597a76 --- /dev/null +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticHide.java @@ -0,0 +1,19 @@ +package com.hibiscusmc.hmccosmetics.gui.action.actions; + +import com.hibiscusmc.hmccosmetics.gui.action.Action; +import com.hibiscusmc.hmccosmetics.user.CosmeticUser; + +public class ActionCosmeticHide extends Action { + + public ActionCosmeticHide() { + super("hide"); + } + + @Override + public void run(CosmeticUser user, String raw) { + if (!user.getHidden()) { + user.hideCosmetics(CosmeticUser.HiddenReason.ACTION); + return; + } + } +} diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticShow.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticShow.java new file mode 100644 index 00000000..13c33d97 --- /dev/null +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticShow.java @@ -0,0 +1,19 @@ +package com.hibiscusmc.hmccosmetics.gui.action.actions; + +import com.hibiscusmc.hmccosmetics.gui.action.Action; +import com.hibiscusmc.hmccosmetics.user.CosmeticUser; + +public class ActionCosmeticShow extends Action { + + public ActionCosmeticShow() { + super("show"); + } + + @Override + public void run(CosmeticUser user, String raw) { + if (user.getHidden()) { + if (user.getHiddenReason() != CosmeticUser.HiddenReason.ACTION && user.getHiddenReason() != CosmeticUser.HiddenReason.COMMAND) return; // Do not hide if its already off for WG + user.showCosmetics(); + } + } +} diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticToggle.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticToggle.java new file mode 100644 index 00000000..fe4c1ab2 --- /dev/null +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/gui/action/actions/ActionCosmeticToggle.java @@ -0,0 +1,22 @@ +package com.hibiscusmc.hmccosmetics.gui.action.actions; + +import com.hibiscusmc.hmccosmetics.gui.action.Action; +import com.hibiscusmc.hmccosmetics.user.CosmeticUser; + +public class ActionCosmeticToggle extends Action { + + public ActionCosmeticToggle() { + super("toggle"); + } + + @Override + public void run(CosmeticUser user, String raw) { + if (user.getHidden()) { + if (user.getHiddenReason() != CosmeticUser.HiddenReason.ACTION && user.getHiddenReason() != CosmeticUser.HiddenReason.COMMAND) return; + user.showCosmetics(); + return; + } + user.hideCosmetics(CosmeticUser.HiddenReason.ACTION); + return; + } +} diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/worldguard/WGListener.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/worldguard/WGListener.java index 8eba1aee..611d7a32 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/worldguard/WGListener.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/hooks/worldguard/WGListener.java @@ -24,9 +24,10 @@ public class WGListener implements Listener { RegionContainer region = WorldGuard.getInstance().getPlatform().getRegionContainer(); RegionQuery query = region.createQuery(); ApplicableRegionSet set = query.getApplicableRegions(loc); - // TODO: Add more cosmetics - if (set.getRegions().size() == 0) { - user.showCosmetics(); + if (user.getHidden()) { + if (user.getHiddenReason() == CosmeticUser.HiddenReason.WORLDGUARD && set.getRegions().size() == 0) { + user.showCosmetics(); + } } for (ProtectedRegion protectedRegion : set.getRegions()) { if (protectedRegion.getFlags().containsKey(WGHook.getCosmeticEnableFlag())) { diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java index c116758b..eb946caf 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/listener/PlayerGameListener.java @@ -207,7 +207,7 @@ public class PlayerGameListener implements Listener { Player player = (Player) event.getEntity(); CosmeticUser user = CosmeticUsers.getUser(player); if (event.getAction().equals(EntityPotionEffectEvent.Action.ADDED)) { - user.hideCosmetics(CosmeticUser.HiddenReason.PLUGIN); + user.hideCosmetics(CosmeticUser.HiddenReason.POTION); return; } if (event.getAction().equals(EntityPotionEffectEvent.Action.CLEARED) || event.getAction().equals(EntityPotionEffectEvent.Action.REMOVED)) { diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java index 24e7c9e1..b9796120 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java @@ -460,6 +460,9 @@ public class CosmeticUser { public enum HiddenReason { NONE, WORLDGUARD, - PLUGIN + PLUGIN, + POTION, + ACTION, + COMMAND } }