Skip to content

Commit

Permalink
bug fixing
Browse files Browse the repository at this point in the history
  • Loading branch information
Jsinco committed Nov 16, 2024
1 parent 0371b56 commit 2864766
Show file tree
Hide file tree
Showing 2 changed files with 53 additions and 35 deletions.
43 changes: 23 additions & 20 deletions src/main/java/dev/jsinco/discord/framework/FrameWork.java
Original file line number Diff line number Diff line change
@@ -1,6 +1,5 @@
package dev.jsinco.discord.framework;

import com.sun.tools.javac.Main;
import dev.jsinco.discord.framework.commands.CommandManager;
import dev.jsinco.discord.framework.commands.CommandModule;
import dev.jsinco.discord.framework.console.ConsoleCommandManager;
Expand Down Expand Up @@ -49,24 +48,19 @@ public final class FrameWork {


public static void start(Class<?> caller) {
String path = Main.class.getProtectionDomain().getCodeSource().getLocation().getPath();
File jarFile = new File(path);
String jarDir = jarFile.getParentFile().getAbsolutePath();

File dataFolder = new File(jarDir + File.separator + "data");
if (!dataFolder.exists()) {
dataFolder.mkdirs();
}
start(caller, getDefaultDataFolderPath("data"));
}

start(caller, dataFolder.toPath());
public static void start(Class<?> caller, String dataFolderName) {
start(caller, getDefaultDataFolderPath(dataFolderName));
}

public static void start(Class<?> caller, Path dataFolderPath) {
start(caller, dataFolderPath, "bot_token");
start(caller, dataFolderPath, "bot_token", true);
}


public static void start(Class<?> caller, Path dataFolderPath, String botTokenArgName) {
public static void start(Class<?> caller, Path dataFolderPath, String botTokenArgName, boolean configureLogging) {
FrameWork.caller = caller;
FrameWork.dataFolderPath = dataFolderPath;
System.out.println("Starting " + caller.getCanonicalName());
Expand All @@ -76,7 +70,9 @@ public static void start(Class<?> caller, Path dataFolderPath, String botTokenAr
botToken = System.getenv(botTokenArgName);
}

FrameWorkLogger.configureLogging();
if (configureLogging) {
FrameWorkLogger.getInstance().configureLogging();
}

if (botToken == null || botToken.length() < MINIMUM_BOT_TOKEN_LENGTH) {
FrameWorkLogger.error("You must provide a Discord Bot token to run this application!");
Expand Down Expand Up @@ -115,20 +111,14 @@ public static void start(Class<?> caller, Path dataFolderPath, String botTokenAr

injectStaticFields();

// Using annotations is so much better
// Using annotations for event listeners
jda.setEventManager(new AnnotatedEventManager());
reflectivelyRegisterClasses();

CommandManager commandManager = new CommandManager();
jda.addEventListener(commandManager); // Manually add this event listener
ScheduleManager.getInstance().schedule(commandManager, 0L, 10000L); // 10 Sec

// Update commands on startup
// jda.updateCommands().queue();
// for (Guild guild : jda.getGuilds()) {
// guild.updateCommands().queue();
// }

// Console commands
ConsoleCommandManager.getInstance()
.registerCommand(new StopCommand())
Expand Down Expand Up @@ -229,4 +219,17 @@ public static void injectStaticFields() {
}
}


public static Path getDefaultDataFolderPath(String folderName) {
String path = caller.getProtectionDomain().getCodeSource().getLocation().getPath();
File jarFile = new File(path);
String jarDir = jarFile.getParentFile().getAbsolutePath();

File dataFolder = new File(jarDir + File.separator + folderName);
if (!dataFolder.exists()) {
dataFolder.mkdirs();
}

return dataFolder.toPath();
}
}
Original file line number Diff line number Diff line change
@@ -1,6 +1,7 @@
package dev.jsinco.discord.framework.logging;

import lombok.Getter;
import lombok.Setter;
import org.apache.logging.log4j.Level;
import org.apache.logging.log4j.LogManager;
import org.apache.logging.log4j.core.LoggerContext;
Expand All @@ -15,20 +16,19 @@
* @since 1.0
* @author Jonah
*/
public final class FrameWorkLogger {

@Getter
private static final Logger logger = LoggerFactory.getLogger(FrameWorkLogger.class);

// Create a PatternLayout with the desired format
@Getter
private static PatternLayout layout = PatternLayout.newBuilder()
.withPattern("[%d{HH:mm:ss} %c{1}/%thread]: %msg%n")
.build();

// Create a ConsoleAppender and associate it with the PatternLayout
@Getter
private static ConsoleAppender consoleAppender = ConsoleAppender.createDefaultAppenderForLayout(layout);
@Getter
@Setter
public class FrameWorkLogger {

@Getter private static final Logger logger = LoggerFactory.getLogger(FrameWorkLogger.class);
private static FrameWorkLogger instance;

public static FrameWorkLogger getInstance() {
if (instance == null) {
instance = new FrameWorkLogger();
}
return instance;
}

public static void info(String message) {
logger.info(message);
Expand All @@ -46,9 +46,24 @@ public static void error(String message, Throwable throwable) {
logger.error(message, throwable);
}

public static void configureLogging() {

private ConsoleAppender consoleAppender;

private FrameWorkLogger() {
PatternLayout localLayout = PatternLayout.newBuilder()
.withPattern("[%d{HH:mm:ss} %c{1}/%thread]: %msg%n")
.build();

this.consoleAppender = ConsoleAppender.createDefaultAppenderForLayout(localLayout);
}

private FrameWorkLogger(ConsoleAppender consoleAppender) {
this.consoleAppender = consoleAppender;
}



public void configureLogging() {
// Get the current Log4j2 configuration
LoggerContext context = (LoggerContext) LogManager.getContext(false);
Configuration config = context.getConfiguration();
Expand Down

0 comments on commit 2864766

Please sign in to comment.