Stuff
This commit is contained in:
parent
d8a43381d2
commit
716c6c139b
@ -7,7 +7,7 @@ plugins {
|
|||||||
mainClassName = 'net.nevet5gi.buzzbot.Bot'
|
mainClassName = 'net.nevet5gi.buzzbot.Bot'
|
||||||
|
|
||||||
group 'net.nevet5gi'
|
group 'net.nevet5gi'
|
||||||
version '0.3.0'
|
version '0.4.1'
|
||||||
|
|
||||||
sourceCompatibility = JavaVersion.VERSION_17
|
sourceCompatibility = JavaVersion.VERSION_17
|
||||||
targetCompatibility = JavaVersion.VERSION_17
|
targetCompatibility = JavaVersion.VERSION_17
|
||||||
@ -29,7 +29,7 @@ repositories {
|
|||||||
dependencies {
|
dependencies {
|
||||||
implementation 'net.dv8tion:JDA:4.4.0_350'
|
implementation 'net.dv8tion:JDA:4.4.0_350'
|
||||||
implementation 'ch.qos.logback:logback-classic:1.2.11'
|
implementation 'ch.qos.logback:logback-classic:1.2.11'
|
||||||
implementation 'me.duncte123:botCommons:2.3.8'
|
//implementation 'me.duncte123:botCommons:2.3.8'
|
||||||
implementation 'com.google.code.gson:gson:2.9.0'
|
implementation 'com.google.code.gson:gson:2.9.0'
|
||||||
implementation 'me.carleslc.Simple-YAML:Simple-Yaml:1.7.2'
|
implementation 'me.carleslc.Simple-YAML:Simple-Yaml:1.7.2'
|
||||||
implementation 'mysql:mysql-connector-java:8.0.29'
|
implementation 'mysql:mysql-connector-java:8.0.29'
|
||||||
|
@ -45,10 +45,13 @@ public class Listener extends ListenerAdapter {
|
|||||||
switch (profanityLevel) {
|
switch (profanityLevel) {
|
||||||
case 1:
|
case 1:
|
||||||
if (profanityFilter.containsProfanity(raw, "mild")) profanityFilter.handle(event);
|
if (profanityFilter.containsProfanity(raw, "mild")) profanityFilter.handle(event);
|
||||||
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (profanityFilter.containsProfanity(raw, "moderate")) profanityFilter.handle(event);
|
if (profanityFilter.containsProfanity(raw, "moderate")) profanityFilter.handle(event);
|
||||||
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
profanityFilter.handle(event);
|
profanityFilter.handle(event);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -68,10 +71,13 @@ public class Listener extends ListenerAdapter {
|
|||||||
switch (profanityLevel) {
|
switch (profanityLevel) {
|
||||||
case 1:
|
case 1:
|
||||||
if (profanityFilter.containsProfanity(raw, "mild")) profanityFilter.handleEdit(event);
|
if (profanityFilter.containsProfanity(raw, "mild")) profanityFilter.handleEdit(event);
|
||||||
|
break;
|
||||||
case 2:
|
case 2:
|
||||||
if (profanityFilter.containsProfanity(raw, "moderate")) profanityFilter.handleEdit(event);
|
if (profanityFilter.containsProfanity(raw, "moderate")) profanityFilter.handleEdit(event);
|
||||||
|
break;
|
||||||
case 3:
|
case 3:
|
||||||
profanityFilter.handleEdit(event);
|
profanityFilter.handleEdit(event);
|
||||||
|
break;
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
@ -5,7 +5,6 @@ import net.dv8tion.jda.api.JDABuilder;
|
|||||||
import net.dv8tion.jda.api.utils.cache.CacheFlag;
|
import net.dv8tion.jda.api.utils.cache.CacheFlag;
|
||||||
import net.nevet5gi.buzzbot.database.SqlDB;
|
import net.nevet5gi.buzzbot.database.SqlDB;
|
||||||
import net.nevet5gi.buzzbot.objects.BanData;
|
import net.nevet5gi.buzzbot.objects.BanData;
|
||||||
import net.nevet5gi.buzzbot.objects.GuildData;
|
|
||||||
|
|
||||||
import javax.security.auth.login.LoginException;
|
import javax.security.auth.login.LoginException;
|
||||||
import java.sql.Date;
|
import java.sql.Date;
|
||||||
@ -17,6 +16,7 @@ import java.util.EnumSet;
|
|||||||
public class Test {
|
public class Test {
|
||||||
private static JDA jda;
|
private static JDA jda;
|
||||||
public static void main(String[] args) {
|
public static void main(String[] args) {
|
||||||
|
|
||||||
Config.loadConfig();
|
Config.loadConfig();
|
||||||
initJda();
|
initJda();
|
||||||
|
|
||||||
|
@ -75,8 +75,8 @@ public class BanCmd implements ICommand {
|
|||||||
ban.setServerId(ctx.getGuild().getIdLong());
|
ban.setServerId(ctx.getGuild().getIdLong());
|
||||||
ban.setServerName(ctx.getGuild().getName());
|
ban.setServerName(ctx.getGuild().getName());
|
||||||
|
|
||||||
SqlDB db = new SqlDB();
|
//SqlDB db = new SqlDB();
|
||||||
db.insertBan(ban, "master_ban_list");
|
//db.insertBan(ban, "master_ban_record");
|
||||||
|
|
||||||
//ctx.getEvent().getGuild().ban(cmdf, 1 , "").submit();
|
//ctx.getEvent().getGuild().ban(cmdf, 1 , "").submit();
|
||||||
//ctx.getMessage().reply("yes ban");
|
//ctx.getMessage().reply("yes ban");
|
||||||
@ -87,6 +87,11 @@ public class BanCmd implements ICommand {
|
|||||||
return "ban";
|
return "ban";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPermissionLevel() {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHelp() {
|
public String getHelp() {
|
||||||
return "Bans the specified user";
|
return "Bans the specified user";
|
||||||
|
@ -2,12 +2,13 @@ package net.nevet5gi.buzzbot.commands;
|
|||||||
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
import com.google.gson.JsonArray;
|
|
||||||
import com.google.gson.JsonElement;
|
import com.google.gson.JsonElement;
|
||||||
import net.dv8tion.jda.api.EmbedBuilder;
|
import net.dv8tion.jda.api.EmbedBuilder;
|
||||||
|
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||||
import net.nevet5gi.buzzbot.Config;
|
import net.nevet5gi.buzzbot.Config;
|
||||||
import net.nevet5gi.buzzbot.commands.utils.CommandContext;
|
import net.nevet5gi.buzzbot.commands.utils.CommandContext;
|
||||||
import net.nevet5gi.buzzbot.commands.utils.ICommand;
|
import net.nevet5gi.buzzbot.commands.utils.ICommand;
|
||||||
|
import net.nevet5gi.buzzbot.commands.utils.ISlashCommand;
|
||||||
|
|
||||||
import java.io.IOException;
|
import java.io.IOException;
|
||||||
import java.net.URI;
|
import java.net.URI;
|
||||||
@ -15,26 +16,25 @@ import java.net.http.HttpClient;
|
|||||||
import java.net.http.HttpRequest;
|
import java.net.http.HttpRequest;
|
||||||
import java.net.http.HttpResponse;
|
import java.net.http.HttpResponse;
|
||||||
|
|
||||||
public class PandaCmd implements ICommand {
|
public class BeeCmd implements ICommand, ISlashCommand {
|
||||||
public static String url;
|
public static String url;
|
||||||
@Override
|
@Override
|
||||||
public void handle(CommandContext ctx) {
|
public void handle(CommandContext ctx) {
|
||||||
try { getHttpConnection(); } catch (IOException | InterruptedException e) { e.printStackTrace(); }
|
try { getHttpConnection(); } catch (IOException | InterruptedException e) { e.printStackTrace(); }
|
||||||
EmbedBuilder eb = new EmbedBuilder();
|
EmbedBuilder eb = new EmbedBuilder();
|
||||||
ctx.getChannel().sendTyping().queue();
|
|
||||||
eb.setImage(url.replace("\"",""));
|
eb.setImage(url.replace("\"",""));
|
||||||
ctx.getChannel().sendMessageEmbeds(eb.build()).queue();
|
ctx.getChannel().sendMessageEmbeds(eb.build()).queue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getName() {
|
public String getName() {
|
||||||
return "panda";
|
return "bee";
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHelp() {
|
public String getHelp() {
|
||||||
return "Sends a picture of a panda!\n" +
|
return "Sends a picture of a bee!\n" +
|
||||||
"Usage: `" + Config.getConfig().getString("bot.prefix") + "panda`";
|
"Usage: `" + Config.getConfig().getString("bot.prefix") + "bee`";
|
||||||
}
|
}
|
||||||
|
|
||||||
public static void getHttpConnection() throws IOException, InterruptedException {
|
public static void getHttpConnection() throws IOException, InterruptedException {
|
||||||
@ -42,23 +42,36 @@ public class PandaCmd implements ICommand {
|
|||||||
HttpRequest request = HttpRequest.newBuilder()
|
HttpRequest request = HttpRequest.newBuilder()
|
||||||
.GET()
|
.GET()
|
||||||
.header("accept", "application/json")
|
.header("accept", "application/json")
|
||||||
.uri(URI.create("https://some-random-api.ml/img/panda"))
|
.uri(URI.create("https://api.nevets.tech/bee"))
|
||||||
.build();
|
.build();
|
||||||
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
|
client.sendAsync(request, HttpResponse.BodyHandlers.ofString())
|
||||||
.thenApply(HttpResponse::body)
|
.thenApply(HttpResponse::body)
|
||||||
.thenApply(PandaCmd::parse)
|
.thenApply(BeeCmd::parse)
|
||||||
.join();
|
.join();
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String parse(String response) {
|
public static String parse(String response) {
|
||||||
String mod = "[ " + response + " ]";
|
JsonElement je = new Gson().fromJson(response, JsonElement.class);
|
||||||
JsonArray ja = new Gson().fromJson(mod, JsonArray.class);
|
url = je.getAsJsonObject().get("link").toString();
|
||||||
|
|
||||||
for (int i = 0; i < ja.getAsJsonArray().size(); i++) {
|
|
||||||
JsonElement jo = ja.get(i);
|
|
||||||
url = jo.getAsJsonObject().get("link").toString();
|
|
||||||
}
|
|
||||||
|
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleSlash(CommandContext ctx) {
|
||||||
|
try { getHttpConnection(); } catch (IOException | InterruptedException e) { e.printStackTrace(); }
|
||||||
|
EmbedBuilder eb = new EmbedBuilder();
|
||||||
|
eb.setImage(url.replace("\"",""));
|
||||||
|
ctx.getSlashEvent().getHook().sendMessageEmbeds(eb.build()).queue();
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
return "Responds with a picture of a bee!";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommandData getCommandData() {
|
||||||
|
return new CommandData(this.getName(), this.getDescription());
|
||||||
|
}
|
||||||
}
|
}
|
@ -14,6 +14,11 @@ public class MuteCmd implements ICommand {
|
|||||||
return "mute";
|
return "mute";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPermissionLevel() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHelp() {
|
public String getHelp() {
|
||||||
return "Mutes the specified user";
|
return "Mutes the specified user";
|
||||||
|
@ -1,17 +1,18 @@
|
|||||||
package net.nevet5gi.buzzbot.commands;
|
package net.nevet5gi.buzzbot.commands;
|
||||||
|
|
||||||
import net.dv8tion.jda.api.JDA;
|
import net.dv8tion.jda.api.JDA;
|
||||||
|
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||||
|
import net.nevet5gi.buzzbot.Bot;
|
||||||
import net.nevet5gi.buzzbot.Config;
|
import net.nevet5gi.buzzbot.Config;
|
||||||
import net.nevet5gi.buzzbot.commands.utils.CommandContext;
|
import net.nevet5gi.buzzbot.commands.utils.CommandContext;
|
||||||
import net.nevet5gi.buzzbot.commands.utils.ICommand;
|
import net.nevet5gi.buzzbot.commands.utils.ICommand;
|
||||||
|
import net.nevet5gi.buzzbot.commands.utils.ISlashCommand;
|
||||||
|
|
||||||
public class PingCmd implements ICommand {
|
public class PingCmd implements ICommand, ISlashCommand {
|
||||||
@Override
|
@Override
|
||||||
public void handle(CommandContext ctx) {
|
public void handle(CommandContext ctx) {
|
||||||
JDA jda = ctx.getJDA();
|
JDA jda = ctx.getJDA();
|
||||||
|
|
||||||
jda.getRestPing().queue((ping) -> ctx.getChannel().sendMessageFormat("Rest API Ping: %sms\nWebSocket Ping: %sms", ping, jda.getGatewayPing()).queue());
|
jda.getRestPing().queue((ping) -> ctx.getChannel().sendMessageFormat("Rest API Ping: %sms\nWebSocket Ping: %sms", ping, jda.getGatewayPing()).queue());
|
||||||
|
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
@ -24,4 +25,20 @@ public class PingCmd implements ICommand {
|
|||||||
public String getName() {
|
public String getName() {
|
||||||
return "ping";
|
return "ping";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void handleSlash(CommandContext ctx) {
|
||||||
|
JDA jda = Bot.jda;
|
||||||
|
jda.getRestPing().queue(ping -> ctx.getSlashEvent().getHook().sendMessageFormat("Rest API Ping: %sms\nWebSocket Ping: %sms", ping, jda.getGatewayPing()).queue());
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public String getDescription() {
|
||||||
|
return "Shows the current ping from the bot to API";
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public CommandData getCommandData() {
|
||||||
|
return new CommandData(this.getName(), this.getDescription());
|
||||||
|
}
|
||||||
}
|
}
|
||||||
|
@ -6,6 +6,9 @@ import net.nevet5gi.buzzbot.commands.utils.ICommand;
|
|||||||
public class UnbanCmd implements ICommand {
|
public class UnbanCmd implements ICommand {
|
||||||
@Override
|
@Override
|
||||||
public void handle(CommandContext ctx) {
|
public void handle(CommandContext ctx) {
|
||||||
|
// Somehow keep track of bans
|
||||||
|
// Make sure a user can only be unbanned from the guild they were banned from
|
||||||
|
|
||||||
ctx.getMessage().reply("This command doesn't work yet").queue();
|
ctx.getMessage().reply("This command doesn't work yet").queue();
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -14,6 +17,11 @@ public class UnbanCmd implements ICommand {
|
|||||||
return "unban";
|
return "unban";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPermissionLevel() {
|
||||||
|
return 3;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHelp() {
|
public String getHelp() {
|
||||||
return "Unbans the specified user";
|
return "Unbans the specified user";
|
||||||
|
@ -14,6 +14,11 @@ public class UnmuteCmd implements ICommand {
|
|||||||
return "unmute";
|
return "unmute";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPermissionLevel() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHelp() {
|
public String getHelp() {
|
||||||
return "Unmutes the specified user";
|
return "Unmutes the specified user";
|
||||||
|
@ -15,6 +15,11 @@ public class UnwarnCmd implements ICommand {
|
|||||||
return "unwarn";
|
return "unwarn";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPermissionLevel() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getHelp() {
|
public String getHelp() {
|
||||||
return "Unwarns the specified user";
|
return "Unwarns the specified user";
|
||||||
|
@ -21,6 +21,11 @@ public class WarnCmd implements ICommand, ISlashCommand {
|
|||||||
return "warn";
|
return "warn";
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public int getPermissionLevel() {
|
||||||
|
return 2;
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public String getDescription() {
|
public String getDescription() {
|
||||||
return "Warns specified user";
|
return "Warns specified user";
|
||||||
|
@ -1,6 +1,5 @@
|
|||||||
package net.nevet5gi.buzzbot.commands.utils;
|
package net.nevet5gi.buzzbot.commands.utils;
|
||||||
|
|
||||||
import me.duncte123.botcommons.commands.ICommandContext;
|
|
||||||
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
|
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
|
||||||
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
|
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
|
||||||
|
|
||||||
|
@ -1,5 +1,7 @@
|
|||||||
package net.nevet5gi.buzzbot.commands.utils;
|
package net.nevet5gi.buzzbot.commands.utils;
|
||||||
|
|
||||||
|
import net.dv8tion.jda.api.entities.Member;
|
||||||
|
import net.dv8tion.jda.api.entities.Role;
|
||||||
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
|
import net.dv8tion.jda.api.events.interaction.SlashCommandEvent;
|
||||||
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
|
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
|
||||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||||
@ -23,9 +25,9 @@ public class CommandManager {
|
|||||||
public CommandManager() {
|
public CommandManager() {
|
||||||
//Add to this list in alphabetical order
|
//Add to this list in alphabetical order
|
||||||
addCommand(new BanCmd());
|
addCommand(new BanCmd());
|
||||||
|
addCommand(new BeeCmd());
|
||||||
addCommand(new HelpCmd(this));
|
addCommand(new HelpCmd(this));
|
||||||
addCommand(new MuteCmd());
|
addCommand(new MuteCmd());
|
||||||
addCommand(new PandaCmd());
|
|
||||||
addCommand(new PingCmd());
|
addCommand(new PingCmd());
|
||||||
addCommand(new TestCmd());
|
addCommand(new TestCmd());
|
||||||
addCommand(new UnbanCmd());
|
addCommand(new UnbanCmd());
|
||||||
@ -36,7 +38,7 @@ public class CommandManager {
|
|||||||
}
|
}
|
||||||
|
|
||||||
private void addCommand(ICmdGeneric cmd) {
|
private void addCommand(ICmdGeneric cmd) {
|
||||||
boolean nameFound = commands.stream().anyMatch((it) -> it.getName().equalsIgnoreCase(cmd.getName()));
|
boolean nameFound = commands.stream().anyMatch(it -> it.getName().equalsIgnoreCase(cmd.getName()));
|
||||||
if (nameFound) {
|
if (nameFound) {
|
||||||
throw new IllegalArgumentException("A command with this name is already present");
|
throw new IllegalArgumentException("A command with this name is already present");
|
||||||
}
|
}
|
||||||
@ -77,6 +79,31 @@ public class CommandManager {
|
|||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public boolean hasPermission(Member member, ICmdGeneric cmd) {
|
||||||
|
//TODO Make this get roles from db
|
||||||
|
List<Role> roles = member.getRoles();
|
||||||
|
|
||||||
|
int permLevel = 0;
|
||||||
|
|
||||||
|
for (Role role : roles) {
|
||||||
|
switch (role.getName().toLowerCase()) {
|
||||||
|
case "helper":
|
||||||
|
if (permLevel < 1) permLevel = 1;
|
||||||
|
continue;
|
||||||
|
case "moderator", "mod":
|
||||||
|
if (permLevel < 2) permLevel = 2;
|
||||||
|
continue;
|
||||||
|
case "administrator", "admin":
|
||||||
|
if (permLevel < 3) permLevel = 3;
|
||||||
|
continue;
|
||||||
|
case "owner":
|
||||||
|
if (permLevel < 4) permLevel = 4;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
return permLevel >= cmd.getPermissionLevel();
|
||||||
|
}
|
||||||
|
|
||||||
@Nullable
|
@Nullable
|
||||||
public ISlashCommand getSlashCommand(String search) {
|
public ISlashCommand getSlashCommand(String search) {
|
||||||
String searchLower = search.toLowerCase();
|
String searchLower = search.toLowerCase();
|
||||||
@ -98,6 +125,11 @@ public class CommandManager {
|
|||||||
String invoke = split[0].toLowerCase();
|
String invoke = split[0].toLowerCase();
|
||||||
ICommand cmd = getCommand(invoke);
|
ICommand cmd = getCommand(invoke);
|
||||||
|
|
||||||
|
if (!hasPermission(event.getMember(), cmd)) {
|
||||||
|
event.getMessage().reply("You do not have permission to use this command.").queue();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (cmd != null) {
|
if (cmd != null) {
|
||||||
event.getChannel().sendTyping().queue();
|
event.getChannel().sendTyping().queue();
|
||||||
List<String> args = Arrays.asList(split).subList(1, split.length);
|
List<String> args = Arrays.asList(split).subList(1, split.length);
|
||||||
@ -112,6 +144,11 @@ public class CommandManager {
|
|||||||
String invoke = event.getName();
|
String invoke = event.getName();
|
||||||
ISlashCommand cmd = getSlashCommand(invoke);
|
ISlashCommand cmd = getSlashCommand(invoke);
|
||||||
|
|
||||||
|
if (!hasPermission(event.getMember(), cmd)) {
|
||||||
|
event.getHook().sendMessage("You do not have permission to use this command.").queue();
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
|
||||||
if (cmd != null) {
|
if (cmd != null) {
|
||||||
event.deferReply().queue();
|
event.deferReply().queue();
|
||||||
List<String> args = new ArrayList<>();
|
List<String> args = new ArrayList<>();
|
||||||
|
@ -6,6 +6,14 @@ public interface ICmdGeneric {
|
|||||||
|
|
||||||
String getName();
|
String getName();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* @apiNote 0 = default, 1 = helper, 2 = moderator, 3 = admin, 4 = owner
|
||||||
|
* @return int
|
||||||
|
*/
|
||||||
|
default int getPermissionLevel() {
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
String getHelp();
|
String getHelp();
|
||||||
|
|
||||||
default List<String> getAliases(){
|
default List<String> getAliases(){
|
||||||
|
@ -1,2 +1,97 @@
|
|||||||
package net.nevet5gi.buzzbot.commands.utils;public class ICommandContext {
|
package net.nevet5gi.buzzbot.commands.utils;
|
||||||
|
|
||||||
|
import net.dv8tion.jda.api.JDA;
|
||||||
|
import net.dv8tion.jda.api.entities.*;
|
||||||
|
import net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent;
|
||||||
|
import net.dv8tion.jda.api.sharding.ShardManager;
|
||||||
|
|
||||||
|
public interface ICommandContext {
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link net.dv8tion.jda.api.entities.Guild} for the current command/event
|
||||||
|
*
|
||||||
|
* @return the {@link net.dv8tion.jda.api.entities.Guild} for this command/event
|
||||||
|
*/
|
||||||
|
default Guild getGuild() {
|
||||||
|
return this.getEvent().getGuild();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent message event} that was received for this instance
|
||||||
|
*
|
||||||
|
* @return the {@link net.dv8tion.jda.api.events.message.guild.GuildMessageReceivedEvent message event} that was received for this instance
|
||||||
|
*/
|
||||||
|
GuildMessageReceivedEvent getEvent();
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link net.dv8tion.jda.api.entities.TextChannel channel} that the message for this event was send in
|
||||||
|
*
|
||||||
|
* @return the {@link net.dv8tion.jda.api.entities.TextChannel channel} that the message for this event was send in
|
||||||
|
*/
|
||||||
|
default TextChannel getChannel() {
|
||||||
|
return this.getEvent().getChannel();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link net.dv8tion.jda.api.entities.Message message} that triggered this event
|
||||||
|
*
|
||||||
|
* @return the {@link net.dv8tion.jda.api.entities.Message message} that triggered this event
|
||||||
|
*/
|
||||||
|
default Message getMessage() {
|
||||||
|
return this.getEvent().getMessage();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link net.dv8tion.jda.api.entities.User author} of the message as user
|
||||||
|
*
|
||||||
|
* @return the {@link net.dv8tion.jda.api.entities.User author} of the message as user
|
||||||
|
*/
|
||||||
|
default User getAuthor() {
|
||||||
|
return this.getEvent().getAuthor();
|
||||||
|
}
|
||||||
|
/**
|
||||||
|
* Returns the {@link net.dv8tion.jda.api.entities.Member author} of the message as member
|
||||||
|
*
|
||||||
|
* @return the {@link net.dv8tion.jda.api.entities.Member author} of the message as member
|
||||||
|
*/
|
||||||
|
default Member getMember() {
|
||||||
|
return this.getEvent().getMember();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the current {@link net.dv8tion.jda.api.JDA jda} instance
|
||||||
|
*
|
||||||
|
* @return the current {@link net.dv8tion.jda.api.JDA jda} instance
|
||||||
|
*/
|
||||||
|
default JDA getJDA() {
|
||||||
|
return this.getEvent().getJDA();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the current {@link net.dv8tion.jda.api.sharding.ShardManager} instance
|
||||||
|
*
|
||||||
|
* @return the current {@link net.dv8tion.jda.api.sharding.ShardManager} instance
|
||||||
|
*/
|
||||||
|
default ShardManager getShardManager() {
|
||||||
|
return this.getJDA().getShardManager();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link net.dv8tion.jda.api.entities.User user} for the currently logged in account
|
||||||
|
*
|
||||||
|
* @return the {@link net.dv8tion.jda.api.entities.User user} for the currently logged in account
|
||||||
|
*/
|
||||||
|
default User getSelfUser() {
|
||||||
|
return this.getJDA().getSelfUser();
|
||||||
|
}
|
||||||
|
|
||||||
|
/**
|
||||||
|
* Returns the {@link net.dv8tion.jda.api.entities.Member member} in the guild for the currently logged in account
|
||||||
|
*
|
||||||
|
* @return the {@link net.dv8tion.jda.api.entities.Member member} in the guild for the currently logged in account
|
||||||
|
*/
|
||||||
|
default Member getSelfMember() {
|
||||||
|
return this.getGuild().getSelfMember();
|
||||||
|
}
|
||||||
|
|
||||||
}
|
}
|
||||||
|
@ -25,7 +25,7 @@ public class SqlDB {
|
|||||||
|
|
||||||
public void insertBan(BanData ban, String table) {
|
public void insertBan(BanData ban, String table) {
|
||||||
try {
|
try {
|
||||||
statement.executeUpdate("INSERT INTO " + table + " VALUES (default, " + ban.getUserId() + ", '" + ban.getUserName() + "', '" + ban.getDate() + "', '" + ban.getTime() + "', " + ban.getBanType() + ", " + ban.getBanLength() + ", '" + ban.getBanReason() + "', '" + ban.getModName() + "', " + ban.getModId() + ", '" + ban.getServerName() + "', " + ban.getServerId() + ")");
|
statement.executeUpdate("INSERT INTO " + table + " VALUES (default, " + ban.getUserId() + ", '" + ban.getUserName() + "', '" + ban.getDate() + "', '" + ban.getTime() + "', " + ban.getBanType() + ", " + ban.getBanLength() + ", '" + ban.getBanReason() + "', '" + ban.getModName() + "', " + ban.getModId() + ", '" + ban.getServerName() + "', " + ban.getServerId() + ", 1)");
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
@ -33,12 +33,18 @@ public class SqlDB {
|
|||||||
close();
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public void insertUnban(long userId, String table) {
|
||||||
|
|
||||||
|
}
|
||||||
|
|
||||||
public void insertMute(MuteData mute, String table) {
|
public void insertMute(MuteData mute, String table) {
|
||||||
try {
|
try {
|
||||||
statement.executeUpdate("INSERT INTO " + table + " VALUES (default, " + mute.getUserId() + ", '" + mute.getUserName() + "', '" + mute.getDate() + "', '" + mute.getTime() + "', " + mute.getMuteLength() + ", '" + mute.getMuteReason() + "', '" + mute.getModName() + "', " + mute.getModId() + ", '" + mute.getServerName() + "', " + mute.getServerId() + ")");
|
statement.executeUpdate("INSERT INTO " + table + " VALUES (default, " + mute.getUserId() + ", '" + mute.getUserName() + "', '" + mute.getDate() + "', '" + mute.getTime() + "', " + mute.getMuteLength() + ", '" + mute.getMuteReason() + "', '" + mute.getModName() + "', " + mute.getModId() + ", '" + mute.getServerName() + "', " + mute.getServerId() + ")");
|
||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public void insertWarn(WarnData warn, String table) {
|
public void insertWarn(WarnData warn, String table) {
|
||||||
@ -47,14 +53,14 @@ public class SqlDB {
|
|||||||
} catch (SQLException e) {
|
} catch (SQLException e) {
|
||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
close();
|
||||||
}
|
}
|
||||||
|
|
||||||
public BanData queryBan(long userId, String table) {
|
public BanData queryBan(long userId, String table) {
|
||||||
BanData ban = new BanData();
|
BanData ban = new BanData();
|
||||||
|
|
||||||
try {
|
try {
|
||||||
//TODO Make this use GuildUtils in order to get the proper group for the server
|
|
||||||
|
|
||||||
resultSet = statement.executeQuery("SELECT * FROM " + table + " WHERE userId=" + userId);
|
resultSet = statement.executeQuery("SELECT * FROM " + table + " WHERE userId=" + userId);
|
||||||
|
|
||||||
while (resultSet.next()) {
|
while (resultSet.next()) {
|
||||||
@ -94,6 +100,7 @@ public class SqlDB {
|
|||||||
throw new RuntimeException(e);
|
throw new RuntimeException(e);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
close();
|
||||||
return mute;
|
return mute;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -111,6 +118,7 @@ public class SqlDB {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
close();
|
||||||
return warn;
|
return warn;
|
||||||
}
|
}
|
||||||
|
|
||||||
@ -140,6 +148,7 @@ public class SqlDB {
|
|||||||
e.printStackTrace();
|
e.printStackTrace();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
close();
|
||||||
return guild;
|
return guild;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
Loading…
Reference in New Issue
Block a user