diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java new file mode 100644 index 0000000..9d85656 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/PermissionCommand.java @@ -0,0 +1,60 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.commands.developer; + +import dev.salmonllama.fsbot.database.controllers.StaticPermissionController; +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 java.util.ArrayList; +import java.util.Arrays; +import java.util.Collection; + +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 "; } + @Override public String category() { return "Staff"; } + @Override public CommandPermission permission() { return new CommandPermission(PermissionType.OWNER); } + @Override public Collection aliases() { return new ArrayList<>(Arrays.asList("permission", "perm")); } + + @Override + public void onCommand(CommandContext ctx) { + String[] args = ctx.getArgs(); + + switch(args[0]) { + case "list": + // List all the static permissions + break; + case "add": + // Add a static permission to the mentioned user, if any + break; + case "remove": + // Remove a static permission from the mentioned user, if any + break; + default: + // You don't know how to use this command LUL + } + } + + private void list(CommandContext ctx) { + + } + + private void listForUser(CommandContext ctx) { + + } + + private void add(CommandContext ctx) { + + } + + private void remove(CommandContext ctx) { + + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java index e436668..3cac897 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/developer/TestCommand.java @@ -10,10 +10,13 @@ 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.entity.message.Message; +import org.javacord.api.entity.permission.Role; import java.util.ArrayList; import java.util.Arrays; import java.util.Collection; +import java.util.stream.Collectors; public class TestCommand extends Command { @Override public String name() { return "Test"; } @@ -25,8 +28,15 @@ public class TestCommand extends Command { @Override public void onCommand(CommandContext ctx) { - OutfitController.findRandom().thenAccept(outfit -> { - outfit.ifPresent(o -> ctx.reply(o.toString())); + Message msg = ctx.getMessage(); + + Collection roles = msg.getMentionedRoles(); + + roles.stream().map(Role::getIdAsString).collect(Collectors.toList()).forEach(id -> { + ctx.getServer().ifPresent(server -> { + Role r = server.getRoleById(id).orElse(null); + ctx.reply(r.getMentionTag()); + }); }); } } diff --git a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java index f8ea40e..9a07b81 100644 --- a/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java +++ b/src/main/java/dev/salmonllama/fsbot/commands/staff/RemoveOutfitCommand.java @@ -64,7 +64,7 @@ public class RemoveOutfitCommand extends Command { if (event.getUser().getId() != authorId) { return; } - + if (event.getEmoji().equalsEmoji(EmojiParser.parseToUnicode(":white_check_mark:"))) { // Delete the outfit OutfitController.delete(outfit.getId()); diff --git a/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java b/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java index 75fae9f..5296f3d 100644 --- a/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java +++ b/src/main/java/dev/salmonllama/fsbot/database/models/Outfit.java @@ -6,6 +6,7 @@ package dev.salmonllama.fsbot.database.models; import dev.salmonllama.fsbot.database.DatabaseModel; +import org.javacord.api.entity.message.embed.EmbedBuilder; import java.sql.Timestamp; diff --git a/src/main/java/dev/salmonllama/fsbot/logging/Logger.java b/src/main/java/dev/salmonllama/fsbot/logging/Logger.java new file mode 100644 index 0000000..dfdfa88 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/logging/Logger.java @@ -0,0 +1,48 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.logging; + +import dev.salmonllama.fsbot.config.BotConfig; +import org.javacord.api.DiscordApi; +import org.javacord.api.entity.channel.ServerTextChannel; +import org.javacord.api.entity.message.Message; + +import java.util.concurrent.CompletableFuture; + +public class Logger { + + private DiscordApi api; + + private final String OUTFIT_LOG = BotConfig.OUTFIT_LOG; + private final String REPORT_LOG = BotConfig.REPORT_LOG; + private final String JOIN_LOG = BotConfig.JOIN_LOG; + private final String BOT_LOG = BotConfig.BOT_LOG; + private final String SALMONLLAMA = BotConfig.BOT_OWNER; + + public Logger(DiscordApi api) { + this.api = api; + } + + public void logOutfit() { + api.getServerTextChannelById(OUTFIT_LOG).ifPresentOrElse(channel -> { + // Log the thing + channel.sendMessage("thing"); + }, () -> { + // Do something else + api.getUserById(SALMONLLAMA).thenAcceptAsync(user -> { + user.sendMessage("Outfit log failed and was not found"); + }); + }); + } + + public void logReport() { + + } + + public static void error() { + + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/logging/ResponseType.java b/src/main/java/dev/salmonllama/fsbot/logging/ResponseType.java new file mode 100644 index 0000000..ae603eb --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/logging/ResponseType.java @@ -0,0 +1,21 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.logging; + +import java.awt.*; + +public enum ResponseType { + ERROR (Color.RED), + WARN (Color.YELLOW), + INFO (Color.BLUE), + LOG (Color.GRAY); + + private Color color; + private String title; + ResponseType(Color color, String title) { + + } +} diff --git a/src/main/java/dev/salmonllama/fsbot/logging/StandardEmbed.java b/src/main/java/dev/salmonllama/fsbot/logging/StandardEmbed.java new file mode 100644 index 0000000..f15c5a9 --- /dev/null +++ b/src/main/java/dev/salmonllama/fsbot/logging/StandardEmbed.java @@ -0,0 +1,14 @@ +/* + * Copyright (c) 2020. Aleksei Gryczewski + * All rights reserved. + */ + +package dev.salmonllama.fsbot.logging; + +import org.javacord.api.entity.message.embed.EmbedBuilder; + +public class StandardEmbed extends EmbedBuilder { + public StandardEmbed() { + super(); + } +}