WIP Perm Command/Logger
This commit is contained in:
parent
fbfc6c9dfd
commit
5c5153212a
@ -6,11 +6,15 @@
|
|||||||
package dev.salmonllama.fsbot.commands.developer;
|
package dev.salmonllama.fsbot.commands.developer;
|
||||||
|
|
||||||
import dev.salmonllama.fsbot.database.controllers.StaticPermissionController;
|
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.Command;
|
||||||
import dev.salmonllama.fsbot.guthix.CommandContext;
|
import dev.salmonllama.fsbot.guthix.CommandContext;
|
||||||
import dev.salmonllama.fsbot.guthix.CommandPermission;
|
import dev.salmonllama.fsbot.guthix.CommandPermission;
|
||||||
import dev.salmonllama.fsbot.guthix.PermissionType;
|
import dev.salmonllama.fsbot.guthix.PermissionType;
|
||||||
|
import org.javacord.api.entity.message.embed.EmbedBuilder;
|
||||||
|
import org.javacord.api.entity.user.User;
|
||||||
|
|
||||||
|
import java.awt.*;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Arrays;
|
import java.util.Arrays;
|
||||||
import java.util.Collection;
|
import java.util.Collection;
|
||||||
@ -30,6 +34,7 @@ public class PermissionCommand extends Command {
|
|||||||
switch(args[0]) {
|
switch(args[0]) {
|
||||||
case "list":
|
case "list":
|
||||||
// List all the static permissions
|
// List all the static permissions
|
||||||
|
list(ctx);
|
||||||
break;
|
break;
|
||||||
case "add":
|
case "add":
|
||||||
// Add a static permission to the mentioned user, if any
|
// Add a static permission to the mentioned user, if any
|
||||||
@ -43,15 +48,62 @@ public class PermissionCommand extends Command {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void list(CommandContext ctx) {
|
private void list(CommandContext ctx) {
|
||||||
|
if (!ctx.getMessage().getMentionedUsers().isEmpty()) {
|
||||||
|
User mentionedUser = ctx.getMessage().getMentionedUsers().get(0);
|
||||||
|
|
||||||
}
|
StaticPermissionController.getByUser(mentionedUser.getIdAsString()).thenAcceptAsync(possiblePerms -> {
|
||||||
|
possiblePerms.ifPresentOrElse(perms -> {
|
||||||
|
EmbedBuilder embed = new EmbedBuilder()
|
||||||
|
.setTitle(String.format("Permissions for %s", mentionedUser.getName()))
|
||||||
|
.setFooter(String.format("User has %s total static permissions", perms.size()))
|
||||||
|
.setColor(Color.GREEN);
|
||||||
|
|
||||||
private void listForUser(CommandContext ctx) {
|
perms.forEach(perm -> {
|
||||||
|
embed.addField(perm.getUserId(), perm.getPermission());
|
||||||
|
});
|
||||||
|
|
||||||
|
ctx.reply(embed);
|
||||||
|
}, () -> {
|
||||||
|
EmbedBuilder embed = new EmbedBuilder()
|
||||||
|
.setTitle("No Permissions Found")
|
||||||
|
.setDescription(String.format("User %s has no static permissions", mentionedUser.getName()));
|
||||||
|
|
||||||
|
ctx.reply(embed);
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
StaticPermissionController.getAll().thenAcceptAsync(possiblePerms -> {
|
||||||
|
possiblePerms.ifPresentOrElse(perms -> {
|
||||||
|
EmbedBuilder embed = new EmbedBuilder()
|
||||||
|
.setTitle("All static permissions")
|
||||||
|
.setFooter(String.format("Found %s total static permissions", perms.size()))
|
||||||
|
.setColor(Color.green);
|
||||||
|
|
||||||
|
perms.forEach(perm -> {
|
||||||
|
embed.addField(perm.getUserId(), perm.getPermission());
|
||||||
|
});
|
||||||
|
|
||||||
|
ctx.reply(embed);
|
||||||
|
}, () -> {
|
||||||
|
EmbedBuilder embed = new EmbedBuilder()
|
||||||
|
.setTitle("No Permissions Found")
|
||||||
|
.setDescription("No permissions have been added.");
|
||||||
|
|
||||||
|
ctx.reply(embed);
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
private void add(CommandContext ctx) {
|
private void add(CommandContext ctx) {
|
||||||
|
if (ctx.getMessage().getMentionedUsers().isEmpty()) {
|
||||||
|
// If no mentioned users, improper usage
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
|
String userId = ctx.getMessage().getMentionedUsers().get(0).getIdAsString();
|
||||||
|
|
||||||
|
StaticPermission perm = new StaticPermission.StaticPermissionBuilder(userId).setPermission(ctx.getArgs()[2]).build();
|
||||||
}
|
}
|
||||||
|
|
||||||
private void remove(CommandContext ctx) {
|
private void remove(CommandContext ctx) {
|
||||||
|
@ -7,14 +7,10 @@ package dev.salmonllama.fsbot.logging;
|
|||||||
|
|
||||||
import dev.salmonllama.fsbot.config.BotConfig;
|
import dev.salmonllama.fsbot.config.BotConfig;
|
||||||
import org.javacord.api.DiscordApi;
|
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 {
|
public class Logger {
|
||||||
|
|
||||||
private DiscordApi api;
|
private final DiscordApi api;
|
||||||
|
|
||||||
private final String OUTFIT_LOG = BotConfig.OUTFIT_LOG;
|
private final String OUTFIT_LOG = BotConfig.OUTFIT_LOG;
|
||||||
private final String REPORT_LOG = BotConfig.REPORT_LOG;
|
private final String REPORT_LOG = BotConfig.REPORT_LOG;
|
||||||
@ -29,9 +25,9 @@ public class Logger {
|
|||||||
public void logOutfit() {
|
public void logOutfit() {
|
||||||
api.getServerTextChannelById(OUTFIT_LOG).ifPresentOrElse(channel -> {
|
api.getServerTextChannelById(OUTFIT_LOG).ifPresentOrElse(channel -> {
|
||||||
// Log the thing
|
// Log the thing
|
||||||
channel.sendMessage("thing");
|
channel.sendMessage("outfit");
|
||||||
}, () -> {
|
}, () -> {
|
||||||
// Do something else
|
// DM me
|
||||||
api.getUserById(SALMONLLAMA).thenAcceptAsync(user -> {
|
api.getUserById(SALMONLLAMA).thenAcceptAsync(user -> {
|
||||||
user.sendMessage("Outfit log failed and was not found");
|
user.sendMessage("Outfit log failed and was not found");
|
||||||
});
|
});
|
||||||
@ -39,10 +35,38 @@ public class Logger {
|
|||||||
}
|
}
|
||||||
|
|
||||||
public void logReport() {
|
public void logReport() {
|
||||||
|
api.getServerTextChannelById(REPORT_LOG).ifPresentOrElse(channel -> {
|
||||||
|
// Log the thing
|
||||||
|
channel.sendMessage("report");
|
||||||
|
}, () -> {
|
||||||
|
// DM me
|
||||||
|
api.getUserById(SALMONLLAMA).thenAcceptAsync(user -> {
|
||||||
|
user.sendMessage("Report log failed and was not found");
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void error() {
|
public void logError() {
|
||||||
|
api.getServerTextChannelById(BOT_LOG).ifPresentOrElse(channel -> {
|
||||||
|
// Log the thing
|
||||||
|
channel.sendMessage("error");
|
||||||
|
}, () -> {
|
||||||
|
// DM me
|
||||||
|
api.getUserById(SALMONLLAMA).thenAcceptAsync(user -> {
|
||||||
|
user.sendMessage("Error log failed and was not found");
|
||||||
|
});
|
||||||
|
});
|
||||||
|
}
|
||||||
|
|
||||||
|
public void logMovement() {
|
||||||
|
api.getServerTextChannelById(JOIN_LOG).ifPresentOrElse(channel -> {
|
||||||
|
// Log the thing
|
||||||
|
channel.sendMessage("User joined/Left");
|
||||||
|
}, () -> {
|
||||||
|
// DM me
|
||||||
|
api.getUserById(SALMONLLAMA).thenAcceptAsync(user -> {
|
||||||
|
user.sendMessage("Movement log failed and was not found");
|
||||||
|
});
|
||||||
|
});
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
Loading…
Reference in New Issue
Block a user