enum-ified command categories

This commit is contained in:
Salmonllama 2020-09-10 21:37:20 -04:00
parent cfb60cc8d6
commit 7d0fbe37d4
25 changed files with 223 additions and 248 deletions

View File

@ -2,10 +2,7 @@ package dev.salmonllama.fsbot.commands.developer;
import dev.salmonllama.fsbot.database.controllers.UserBlacklistController;
import dev.salmonllama.fsbot.database.models.UserBlacklist;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import java.util.Arrays;
@ -15,7 +12,7 @@ public class BlacklistUserCommand extends Command {
@Override public String name() { return "Blacklist User"; }
@Override public String description() { return "Adds the user to the bot's blacklist, preventing them from using any commands or features"; }
@Override public String usage() { return "blacklistuser <userId> <reason>"; }
@Override public String category() { return "Developer"; }
@Override public CommandCategory category() { return CommandCategory.DEVELOPER; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); }
@Override public Collection<String> aliases() { return Arrays.asList("blacklistuser", "bluser", "sabusr"); }

View File

@ -10,10 +10,7 @@ import com.vdurmont.emoji.EmojiParser;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.database.controllers.GalleryController;
import dev.salmonllama.fsbot.database.models.GalleryChannel;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.util.logging.ExceptionLogger;
@ -26,7 +23,7 @@ public class CreateGalleryCommand extends Command { // TODO: This command needs
@Override public String name() { return "Create Gallery"; }
@Override public String description() { return "Creates a channel gallery, tracking any posted images"; }
@Override public String usage() { return "creategallery <String tag>"; }
@Override public String category() { return "Developer"; }
@Override public CommandCategory category() { return CommandCategory.DEVELOPER; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("creategallery", "addgallery", "newgallery")); }

View File

@ -1,9 +1,6 @@
package dev.salmonllama.fsbot.commands.developer;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import java.util.Collection;
@ -13,7 +10,7 @@ public class DefaultCommand extends Command {
@Override public String name() { return "Default"; }
@Override public String description() { return "The command that gets invoked when the prefix is used, but the command is not recognized"; }
@Override public String usage() { return "you don't use this command"; }
@Override public String category() { return "Invisible"; }
@Override public CommandCategory category() { return CommandCategory.DEVELOPER; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); }
@Override public Collection<String> aliases() { return Collections.singletonList("default"); }

View File

@ -5,10 +5,7 @@
package dev.salmonllama.fsbot.commands.developer;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.DiscordApi;
import org.javacord.api.entity.channel.TextChannel;
@ -20,7 +17,7 @@ public class InviteCommand extends Command {
@Override public String name() { return "Invite"; }
@Override public String description() { return "Spits out a bot invite"; }
@Override public String usage() { return "invite"; }
@Override public String category() { return "Developer"; }
@Override public CommandCategory category() { return CommandCategory.DEVELOPER; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "owner"); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("invite", "inv")); }

View File

@ -7,10 +7,7 @@ package dev.salmonllama.fsbot.commands.developer;
import dev.salmonllama.fsbot.database.controllers.StaticPermissionController;
import dev.salmonllama.fsbot.database.models.StaticPermission;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.user.User;
import org.javacord.api.util.logging.ExceptionLogger;
@ -24,7 +21,7 @@ public class PermissionCommand extends Command {
@Override public String name() { return "Permission"; }
@Override public String description() { return "Manages a user's static permissions"; }
@Override public String usage() { return "permission <list|add|remove> <keyword>"; }
@Override public String category() { return "Staff"; }
@Override public CommandCategory category() { return CommandCategory.DEVELOPER; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("permission", "permissions", "perm", "perms")); }

View File

@ -6,10 +6,7 @@
package dev.salmonllama.fsbot.commands.developer;
import dev.salmonllama.fsbot.endpoints.scapefashion.ScapeFashionConnection;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import java.util.ArrayList;
import java.util.Arrays;
@ -19,7 +16,7 @@ public class TestCommand extends Command {
@Override public String name() { return "Test"; }
@Override public String description() { return "A test command"; }
@Override public String usage() { return "test"; }
@Override public String category() { return "Developer"; }
@Override public CommandCategory category() { return CommandCategory.DEVELOPER; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("test", "t")); }
@ -28,7 +25,8 @@ public class TestCommand extends Command {
ScapeFashionConnection conn = new ScapeFashionConnection();
try {
conn.osrsColor("#00ff00");
var result = conn.osrsColor("#00ff00");
ctx.reply(String.format("Best match: %s", result.getItems().get(0).toString()));
} catch (Exception e) {
ctx.reply(e.getMessage());
}

View File

@ -7,10 +7,7 @@ package dev.salmonllama.fsbot.commands.general;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.database.controllers.ColorRoleController;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.apache.logging.log4j.util.Strings;
import org.javacord.api.entity.server.Server;
import org.javacord.api.entity.user.User;
@ -23,7 +20,7 @@ public class ColorCommand extends Command {
@Override public String name() { return "Color"; }
@Override public String description() { return "Assigns the provided cosmetic role"; }
@Override public String usage() { return "color <colorName>"; }
@Override public String category() { return "General"; }
@Override public CommandCategory category() { return CommandCategory.GENERAL; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("color", "colour")); }

View File

@ -7,10 +7,7 @@ package dev.salmonllama.fsbot.commands.general;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.database.controllers.ColorRoleController;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import java.util.ArrayList;
@ -21,7 +18,7 @@ public class ColorsCommand extends Command {
@Override public String name() { return "Colors"; }
@Override public String description() { return "Lists available cosmetic roles"; }
@Override public String usage() { return "colors"; }
@Override public String category() { return "General"; }
@Override public CommandCategory category() { return CommandCategory.GENERAL; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("colors", "colours")); }

View File

@ -21,7 +21,7 @@ public class HelpCommand extends Command {
@Override public String name() { return "Help"; }
@Override public String description() { return "Shows all commands, or a specific command's information"; }
@Override public String usage() { return "help [String command]"; }
@Override public String category() { return "General"; }
@Override public CommandCategory category() { return CommandCategory.GENERAL; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("help", "h")); }
@ -60,7 +60,7 @@ public class HelpCommand extends Command {
List<String> categories = new ArrayList<>();
for (Command cmd : guthix.listCommands()) {
String category = cmd.category();
String category = cmd.category().getCategory();
if (!categories.contains(category)) {
categories.add(category);
@ -82,7 +82,7 @@ public class HelpCommand extends Command {
StringBuilder builder = new StringBuilder().append("```yml");
for (Command cmd : guthix.listCommands()) {
String cat = cmd.category().toLowerCase();
String cat = cmd.category().getCategory().toLowerCase();
if (cat.equals(category.toLowerCase())) {
builder.append("\n- ").append(cmd.name());
}
@ -161,7 +161,7 @@ public class HelpCommand extends Command {
public boolean isCategory(String input) {
for (Command cmd : guthix.listCommands()) {
String category = cmd.category();
String category = cmd.category().getCategory();
if (category.toLowerCase().equals(input.toLowerCase())) {
return true;
}

View File

@ -7,10 +7,7 @@ package dev.salmonllama.fsbot.commands.general;
import dev.salmonllama.fsbot.database.controllers.OutfitController;
import dev.salmonllama.fsbot.database.models.Outfit;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.Message;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.util.logging.ExceptionLogger;
@ -27,7 +24,7 @@ public class OutfitCommand extends Command {
@Override public String name() { return "Outfit"; }
@Override public String description() { return "Generates a random image with the given tag. Use ~tags to see valid tags."; }
@Override public String usage() { return "outfit <String tag>"; }
@Override public String category() { return "General"; }
@Override public CommandCategory category() { return CommandCategory.GENERAL; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); }
@Override public Collection<String> aliases() { return initAliases(); }

View File

@ -5,10 +5,7 @@
package dev.salmonllama.fsbot.commands.general;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import java.util.*;
@ -16,7 +13,7 @@ public class PingCommand extends Command {
@Override public String name() { return "Ping"; }
@Override public String description() { return "Pings the bot, checks for a heartbeat"; }
@Override public String usage() { return "ping"; }
@Override public String category() { return "General"; }
@Override public CommandCategory category() { return CommandCategory.GENERAL; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); }
@Override public Collection<String> aliases() { return new ArrayList<>(Collections.singletonList("ping")); }

View File

@ -1,9 +1,6 @@
package dev.salmonllama.fsbot.commands.general;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import java.util.Collection;
@ -13,7 +10,7 @@ public class PrivacyCommand extends Command {
@Override public String name() { return "Privacy"; }
@Override public String description() { return "Directs users to the bot's privacy policy"; }
@Override public String usage() { return "privacy"; }
@Override public String category() { return "General"; }
@Override public CommandCategory category() { return CommandCategory.GENERAL; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); }
@Override public Collection<String> aliases() { return Collections.singletonList("privacy"); }

View File

@ -10,23 +10,20 @@ import java.util.Arrays;
import java.util.Collection;
import java.util.stream.Collectors;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.channel.ServerTextChannel;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.server.Server;
import dev.salmonllama.fsbot.database.controllers.GalleryController;
import dev.salmonllama.fsbot.database.models.GalleryChannel;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import org.javacord.api.util.logging.ExceptionLogger;
public class ShowGalleriesCommand extends Command {
@Override public String name() { return "Show Galleries"; }
@Override public String description() { return "Shows registered gallery channels in the current server"; }
@Override public String usage() { return "showgalleries"; }
@Override public String category() { return "General"; }
@Override public CommandCategory category() { return CommandCategory.GENERAL; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("showgalleries", "listgalleries")); }

View File

@ -4,19 +4,16 @@ import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import dev.salmonllama.fsbot.database.controllers.OutfitController;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
public class StatsCommand extends Command {
@Override public String name() { return "Stats"; }
@Override public String description() { return "Shows various stats from Fashionscape Bot"; }
@Override public String usage() { return "stats"; }
@Override public String category() { return "General"; }
@Override public CommandCategory category() { return CommandCategory.GENERAL; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("stats")); }

View File

@ -0,0 +1,26 @@
/*
* Copyright (c) 2020. Aleksei Gryczewski
* All rights reserved.
*/
package dev.salmonllama.fsbot.commands.osrssearch;
import dev.salmonllama.fsbot.guthix.*;
import java.util.ArrayList;
import java.util.Collection;
import java.util.Collections;
public class OsrsBodyCommand extends Command {
@Override public String name() { return "OSRS Body"; }
@Override public String description() { return "Searches scape.fashion for body slot items."; }
@Override public String usage() { return "osrsbody <#color or item name"; }
@Override public CommandCategory category() { return CommandCategory.OSRS_ITEM_SEARCH; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.NONE); }
@Override public Collection<String> aliases() { return new ArrayList<>(Collections.singletonList("07body")); }
@Override
public void onCommand(CommandContext ctx) {
}
}

View File

@ -6,10 +6,7 @@
package dev.salmonllama.fsbot.commands.staff;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import java.util.ArrayList;
import java.util.Collection;
@ -19,7 +16,7 @@ public class EchoCommand extends Command {
@Override public String name() { return "Echo"; }
@Override public String description() { return "Echos your message. Typical bash"; }
@Override public String usage() { return "echo <message>"; }
@Override public String category() { return "Staff"; }
@Override public CommandCategory category() { return CommandCategory.STAFF; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); }
@Override public Collection<String> aliases() { return new ArrayList<>(Collections.singletonList("echo")); }

View File

@ -6,20 +6,17 @@
package dev.salmonllama.fsbot.commands.staff;
import dev.salmonllama.fsbot.database.controllers.OutfitController;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.Collection;
public class GetOutfitCommand extends Command { // TODO: This command also needs HELP
public class GetOutfitCommand extends Command {
@Override public String name() { return "Get Outift"; }
@Override public String description() { return "Shows the outfit, given an ID"; }
@Override public String usage() { return "getoutfit <String id>"; }
@Override public String category() { return "Staff"; }
@Override public CommandCategory category() { return CommandCategory.STAFF; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("getoutfit", "get")); }
@ -29,11 +26,9 @@ public class GetOutfitCommand extends Command { // TODO: This command also needs
String[] args = ctx.getArgs();
String id = args[0];
OutfitController.findById(id).thenAccept(outfitOpt -> {
outfitOpt.ifPresentOrElse(
OutfitController.findById(id).thenAccept(outfitOpt -> outfitOpt.ifPresentOrElse(
outfit -> ctx.reply(outfit.toString()),
() -> ctx.reply("Outfit not found, did you get the id right?")
);
});
));
}
}

View File

@ -5,11 +5,7 @@
package dev.salmonllama.fsbot.commands.staff;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.DiscordApi;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.entity.server.Server;
@ -23,7 +19,7 @@ public class GetServersCommand extends Command {
@Override public String name() { return "Get Servers"; }
@Override public String description() { return "Lists all the servers the bot is in"; }
@Override public String usage() { return "getservers"; }
@Override public String category() { return "Staff"; }
@Override public CommandCategory category() { return CommandCategory.STAFF; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("getservers", "servers")); }

View File

@ -5,12 +5,8 @@
package dev.salmonllama.fsbot.commands.staff;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.database.controllers.OutfitController;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import java.util.ArrayList;
@ -21,7 +17,7 @@ public class OutfitInfoCommand extends Command {
@Override public String name() { return "Outfit Info"; }
@Override public String description() { return "Shows all related info about the outfit"; }
@Override public String usage() { return "outfitinfo <String id>"; }
@Override public String category() { return "Staff"; }
@Override public CommandCategory category() { return CommandCategory.STAFF; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("outfitinfo", "oinfo")); }
@ -35,8 +31,7 @@ public class OutfitInfoCommand extends Command {
}
String id = args[0];
OutfitController.findById(id).thenAcceptAsync(possibleOutfit -> {
possibleOutfit.ifPresentOrElse(outfit -> {
OutfitController.findById(id).thenAcceptAsync(possibleOutfit -> possibleOutfit.ifPresentOrElse(outfit -> {
EmbedBuilder embed = new EmbedBuilder()
.setTitle("Outfit Info")
.setThumbnail(outfit.getLink())
@ -49,9 +44,6 @@ public class OutfitInfoCommand extends Command {
.addField("Deleted", outfit.isDeleted() ? "True" : "False", true)
.addField("Featured", outfit.isFeatured() ? "True" : "False", true);
ctx.reply(embed);
}, () -> {
ctx.reply("Outfit not found");
});
});
}, () -> ctx.reply("Outfit not found")));
}
}

View File

@ -8,10 +8,7 @@ package dev.salmonllama.fsbot.commands.staff;
import com.vdurmont.emoji.EmojiParser;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.database.controllers.OutfitController;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.channel.TextChannel;
import org.javacord.api.entity.message.embed.EmbedBuilder;
@ -23,7 +20,7 @@ public class RemoveOutfitCommand extends Command {
@Override public String name() { return "Remove Outfit"; }
@Override public String description() { return "Removes an outfit from the database given an id"; }
@Override public String usage() { return "remove <String id>"; }
@Override public String category() { return "Staff"; }
@Override public CommandCategory category() { return CommandCategory.STAFF; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("removeoutfit", "remove")); }
@ -40,8 +37,7 @@ public class RemoveOutfitCommand extends Command {
// get the outfit, confirm deletion through reaction.
String outfitId = args[0];
OutfitController.findById(outfitId).thenAcceptAsync(possibleOutfit -> {
possibleOutfit.ifPresentOrElse(outfit -> {
OutfitController.findById(outfitId).thenAcceptAsync(possibleOutfit -> possibleOutfit.ifPresentOrElse(outfit -> {
// Send outfit info, react with selectors, add a listener to the message
EmbedBuilder embed = new EmbedBuilder()
.setTitle("Confirm Outfit Deletion")
@ -80,9 +76,9 @@ public class RemoveOutfitCommand extends Command {
.setThumbnail(outfit.getLink())
.addField("Deleted By:", ctx.getAuthor().getDiscriminatedName());
ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent(chnl -> {
chnl.sendMessage(log);
});
ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent(
chnl -> chnl.sendMessage(log)
);
} else if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":octagonal_sign:"))) {
// Do nothing
@ -100,7 +96,6 @@ public class RemoveOutfitCommand extends Command {
.setDescription(String.format("ID %s does not exist", outfitId));
ctx.reply(response);
});
});
}));
}
}

View File

@ -9,10 +9,7 @@ import com.vdurmont.emoji.EmojiParser;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.database.controllers.OutfitController;
import dev.salmonllama.fsbot.database.models.Outfit;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.channel.TextChannel;
import org.javacord.api.entity.message.embed.EmbedBuilder;
@ -26,7 +23,7 @@ public class RetagCommand extends Command {
@Override public String name() { return "Retag"; }
@Override public String description() { return "Changes the tag of the given outfit"; }
@Override public String usage() { return "retag <String id> <String newtag>"; }
@Override public String category() { return "Staff"; }
@Override public CommandCategory category() { return CommandCategory.STAFF; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); }
@Override public Collection<String> aliases() { return new ArrayList<>(Collections.singletonList("retag")); }
@ -45,8 +42,7 @@ public class RetagCommand extends Command {
String outfitId = args[0];
String newTag = args[1];
OutfitController.findById(outfitId).thenAcceptAsync(possibleOutfit -> {
possibleOutfit.ifPresentOrElse(outfit -> {
OutfitController.findById(outfitId).thenAcceptAsync(possibleOutfit -> possibleOutfit.ifPresentOrElse(outfit -> {
// Send info, confirmation, and add reaction listener
EmbedBuilder response = new EmbedBuilder()
.setTitle("Confirm Tag Edit")
@ -85,9 +81,9 @@ public class RetagCommand extends Command {
.setThumbnail(outfit.getLink())
.addField("New tag:", newTag);
ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent(chnl -> {
chnl.sendMessage(log);
});
ctx.getApi().getServerTextChannelById(BotConfig.OUTFIT_LOG).ifPresent(
chnl -> chnl.sendMessage(log)
);
});
} else if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":octagonal_sign:"))) {
@ -109,7 +105,6 @@ public class RetagCommand extends Command {
.setColor(Color.RED);
ctx.reply(response);
});
});
}));
}
}

View File

@ -6,11 +6,7 @@
package dev.salmonllama.fsbot.commands.staff;
import com.vdurmont.emoji.EmojiParser;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import java.awt.*;
@ -22,7 +18,7 @@ public class SetStatusCommand extends Command {
@Override public String name() { return "Set Status"; }
@Override public String description() { return "Updates the bot's current status"; }
@Override public String usage() { return "updatestatus <String status>"; }
@Override public String category() { return "Staff"; }
@Override public CommandCategory category() { return CommandCategory.STAFF; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("setstatus", "status")); }

View File

@ -8,10 +8,7 @@ package dev.salmonllama.fsbot.commands.staff;
import dev.salmonllama.fsbot.config.BotConfig;
import dev.salmonllama.fsbot.database.controllers.ServerConfigController;
import dev.salmonllama.fsbot.database.models.ServerConfig;
import dev.salmonllama.fsbot.guthix.Command;
import dev.salmonllama.fsbot.guthix.CommandContext;
import dev.salmonllama.fsbot.guthix.CommandPermission;
import dev.salmonllama.fsbot.guthix.PermissionType;
import dev.salmonllama.fsbot.guthix.*;
import org.javacord.api.entity.message.embed.EmbedBuilder;
import org.javacord.api.util.logging.ExceptionLogger;
@ -23,7 +20,7 @@ public class WelcomeMessageCommand extends Command {
@Override public String name() { return "Welcome Message"; }
@Override public String description() { return "View or update the server welcome message. Options: get|set|getchannel|setchannel."; }
@Override public String usage() { return "welcomemessage <String opt> [String newMessage]"; }
@Override public String category() { return "Staff"; }
@Override public CommandCategory category() { return CommandCategory.STAFF; }
@Override public CommandPermission permission() { return new CommandPermission(PermissionType.STATIC, "staff"); }
@Override public Collection<String> aliases() { return new ArrayList<>(Arrays.asList("welcomemessage", "wmsg")); }

View File

@ -12,7 +12,7 @@ public abstract class Command {
public abstract String name();
public abstract String description();
public abstract String usage();
public abstract String category();
public abstract CommandCategory category();
public abstract CommandPermission permission();
public abstract Collection<String> aliases();

View File

@ -0,0 +1,24 @@
/*
* Copyright (c) 2020. Aleksei Gryczewski
* All rights reserved.
*/
package dev.salmonllama.fsbot.guthix;
public enum CommandCategory {
DEVELOPER("Developer"),
GENERAL("General"),
OSRS_ITEM_SEARCH("Oldschool Item Search"),
RS3_ITEM_SEARCH("Runescape Item Search"),
STAFF("Staff");
private final String category;
CommandCategory(String category) {
this.category = category;
}
public String getCategory() {
return category;
}
}