Skip to content
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -18,7 +18,6 @@
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.chat.ComponentSerializer;
import org.bukkit.Bukkit;

public class PaperModule {
Expand Down Expand Up @@ -156,7 +155,7 @@ public static String stringifyComponent(Component component) {
if (component == null) {
return null;
}
return FormattedTextHelper.stringify(ComponentSerializer.parse(componentToJson(component)));
return FormattedTextHelper.stringify(FormattedTextHelper.parseJson(componentToJson(component)));
}

public static Component jsonToComponent(String json) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -371,7 +371,6 @@ else if (javaVersion.startsWith("21")) {
ExSustainedCommandHandler exsCommand = new ExSustainedCommandHandler();
exsCommand.enableFor(getCommand("exs"));
FullBlockData.init();
HoverFormatHelper.tryInitializeItemHoverFix();
// Load script files without processing.
DenizenCore.preloadScripts(false, null);
// Load the saves.yml into memory
Expand Down
Original file line number Diff line number Diff line change
@@ -1,17 +1,16 @@
package com.denizenscript.denizen.events.player;

import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizen.objects.PlayerTag;
import com.denizenscript.denizen.utilities.FormattedTextHelper;
import com.denizenscript.denizen.utilities.implementation.BukkitScriptEntryData;
import com.denizenscript.denizen.events.BukkitScriptEvent;
import com.denizenscript.denizen.utilities.packets.NetworkInterceptHelper;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.objects.ObjectTag;
import com.denizenscript.denizencore.objects.core.ElementTag;
import com.denizenscript.denizencore.scripts.ScriptEntryData;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.chat.ComponentSerializer;

public class PlayerReceivesMessageScriptEvent extends BukkitScriptEvent {

Expand Down Expand Up @@ -97,7 +96,7 @@ public boolean applyDetermination(ScriptPath path, ObjectTag determinationObj) {
if (lower.startsWith("raw_json:")) {
rawJson = new ElementTag(determination.substring("raw_json:".length()));
altMessageDetermination = null;
message = new ElementTag(FormattedTextHelper.stringify(ComponentSerializer.parse(rawJson.asString())), true);
message = new ElementTag(FormattedTextHelper.stringify(FormattedTextHelper.parseJson(rawJson.asString())), true);
modified = true;
return true;
}
Expand Down Expand Up @@ -127,7 +126,7 @@ public ObjectTag getContext(String name) {
public PlayerReceivesMessageScriptEvent triggerNow() {
PlayerReceivesMessageScriptEvent event = (PlayerReceivesMessageScriptEvent) fire();
if (event.modified && event.altMessageDetermination == null) {
event.altMessageDetermination = ComponentSerializer.parse(event.rawJson.asString());
event.altMessageDetermination = FormattedTextHelper.parseJson(event.rawJson.asString());
}
return event;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,6 @@
import com.denizenscript.denizen.nms.util.PlayerProfile;
import com.denizenscript.denizen.nms.util.jnbt.CompoundTag;
import com.denizenscript.denizen.nms.util.jnbt.Tag;
import com.google.gson.Gson;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.NamespacedKey;
Expand All @@ -32,8 +31,7 @@ public abstract class NMSHandler {
public static boolean debugPackets = false;
public static String debugPacketFilter = "";

public static boolean initialize(JavaPlugin plugin) {
javaPlugin = plugin;
static {
String bukkitVersion = Bukkit.getBukkitVersion();
for (NMSVersion potentialVersion : NMSVersion.values()) {
if (bukkitVersion.startsWith(potentialVersion.minecraftVersion)) {
Expand All @@ -43,6 +41,12 @@ public static boolean initialize(JavaPlugin plugin) {
}
if (version == null) {
version = NMSVersion.NOT_SUPPORTED;
}
}

public static boolean initialize(JavaPlugin plugin) {
javaPlugin = plugin;
if (getVersion() == NMSVersion.NOT_SUPPORTED) {
instance = null;
return false;
}
Expand Down Expand Up @@ -147,6 +151,4 @@ public void setBossbarUUID(BossBar bar, UUID id) {
public String updateLegacyName(Class<?> type, String legacyName) {
return legacyName;
}

public abstract Gson getVanillaStyleSpigotComponentGSON(); // TODO: Once 1.21 is the minimum version, de-module this
}
Original file line number Diff line number Diff line change
Expand Up @@ -19,7 +19,6 @@
import com.denizenscript.denizencore.utilities.CoreUtilities;
import com.denizenscript.denizencore.utilities.Deprecations;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.chat.ComponentSerializer;

import java.nio.charset.StandardCharsets;

Expand Down Expand Up @@ -442,7 +441,7 @@ public static void register() {
// Inverts <@link tag ElementTag.to_raw_json>.
// -->
ElementTag.tagProcessor.registerStaticTag(ElementTag.class, "from_raw_json", (attribute, object) -> {
return new ElementTag(FormattedTextHelper.stringify(ComponentSerializer.parse(object.asString())));
return new ElementTag(FormattedTextHelper.stringify(FormattedTextHelper.parseJson(object.asString())));
});

// <--[tag]
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,6 @@
import com.denizenscript.denizencore.tags.core.EscapeTagUtil;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.chat.ComponentSerializer;
import org.bukkit.Material;
import org.bukkit.inventory.meta.BookMeta;

Expand Down Expand Up @@ -277,7 +276,7 @@ public static void register() {
if (data.get(0).equalsIgnoreCase("raw_pages")) {
List<BaseComponent[]> newPages = new ArrayList<>(data.size());
for (int i = 1; i < data.size(); i++) {
newPages.add(ComponentSerializer.parse(EscapeTagUtil.unEscape(data.get(i))));
newPages.add(FormattedTextHelper.parseJson(EscapeTagUtil.unEscape(data.get(i))));
}
bookMeta.spigot().setPages(newPages);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -10,10 +10,14 @@
import com.denizenscript.denizencore.utilities.AsciiMatcher;
import com.denizenscript.denizencore.utilities.CoreConfiguration;
import com.denizenscript.denizencore.utilities.CoreUtilities;
import com.denizenscript.denizencore.utilities.ReflectionHelper;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.google.gson.Gson;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.*;
import net.md_5.bungee.chat.ChatVersion;
import net.md_5.bungee.chat.ComponentSerializer;
import net.md_5.bungee.chat.VersionedComponentSerializer;

import java.util.List;

Expand Down Expand Up @@ -857,15 +861,33 @@ public static String bukkitSafeDebugTrimming(String message) {
return message;
}

public static Gson vanillaStyleSpigotComponentGSON = null;
public static Gson getBungeeGson() {
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_21)) {
return VersionedComponentSerializer.forVersion(ChatVersion.V1_21_5).getGson();
}
else {
return ReflectionHelper.getFieldValue(ComponentSerializer.class, "gson", null);
}
}

static {
// Explicitly before initializing vanillaStyleSpigotComponentGSON
HoverFormatHelper.tryInitializeItemHoverFix();
}

public static final Gson vanillaStyleSpigotComponentGSON = getBungeeGson().newBuilder().disableHtmlEscaping().create();

public static String componentToJson(BaseComponent[] components) {
if (vanillaStyleSpigotComponentGSON == null) {
vanillaStyleSpigotComponentGSON = NMSHandler.instance.getVanillaStyleSpigotComponentGSON();
}
if (components.length == 1) {
return vanillaStyleSpigotComponentGSON.toJson(components[0]);
}
return vanillaStyleSpigotComponentGSON.toJson(new TextComponent(components));
}

public static BaseComponent[] parseJson(String json) {
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_21)) {
return VersionedComponentSerializer.forVersion(ChatVersion.V1_21_5).parse(json);
}
return ComponentSerializer.parse(json);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -13,7 +13,9 @@
import net.md_5.bungee.api.chat.HoverEvent;
import net.md_5.bungee.api.chat.TextComponent;
import net.md_5.bungee.api.chat.hover.content.*;
import net.md_5.bungee.chat.ChatVersion;
import net.md_5.bungee.chat.ComponentSerializer;
import net.md_5.bungee.chat.VersionedComponentSerializer;
import org.bukkit.Bukkit;
import org.bukkit.Registry;
import org.bukkit.inventory.ItemStack;
Expand Down Expand Up @@ -94,7 +96,7 @@ public static void tryInitializeItemHoverFix() {
if (!NMSHandler.getVersion().isAtLeast(NMSVersion.v1_20)) {
return;
}
Gson bungeeGson = ReflectionHelper.getFieldValue(ComponentSerializer.class, "gson", null);
Gson bungeeGson = FormattedTextHelper.getBungeeGson();
if (bungeeGson == null) {
return;
}
Expand All @@ -103,7 +105,12 @@ public static void tryInitializeItemHoverFix() {
.registerTypeAdapter(Item.class, new FixedItemHoverSerializer())
.create();
try {
ReflectionHelper.getFinalSetter(ComponentSerializer.class, "gson").invoke(fixedGson);
if (NMSHandler.getVersion().isAtLeast(NMSVersion.v1_21)) {
ReflectionHelper.setFieldValue(VersionedComponentSerializer.class, "gson", VersionedComponentSerializer.forVersion(ChatVersion.V1_21_5), fixedGson);
}
else {
ReflectionHelper.getFinalSetter(ComponentSerializer.class, "gson").invoke(fixedGson);
}
}
catch (Throwable e) {
Debug.echoError(e);
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -19,13 +19,10 @@
import com.denizenscript.denizencore.utilities.ReflectionHelper;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.google.common.collect.Iterables;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
import net.md_5.bungee.api.chat.*;
import net.md_5.bungee.api.chat.hover.content.*;
import net.md_5.bungee.chat.*;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.chat.ComponentSerializer;
import net.minecraft.core.Registry;
import net.minecraft.nbt.ByteArrayTag;
import net.minecraft.nbt.StringTag;
Expand Down Expand Up @@ -291,21 +288,4 @@ public static MutableComponent componentToNMS(BaseComponent[] spigot) {
String json = ComponentSerializer.toString(spigot);
return Component.Serializer.fromJson(json);
}

@Override
public Gson getVanillaStyleSpigotComponentGSON() {
return new GsonBuilder()
.registerTypeAdapter(BaseComponent.class, new ComponentSerializer())
.registerTypeAdapter(TextComponent.class, new TextComponentSerializer())
.registerTypeAdapter(TranslatableComponent.class, new TranslatableComponentSerializer())
.registerTypeAdapter(KeybindComponent.class, new KeybindComponentSerializer())
.registerTypeAdapter(ScoreComponent.class, new ScoreComponentSerializer())
.registerTypeAdapter(SelectorComponent.class, new SelectorComponentSerializer())
.registerTypeAdapter(net.md_5.bungee.api.chat.hover.content.Entity.class, new EntitySerializer())
.registerTypeAdapter(Text.class, new TextSerializer())
.registerTypeAdapter(Item.class, new ItemSerializer())
.registerTypeAdapter(ItemTag.class, new ItemTag.Serializer())
.disableHtmlEscaping() // Mojang
.create();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,11 @@
import com.denizenscript.denizencore.utilities.ReflectionHelper;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.google.common.collect.Iterables;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.*;
import net.md_5.bungee.api.chat.hover.content.*;
import net.md_5.bungee.chat.*;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.chat.ComponentSerializer;
import net.minecraft.core.Holder;
import net.minecraft.core.Registry;
import net.minecraft.nbt.ByteArrayTag;
Expand Down Expand Up @@ -321,21 +318,4 @@ public static MutableComponent componentToNMS(BaseComponent[] spigot) {
String json = ComponentSerializer.toString(spigot);
return Component.Serializer.fromJson(json);
}

@Override
public Gson getVanillaStyleSpigotComponentGSON() {
return new GsonBuilder()
.registerTypeAdapter(BaseComponent.class, new ComponentSerializer())
.registerTypeAdapter(TextComponent.class, new TextComponentSerializer())
.registerTypeAdapter(TranslatableComponent.class, new TranslatableComponentSerializer())
.registerTypeAdapter(KeybindComponent.class, new KeybindComponentSerializer())
.registerTypeAdapter(ScoreComponent.class, new ScoreComponentSerializer())
.registerTypeAdapter(SelectorComponent.class, new SelectorComponentSerializer())
.registerTypeAdapter(net.md_5.bungee.api.chat.hover.content.Entity.class, new EntitySerializer())
.registerTypeAdapter(Text.class, new TextSerializer())
.registerTypeAdapter(Item.class, new ItemSerializer())
.registerTypeAdapter(ItemTag.class, new ItemTag.Serializer())
.disableHtmlEscaping() // Mojang
.create();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -22,14 +22,11 @@
import com.denizenscript.denizencore.utilities.ReflectionHelper;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.google.common.collect.Iterables;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.*;
import net.md_5.bungee.api.chat.hover.content.*;
import net.md_5.bungee.chat.*;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.chat.ComponentSerializer;
import net.minecraft.core.Holder;
import net.minecraft.core.registries.Registries;
import net.minecraft.nbt.ByteArrayTag;
Expand Down Expand Up @@ -342,21 +339,4 @@ public static MutableComponent componentToNMS(BaseComponent[] spigot) {
String json = FormattedTextHelper.componentToJson(spigot);
return Component.Serializer.fromJson(json);
}

@Override
public Gson getVanillaStyleSpigotComponentGSON() {
return new GsonBuilder()
.registerTypeAdapter(BaseComponent.class, new ComponentSerializer())
.registerTypeAdapter(TextComponent.class, new TextComponentSerializer())
.registerTypeAdapter(TranslatableComponent.class, new TranslatableComponentSerializer())
.registerTypeAdapter(KeybindComponent.class, new KeybindComponentSerializer())
.registerTypeAdapter(ScoreComponent.class, new ScoreComponentSerializer())
.registerTypeAdapter(SelectorComponent.class, new SelectorComponentSerializer())
.registerTypeAdapter(net.md_5.bungee.api.chat.hover.content.Entity.class, new EntitySerializer())
.registerTypeAdapter(Text.class, new TextSerializer())
.registerTypeAdapter(Item.class, new ItemSerializer())
.registerTypeAdapter(ItemTag.class, new ItemTag.Serializer())
.disableHtmlEscaping() // Mojang
.create();
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -31,16 +31,13 @@
import com.denizenscript.denizencore.utilities.ReflectionHelper;
import com.denizenscript.denizencore.utilities.debugging.Debug;
import com.google.common.collect.Iterables;
import com.google.gson.Gson;
import com.google.gson.GsonBuilder;
import com.mojang.authlib.GameProfile;
import com.mojang.authlib.properties.Property;
import com.mojang.authlib.yggdrasil.ProfileResult;
import com.mojang.brigadier.exceptions.CommandSyntaxException;
import net.md_5.bungee.api.ChatColor;
import net.md_5.bungee.api.chat.*;
import net.md_5.bungee.api.chat.hover.content.*;
import net.md_5.bungee.chat.*;
import net.md_5.bungee.api.chat.BaseComponent;
import net.md_5.bungee.chat.ComponentSerializer;
import net.minecraft.core.BlockPos;
import net.minecraft.core.Holder;
import net.minecraft.core.Rotations;
Expand Down Expand Up @@ -392,21 +389,4 @@ public static Component componentToNMS(BaseComponent[] spigot) {
}
return CraftChatMessage.fromJSONOrNull(FormattedTextHelper.componentToJson(spigot));
}

@Override
public Gson getVanillaStyleSpigotComponentGSON() {
return new GsonBuilder()
.registerTypeAdapter(BaseComponent.class, new ComponentSerializer())
.registerTypeAdapter(TextComponent.class, new TextComponentSerializer())
.registerTypeAdapter(TranslatableComponent.class, new TranslatableComponentSerializer())
.registerTypeAdapter(KeybindComponent.class, new KeybindComponentSerializer())
.registerTypeAdapter(ScoreComponent.class, new ScoreComponentSerializer())
.registerTypeAdapter(SelectorComponent.class, new SelectorComponentSerializer())
.registerTypeAdapter(net.md_5.bungee.api.chat.hover.content.Entity.class, new EntitySerializer())
.registerTypeAdapter(Text.class, new TextSerializer())
.registerTypeAdapter(Item.class, new ItemSerializer())
.registerTypeAdapter(net.md_5.bungee.api.chat.ItemTag.class, new net.md_5.bungee.api.chat.ItemTag.Serializer())
.disableHtmlEscaping() // Mojang
.create();
}
}
Loading