Minestom/src/main/java/net/minestom/server/command/builder/arguments/minecraft/ArgumentComponent.java

39 lines
1.2 KiB
Java
Raw Normal View History

2021-03-03 22:52:40 +01:00
package net.minestom.server.command.builder.arguments.minecraft;
import com.google.gson.JsonParseException;
import net.kyori.adventure.text.Component;
import net.kyori.adventure.text.serializer.gson.GsonComponentSerializer;
import net.minestom.server.command.CommandSender;
2021-03-03 22:52:40 +01:00
import net.minestom.server.command.builder.arguments.Argument;
import net.minestom.server.command.builder.exception.ArgumentSyntaxException;
import org.jetbrains.annotations.NotNull;
public class ArgumentComponent extends Argument<Component> {
2021-03-03 22:52:40 +01:00
public static final int INVALID_JSON_ERROR = 1;
public ArgumentComponent(@NotNull String id) {
super(id, true);
}
@NotNull
@Override
public Component parse(@NotNull CommandSender sender, @NotNull String input) throws ArgumentSyntaxException {
2021-03-03 22:52:40 +01:00
try {
return GsonComponentSerializer.gson().deserialize(input);
2021-03-03 22:52:40 +01:00
} catch (JsonParseException e) {
throw new ArgumentSyntaxException("Invalid JSON", input, INVALID_JSON_ERROR);
}
}
@Override
public String parser() {
return "minecraft:component";
2021-03-03 22:52:40 +01:00
}
@Override
public String toString() {
return String.format("Component<%s>", getId());
}
2021-03-03 22:52:40 +01:00
}