From 00da717f6da6d8993f38b51bb4b77f5c2754cba7 Mon Sep 17 00:00:00 2001 From: Auxilor Date: Thu, 17 Feb 2022 11:49:26 +0000 Subject: [PATCH] Changed key serialization --- .../eco/internal/spigot/data/KeyHelpers.kt | 16 ++- .../core-plugin/src/main/resources/data.yml | 128 +++++++++--------- 2 files changed, 74 insertions(+), 70 deletions(-) diff --git a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/data/KeyHelpers.kt b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/data/KeyHelpers.kt index 95c4ee21..8714f23e 100644 --- a/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/data/KeyHelpers.kt +++ b/eco-core/core-plugin/src/main/kotlin/com/willfp/eco/internal/spigot/data/KeyHelpers.kt @@ -7,25 +7,29 @@ import com.willfp.eco.util.NamespacedKeyUtils @Suppress("UNCHECKED_CAST") object KeyHelpers { fun deserializeFromString(serialized: String): PersistentDataKey<*>? { - val split = serialized.split("::").toTypedArray() - if (split.size != 3) { + val split = serialized.split(";").toTypedArray() + + if (split.size < 2) { return null } + val key = NamespacedKeyUtils.fromStringOrNull(split[0]) ?: return null val type = PersistentDataKeyType.valueOf(split[1]) ?: return null return when (type.name()) { "STRING" -> PersistentDataKey( key, type as PersistentDataKeyType, - split[2] + if(split.size >= 3) split.toList().subList(2, split.size).joinToString("") else "" ) "INT" -> PersistentDataKey( key, - type as PersistentDataKeyType, split[2].toInt() + type as PersistentDataKeyType, + split[2].toInt() ) "DOUBLE" -> PersistentDataKey( key, - type as PersistentDataKeyType, split[2].toDouble() + type as PersistentDataKeyType, + split[2].toDouble() ) "BOOLEAN" -> PersistentDataKey( key, @@ -37,6 +41,6 @@ object KeyHelpers { } fun serializeToString(key: PersistentDataKey<*>): String { - return "${key.key}::${key.type.name()}::${key.defaultValue}" + return "${key.key};${key.type.name()};${key.defaultValue}" } } \ No newline at end of file diff --git a/eco-core/core-plugin/src/main/resources/data.yml b/eco-core/core-plugin/src/main/resources/data.yml index d539fb0e..fe2f1f1b 100644 --- a/eco-core/core-plugin/src/main/resources/data.yml +++ b/eco-core/core-plugin/src/main/resources/data.yml @@ -3,68 +3,68 @@ categorized-keys: # Preloading known keys (as of the release of 6.25.0) for optimal performance. player: - - ecoskills:crit_damage::INT::0 - - ecoskills:strong_impact::INT::0 - - ecoskills:shamanism::INT::0 - - ecoskills:reimbursement::INT::0 - - ecoskills:armory_xp::DOUBLE::0.0 - - ecoskills:bravery::INT::0 - - ecoskills:seamless_movement::INT::0 - - ecoskills:fishing::INT::0 - - ecoskills:armory::INT::0 - - ecoskills:accelerated_escape::INT::0 - - ecoskills:alchemy_xp::DOUBLE::0.0 - - boosters:2sell_multiplier::INT::0 - - ecoskills:second_chance::INT::0 - - ecoskills:health::INT::0 - - ecoskills:spelunking::INT::0 - - eco:player_name::STRING::Unknown Player - - ecoskills:strength::INT::0 - - ecoskills:woodcutting_xp::DOUBLE::0.0 - - ecoskills:versatile_tools::INT::0 - - boosters:skill_xp::INT::0 - - ecoskills:infernal_resistance::INT::0 - - ecoskills:wisdom::INT::0 - - ecoskills:master_lumberjack::INT::0 - - ecoskills:defense::INT::0 - - ecoskills:mystic_resilience::INT::0 - - ecoskills:gainsound::BOOLEAN::true - - ecoskills:golden_yield::INT::0 - - ecoskills:dazzle::INT::0 - - ecoskills:dodging::INT::0 - - ecoskills:efficient_brewing::INT::0 - - ecoskills:bountiful_harvest::INT::0 - - ecoskills:actionbar_enabled::BOOLEAN::true - - ecoskills:enchanting_xp::DOUBLE::0.0 - - ecoskills:overcompensation::INT::0 - - ecoskills:alchemy::INT::0 - - ecoskills:woodcutting::INT::0 - - ecoskills:mining::INT::0 - - ecoskills:magnetic_rod::INT::0 - - ecoskills:fishing_xp::DOUBLE::0.0 - - ecoskills:farming_xp::DOUBLE::0.0 - - ecoskills:speed::INT::0 - - ecoskills:potionmaster::INT::0 - - ecoskills:combat_xp::DOUBLE::0.0 - - ecoskills:eye_of_the_depths::INT::0 - - ecoskills:ferocity::INT::0 - - ecoskills:combat::INT::0 - - ecoskills:mining_xp::DOUBLE::0.0 - - ecoskills:satiation::INT::0 - - ecoskills:craftsmanship::INT::0 - - ecoskills:crit_chance::INT::0 - - ecoskills:dynamic_mining::INT::0 - - ecoskills:exploration::INT::0 - - boosters:1_5sell_multiplier::INT::0 - - ecoskills:enchanting::INT::0 - - ecoskills:endangering::INT::0 - - ecoskills:serrated_strikes::INT::0 - - ecoskills:exploration_xp::DOUBLE::0.0 - - ecoskills:farming::INT::0 + - ecoskills:crit_damage;INT;0 + - ecoskills:strong_impact;INT;0 + - ecoskills:shamanism;INT;0 + - ecoskills:reimbursement;INT;0 + - ecoskills:armory_xp;DOUBLE;0.0 + - ecoskills:bravery;INT;0 + - ecoskills:seamless_movement;INT;0 + - ecoskills:fishing;INT;0 + - ecoskills:armory;INT;0 + - ecoskills:accelerated_escape;INT;0 + - ecoskills:alchemy_xp;DOUBLE;0.0 + - boosters:2sell_multiplier;INT;0 + - ecoskills:second_chance;INT;0 + - ecoskills:health;INT;0 + - ecoskills:spelunking;INT;0 + - eco:player_name;STRING;Unknown Player + - ecoskills:strength;INT;0 + - ecoskills:woodcutting_xp;DOUBLE;0.0 + - ecoskills:versatile_tools;INT;0 + - boosters:skill_xp;INT;0 + - ecoskills:infernal_resistance;INT;0 + - ecoskills:wisdom;INT;0 + - ecoskills:master_lumberjack;INT;0 + - ecoskills:defense;INT;0 + - ecoskills:mystic_resilience;INT;0 + - ecoskills:gainsound;BOOLEAN;true + - ecoskills:golden_yield;INT;0 + - ecoskills:dazzle;INT;0 + - ecoskills:dodging;INT;0 + - ecoskills:efficient_brewing;INT;0 + - ecoskills:bountiful_harvest;INT;0 + - ecoskills:actionbar_enabled;BOOLEAN;true + - ecoskills:enchanting_xp;DOUBLE;0.0 + - ecoskills:overcompensation;INT;0 + - ecoskills:alchemy;INT;0 + - ecoskills:woodcutting;INT;0 + - ecoskills:mining;INT;0 + - ecoskills:magnetic_rod;INT;0 + - ecoskills:fishing_xp;DOUBLE;0.0 + - ecoskills:farming_xp;DOUBLE;0.0 + - ecoskills:speed;INT;0 + - ecoskills:potionmaster;INT;0 + - ecoskills:combat_xp;DOUBLE;0.0 + - ecoskills:eye_of_the_depths;INT;0 + - ecoskills:ferocity;INT;0 + - ecoskills:combat;INT;0 + - ecoskills:mining_xp;DOUBLE;0.0 + - ecoskills:satiation;INT;0 + - ecoskills:craftsmanship;INT;0 + - ecoskills:crit_chance;INT;0 + - ecoskills:dynamic_mining;INT;0 + - ecoskills:exploration;INT;0 + - boosters:1_5sell_multiplier;INT;0 + - ecoskills:enchanting;INT;0 + - ecoskills:endangering;INT;0 + - ecoskills:serrated_strikes;INT;0 + - ecoskills:exploration_xp;DOUBLE;0.0 + - ecoskills:farming;INT;0 server: - - 'talismans:known_points::STRING::' - - 'ecoarmor:known_points::STRING::' - - 'ecoenchants:known_points::STRING::' - - 'ecoitems:known_points::STRING::' - - 'boosters:known_points::STRING::' - - 'reforges:known_points::STRING::' + - 'talismans:known_points;STRING;' + - 'ecoarmor:known_points;STRING;' + - 'ecoenchants:known_points;STRING;' + - 'ecoitems:known_points;STRING;' + - 'boosters:known_points;STRING;' + - 'reforges:known_points;STRING;'