mirror of
https://github.com/SparklyPower/SparklyPaper.git
synced 2025-12-19 15:09:27 +00:00
Remap SparklyPower hacky legacy NBT tags + Branding changes
This commit is contained in:
@@ -5,7 +5,7 @@ Subject: [PATCH] new fork who dis - Rebrand to SparklyPaper and Build Changes
|
||||
|
||||
|
||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||
index 4998aff0b7cb084dcda15c6a18bbe45e99b6000a..260a00dc826dcb5132d620ac324c44079436cdff 100644
|
||||
index 4998aff0b7cb084dcda15c6a18bbe45e99b6000a..b2003e125fb923f531bf3777ebe39be0889601e4 100644
|
||||
--- a/build.gradle.kts
|
||||
+++ b/build.gradle.kts
|
||||
@@ -3,6 +3,8 @@ import java.time.Instant
|
||||
@@ -45,6 +45,17 @@ index 4998aff0b7cb084dcda15c6a18bbe45e99b6000a..260a00dc826dcb5132d620ac324c4407
|
||||
val date = git("show", "-s", "--format=%ci", gitHash).getText().trim() // Paper
|
||||
val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper
|
||||
attributes(
|
||||
@@ -86,8 +98,8 @@ tasks.jar {
|
||||
"Specification-Title" to "Paper",
|
||||
"Specification-Version" to project.version,
|
||||
"Specification-Vendor" to "Paper Team",
|
||||
- "Brand-Id" to "papermc:paper",
|
||||
- "Brand-Name" to "Paper",
|
||||
+ "Brand-Id" to "sparklypower:sparklypaper", // SparklyPaper
|
||||
+ "Brand-Name" to "SparklyPaper", // SparklyPaper
|
||||
"Build-Number" to (build ?: ""),
|
||||
"Build-Time" to Instant.now().toString(),
|
||||
"Git-Branch" to gitBranch, // Paper
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
||||
index 774556a62eb240da42e84db4502e2ed43495be17..9bc7b99b5b39a8ffe4118b8d86f5b8065c4fe460 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
|
||||
|
||||
@@ -0,0 +1,129 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: MrPowerGamerBR <git@mrpowergamerbr.com>
|
||||
Date: Sat, 1 Jun 2024 01:22:41 -0300
|
||||
Subject: [PATCH] Remap SparklyPower hacky legacy NBT tags
|
||||
|
||||
This is only useful for us in SparklyPower, but yeah...
|
||||
|
||||
diff --git a/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java b/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java
|
||||
index a5a21d1c7579e45b78eae4b42a9f023db74acc0a..921947048648ff4555b80be4ef669a6dd53b12af 100644
|
||||
--- a/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java
|
||||
+++ b/src/main/java/ca/spottedleaf/dataconverter/minecraft/converters/itemstack/ConverterItemStackToDataComponents.java
|
||||
@@ -9,6 +9,7 @@ import ca.spottedleaf.dataconverter.types.ObjectType;
|
||||
import ca.spottedleaf.dataconverter.types.TypeUtil;
|
||||
import ca.spottedleaf.dataconverter.util.NamespaceUtil;
|
||||
import net.minecraft.util.Mth;
|
||||
+
|
||||
import java.util.Arrays;
|
||||
import java.util.HashSet;
|
||||
import java.util.Set;
|
||||
@@ -1220,6 +1221,7 @@ public final class ConverterItemStackToDataComponents {
|
||||
ret.setString("id", this.id);
|
||||
ret.setInt("count", this.count);
|
||||
if (!this.tag.isEmpty()) {
|
||||
+ net.sparklypower.sparklypaper.LegacyNBTRemapper.INSTANCE.remap(this.tag); // SparklyPaper - Remap SparklyPower hacky legacy NBT tags
|
||||
this.components.setMap("minecraft:custom_data", this.tag);
|
||||
}
|
||||
|
||||
diff --git a/src/main/kotlin/net/sparklypower/sparklypaper/LegacyNBTRemapper.kt b/src/main/kotlin/net/sparklypower/sparklypaper/LegacyNBTRemapper.kt
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..194d1ed887c389dc50648d0c05c2d71de2691c09
|
||||
--- /dev/null
|
||||
+++ b/src/main/kotlin/net/sparklypower/sparklypaper/LegacyNBTRemapper.kt
|
||||
@@ -0,0 +1,95 @@
|
||||
+package net.sparklypower.sparklypaper
|
||||
+
|
||||
+import ca.spottedleaf.dataconverter.types.MapType
|
||||
+
|
||||
+object LegacyNBTRemapper {
|
||||
+ /**
|
||||
+ * Remaps hacky direct NBT storage used in SparklyPower to proper PersistentDataContainer data
|
||||
+ */
|
||||
+ fun remap(tag: MapType<String>) {
|
||||
+ val perfectDreamsMap = tag.getMap<String>("PerfectDreams")
|
||||
+
|
||||
+ if (perfectDreamsMap != null) {
|
||||
+ val publicBukkitValuesMap = tag.getOrCreateMap<String>("PublicBukkitValues")
|
||||
+
|
||||
+ // The "setBoolean" functions do set bytes behind the scenes, just like how we do the things in SparklyPower
|
||||
+ perfectDreamsMap.getStringAndRemove("isJetpack")?.let {
|
||||
+ publicBukkitValuesMap.setBoolean("sparklypower:is_jetpack", it.toBoolean())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("disallowCrafting")?.let {
|
||||
+ publicBukkitValuesMap.setBoolean("sparklypower:disallow_crafting", it.toBoolean())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("poop")?.let {
|
||||
+ publicBukkitValuesMap.setBoolean("sparklypower:is_poop", it.toBoolean())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("renamedBySeuZe")?.let {
|
||||
+ publicBukkitValuesMap.setBoolean("sparklypower:is_renamed_by_seu_ze", it.toBoolean())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("isMonsterPickaxe")?.let {
|
||||
+ publicBukkitValuesMap.setBoolean("sparklypower:is_monster_tool", it.toBoolean())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("itemOwner")?.let {
|
||||
+ publicBukkitValuesMap.setString("sparklypower:item_owner", it)
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("DreamFusca")?.let {
|
||||
+ publicBukkitValuesMap.setString("sparklypower:fusca_info", it)
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("isFusca")?.let {
|
||||
+ publicBukkitValuesMap.setBoolean("sparklypower:is_fusca", it.toBoolean())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("fancyLeatherArmor")?.let {
|
||||
+ publicBukkitValuesMap.setBoolean("sparklypower:is_fancy_leather_armor", it.toBoolean())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("caixaSecretaLevel")?.let {
|
||||
+ publicBukkitValuesMap.setInt("sparklypower:caixa_secreta_level", it.toInt())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("caixaSecretaWorld")?.let {
|
||||
+ publicBukkitValuesMap.setString("sparklypower:caixa_secreta_world", it)
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("isMoveSpawners")?.let {
|
||||
+ publicBukkitValuesMap.setBoolean("sparklypower:is_move_spawners_tool", it.toBoolean())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("spawnerType")?.let {
|
||||
+ publicBukkitValuesMap.setString("sparklypower:spawner_type", it)
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("isMochila")?.let {
|
||||
+ publicBukkitValuesMap.setBoolean("is_mochila", it.toBoolean())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("mochilaId")?.let {
|
||||
+ publicBukkitValuesMap.setLong("mochila_id", it.toLong())
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("customMapOwner")?.let {
|
||||
+ publicBukkitValuesMap.setString("map_custom_owner", it)
|
||||
+ }
|
||||
+
|
||||
+ perfectDreamsMap.getStringAndRemove("quickTeleport")?.let {
|
||||
+ publicBukkitValuesMap.setBoolean("is_quick_resources_teleport", it.toBoolean())
|
||||
+ }
|
||||
+
|
||||
+ // If it is empty, then it means that we have migrated everything and we can remove the old PerfectDreams tag, yay!
|
||||
+ if (perfectDreamsMap.isEmpty)
|
||||
+ tag.remove("PerfectDreams")
|
||||
+ }
|
||||
+ }
|
||||
+
|
||||
+ private fun MapType<String>.getStringAndRemove(key: String): String? {
|
||||
+ val v = getString(key)
|
||||
+ remove(key)
|
||||
+ return v
|
||||
+ }
|
||||
+}
|
||||
\ No newline at end of file
|
||||
Reference in New Issue
Block a user