Added SQL support, switched to JSON for configuration and language files (wip).
This commit is contained in:
@@ -9,7 +9,11 @@ import me.savvy.rixa.commands.handlers.CommandExec;
|
||||
import me.savvy.rixa.commands.handlers.CommandHandler;
|
||||
import me.savvy.rixa.commands.mod.DeleteMessagesCommand;
|
||||
import me.savvy.rixa.commands.mod.PurgeMessagesCommand;
|
||||
import me.savvy.rixa.database.DatabaseManager;
|
||||
import me.savvy.rixa.data.database.Data;
|
||||
import me.savvy.rixa.data.database.DataType;
|
||||
import me.savvy.rixa.data.database.sql.DatabaseManager;
|
||||
import me.savvy.rixa.data.filemanager.ConfigManager;
|
||||
import me.savvy.rixa.data.filemanager.LanguageManager;
|
||||
import me.savvy.rixa.events.BotEvent;
|
||||
import me.savvy.rixa.events.MessageEvent;
|
||||
import me.savvy.rixa.modules.reactions.handlers.ReactionManager;
|
||||
@@ -23,11 +27,8 @@ import net.dv8tion.jda.core.exceptions.RateLimitedException;
|
||||
import net.dv8tion.jda.core.hooks.AnnotatedEventManager;
|
||||
|
||||
import javax.security.auth.login.LoginException;
|
||||
import java.io.*;
|
||||
import java.util.HashMap;
|
||||
import java.util.LinkedList;
|
||||
import java.util.List;
|
||||
import java.util.Map;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
/**
|
||||
@@ -35,20 +36,79 @@ import java.util.logging.Logger;
|
||||
*/
|
||||
public class Rixa {
|
||||
|
||||
private static List<JDA> shardsList;
|
||||
private static DatabaseManager dbManager;
|
||||
private static Data data;
|
||||
private static long timeUp;
|
||||
private static Rixa instance; // String search = event.getMessage().getContent().substring(event.getMessage().getContent().indexOf(" ") + 1);
|
||||
private static Map<String, String> config;
|
||||
|
||||
private static Rixa instance;
|
||||
private static List<JDA> shardsList;
|
||||
private static ConfigManager config;
|
||||
private static DatabaseManager dbManager;
|
||||
private LanguageManager languageManager;
|
||||
// String search = event.getMessage().getContent().substring(event.getMessage().getContent().indexOf(" ") + 1);
|
||||
public static void main(String[] args) {
|
||||
instance = new Rixa();
|
||||
shardsList = new LinkedList<>();
|
||||
config = new HashMap<>();
|
||||
populateConfiguration();
|
||||
config = new ConfigManager();
|
||||
load();
|
||||
}
|
||||
|
||||
private static void load() {
|
||||
dbManager = new DatabaseManager(
|
||||
String.valueOf(config.getConfig().getObjectinObj("sql", "hostName")),
|
||||
String.valueOf(config.getConfig().getObjectinObj("sql", "portNumber")),
|
||||
String.valueOf(config.getConfig().getObjectinObj("sql", "databaseName")),
|
||||
String.valueOf(config.getConfig().getObjectinObj("sql", "userName")),
|
||||
String.valueOf(config.getConfig().getObjectinObj("sql", "password")));
|
||||
dbManager.createTable();
|
||||
getInstance().setLanguageManager(new LanguageManager());
|
||||
try {
|
||||
int shards = 3;
|
||||
for(int i = 0; i < shards; i++) {
|
||||
Logger.getLogger("Rixa").info("Loading shard #" + i);
|
||||
JDABuilder jda = new JDABuilder(AccountType.BOT)
|
||||
.setToken(config.getConfig().getString("secretToken"))
|
||||
.setEventManager(new AnnotatedEventManager())
|
||||
.addEventListener(new MessageEvent())
|
||||
.addEventListener(new BotEvent())
|
||||
.setGame(Game.of(config.getConfig().getString("botGame")))
|
||||
.setAutoReconnect(true)
|
||||
.setStatus(OnlineStatus.ONLINE)
|
||||
.setAudioEnabled(true)
|
||||
.useSharding(i, shards);
|
||||
shardsList.add(jda.buildBlocking());
|
||||
getInstance().getLogger().info("Shard #" + i + " has been loaded");
|
||||
}
|
||||
} catch (LoginException | InterruptedException | RateLimitedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
timeUp = System.currentTimeMillis();
|
||||
register(new CommandExec[] {
|
||||
new InfoCommand(), new ServerInfoCommand(), new HelpCommand(),
|
||||
new DeleteMessagesCommand(), new PingCommand(), new PurgeMessagesCommand(),
|
||||
new BatchMoveCommand() });
|
||||
ReactionManager.registerReaction(new HelpReaction());
|
||||
data = new Data(DataType.SQL);
|
||||
}
|
||||
|
||||
public Data getData() {
|
||||
return data;
|
||||
}
|
||||
|
||||
public DatabaseManager getDbManager() {
|
||||
return dbManager;
|
||||
}
|
||||
|
||||
public void setDbManager(DatabaseManager dbManager) {
|
||||
Rixa.dbManager = dbManager;
|
||||
}
|
||||
|
||||
public LanguageManager getLanguageManager() {
|
||||
return languageManager;
|
||||
}
|
||||
|
||||
private void setLanguageManager(LanguageManager languageManager) {
|
||||
this.languageManager = languageManager;
|
||||
}
|
||||
|
||||
private static void register(CommandExec commandExecs[]) {
|
||||
for (CommandExec command: commandExecs) {
|
||||
CommandHandler.registerCommand(command);
|
||||
@@ -66,69 +126,4 @@ public class Rixa {
|
||||
public Logger getLogger() {
|
||||
return Logger.getLogger("Rixa");
|
||||
}
|
||||
|
||||
private static void load() {
|
||||
if(!config.containsKey("TOKEN")) {
|
||||
getInstance().getLogger().severe("Could not find \"TOKEN\" in config.text! Shutting down...");
|
||||
System.exit(0);
|
||||
}
|
||||
dbManager = new DatabaseManager(config.get("SQL_HOSTNAME"), config.get("SQL_PORT"), config.get("SQL_DATABASE"), config.get("SQL_USER"), config.get("SQL_PASSWORD"));
|
||||
dbManager.createTable();
|
||||
try {
|
||||
int shards = 3;
|
||||
for(int i = 0; i < shards; i++) {
|
||||
Logger.getLogger("Rixa").info("Loading shard #" + i);
|
||||
JDABuilder jda = new JDABuilder(AccountType.BOT)
|
||||
.setToken(config.get("TOKEN"))
|
||||
.setEventManager(new AnnotatedEventManager())
|
||||
.addEventListener(new MessageEvent())
|
||||
.addEventListener(new BotEvent());
|
||||
if(config.containsKey("GAME")) {
|
||||
jda.setGame(Game.of(config.get("GAME")));
|
||||
}
|
||||
jda.setAutoReconnect(true)
|
||||
.setStatus(OnlineStatus.ONLINE)
|
||||
.setAudioEnabled(true)
|
||||
.useSharding(i, shards);
|
||||
shardsList.add(jda.buildBlocking());
|
||||
getInstance().getLogger().info("Shard #" + i + " has been loaded");
|
||||
}
|
||||
} catch (LoginException | InterruptedException | RateLimitedException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
timeUp = System.currentTimeMillis();
|
||||
register(new CommandExec[] {
|
||||
new InfoCommand(), new ServerInfoCommand(), new HelpCommand(),
|
||||
new DeleteMessagesCommand(), new PingCommand(), new PurgeMessagesCommand(),
|
||||
new BatchMoveCommand() });
|
||||
ReactionManager.registerReaction(new HelpReaction());
|
||||
}
|
||||
|
||||
public DatabaseManager getDbManager() {
|
||||
return dbManager;
|
||||
}
|
||||
|
||||
public void setDbManager(DatabaseManager dbManager) {
|
||||
this.dbManager = dbManager;
|
||||
}
|
||||
|
||||
private static void populateConfiguration() {
|
||||
FileReader fileReader = null;
|
||||
try {
|
||||
fileReader = new FileReader(new File("config.txt"));
|
||||
} catch (FileNotFoundException e) {
|
||||
getInstance().getLogger().severe("Could not find file \"config.text\"! Shutting down...");
|
||||
System.exit(0);
|
||||
}
|
||||
BufferedReader br = new BufferedReader(fileReader);
|
||||
String line = null;
|
||||
try {
|
||||
while ((line = br.readLine()) != null) {
|
||||
String[] s = line.split(":");
|
||||
config.put(s[0], s[1]);
|
||||
}
|
||||
} catch (IOException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
Reference in New Issue
Block a user