9
0
mirror of https://github.com/HibiscusMC/HMCCosmetics.git synced 2025-12-19 15:09:19 +00:00

feat: make prevent offhand swapping configurable and is now disabled by default, resolves #192

This commit is contained in:
Logan
2025-09-07 14:05:29 -05:00
parent c7e6a77eb8
commit a63494ba9f
3 changed files with 8 additions and 0 deletions

View File

@@ -47,6 +47,7 @@ public class Settings {
private static final String COSMETIC_BACKPACK_FORCE_RIDING_PACKET_PATH = "backpack-force-riding-packet"; private static final String COSMETIC_BACKPACK_FORCE_RIDING_PACKET_PATH = "backpack-force-riding-packet";
private static final String COSMETIC_DESTROY_LOOSE_COSMETIC_PATH = "destroy-loose-cosmetics"; private static final String COSMETIC_DESTROY_LOOSE_COSMETIC_PATH = "destroy-loose-cosmetics";
private static final String COSMETIC_BALLOON_HEAD_FORWARD_PATH = "balloon-head-forward"; private static final String COSMETIC_BALLOON_HEAD_FORWARD_PATH = "balloon-head-forward";
private static final String COSMETIC_OFFHAND_PREVENT_SWAPPING = "offhand-prevent-swapping";
private static final String MENU_SETTINGS_PATH = "menu-settings"; private static final String MENU_SETTINGS_PATH = "menu-settings";
private static final String MENU_CLICK_COOLDOWN_PATH = "click-cooldown"; private static final String MENU_CLICK_COOLDOWN_PATH = "click-cooldown";
private static final String MENU_CLICK_COOLDOWN_TIME_PATH = "time"; private static final String MENU_CLICK_COOLDOWN_TIME_PATH = "time";
@@ -101,6 +102,8 @@ public class Settings {
@Getter @Getter
private static boolean destroyLooseCosmetics; private static boolean destroyLooseCosmetics;
@Getter @Getter
private static boolean preventOffhandSwapping;
@Getter
private static boolean backpackForceRidingEnabled; private static boolean backpackForceRidingEnabled;
@Getter @Getter
private static boolean disabledGamemodesEnabled; private static boolean disabledGamemodesEnabled;
@@ -192,6 +195,7 @@ public class Settings {
forceShowOnJoin = cosmeticSettings.node(FORCE_SHOW_COSMETICS_PATH).getBoolean(false); forceShowOnJoin = cosmeticSettings.node(FORCE_SHOW_COSMETICS_PATH).getBoolean(false);
destroyLooseCosmetics = cosmeticSettings.node(COSMETIC_DESTROY_LOOSE_COSMETIC_PATH).getBoolean(false); destroyLooseCosmetics = cosmeticSettings.node(COSMETIC_DESTROY_LOOSE_COSMETIC_PATH).getBoolean(false);
backpackForceRidingEnabled = cosmeticSettings.node(COSMETIC_BACKPACK_FORCE_RIDING_PACKET_PATH).getBoolean(false); backpackForceRidingEnabled = cosmeticSettings.node(COSMETIC_BACKPACK_FORCE_RIDING_PACKET_PATH).getBoolean(false);
preventOffhandSwapping = cosmeticSettings.node(COSMETIC_OFFHAND_PREVENT_SWAPPING).getBoolean(false);
cosmeticSettings.node(SLOT_OPTIONS_PATH).childrenMap().forEach((key, value) -> { cosmeticSettings.node(SLOT_OPTIONS_PATH).childrenMap().forEach((key, value) -> {
EquipmentSlot slot = convertConfigToEquipment(key.toString().toLowerCase()); EquipmentSlot slot = convertConfigToEquipment(key.toString().toLowerCase());

View File

@@ -191,6 +191,7 @@ public class CosmeticPacketInterface implements PacketInterface {
@Override @Override
public @NotNull PacketAction readPlayerAction(@NotNull Player player, @NotNull PlayerActionWrapper wrapper) { public @NotNull PacketAction readPlayerAction(@NotNull Player player, @NotNull PlayerActionWrapper wrapper) {
if (!Settings.isPreventOffhandSwapping()) return PacketAction.NOTHING;
String actionType = wrapper.getActionType(); String actionType = wrapper.getActionType();
MessagesUtil.sendDebugMessages("EntityStatus Initial " + player.getEntityId() + " - " + actionType); MessagesUtil.sendDebugMessages("EntityStatus Initial " + player.getEntityId() + " - " + actionType);
// If it's not SWAP_ITEM_WITH_OFFHAND, ignore // If it's not SWAP_ITEM_WITH_OFFHAND, ignore

View File

@@ -30,6 +30,9 @@ cosmetic-settings:
display-name: false display-name: false
lore: false lore: false
# This prevents the offhand from being swapped with the mainhand. Only affects if a user has a cosmetic in their offhand
offhand-prevent-swapping: false
# This is a list of worlds that cosmetics are hidden in. When a player enters one of these worlds, their cosmetics will be hidden. # This is a list of worlds that cosmetics are hidden in. When a player enters one of these worlds, their cosmetics will be hidden.
disabled-worlds: disabled-worlds:
- "disabledworld" - "disabledworld"