rename to make more sense x2
This commit is contained in:
parent
11ebb3fdea
commit
f4a6bf937d
14
lib/src/main/java/net/tomatentum/marinara/interaction/commands/ExecutableSlashCommandDefinition.java
14
lib/src/main/java/net/tomatentum/marinara/interaction/commands/ExecutableSlashCommandDefinition.java
@ -1,14 +1,14 @@
|
|||||||
package net.tomatentum.marinara.interaction.commands;
|
package net.tomatentum.marinara.interaction.commands;
|
||||||
|
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.ApplicationCommand;
|
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommand;
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.CommandOption;
|
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommandOption;
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.SubCommand;
|
import net.tomatentum.marinara.interaction.commands.annotation.SubCommand;
|
||||||
|
|
||||||
public record ExecutableSlashCommandDefinition(
|
public record ExecutableSlashCommandDefinition(
|
||||||
ApplicationCommand applicationCommand,
|
SlashCommand applicationCommand,
|
||||||
SubCommand subCommand,
|
SubCommand subCommand,
|
||||||
String[] subCommandGroups,
|
String[] subCommandGroups,
|
||||||
CommandOption[] options) {
|
SlashCommandOption[] options) {
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public final boolean equals(Object o) {
|
public final boolean equals(Object o) {
|
||||||
@ -30,7 +30,7 @@ public record ExecutableSlashCommandDefinition(
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static class Builder {
|
public static class Builder {
|
||||||
private ApplicationCommand applicationCommand;
|
private SlashCommand applicationCommand;
|
||||||
private SubCommand subCommand;
|
private SubCommand subCommand;
|
||||||
private String[] subCommandGroupNames;
|
private String[] subCommandGroupNames;
|
||||||
|
|
||||||
@ -45,7 +45,7 @@ public record ExecutableSlashCommandDefinition(
|
|||||||
return new ExecutableSlashCommandDefinition(applicationCommand, subCommand, subCommandGroupNames, subCommand != null ? subCommand.options() : applicationCommand.options());
|
return new ExecutableSlashCommandDefinition(applicationCommand, subCommand, subCommandGroupNames, subCommand != null ? subCommand.options() : applicationCommand.options());
|
||||||
}
|
}
|
||||||
|
|
||||||
public void setApplicationCommand(ApplicationCommand applicationCommand) {
|
public void setApplicationCommand(SlashCommand applicationCommand) {
|
||||||
this.applicationCommand = applicationCommand;
|
this.applicationCommand = applicationCommand;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -57,7 +57,7 @@ public record ExecutableSlashCommandDefinition(
|
|||||||
this.subCommandGroupNames = subCommandGroupNames;
|
this.subCommandGroupNames = subCommandGroupNames;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationCommand getApplicationCommand() {
|
public SlashCommand getApplicationCommand() {
|
||||||
return applicationCommand;
|
return applicationCommand;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -4,15 +4,15 @@ import java.util.ArrayList;
|
|||||||
import java.util.HashSet;
|
import java.util.HashSet;
|
||||||
import java.util.List;
|
import java.util.List;
|
||||||
|
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.ApplicationCommand;
|
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommand;
|
||||||
|
|
||||||
public class SlashCommandDefinition {
|
public class SlashCommandDefinition {
|
||||||
private List<ExecutableSlashCommandDefinition> executableDefinitons;
|
private List<ExecutableSlashCommandDefinition> executableDefinitons;
|
||||||
private ApplicationCommand applicationCommand;
|
private SlashCommand applicationCommand;
|
||||||
private int subCommandGroupCount = -1;
|
private int subCommandGroupCount = -1;
|
||||||
private boolean isRootCommand = false;
|
private boolean isRootCommand = false;
|
||||||
|
|
||||||
public SlashCommandDefinition(ApplicationCommand applicationCommand) {
|
public SlashCommandDefinition(SlashCommand applicationCommand) {
|
||||||
this.executableDefinitons = new ArrayList<>();
|
this.executableDefinitons = new ArrayList<>();
|
||||||
this.applicationCommand = applicationCommand;
|
this.applicationCommand = applicationCommand;
|
||||||
}
|
}
|
||||||
@ -42,7 +42,7 @@ public class SlashCommandDefinition {
|
|||||||
return this;
|
return this;
|
||||||
}
|
}
|
||||||
|
|
||||||
public ApplicationCommand getApplicationCommand() {
|
public SlashCommand getApplicationCommand() {
|
||||||
return applicationCommand;
|
return applicationCommand;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -7,10 +7,9 @@ import java.lang.annotation.Target;
|
|||||||
|
|
||||||
@Target({ElementType.METHOD, ElementType.TYPE})
|
@Target({ElementType.METHOD, ElementType.TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
public @interface ApplicationCommand {
|
public @interface SlashCommand {
|
||||||
public String name();
|
public String name();
|
||||||
public String description() default "";
|
public String description() default "";
|
||||||
public String[] aliases() default {};
|
public SlashCommandOption[] options() default {};
|
||||||
public CommandOption[] options() default {};
|
|
||||||
public long[] serverIds() default {};
|
public long[] serverIds() default {};
|
||||||
}
|
}
|
@ -5,13 +5,13 @@ import java.lang.annotation.Retention;
|
|||||||
import java.lang.annotation.RetentionPolicy;
|
import java.lang.annotation.RetentionPolicy;
|
||||||
import java.lang.annotation.Target;
|
import java.lang.annotation.Target;
|
||||||
|
|
||||||
import net.tomatentum.marinara.interaction.commands.option.OptionType;
|
import net.tomatentum.marinara.interaction.commands.option.SlashCommandOptionType;
|
||||||
|
|
||||||
@Target({ElementType.ANNOTATION_TYPE})
|
@Target({ElementType.ANNOTATION_TYPE})
|
||||||
@Retention(RetentionPolicy.RUNTIME)
|
@Retention(RetentionPolicy.RUNTIME)
|
||||||
public @interface CommandOption {
|
public @interface SlashCommandOption {
|
||||||
public String name();
|
public String name();
|
||||||
public String description() default "";
|
public String description() default "";
|
||||||
public OptionType type() default OptionType.STRING;
|
public SlashCommandOptionType type() default SlashCommandOptionType.STRING;
|
||||||
public boolean required() default false;
|
public boolean required() default false;
|
||||||
}
|
}
|
@ -10,5 +10,5 @@ import java.lang.annotation.Target;
|
|||||||
public @interface SubCommand {
|
public @interface SubCommand {
|
||||||
public String name();
|
public String name();
|
||||||
public String description() default "";
|
public String description() default "";
|
||||||
public CommandOption[] options() default {};
|
public SlashCommandOption[] options() default {};
|
||||||
}
|
}
|
||||||
|
@ -1,6 +1,6 @@
|
|||||||
package net.tomatentum.marinara.interaction.commands.option;
|
package net.tomatentum.marinara.interaction.commands.option;
|
||||||
|
|
||||||
public enum OptionType {
|
public enum SlashCommandOptionType {
|
||||||
ATTACHMENT,
|
ATTACHMENT,
|
||||||
BOOLEAN,
|
BOOLEAN,
|
||||||
CHANNEL,
|
CHANNEL,
|
@ -5,7 +5,7 @@ import java.lang.reflect.Method;
|
|||||||
import net.tomatentum.marinara.interaction.InteractionHandler;
|
import net.tomatentum.marinara.interaction.InteractionHandler;
|
||||||
import net.tomatentum.marinara.interaction.InteractionType;
|
import net.tomatentum.marinara.interaction.InteractionType;
|
||||||
import net.tomatentum.marinara.interaction.commands.ExecutableSlashCommandDefinition;
|
import net.tomatentum.marinara.interaction.commands.ExecutableSlashCommandDefinition;
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.ApplicationCommand;
|
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommand;
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.SubCommand;
|
import net.tomatentum.marinara.interaction.commands.annotation.SubCommand;
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.SubCommandGroup;
|
import net.tomatentum.marinara.interaction.commands.annotation.SubCommandGroup;
|
||||||
import net.tomatentum.marinara.util.ReflectionUtil;
|
import net.tomatentum.marinara.util.ReflectionUtil;
|
||||||
@ -43,7 +43,7 @@ public class CommandInteractionMethod extends InteractionMethod {
|
|||||||
private void parseMethod() {
|
private void parseMethod() {
|
||||||
ReflectionUtil.checkValidCommandMethod(method);
|
ReflectionUtil.checkValidCommandMethod(method);
|
||||||
|
|
||||||
ApplicationCommand cmd = ReflectionUtil.getAnnotation(method, ApplicationCommand.class);
|
SlashCommand cmd = ReflectionUtil.getAnnotation(method, SlashCommand.class);
|
||||||
ExecutableSlashCommandDefinition.Builder builder = new ExecutableSlashCommandDefinition.Builder();
|
ExecutableSlashCommandDefinition.Builder builder = new ExecutableSlashCommandDefinition.Builder();
|
||||||
builder.setApplicationCommand(cmd);
|
builder.setApplicationCommand(cmd);
|
||||||
|
|
||||||
|
@ -8,14 +8,14 @@ import java.util.List;
|
|||||||
|
|
||||||
import net.tomatentum.marinara.interaction.InteractionHandler;
|
import net.tomatentum.marinara.interaction.InteractionHandler;
|
||||||
import net.tomatentum.marinara.interaction.InteractionType;
|
import net.tomatentum.marinara.interaction.InteractionType;
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.ApplicationCommand;
|
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommand;
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.SubCommand;
|
import net.tomatentum.marinara.interaction.commands.annotation.SubCommand;
|
||||||
import net.tomatentum.marinara.wrapper.LibraryWrapper;
|
import net.tomatentum.marinara.wrapper.LibraryWrapper;
|
||||||
|
|
||||||
public abstract class InteractionMethod {
|
public abstract class InteractionMethod {
|
||||||
|
|
||||||
public static InteractionMethod create(Method method, InteractionHandler handler, LibraryWrapper wrapper) {
|
public static InteractionMethod create(Method method, InteractionHandler handler, LibraryWrapper wrapper) {
|
||||||
if (method.isAnnotationPresent(ApplicationCommand.class) || method.isAnnotationPresent(SubCommand.class))
|
if (method.isAnnotationPresent(SlashCommand.class) || method.isAnnotationPresent(SubCommand.class))
|
||||||
return new CommandInteractionMethod(method, handler, wrapper);
|
return new CommandInteractionMethod(method, handler, wrapper);
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
|
@ -3,7 +3,7 @@ package net.tomatentum.marinara.util;
|
|||||||
import java.lang.annotation.Annotation;
|
import java.lang.annotation.Annotation;
|
||||||
import java.lang.reflect.Method;
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.ApplicationCommand;
|
import net.tomatentum.marinara.interaction.commands.annotation.SlashCommand;
|
||||||
import net.tomatentum.marinara.interaction.commands.annotation.SubCommand;
|
import net.tomatentum.marinara.interaction.commands.annotation.SubCommand;
|
||||||
|
|
||||||
public final class ReflectionUtil {
|
public final class ReflectionUtil {
|
||||||
@ -22,16 +22,16 @@ public final class ReflectionUtil {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public static void checkValidCommandMethod(Method method) {
|
public static void checkValidCommandMethod(Method method) {
|
||||||
if (method.isAnnotationPresent(ApplicationCommand.class) &&
|
if (method.isAnnotationPresent(SlashCommand.class) &&
|
||||||
method.getDeclaringClass().isAnnotationPresent(ApplicationCommand.class)) {
|
method.getDeclaringClass().isAnnotationPresent(SlashCommand.class)) {
|
||||||
throw new RuntimeException(method.getName() + ": Can't have ApplicationCommand Annotation on Class and Method");
|
throw new RuntimeException(method.getName() + ": Can't have ApplicationCommand Annotation on Class and Method");
|
||||||
}
|
}
|
||||||
|
|
||||||
if (!isAnnotationPresent(method, ApplicationCommand.class))
|
if (!isAnnotationPresent(method, SlashCommand.class))
|
||||||
throw new RuntimeException(method.getName() + ": Missing ApplicationCommand Annotation on either Class or Method");
|
throw new RuntimeException(method.getName() + ": Missing ApplicationCommand Annotation on either Class or Method");
|
||||||
|
|
||||||
if (!(method.isAnnotationPresent(SubCommand.class) &&
|
if (!(method.isAnnotationPresent(SubCommand.class) &&
|
||||||
isAnnotationPresent(method, ApplicationCommand.class))) {
|
isAnnotationPresent(method, SlashCommand.class))) {
|
||||||
throw new RuntimeException(method.getName() + ": Missing ApplicationCommand Annotation on either Method or Class");
|
throw new RuntimeException(method.getName() + ": Missing ApplicationCommand Annotation on either Method or Class");
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,7 +6,7 @@ import java.util.function.Consumer;
|
|||||||
|
|
||||||
import net.tomatentum.marinara.interaction.commands.SlashCommandDefinition;
|
import net.tomatentum.marinara.interaction.commands.SlashCommandDefinition;
|
||||||
import net.tomatentum.marinara.interaction.commands.ExecutableSlashCommandDefinition;
|
import net.tomatentum.marinara.interaction.commands.ExecutableSlashCommandDefinition;
|
||||||
import net.tomatentum.marinara.interaction.commands.option.OptionType;
|
import net.tomatentum.marinara.interaction.commands.option.SlashCommandOptionType;
|
||||||
import net.tomatentum.marinara.interaction.InteractionType;
|
import net.tomatentum.marinara.interaction.InteractionType;
|
||||||
|
|
||||||
public abstract class LibraryWrapper {
|
public abstract class LibraryWrapper {
|
||||||
@ -31,6 +31,6 @@ public abstract class LibraryWrapper {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public abstract InteractionType getInteractionType(Class<?> clazz);
|
public abstract InteractionType getInteractionType(Class<?> clazz);
|
||||||
public abstract Object convertCommandOption(Object context, OptionType type, String optionName);
|
public abstract Object convertCommandOption(Object context, SlashCommandOptionType type, String optionName);
|
||||||
public abstract ExecutableSlashCommandDefinition getCommandDefinition(Object context);
|
public abstract ExecutableSlashCommandDefinition getCommandDefinition(Object context);
|
||||||
}
|
}
|
Loading…
x
Reference in New Issue
Block a user