From 8f563efb97044063beec340f78cbf6c0a57fd02a Mon Sep 17 00:00:00 2001 From: Presti <53257574+DxsSucuk@users.noreply.github.com> Date: Mon, 26 May 2025 20:12:36 +0200 Subject: [PATCH 1/3] Fix exception that occurs when trying to add metadata. --- .../deluxemenus/persistentmeta/PersistentMetaHandler.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java b/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java index 799a63f..38d8ed4 100644 --- a/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java +++ b/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java @@ -262,7 +262,7 @@ public Map getMetaValues( return OperationResult.SUCCESS; } - final long newValue = (long) (currentValue == null ? 0 : currentValue) + value.longValue(); + final long newValue = (long) (currentValue == null ? 0 : currentValue) + (type == DataType.INTEGER ? value.intValue() : value.longValue()); player.getPersistentDataContainer().set(key, type.getPDType(), newValue); return OperationResult.SUCCESS; } From 6d53b360797665ca95ed883f080bd8887cdd3c61 Mon Sep 17 00:00:00 2001 From: Presti <53257574+DxsSucuk@users.noreply.github.com> Date: Mon, 26 May 2025 20:18:57 +0200 Subject: [PATCH 2/3] Fix exception on first add. --- .../persistentmeta/PersistentMetaHandler.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java b/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java index 38d8ed4..1649748 100644 --- a/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java +++ b/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java @@ -262,7 +262,18 @@ public Map getMetaValues( return OperationResult.SUCCESS; } - final long newValue = (long) (currentValue == null ? 0 : currentValue) + (type == DataType.INTEGER ? value.intValue() : value.longValue()); + long currentValueLong = 0; + if (currentValue != null) { + if (currentValue instanceof Long) { + currentValueLong = (Long) currentValue; + } else if (currentValue instanceof Integer) { + currentValueLong = (Integer) currentValue; + } else { + return OperationResult.EXISTENT_VALUE_IS_DIFFERENT_TYPE; + } + } + + final long newValue = currentValueLong + (type == DataType.INTEGER ? value.intValue() : value.longValue()); player.getPersistentDataContainer().set(key, type.getPDType(), newValue); return OperationResult.SUCCESS; } From cb9eb8e6fa0ffc078e40f5dafe7582c8aa7d54d9 Mon Sep 17 00:00:00 2001 From: Presti <53257574+DxsSucuk@users.noreply.github.com> Date: Tue, 27 May 2025 21:41:58 +0200 Subject: [PATCH 3/3] Improve code. --- .../persistentmeta/PersistentMetaHandler.java | 15 ++------------- 1 file changed, 2 insertions(+), 13 deletions(-) diff --git a/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java b/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java index 1649748..bab7d85 100644 --- a/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java +++ b/src/main/java/com/extendedclip/deluxemenus/persistentmeta/PersistentMetaHandler.java @@ -262,18 +262,7 @@ public Map getMetaValues( return OperationResult.SUCCESS; } - long currentValueLong = 0; - if (currentValue != null) { - if (currentValue instanceof Long) { - currentValueLong = (Long) currentValue; - } else if (currentValue instanceof Integer) { - currentValueLong = (Integer) currentValue; - } else { - return OperationResult.EXISTENT_VALUE_IS_DIFFERENT_TYPE; - } - } - - final long newValue = currentValueLong + (type == DataType.INTEGER ? value.intValue() : value.longValue()); + final long newValue = ((Number) (currentValue == null ? 0 : currentValue)).longValue() + value.longValue(); player.getPersistentDataContainer().set(key, type.getPDType(), newValue); return OperationResult.SUCCESS; } @@ -313,7 +302,7 @@ public Map getMetaValues( return OperationResult.SUCCESS; } - final long newValue = (long) (currentValue == null ? 0 : currentValue) - value.longValue(); + final long newValue = ((Number) (currentValue == null ? 0 : currentValue)).longValue() - value.longValue(); player.getPersistentDataContainer().set(key, type.getPDType(), newValue); return OperationResult.SUCCESS; }