Compare commits
4 Commits
fff20c8dab
...
3db51e9c0b
Author | SHA1 | Date | |
---|---|---|---|
3db51e9c0b | |||
aaa2785d37 | |||
14f9448ba4 | |||
55bfeee2d0 |
@ -1,5 +1,28 @@
|
||||
package net.tomatentum.marinara.command;
|
||||
|
||||
public class DiscordCommand {
|
||||
import net.tomatentum.marinara.handler.InteractionHandler;
|
||||
|
||||
public abstract class DiscordCommand implements InteractionHandler {
|
||||
private String name;
|
||||
private String description;
|
||||
private String[] aliases;
|
||||
|
||||
protected DiscordCommand(String name, String description, String... aliases) {
|
||||
this.name = name;
|
||||
this.description = description;
|
||||
this.aliases = aliases;
|
||||
}
|
||||
|
||||
public String getName() {
|
||||
return name;
|
||||
}
|
||||
|
||||
public String getDescription() {
|
||||
return description;
|
||||
}
|
||||
|
||||
public String[] getAliases() {
|
||||
return aliases;
|
||||
}
|
||||
|
||||
}
|
||||
|
@ -0,0 +1,17 @@
|
||||
package net.tomatentum.marinara.command;
|
||||
|
||||
public class GlobalDiscordCommand extends DiscordCommand{
|
||||
private boolean enabledInDms = false;
|
||||
|
||||
public GlobalDiscordCommand(String name, String description, String... aliases) {
|
||||
super(name, description, aliases);
|
||||
}
|
||||
|
||||
public boolean isEnabledInDms() {
|
||||
return enabledInDms;
|
||||
}
|
||||
|
||||
public void setEnabledInDms(boolean enabledInDms) {
|
||||
this.enabledInDms = enabledInDms;
|
||||
}
|
||||
}
|
@ -0,0 +1,13 @@
|
||||
package net.tomatentum.marinara.command;
|
||||
|
||||
public class ServerDiscordCommand extends DiscordCommand {
|
||||
private long[] servers;
|
||||
|
||||
public ServerDiscordCommand(String name, String description, String... aliases) {
|
||||
super(name, description, aliases);
|
||||
}
|
||||
|
||||
public long[] getServers() {
|
||||
return servers;
|
||||
}
|
||||
}
|
@ -0,0 +1,11 @@
|
||||
package net.tomatentum.marinara.command.annotation;
|
||||
|
||||
import net.tomatentum.marinara.command.option.OptionType;
|
||||
|
||||
public @interface CommandOption {
|
||||
public String name();
|
||||
public String description() default "";
|
||||
public OptionType type() default OptionType.STRING;
|
||||
public boolean required() default false;
|
||||
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package net.tomatentum.marinara.command.annotation;
|
||||
|
||||
public @interface RootCommand {
|
||||
public String name();
|
||||
public String description() default "";
|
||||
public CommandOption[] options() default {};
|
||||
}
|
@ -0,0 +1,7 @@
|
||||
package net.tomatentum.marinara.command.annotation;
|
||||
|
||||
public @interface SubCommand {
|
||||
public String name();
|
||||
public String description() default "";
|
||||
public CommandOption[] options() default {};
|
||||
}
|
@ -0,0 +1,6 @@
|
||||
package net.tomatentum.marinara.command.annotation;
|
||||
|
||||
public @interface SubCommandGroup {
|
||||
public String name();
|
||||
public String description() default "";
|
||||
}
|
@ -0,0 +1,16 @@
|
||||
package net.tomatentum.marinara.command.option;
|
||||
|
||||
public enum OptionType {
|
||||
ATTACHMENT,
|
||||
BOOLEAN,
|
||||
CHANNEL,
|
||||
DECIMAL,
|
||||
LONG,
|
||||
MENTIONABLE,
|
||||
ROLE,
|
||||
STRING,
|
||||
SUB_COMMAND,
|
||||
SUB_COMMAND_GROUP,
|
||||
UNKNOW,
|
||||
USER
|
||||
}
|
@ -0,0 +1,4 @@
|
||||
package net.tomatentum.marinara.handler;
|
||||
|
||||
public interface InteractionHandler {
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package net.tomatentum.marinara.interaction;
|
||||
|
||||
public enum InteractionType {
|
||||
COMMAND,
|
||||
AUTOCOMPLETE,
|
||||
BUTTON,
|
||||
SELECT_MENU,
|
||||
MODAL
|
||||
}
|
@ -0,0 +1,9 @@
|
||||
package net.tomatentum.marinara.wrapper;
|
||||
|
||||
public interface LibraryConverter {
|
||||
public Object toAttachment(Object context, String option);
|
||||
public Object toChannel(Object context, String option);
|
||||
public Object toMentionable(Object context, String option);
|
||||
public Object toRole(Object context, String option);
|
||||
public Object toUser(Object context, String option);
|
||||
}
|
@ -0,0 +1,36 @@
|
||||
package net.tomatentum.marinara.wrapper;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.function.Consumer;
|
||||
|
||||
import net.tomatentum.marinara.command.option.OptionType;
|
||||
import net.tomatentum.marinara.interaction.InteractionType;
|
||||
|
||||
public abstract class LibraryWrapper {
|
||||
|
||||
private List<Consumer<Object>> interactionSubscriber;
|
||||
|
||||
protected LibraryWrapper() {
|
||||
interactionSubscriber = new ArrayList<>();
|
||||
}
|
||||
|
||||
public abstract void registerGlobalCommand();
|
||||
public abstract void registerServerCommand();
|
||||
|
||||
public void handleInteraction(Object context) {
|
||||
interactionSubscriber.forEach((o) -> o.accept(context));
|
||||
}
|
||||
|
||||
public void subscribeInteractions(Consumer<Object> consumer) {
|
||||
interactionSubscriber.add(consumer);
|
||||
}
|
||||
public void unsubscribeInteractions(Consumer<Object> consumer) {
|
||||
interactionSubscriber.remove(consumer);
|
||||
}
|
||||
|
||||
public abstract InteractionType getInteractionType(Class<?> clazz);
|
||||
public abstract OptionType getOptionType(Class<?> clazz);
|
||||
public abstract LibraryConverter getConverter();
|
||||
|
||||
}
|
Loading…
x
Reference in New Issue
Block a user