Changed key serialization

This commit is contained in:
Auxilor
2022-02-17 11:49:26 +00:00
parent cc557378cc
commit 00da717f6d
2 changed files with 74 additions and 70 deletions

View File

@@ -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<String>,
split[2]
if(split.size >= 3) split.toList().subList(2, split.size).joinToString("") else ""
)
"INT" -> PersistentDataKey(
key,
type as PersistentDataKeyType<Int>, split[2].toInt()
type as PersistentDataKeyType<Int>,
split[2].toInt()
)
"DOUBLE" -> PersistentDataKey(
key,
type as PersistentDataKeyType<Double>, split[2].toDouble()
type as PersistentDataKeyType<Double>,
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}"
}
}

View File

@@ -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;'