diff --git a/text-serializer-gson/src/main/java/net/kyori/adventure/text/serializer/gson/StyleSerializer.java b/text-serializer-gson/src/main/java/net/kyori/adventure/text/serializer/gson/StyleSerializer.java index 89e633098..5f692cb69 100644 --- a/text-serializer-gson/src/main/java/net/kyori/adventure/text/serializer/gson/StyleSerializer.java +++ b/text-serializer-gson/src/main/java/net/kyori/adventure/text/serializer/gson/StyleSerializer.java @@ -147,7 +147,7 @@ public Style read(final JsonReader in) throws IOException { if (hoverEventObject.has(HOVER_EVENT_CONTENTS)) { final @Nullable JsonElement rawValue = hoverEventObject.get(HOVER_EVENT_CONTENTS); final Class actionType = action.type(); - if (rawValue.isJsonNull() || (rawValue.isJsonArray() && rawValue.getAsJsonArray().size() == 0) || (rawValue.isJsonObject() && rawValue.getAsJsonObject().size() == 0)) { + if (isNullOrEmpty(rawValue)) { value = null; } else if (SerializerFactory.COMPONENT_TYPE.isAssignableFrom(actionType)) { value = this.gson.fromJson(rawValue, SerializerFactory.COMPONENT_TYPE); @@ -160,7 +160,7 @@ public Style read(final JsonReader in) throws IOException { } } else if (hoverEventObject.has(HOVER_EVENT_VALUE)) { final JsonElement element = hoverEventObject.get(HOVER_EVENT_VALUE); - if (element.isJsonNull() || (element.isJsonArray() && element.getAsJsonArray().size() == 0) || (element.isJsonObject() && element.getAsJsonObject().size() == 0)) { + if (isNullOrEmpty(element)) { value = null; } else { final Component rawValue = this.gson.fromJson(element, SerializerFactory.COMPONENT_TYPE); @@ -184,6 +184,10 @@ public Style read(final JsonReader in) throws IOException { return style.build(); } + private static boolean isNullOrEmpty(final @Nullable JsonElement element) { + return element == null || element.isJsonNull() || (element.isJsonArray() && element.getAsJsonArray().size() == 0) || (element.isJsonObject() && element.getAsJsonObject().size() == 0); + } + private boolean readBoolean(final JsonReader in) throws IOException { final JsonToken peek = in.peek(); if (peek == JsonToken.BOOLEAN) {