Skip to content

Commit

Permalink
Update Adventure & use ComponentPatches
Browse files Browse the repository at this point in the history
  • Loading branch information
Faithcaio committed May 25, 2024
1 parent 0d3d9ec commit 96b4581
Show file tree
Hide file tree
Showing 6 changed files with 144 additions and 52 deletions.
2 changes: 1 addition & 1 deletion SpongeAPI
90 changes: 90 additions & 0 deletions gradle/verification-metadata.xml
Original file line number Diff line number Diff line change
Expand Up @@ -430,6 +430,11 @@
<sha256 value="0481460db59903362b26fabd3bdcd5ec200750f9391bbb6502fe3c7dc2df3e4c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.auto.service" name="auto-service-aggregator" version="1.1.1">
<artifact name="auto-service-aggregator-1.1.1.pom">
<sha256 value="e2dc3e263a5db0cc8172fb2eb9bcd232acecfdc96e817103eab3c8d9f1900c6a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.auto.service" name="auto-service-annotations" version="1.0.1">
<artifact name="auto-service-annotations-1.0.1.jar">
<sha256 value="c7bec54b7b5588b5967e870341091c5691181d954cf2039f1bf0a6eeb837473b" origin="Generated by Gradle"/>
Expand All @@ -438,6 +443,14 @@
<sha256 value="e9bbf1b3d66ca18004a6a07a20dbfa10ca2ce8367348f741de2fe8fefce68cc2" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.auto.service" name="auto-service-annotations" version="1.1.1">
<artifact name="auto-service-annotations-1.1.1.jar">
<sha256 value="16a76dd00a2650568447f5d6e3a9e2c809d9a42367d56b45215cfb89731f4d24" origin="Generated by Gradle"/>
</artifact>
<artifact name="auto-service-annotations-1.1.1.pom">
<sha256 value="1659fd0a25cea9fa9abfb18deb9d7b180cce3aceab16ff9e625461567e44a2df" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="com.google.auto.value" name="auto-value-annotations" version="1.9">
<artifact name="auto-value-annotations-1.9.jar">
<sha256 value="fa5469f4c44ee598a2d8f033ab0a9dcbc6498a0c5e0c998dfa0c2adf51358044" origin="Generated by Gradle"/>
Expand Down Expand Up @@ -1895,6 +1908,14 @@
<sha256 value="a0992d7453fcfb4b5da367f8949dd29fba1af7adefb08beb5e2b4fb11a1f6802" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-api" version="4.17.0">
<artifact name="adventure-api-4.17.0.jar">
<sha256 value="15c8c2eb1a69d8b1bc914f554353da8ee7cf074c05c8074da9898aee5c70d0d8" origin="Generated by Gradle"/>
</artifact>
<artifact name="adventure-api-4.17.0.module">
<sha256 value="7b777c1f7a60fda2b20d37a1bdafeab32a772f61ba8e42092554f7e8498d167e" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-bom" version="4.16.0">
<artifact name="adventure-bom-4.16.0.module">
<sha256 value="7bb0ff16b5787d447294343d96cae826946c78ff3dff47487d4a65a2fe5b58ff" origin="Generated by Gradle"/>
Expand All @@ -1903,6 +1924,11 @@
<sha256 value="f46181ee62c0991a0082029b81bcc83b6247baeb40878c5143a15c93ad85430b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-bom" version="4.17.0">
<artifact name="adventure-bom-4.17.0.module">
<sha256 value="b6af0abd2505b0f512317a1f7764dd3688684c23cc46807ac41169ebd266a7e7" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-key" version="4.16.0">
<artifact name="adventure-key-4.16.0-javadoc.jar">
<sha256 value="79e45459b03781d6c4bb487306b5fda22be88eada46331ba47a2e070a9a30c01" origin="Generated by Gradle"/>
Expand All @@ -1917,6 +1943,14 @@
<sha256 value="2c25b109ef79f5ca7e35783fad43c7b8daad597f6be4a3ca4c01b590bc0a21ba" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-key" version="4.17.0">
<artifact name="adventure-key-4.17.0.jar">
<sha256 value="8e5cf570612d6ccedf943ac1716a449de2dd5a90207b7de6f73c0236935b766e" origin="Generated by Gradle"/>
</artifact>
<artifact name="adventure-key-4.17.0.module">
<sha256 value="33c516a5742be697d389acc54c5c4b4737e2bba1edeabd45e64c898b8347920a" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-serializer-configurate4" version="4.16.0">
<artifact name="adventure-serializer-configurate4-4.16.0.jar">
<sha256 value="c7d3faceb0d36d25982aa1fc69c3663bc9461498a82ea6af6bcb2c21b60b5547" origin="Generated by Gradle"/>
Expand All @@ -1928,6 +1962,14 @@
<sha256 value="6d13fab3dff67d0eca82850d197ac063630428297ac9c333c59eb5eda9cf61da" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-serializer-configurate4" version="4.17.0">
<artifact name="adventure-serializer-configurate4-4.17.0.jar">
<sha256 value="c944444bdd96f1a6d7026f700cf2da02914c6e0c6c369259c4c0c44040edc756" origin="Generated by Gradle"/>
</artifact>
<artifact name="adventure-serializer-configurate4-4.17.0.module">
<sha256 value="d10641b3e770cdd4e1caac47f324425059c0d52d4fb757ae0b361ad16c4da7e7" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-minimessage" version="4.16.0">
<artifact name="adventure-text-minimessage-4.16.0-javadoc.jar">
<sha256 value="7a101cb27dcc27c99e96018e0a06e2e149e57849fde98be973b84b7297d7f42a" origin="Generated by Gradle"/>
Expand All @@ -1942,6 +1984,14 @@
<sha256 value="abe81c957e6a1373e2f6870649ce6e241fb723ba7310ce824a67a8ac5e8da332" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-minimessage" version="4.17.0">
<artifact name="adventure-text-minimessage-4.17.0.jar">
<sha256 value="8372a9e9bc0c0ae21d60e6ce6e284a81c6c96d1ec398f808825015c6f60252f5" origin="Generated by Gradle"/>
</artifact>
<artifact name="adventure-text-minimessage-4.17.0.module">
<sha256 value="8503655ca6011ad6860fbfe5dbdb50b2a131fa30810b42bee7cb0e837933d3fc" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-serializer-ansi" version="4.16.0">
<artifact name="adventure-text-serializer-ansi-4.16.0.jar">
<sha256 value="52961434e75a974451fa8264e7896cea0ff27ef196eb832f3e7b74bfb38bd42b" origin="Generated by Gradle"/>
Expand All @@ -1953,6 +2003,14 @@
<sha256 value="416fbc5281c5f0c962ac567cf16b388dac7f1cffe7d2e57c8f1b2cf171ddca33" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-serializer-ansi" version="4.17.0">
<artifact name="adventure-text-serializer-ansi-4.17.0.jar">
<sha256 value="d0dcd946dc2dc858621a31914643f3c06817d4c38ad52c235ec147e565d8e24c" origin="Generated by Gradle"/>
</artifact>
<artifact name="adventure-text-serializer-ansi-4.17.0.module">
<sha256 value="9482485796d2b9fcef2f2f6841825dc25b9cf20d227b0a0f8a8250edd740a308" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-serializer-gson" version="4.16.0">
<artifact name="adventure-text-serializer-gson-4.16.0-javadoc.jar">
<sha256 value="2681bc1e76f7a382c9a961815a56065aa24391dc3f05a355ab3664e4e3657c48" origin="Generated by Gradle"/>
Expand All @@ -1967,6 +2025,14 @@
<sha256 value="646afd7028ff803088342577472ea1cd159fc5496804e73c3c369f0401007837" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-serializer-gson" version="4.17.0">
<artifact name="adventure-text-serializer-gson-4.17.0.jar">
<sha256 value="6227d6bfd2d6ae6d121d3dcda590d33ff8373cea6589485df3f7b75b09e7d210" origin="Generated by Gradle"/>
</artifact>
<artifact name="adventure-text-serializer-gson-4.17.0.module">
<sha256 value="354769ff9d98bbce5b846e2a3e1572710434c978eb232f428f3d369129ae5976" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-serializer-json" version="4.16.0">
<artifact name="adventure-text-serializer-json-4.16.0-javadoc.jar">
<sha256 value="f90c521ef81035beae06b5c5a5de3e636e03a5b85ede2af9e468cc6b67e57f57" origin="Generated by Gradle"/>
Expand All @@ -1981,6 +2047,14 @@
<sha256 value="c1bc0b656ce29e5cf4b4fe5e43298b30b31b56f311c38fd00fcd48a04bd5b0e5" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-serializer-json" version="4.17.0">
<artifact name="adventure-text-serializer-json-4.17.0.jar">
<sha256 value="6c91d3e23b064d76ab7c154ebe940f552232ae178b95d21b50dfdcfec2925d96" origin="Generated by Gradle"/>
</artifact>
<artifact name="adventure-text-serializer-json-4.17.0.module">
<sha256 value="38436594e1303ddeb38a282a76cb820c1cb7f40fe4094a496f97b4a2617f74b4" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-serializer-legacy" version="4.16.0">
<artifact name="adventure-text-serializer-legacy-4.16.0-javadoc.jar">
<sha256 value="0c309b1e595fda068dd876cf2d06f1781bc8508be08b964d8c447aa3e01b17f7" origin="Generated by Gradle"/>
Expand All @@ -1995,6 +2069,14 @@
<sha256 value="d7decab7bfc128a37ec5e512dc5198c81776240d833b5c3ec780db6fc9cb936c" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-serializer-legacy" version="4.17.0">
<artifact name="adventure-text-serializer-legacy-4.17.0.jar">
<sha256 value="9d4955542e40eb5b41dbed172b2826acf1cbe3405e002f3360eb2ea578d536ba" origin="Generated by Gradle"/>
</artifact>
<artifact name="adventure-text-serializer-legacy-4.17.0.module">
<sha256 value="9a1426c5c627da9180bf3e233a1aadb61683578e20a0f108b3233f9640be9e37" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-serializer-plain" version="4.16.0">
<artifact name="adventure-text-serializer-plain-4.16.0-javadoc.jar">
<sha256 value="5fc7a99e8742fd6800aefc385f58e3c332eb7aa2ddbb827768ae9c9b0e4edd9a" origin="Generated by Gradle"/>
Expand All @@ -2009,6 +2091,14 @@
<sha256 value="18a37545739c1101118863406906052156e9054a4f10cc53facd3dbdec91d67b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="adventure-text-serializer-plain" version="4.17.0">
<artifact name="adventure-text-serializer-plain-4.17.0.jar">
<sha256 value="226d4a3d2c42b7727df11a02a698c6c64475384705dd12bf02c7f69744799c2e" origin="Generated by Gradle"/>
</artifact>
<artifact name="adventure-text-serializer-plain-4.17.0.module">
<sha256 value="e7d2fe4a0917491869d5f963175bacbef820d86735d7362148a9f31951426b5b" origin="Generated by Gradle"/>
</artifact>
</component>
<component group="net.kyori" name="ansi" version="1.0.3">
<artifact name="ansi-1.0.3.jar">
<sha256 value="26239e8fd349d6a166d7c73623518b44dbac819b80530546724cb20ee5e38243" origin="Generated by Gradle"/>
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,10 +32,8 @@
import io.netty.util.AttributeKey;
import net.kyori.adventure.audience.Audience;
import net.kyori.adventure.audience.ForwardingAudience;
import net.kyori.adventure.audience.MessageType;
import net.kyori.adventure.bossbar.BossBar;
import net.kyori.adventure.key.Key;
import net.kyori.adventure.nbt.api.BinaryTagHolder;
import net.kyori.adventure.serializer.configurate4.ConfigurateComponentSerializer;
import net.kyori.adventure.sound.Sound;
import net.kyori.adventure.text.BlockNBTComponent;
Expand All @@ -51,6 +49,7 @@
import net.kyori.adventure.text.TextComponent;
import net.kyori.adventure.text.TranslatableComponent;
import net.kyori.adventure.text.event.ClickEvent;
import net.kyori.adventure.text.event.DataComponentValue;
import net.kyori.adventure.text.event.HoverEvent;
import net.kyori.adventure.text.flattener.ComponentFlattener;
import net.kyori.adventure.text.format.NamedTextColor;
Expand All @@ -65,8 +64,9 @@
import net.minecraft.core.Holder;
import net.minecraft.core.Registry;
import net.minecraft.core.RegistryAccess;
import net.minecraft.core.component.DataComponentMap;
import net.minecraft.core.component.DataComponentPatch;
import net.minecraft.core.component.DataComponentType;
import net.minecraft.core.registries.BuiltInRegistries;
import net.minecraft.core.registries.Registries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.nbt.ListTag;
Expand Down Expand Up @@ -116,8 +116,10 @@
import java.util.Arrays;
import java.util.Collections;
import java.util.EnumSet;
import java.util.HashMap;
import java.util.List;
import java.util.Locale;
import java.util.Map;
import java.util.Objects;
import java.util.Optional;
import java.util.Set;
Expand Down Expand Up @@ -493,13 +495,6 @@ public static ChatFormatting asVanilla(final NamedTextColor color) {
return null;
}

public static ChatType.Bound asVanilla(final MessageType type, final RegistryAccess registryAccess, final net.minecraft.network.chat.Component name) {
if (type == MessageType.CHAT) {
return ChatType.bind(ChatType.CHAT, registryAccess, name);
}
throw new IllegalArgumentException(type.name());
}

@SuppressWarnings("ConstantConditions")
public static HoverEvent<?> asAdventure(final net.minecraft.network.chat.HoverEvent event) {
final Action<?> action = event.getAction();
Expand All @@ -521,7 +516,7 @@ public static HoverEvent<?> asAdventure(final net.minecraft.network.chat.HoverEv
return HoverEvent.showItem(
SpongeAdventure.asAdventure(itemRegistry.getKey(itemStack.getItem())),
itemStack.getCount(),
SpongeAdventure.asBinaryTagHolder(itemStack.getComponents())
SpongeAdventure.asAdventure(itemStack.getComponentsPatch())
);
}
throw new IllegalArgumentException(event.toString());
Expand Down Expand Up @@ -563,7 +558,7 @@ public static HoverEvent<?> asAdventure(final net.minecraft.network.chat.HoverEv
HoverEvent_ItemStackInfoAccessor.invoker$new(
Holder.direct(itemRegistry.get(SpongeAdventure.asVanilla(value.item()))),
value.count(),
SpongeAdventure.asVanillaCompound(value.nbt())
SpongeAdventure.asVanilla(value.dataComponents())
)
);
}
Expand Down Expand Up @@ -727,30 +722,36 @@ public static Set<BossBar.Flag> asAdventureFlags(final boolean darkenScreen, fin
return flags;
}

// NBT

public static @Nullable DataComponentPatch asVanillaCompound(final @Nullable BinaryTagHolder tag) {
if (tag == null) {
return null;
}
// try {
// TODO requires Adventure Change tag.get(SpongeAdventure.NBT_CODEC);
@SuppressWarnings({"rawtypes", "unchecked"})
public static DataComponentPatch asVanilla(final Map<Key, DataComponentValue> componentMap) {
if (componentMap == null) {
return DataComponentPatch.EMPTY;
// } catch (final IOException e) {
// return null;
// }
}
final DataComponentPatch.Builder builder = DataComponentPatch.builder();
componentMap.forEach((key, value) -> {
final DataComponentType type = BuiltInRegistries.DATA_COMPONENT_TYPE.get(SpongeAdventure.asVanilla(key));
if (type != null && value instanceof SpongeDataComponentValue dcv) {
builder.set(type, dcv.value.orElse(null));
}
});
return builder.build();
}

public static @Nullable BinaryTagHolder asBinaryTagHolder(final DataComponentMap components) {
public static Map<Key, DataComponentValue> asAdventure(final DataComponentPatch components) {
if (components == null) {
return null;
}
try {
// TODO requires Adventure Change
return BinaryTagHolder.encode(null, SpongeAdventure.NBT_CODEC);
} catch (final IOException e) {
return null;
return Map.of();
}

Map<Key, DataComponentValue> map = new HashMap<>();
components.entrySet().forEach(entry -> {
final ResourceLocation key = BuiltInRegistries.DATA_COMPONENT_TYPE.getKey(entry.getKey());
map.put(SpongeAdventure.asAdventure(key), new SpongeDataComponentValue<>(entry.getValue()));
});
return map;
}

private record SpongeDataComponentValue<T>(Optional<T> value) implements DataComponentValue {

}

// Key
Expand Down

0 comments on commit 96b4581

Please sign in to comment.