Compare commits
4 Commits
fff20c8dab
...
3db51e9c0b
Author | SHA1 | Date | |
---|---|---|---|
3db51e9c0b | |||
aaa2785d37 | |||
14f9448ba4 | |||
55bfeee2d0 |
@ -1,5 +1,28 @@
|
|||||||
package net.tomatentum.marinara.command;
|
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