nopalmo-java/src/pkg/deepCurse/nopalmo/command/CommandInterface.java
deepCurse bf1d67fb48
some shit
Signed-off-by: deepCurse <leverplays@gmail.com>
2021-12-13 17:06:27 -04:00

144 lines
No EOL
4.6 KiB
Java

package pkg.deepCurse.nopalmo.command;
import java.util.HashMap;
import org.jetbrains.annotations.Nullable;
import net.dv8tion.jda.api.Permission;
import pkg.deepCurse.nopalmo.database.DatabaseTools.Tools.Global;
import pkg.deepCurse.nopalmo.manager.Argument;
import pkg.deepCurse.nopalmo.manager.CommandBlob;
public interface CommandInterface { // TODO rewrite to implement type args?
public abstract String[] getCommandCalls();
public default String getCommandName() {
return getCommandCalls()[0];
}
public default boolean isNSFW() {
return false;
}
public default int getPremiumLevel() { // im probably never gonna use this, but ill leave it in for those who want
// to
// see how i would implement it
return 0;
}
public abstract HelpPage getHelpPage();
public enum HelpPage {
General, Moderation, Fun, Info, Extra, TESTING, DEV, EGG
}
public String getHelp();
public default String getUsage(boolean hasPermissionInfo) {
StringBuilder sB = new StringBuilder();
for (Argument i : getArguments().values()) {
if ((i.isDeveloper() && hasPermissionInfo) || !i.isDeveloper()) {
if (i.isRequired()) {
sB.append("<");
} else {
sB.append("[");
}
sB.append((i.isPrefixRequired() ? Argument.argumentPrefix : "")+i.getArgName());
if (i.getAliases() != null) {
for (String j : i.getAliases()) {
sB.append(" | " + (i.isPrefixRequired() ? Argument.argumentPrefix : "") + j);
}
}
if (i.isRequired()) {
sB.append("> ");
} else {
sB.append("] ");
}
}
}
return Global.prefix + getCommandName() + " " + sB.toString().trim();
}
public default int getTimeout() {
return 0;
}
@Nullable
public HashMap<String, Argument> getArguments();
public interface DualCommandInterface extends PrivateCommandInterface, GuildCommandInterface {
@Override
public default void runGuildCommand(CommandBlob blob, HashMap<String, Argument> argumentMap) throws Exception {
runDualCommand(blob, argumentMap);
}
@Override
public default void runPrivateCommand(CommandBlob blob, HashMap<String, Argument> argumentMap)
throws Exception {
runDualCommand(blob, argumentMap);
}
public void runDualCommand(CommandBlob blob, HashMap<String, Argument> argumentMap) throws Exception;
}
public interface PrivateCommandInterface extends CommandInterface {
public void runPrivateCommand(CommandBlob blob, HashMap<String, Argument> argumentList) throws Exception;
}
public interface GuildCommandInterface extends CommandInterface {
public void runGuildCommand(CommandBlob blob, HashMap<String, Argument> argumentList) throws Exception;
public default Permission[] getRequiredPermissions() {
return null;
}
public default Permission getRequiredPermission() {
return null;
}
}
}
/*
*
*
* StringBuilder sB = new StringBuilder(); if (getArguments() != null) { for
* (String i : getArguments().keySet()) { // sB.delete(0, sB.length()); if
* (!getArguments().get(i).isDeveloper() || (hasPermissionInfo &&
* getArguments().get(i).isDeveloper())) {
* sB.append(getArguments().get(i).isRequired() ? "<" : "[");
*
* sB.append((getArguments().get(i).isPrefixRequired() ?
* sB.append(Argument.argumentPrefix) : ""));
*
* sB.append(i); // System.out.println("01"+sB.toString()); // for (int j = 0; j
* < getArguments().get(i).getAliases().size(); j++) { // sB.append((j <
* getArguments().get(i).getAliases().size() ? " | " : "") // +
* (getArguments().get(i).isPrefixRequired() ?
* sB.append(Argument.argumentPrefix) : "") // +
* getArguments().get(i).getAliases().get(j)); //
* System.out.println("02"+sB.toString()); // }
* sB.append(getArguments().get(i).isRequired() ? "> " : "] ");
* System.out.println("[000] :\t"+sB.toString()); } } }
*
* System.out.println("[001] :\t"+sB.toString()); return (Global.prefix +
* getCommandName() + " " + sB.toString()).strip();
*
* //StringBuilder sB = new StringBuilder(); //if (getArguments() != null) { //
* for (String i : getArguments().keySet()) { // if
* (!getArguments().get(i).isDeveloper() // || (hasPermissionInfo &&
* getArguments().get(i).isDeveloper())) { //
* sB.append(getArguments().get(i).isRequired() ? "<" : "["); // if
* (getArguments().get(i).isPrefixRequired()) { //
* sB.append(Argument.argumentPrefix); // } // sB.append(i); // for (int j = 0;
* j < getArguments().get(i).getAliases().size(); j++) { // sB.append((j <
* getArguments().get(i).getAliases().size() ? " | " : "") // +
* getArguments().get(i).getAliases().get(j)); // } //
* sB.append(getArguments().get(i).isRequired() ? "> " : "] "); // } // } //} //
* //return (Global.prefix + getCommandName() + " " + sB.toString()).strip();
*/