From aecd40ba5aacf7374d0459abcc6f16a713c7d0dd Mon Sep 17 00:00:00 2001 From: LoJoSho Date: Fri, 3 Feb 2023 12:19:34 -0600 Subject: [PATCH] Hidden reason now saved in database --- .../hmccosmetics/database/types/Data.java | 17 +++++++++++++++-- .../database/types/InternalData.java | 2 +- .../hmccosmetics/database/types/MySQLData.java | 2 +- .../hmccosmetics/database/types/SQLiteData.java | 2 +- .../hmccosmetics/user/CosmeticUser.java | 1 + 5 files changed, 19 insertions(+), 5 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 0ff8f1e4..5a43c538 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 @@ -1,10 +1,13 @@ package com.hibiscusmc.hmccosmetics.database.types; +import com.hibiscusmc.hmccosmetics.HMCCosmeticsPlugin; import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetic; import com.hibiscusmc.hmccosmetics.cosmetic.CosmeticSlot; import com.hibiscusmc.hmccosmetics.cosmetic.Cosmetics; import com.hibiscusmc.hmccosmetics.user.CosmeticUser; import com.hibiscusmc.hmccosmetics.util.MessagesUtil; +import org.apache.commons.lang3.EnumUtils; +import org.bukkit.Bukkit; import org.bukkit.Color; import org.jetbrains.annotations.Nullable; @@ -34,6 +37,9 @@ public class Data { // BACKPACK=colorfulbackpack&RRGGBB,HELMET=niftyhat,BALLOON=colorfulballoon,CHESTPLATE=niftychestplate public String steralizeData(CosmeticUser user) { String data = ""; + if (user.getHidden()) { + data = "HIDDEN=" + user.getHiddenReason(); + } for (Cosmetic cosmetic : user.getCosmetic()) { Color color = user.getCosmeticColor(cosmetic.getSlot()); String input = cosmetic.getSlot() + "=" + cosmetic.getId(); @@ -47,7 +53,7 @@ public class Data { return data; } - public Map> desteralizedata(String raw) { + public Map> desteralizedata(CosmeticUser user, String raw) { Map> cosmetics = new HashMap<>(); String[] rawData = raw.split(","); @@ -57,8 +63,15 @@ public class Data { CosmeticSlot slot = null; Cosmetic cosmetic = null; MessagesUtil.sendDebugMessages("First split (suppose slot) " + splitData[0]); + if (splitData[0].equalsIgnoreCase("HIDDEN")) { + if (EnumUtils.isValidEnum(CosmeticUser.HiddenReason.class, splitData[1])) { + Bukkit.getScheduler().runTask(HMCCosmeticsPlugin.getInstance(), () -> { + user.hideCosmetics(CosmeticUser.HiddenReason.valueOf(splitData[1])); + }); + } + continue; + } if (CosmeticSlot.valueOf(splitData[0]) != null) slot = CosmeticSlot.valueOf(splitData[0]); - if (splitData[1].contains("&")) { String[] colorSplitData = splitData[1].split("&"); if (Cosmetics.hasCosmetic(colorSplitData[0])) cosmetic = Cosmetics.getCosmetic(colorSplitData[0]); diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/InternalData.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/InternalData.java index 5efaa305..2651bbf6 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/InternalData.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/InternalData.java @@ -38,7 +38,7 @@ public class InternalData extends Data { if (!player.getPersistentDataContainer().has(key, PersistentDataType.STRING)) return user; String rawData = player.getPersistentDataContainer().get(key, PersistentDataType.STRING); - Map> a = desteralizedata(rawData); + Map> a = desteralizedata(user, rawData); for (Map cosmeticColors : a.values()) { for (Cosmetic cosmetic : cosmeticColors.keySet()) { Bukkit.getScheduler().runTask(HMCCosmeticsPlugin.getInstance(), () -> { diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/MySQLData.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/MySQLData.java index 5dbf77bc..8426da2f 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/MySQLData.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/MySQLData.java @@ -82,7 +82,7 @@ public class MySQLData extends Data { ResultSet rs = preparedStatement.executeQuery(); if (rs.next()) { String rawData = rs.getString("COSMETICS"); - Map> cosmetics = desteralizedata(rawData); + Map> cosmetics = desteralizedata(user, rawData); for (Map cosmeticColors : cosmetics.values()) { for (Cosmetic cosmetic : cosmeticColors.keySet()) { Bukkit.getScheduler().runTask(HMCCosmeticsPlugin.getInstance(), () -> { diff --git a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLiteData.java b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLiteData.java index c782bce9..52a3d1be 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLiteData.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/database/types/SQLiteData.java @@ -76,7 +76,7 @@ public class SQLiteData extends Data { ResultSet rs = preparedStatement.executeQuery(); if (rs.next()) { String rawData = rs.getString("COSMETICS"); - Map> cosmetics = desteralizedata(rawData); + Map> cosmetics = desteralizedata(user, rawData); for (Map cosmeticColors : cosmetics.values()) { for (Cosmetic cosmetic : cosmeticColors.keySet()) { Bukkit.getScheduler().runTask(HMCCosmeticsPlugin.getInstance(), () -> { 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 6285ecc6..925ddabb 100644 --- a/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java +++ b/common/src/main/java/com/hibiscusmc/hmccosmetics/user/CosmeticUser.java @@ -191,6 +191,7 @@ public class CosmeticUser { public ItemStack getUserCosmeticItem(Cosmetic cosmetic) { ItemStack item = null; if (hideCosmetics) { + if (cosmetic instanceof CosmeticBackpackType || cosmetic instanceof CosmeticBalloonType) return new ItemStack(Material.AIR); return getPlayer().getInventory().getItem(InventoryUtils.getEquipmentSlot(cosmetic.getSlot())); } if (cosmetic instanceof CosmeticArmorType || cosmetic instanceof CosmeticMainhandType || cosmetic instanceof CosmeticBackpackType) {