Slight bug fixes with module loading
This commit is contained in:
parent
41c1d28bcc
commit
07db7b7abd
@ -8,7 +8,7 @@ plugins {
|
||||
mainClassName = 'net.nevet5gi.buzzbot.Bot'
|
||||
|
||||
group 'net.nevet5gi'
|
||||
version '0.5.0'
|
||||
version '0.5.1'
|
||||
|
||||
sourceCompatibility = JavaVersion.VERSION_17
|
||||
targetCompatibility = JavaVersion.VERSION_17
|
||||
|
@ -17,11 +17,11 @@ import java.lang.reflect.InvocationTargetException;
|
||||
import java.util.ArrayList;
|
||||
import java.util.EnumSet;
|
||||
|
||||
public class Bot {
|
||||
public class BuzzBot {
|
||||
//TODO Make shutdown sequence
|
||||
public static JDA jda;
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(Bot.class);
|
||||
public static final ArrayList<ListenerAdapter> PLUGINS = new ArrayList<>();
|
||||
private static final Logger LOGGER = LoggerFactory.getLogger(BuzzBot.class);
|
||||
public static final ArrayList<ListenerAdapter> PLUGIN_LISTENERS = new ArrayList<>();
|
||||
private static ArrayList<BuzzyModule> modules;
|
||||
|
||||
public static void main(String[] args) {
|
||||
@ -43,7 +43,7 @@ public class Bot {
|
||||
))
|
||||
.enableCache(CacheFlag.VOICE_STATE);
|
||||
|
||||
for (ListenerAdapter listener : PLUGINS) {
|
||||
for (ListenerAdapter listener : PLUGIN_LISTENERS) {
|
||||
builder.addEventListeners(listener);
|
||||
}
|
||||
|
||||
@ -77,5 +77,9 @@ public class Bot {
|
||||
jda.getPresence().setActivity(Activity.playing("with myself!"));
|
||||
}
|
||||
}
|
||||
|
||||
public static void addListener(ListenerAdapter listener) {
|
||||
PLUGIN_LISTENERS.add(listener);
|
||||
}
|
||||
}
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.nevet5gi.buzzbot.commands;
|
||||
|
||||
import net.nevet5gi.buzzbot.Bot;
|
||||
import net.nevet5gi.buzzbot.BuzzBot;
|
||||
import net.nevet5gi.buzzbot.commands.utils.CommandContext;
|
||||
import net.nevet5gi.buzzbot.commands.utils.ICommand;
|
||||
import net.nevet5gi.buzzbot.database.SqlDB;
|
||||
@ -69,7 +69,7 @@ public class BanCmd implements ICommand {
|
||||
ctx.getChannel().sendMessage("<@" + ctx.getMessage().getAuthor().getId() + "> banned <@" + ban.getUserId() + "> for " + ban.getBanLength() + " hours. Reason: " + ban.getReason()).queue();
|
||||
}
|
||||
|
||||
Bot.jda.retrieveUserById(ban.getUserId()).queue(user -> { ban.setUserName(user.getName()); });
|
||||
BuzzBot.jda.retrieveUserById(ban.getUserId()).queue(user -> { ban.setUserName(user.getName()); });
|
||||
ban.setModId(ctx.getMessage().getAuthor().getIdLong());
|
||||
ban.setModName(ctx.getMessage().getAuthor().getName());
|
||||
ban.setServerId(ctx.getGuild().getIdLong());
|
||||
|
@ -2,7 +2,7 @@ package net.nevet5gi.buzzbot.commands;
|
||||
|
||||
import net.dv8tion.jda.api.JDA;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.nevet5gi.buzzbot.Bot;
|
||||
import net.nevet5gi.buzzbot.BuzzBot;
|
||||
import net.nevet5gi.buzzbot.Config;
|
||||
import net.nevet5gi.buzzbot.commands.utils.CommandContext;
|
||||
import net.nevet5gi.buzzbot.commands.utils.ICommand;
|
||||
@ -28,7 +28,7 @@ public class PingCmd implements ICommand, ISlashCommand {
|
||||
|
||||
@Override
|
||||
public void handleSlash(CommandContext ctx) {
|
||||
JDA jda = Bot.jda;
|
||||
JDA jda = BuzzBot.jda;
|
||||
jda.getRestPing().queue(ping -> ctx.getHook().sendMessageFormat("Rest API Ping: %sms\nWebSocket Ping: %sms", ping, jda.getGatewayPing()).queue());
|
||||
}
|
||||
|
||||
|
@ -1,6 +1,6 @@
|
||||
package net.nevet5gi.buzzbot.commands;
|
||||
|
||||
import net.nevet5gi.buzzbot.Bot;
|
||||
import net.nevet5gi.buzzbot.BuzzBot;
|
||||
import net.nevet5gi.buzzbot.commands.utils.CommandContext;
|
||||
import net.nevet5gi.buzzbot.commands.utils.ICommand;
|
||||
import net.nevet5gi.buzzbot.database.SqlDB;
|
||||
@ -37,7 +37,7 @@ public class WarnCmd implements ICommand {
|
||||
|
||||
ctx.getChannel().sendMessage("<@" + ctx.getMessage().getAuthor().getId() + "> warned <@" + warn.getUserId() + "> for reason: " + warn.getReason()).queue();
|
||||
|
||||
Bot.jda.retrieveUserById(warn.getUserId()).queue(user -> { warn.setUserName(user.getName()); });
|
||||
BuzzBot.jda.retrieveUserById(warn.getUserId()).queue(user -> { warn.setUserName(user.getName()); });
|
||||
warn.setModId(ctx.getMessage().getAuthor().getIdLong());
|
||||
warn.setModName(ctx.getMessage().getAuthor().getName());
|
||||
warn.setServerId(ctx.getGuild().getIdLong());
|
||||
|
@ -1,12 +1,11 @@
|
||||
package net.nevet5gi.buzzbot.commands.utils;
|
||||
|
||||
import net.dv8tion.jda.api.entities.Guild;
|
||||
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.message.guild.GuildMessageReceivedEvent;
|
||||
import net.dv8tion.jda.api.interactions.commands.build.CommandData;
|
||||
import net.nevet5gi.buzzbot.Bot;
|
||||
import net.nevet5gi.buzzbot.BuzzBot;
|
||||
import net.nevet5gi.buzzbot.Config;
|
||||
import net.nevet5gi.buzzbot.commands.*;
|
||||
import net.nevet5gi.buzzbot.database.SqlDB;
|
||||
@ -62,7 +61,7 @@ public class CommandManager {
|
||||
for (ISlashCommand slashCmd : slashList) {
|
||||
cmdDataList.add(slashCmd.getCommandData());
|
||||
}
|
||||
Bot.jda.updateCommands().addCommands(cmdDataList).queue();
|
||||
BuzzBot.jda.updateCommands().addCommands(cmdDataList).queue();
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -29,10 +29,6 @@ public class ModuleLoader {
|
||||
Files.walk(Paths.get("./modules/"))
|
||||
.filter(Files::isRegularFile)
|
||||
.forEach(modules::add);
|
||||
|
||||
for (Path path : modules) {
|
||||
System.out.println("Module path: " + path.toString());
|
||||
}
|
||||
} catch (IOException e) {
|
||||
System.out.println("Unable to get module list");
|
||||
e.printStackTrace();
|
||||
@ -49,22 +45,30 @@ public class ModuleLoader {
|
||||
JarInputStream jarStream = new JarInputStream(new FileInputStream(String.valueOf(module)));
|
||||
Manifest mf = jarStream.getManifest();
|
||||
Attributes attributes = mf.getMainAttributes();
|
||||
String mainClassString = attributes.getValue("Main-Class");
|
||||
if (mainClassString == null) {
|
||||
String className = attributes.getValue("Main-Class");
|
||||
if (className == null) {
|
||||
LOGGER.error("Unable to get Main Class from module " + module.toString());
|
||||
}
|
||||
String[] packages = mainClassString.split("\\.");
|
||||
String className = packages[packages.length - 1];
|
||||
|
||||
File file = module.toFile();
|
||||
URL[] urls = {file.toURI().toURL()};
|
||||
|
||||
URLClassLoader urlClassLoader = URLClassLoader.newInstance(urls);
|
||||
|
||||
Class<? extends BuzzyModule> mainClass = (Class<? extends BuzzyModule>) Class.forName(className, true, urlClassLoader);
|
||||
BuzzyModule newModule = mainClass.getDeclaredConstructor().newInstance();
|
||||
if (urlClassLoader == null) {
|
||||
System.out.println("Classloader is null");
|
||||
}
|
||||
|
||||
Class<?> mainClass = Class.forName(className, true, urlClassLoader);
|
||||
BuzzyModule newModule = (BuzzyModule) mainClass.getDeclaredConstructor().newInstance();
|
||||
newModule.onPreEnable();
|
||||
modules.add(newModule);
|
||||
if (jarStream != null ) {
|
||||
jarStream.close();
|
||||
}
|
||||
if (urlClassLoader != null) {
|
||||
urlClassLoader.close();
|
||||
}
|
||||
}
|
||||
return modules;
|
||||
}
|
||||
|
Loading…
Reference in New Issue
Block a user