mirror of
https://github.com/DiscordSRV/Ascension.git
synced 2024-11-25 12:25:15 +01:00
Add null annotations & null handling to ComponentUtil
This commit is contained in:
parent
064fed3d43
commit
97ea72f0c7
@ -40,7 +40,7 @@ public class MinecraftComponentImpl implements MinecraftComponent {
|
||||
setJson(json);
|
||||
}
|
||||
|
||||
public MinecraftComponentImpl(Component component) {
|
||||
public MinecraftComponentImpl(@NotNull Component component) {
|
||||
setComponent(component);
|
||||
}
|
||||
|
||||
@ -48,7 +48,7 @@ public class MinecraftComponentImpl implements MinecraftComponent {
|
||||
return component;
|
||||
}
|
||||
|
||||
public void setComponent(Component component) {
|
||||
public void setComponent(@NotNull Component component) {
|
||||
this.component = component;
|
||||
this.json = GsonComponentSerializer.gson().serialize(component);
|
||||
}
|
||||
|
@ -26,6 +26,9 @@ import net.kyori.adventure.text.ComponentLike;
|
||||
import net.kyori.adventure.text.TextComponent;
|
||||
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
|
||||
import net.kyori.adventure.text.serializer.plain.PlainTextComponentSerializer;
|
||||
import org.jetbrains.annotations.Contract;
|
||||
import org.jetbrains.annotations.NotNull;
|
||||
import org.jetbrains.annotations.Nullable;
|
||||
|
||||
import java.util.Collection;
|
||||
|
||||
@ -36,25 +39,34 @@ public final class ComponentUtil {
|
||||
|
||||
private static MinecraftComponentAdapter<Component> ADAPTER;
|
||||
|
||||
@NotNull
|
||||
private static MinecraftComponentAdapter<Component> getAdapter() {
|
||||
return ADAPTER != null ? ADAPTER : (ADAPTER = MinecraftComponentAdapter.create(GsonComponentSerializer.class, Component.class));
|
||||
}
|
||||
|
||||
private ComponentUtil() {}
|
||||
|
||||
public static boolean isEmpty(Component component) {
|
||||
public static boolean isEmpty(@NotNull Component component) {
|
||||
return PlainTextComponentSerializer.plainText().serialize(component).isEmpty();
|
||||
}
|
||||
|
||||
public static boolean isEmpty(MinecraftComponent component) {
|
||||
public static boolean isEmpty(@NotNull MinecraftComponent component) {
|
||||
return component.asPlainString().isEmpty();
|
||||
}
|
||||
|
||||
@Contract("null -> null")
|
||||
public static MinecraftComponent toAPI(Component component) {
|
||||
if (component == null) {
|
||||
return null;
|
||||
}
|
||||
return new MinecraftComponentImpl(component);
|
||||
}
|
||||
|
||||
public static Component fromAPI(MinecraftComponent component) {
|
||||
@Contract("null -> null")
|
||||
public static Component fromAPI(@Nullable MinecraftComponent component) {
|
||||
if (component == null) {
|
||||
return null;
|
||||
}
|
||||
if (component instanceof MinecraftComponentImpl) {
|
||||
return ((MinecraftComponentImpl) component).getComponent();
|
||||
} else {
|
||||
@ -70,7 +82,7 @@ public final class ComponentUtil {
|
||||
}
|
||||
}
|
||||
|
||||
public static MinecraftComponent fromUnrelocated(Object unrelocatedAdventure) {
|
||||
public static MinecraftComponent fromUnrelocated(@NotNull Object unrelocatedAdventure) {
|
||||
MinecraftComponentImpl component = MinecraftComponentImpl.empty();
|
||||
MinecraftComponent.Adapter<Object> adapter = component.unrelocatedAdapter();
|
||||
if (adapter == null) {
|
||||
@ -80,11 +92,11 @@ public final class ComponentUtil {
|
||||
return component;
|
||||
}
|
||||
|
||||
public static Component join(Component delimiter, Collection<? extends ComponentLike> components) {
|
||||
public static Component join(@NotNull Component delimiter, @NotNull Collection<? extends ComponentLike> components) {
|
||||
return join(delimiter, components.toArray(new ComponentLike[0]));
|
||||
}
|
||||
|
||||
public static Component join(Component delimiter, ComponentLike[] components) {
|
||||
public static Component join(@NotNull Component delimiter, @NotNull ComponentLike[] components) {
|
||||
TextComponent.Builder builder = Component.text();
|
||||
for (int i = 0; i < components.length; i++) {
|
||||
builder.append(components[i]);
|
||||
|
Loading…
Reference in New Issue
Block a user