diff --git a/.gradle/2.13/taskArtifacts/cache.properties.lock b/.gradle/2.13/taskArtifacts/cache.properties.lock
index cdf3f4c..a9a33bb 100644
Binary files a/.gradle/2.13/taskArtifacts/cache.properties.lock and b/.gradle/2.13/taskArtifacts/cache.properties.lock differ
diff --git a/.gradle/2.13/taskArtifacts/fileHashes.bin b/.gradle/2.13/taskArtifacts/fileHashes.bin
index bcbb7d6..fb16ff5 100644
Binary files a/.gradle/2.13/taskArtifacts/fileHashes.bin and b/.gradle/2.13/taskArtifacts/fileHashes.bin differ
diff --git a/.gradle/2.13/taskArtifacts/fileSnapshots.bin b/.gradle/2.13/taskArtifacts/fileSnapshots.bin
index 91807a2..11ccc48 100644
Binary files a/.gradle/2.13/taskArtifacts/fileSnapshots.bin and b/.gradle/2.13/taskArtifacts/fileSnapshots.bin differ
diff --git a/.gradle/2.13/taskArtifacts/taskArtifacts.bin b/.gradle/2.13/taskArtifacts/taskArtifacts.bin
index 5a97c6e..5cc6e3e 100644
Binary files a/.gradle/2.13/taskArtifacts/taskArtifacts.bin and b/.gradle/2.13/taskArtifacts/taskArtifacts.bin differ
diff --git a/.idea/libraries/Gradle__com_mashape_unirest_unirest_java_1_4_9.xml b/.idea/libraries/Gradle__com_mashape_unirest_unirest_java_1_4_9.xml
deleted file mode 100644
index e39de13..0000000
--- a/.idea/libraries/Gradle__com_mashape_unirest_unirest_java_1_4_9.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__com_neovisionaries_nv_websocket_client_2_0.xml b/.idea/libraries/Gradle__com_neovisionaries_nv_websocket_client_2_0.xml
deleted file mode 100644
index 39b4477..0000000
--- a/.idea/libraries/Gradle__com_neovisionaries_nv_websocket_client_2_0.xml
+++ /dev/null
@@ -1,11 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_apache_httpcomponents_httpasyncclient_4_1_1.xml b/.idea/libraries/Gradle__org_apache_httpcomponents_httpasyncclient_4_1_1.xml
deleted file mode 100644
index 8c7ef75..0000000
--- a/.idea/libraries/Gradle__org_apache_httpcomponents_httpasyncclient_4_1_1.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_apache_httpcomponents_httpcore_nio_4_4_4.xml b/.idea/libraries/Gradle__org_apache_httpcomponents_httpcore_nio_4_4_4.xml
deleted file mode 100644
index 4edbd94..0000000
--- a/.idea/libraries/Gradle__org_apache_httpcomponents_httpcore_nio_4_4_4.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/libraries/Gradle__org_apache_httpcomponents_httpmime_4_5_2.xml b/.idea/libraries/Gradle__org_apache_httpcomponents_httpmime_4_5_2.xml
deleted file mode 100644
index 2c132b6..0000000
--- a/.idea/libraries/Gradle__org_apache_httpcomponents_httpmime_4_5_2.xml
+++ /dev/null
@@ -1,12 +0,0 @@
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/.idea/modules/Rixa_main.iml b/.idea/modules/Rixa_main.iml
index 7606438..3930a89 100644
--- a/.idea/modules/Rixa_main.iml
+++ b/.idea/modules/Rixa_main.iml
@@ -9,7 +9,7 @@
-
+
@@ -19,8 +19,8 @@
-
-
+
+
@@ -29,13 +29,11 @@
-
-
+
-
\ No newline at end of file
diff --git a/.idea/modules/Rixa_test.iml b/.idea/modules/Rixa_test.iml
index 1f38323..4473c7c 100644
--- a/.idea/modules/Rixa_test.iml
+++ b/.idea/modules/Rixa_test.iml
@@ -10,7 +10,7 @@
-
+
@@ -20,8 +20,8 @@
-
-
+
+
@@ -30,13 +30,11 @@
-
-
+
-
diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index 62e99ec..139553f 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -42,11 +42,21 @@
-
-
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -336,8 +346,8 @@
@@ -524,7 +534,6 @@
-
@@ -552,12 +561,9 @@
-
-
-
@@ -570,6 +576,10 @@
+
+
+
+
@@ -663,6 +673,36 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -740,7 +780,7 @@
-
+
@@ -821,6 +861,17 @@
+
+
+
+
+
+
+
+
+
+
+
@@ -867,6 +918,15 @@
+
+
+
+
+
+
+
+
+
@@ -989,19 +1049,21 @@
-
+
+
-
-
-
-
-
+
+
+
+
+
+
@@ -1047,7 +1109,6 @@
-
@@ -1056,7 +1117,7 @@
-
+
@@ -1132,28 +1193,6 @@
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
@@ -1276,13 +1315,6 @@
-
-
-
-
-
-
-
@@ -1326,14 +1358,6 @@
-
-
-
-
-
-
-
-
@@ -1347,7 +1371,7 @@
-
+
@@ -1360,14 +1384,6 @@
-
-
-
-
-
-
-
-
@@ -1408,8 +1424,8 @@
-
-
+
+
@@ -1419,7 +1435,7 @@
-
+
@@ -1445,8 +1461,8 @@
-
-
+
+
@@ -1491,10 +1507,68 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/build.gradle b/build.gradle
index f49a58d..9cfdaab 100644
--- a/build.gradle
+++ b/build.gradle
@@ -32,4 +32,4 @@ dependencies {
compile 'org.projectlombok:lombok:1.16.18'
}
-compileJava.options.encoding = 'UTF-8'
+compileJava.options.encoding = 'UTF-8'
\ No newline at end of file
diff --git a/build/tmp/jar/MANIFEST.MF b/build/tmp/jar/MANIFEST.MF
index 9124702..9a3c1cb 100644
--- a/build/tmp/jar/MANIFEST.MF
+++ b/build/tmp/jar/MANIFEST.MF
@@ -1,4 +1,4 @@
Manifest-Version: 1.0
Implementation-Version: 1.0
-Main-Class: me.savvy.RixaMC
+Main-Class: me.savvy.rixa.Rixa
diff --git a/src/main/java/me/savvy/rixa/Rixa.java b/src/main/java/me/savvy/rixa/Rixa.java
index 19fd309..3c44d9e 100644
--- a/src/main/java/me/savvy/rixa/Rixa.java
+++ b/src/main/java/me/savvy/rixa/Rixa.java
@@ -33,6 +33,8 @@ import net.dv8tion.jda.core.exceptions.RateLimitedException;
import net.dv8tion.jda.core.hooks.AnnotatedEventManager;
import javax.security.auth.login.LoginException;
+import java.io.File;
+import java.io.IOException;
import java.util.LinkedList;
import java.util.List;
import java.util.logging.Logger;
@@ -60,17 +62,18 @@ public class Rixa {
public static void main(String[] args) {
instance = new Rixa();
shardsList = new LinkedList<>();
- config = new ConfigManager();
+ // config = new ConfigManager();
+ config = new ConfigManager(new File("Rixa/config.json"));
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")));
+ String.valueOf(config.getJsonObject().getJSONObject("sql").getString("hostName")),
+ String.valueOf(config.getJsonObject().getJSONObject("sql").getString("portNumber")),
+ String.valueOf(config.getJsonObject().getJSONObject("sql").getString("databaseName")),
+ String.valueOf(config.getJsonObject().getJSONObject("sql").getString("userName")),
+ String.valueOf(config.getJsonObject().getJSONObject("sql").getString("password")));
dbManager.createTable();
getInstance().setLanguageManager(new LanguageManager());
try {
@@ -78,13 +81,13 @@ public class Rixa {
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"))
+ .setToken(config.getJsonObject().getString("secretToken"))
.setEventManager(new AnnotatedEventManager())
.addEventListener(new MessageEvent())
.addEventListener(new BotEvent())
.addEventListener(new MemberEvent())
.addEventListener(new VoiceChannel())
- .setGame(Game.of(config.getConfig().getString("botGame")))
+ .setGame(Game.of(config.getJsonObject().getString("botGame")))
.setAutoReconnect(true)
.setStatus(OnlineStatus.ONLINE)
.setAudioEnabled(true)
diff --git a/src/main/java/me/savvy/rixa/data/filemanager/ConfigManager.java b/src/main/java/me/savvy/rixa/data/filemanager/ConfigManager.java
index 00ecfac..c13c10e 100644
--- a/src/main/java/me/savvy/rixa/data/filemanager/ConfigManager.java
+++ b/src/main/java/me/savvy/rixa/data/filemanager/ConfigManager.java
@@ -1,57 +1,71 @@
package me.savvy.rixa.data.filemanager;
-import me.savvy.rixa.data.thunderbolt.Thunderbolt;
-import me.savvy.rixa.data.thunderbolt.exceptions.FileLoadException;
-import me.savvy.rixa.data.thunderbolt.io.ThunderFile;
+import lombok.Getter;
+import org.apache.commons.io.IOUtils;
+import org.json.JSONArray;
+import org.json.JSONObject;
+import java.io.File;
+import java.io.FileReader;
+import java.io.FileWriter;
import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.List;
-import java.util.Map;
/**
* Created by Timber on 6/4/2017.
*/
public class ConfigManager {
- private ThunderFile tf;
- public ConfigManager() {
- tf = null;
- try {
- if(!Thunderbolt.load("config", "Rixa")) {
- try {
- tf = Thunderbolt.get("config");
- addDefaults();
- } catch (IOException e) {
- e.printStackTrace();
+ @Getter
+ private File file;
+ @Getter
+ private JSONObject jsonObject;
+
+ public ConfigManager(File file) {
+ this.file = file;
+ if (!(file.exists())) {
+ FileWriter fileWriter = null;
+ try {
+ file.getParentFile().mkdirs();
+ file.createNewFile();
+ jsonObject = new JSONObject();
+ jsonObject
+ .put("secretKey", "YOUR_TOKEN_HERE")
+ .put("botGame", "Rixa 2.0 | http://rixa.io/invite");
+ JSONObject obj = new JSONObject();
+ obj.put("hostName", "localhost")
+ .put("password", "password")
+ .put("databaseName", "rixa")
+ .put("userName", "rixa_users")
+ .put("portNumber", "3306");
+ jsonObject.put("sql", obj);
+ JSONArray botAdmins = new JSONArray();
+ botAdmins.put("YOUR_USER_ID_HERE")
+ .put("OTHER_ADMINS")
+ .put("REMOVE_IF_YOU_DONT_WANT");
+ obj.put("botAdmins", botAdmins);
+ fileWriter = new FileWriter(file);
+ fileWriter.write(jsonObject.toString());
+ System.out.println("Successfully generated configuration file.");
+ } catch (IOException ex) {
+ ex.printStackTrace();
+ } finally {
+ if(fileWriter != null) {
+ try {
+ fileWriter.flush();
+ fileWriter.close();
+ } catch (IOException e) {
+ e.printStackTrace();
+ }
}
}
- tf = Thunderbolt.get("config");
- } catch (FileLoadException | IOException e) {
+ return;
+ }
+ String jsonTxt = null;
+ try {
+ jsonTxt = IOUtils.toString(new FileReader(file));
+ } catch (IOException e) {
e.printStackTrace();
}
- }
-
- private void addDefaults() throws IOException {
- List botAdmins = new ArrayList<>();
- Map map = new HashMap<>();
- map.put("hostName", "localhost");
- map.put("password", "password");
- map.put("databaseName", "rixa");
- map.put("userName", "rixa_users");
- map.put("portNumber", "3306");
- tf.set("sql", map);
- botAdmins.add("YOUR_USER_ID_HERE");
- botAdmins.add("OTHER_ADMINS");
- botAdmins.add("REMOVE_IF_YOU_DONT_WANT");
- tf.set("botAdmins", botAdmins);
- tf.set("secretToken", "YOUR_TOKEN_HERE");
- tf.set("botGame", "Rixa 2.0 | http://rixa.io/invite");
- tf.save();
- }
-
- public ThunderFile getConfig() {
- return tf;
+ jsonObject = new JSONObject(jsonTxt);
}
}
diff --git a/src/main/java/me/savvy/rixa/guild/RixaGuild.java b/src/main/java/me/savvy/rixa/guild/RixaGuild.java
index 54b0ec6..e61edaf 100644
--- a/src/main/java/me/savvy/rixa/guild/RixaGuild.java
+++ b/src/main/java/me/savvy/rixa/guild/RixaGuild.java
@@ -34,18 +34,17 @@ public class RixaGuild {
public RixaGuild(Guild guild) {
this.guild = guild;
- this.db = Rixa.getInstance().getDbManager();
+ this.db = Rixa.getDbManager();
setMusicModule(new MusicModule(guild));
load();
}
private void load() {
if(!(checkExists())) {
- Rixa.getInstance().getDbManager()
- .insert("INSERT INTO `core` (`guild_id`, `guild_name`, `description`, `keywords`, `icon`) VALUES ('%id%', '%name%', 'Description not set.', 'No Keywords Found.', '%icon%')"
+ Rixa.getDbManager()
+ .insert("INSERT INTO `core` (`guild_id`, `guild_name`, `description`, `keywords`) VALUES ('%id%', '%name%', 'Description not set.', 'No Keywords Found.')"
.replace("%id%", guild.getId())
- .replace("%name%", guild.getName().replace("'", "\\'"))
- .replace("%icon%", guild.getIconId()));
+ .replace("%name%", guild.getName().replace("'", "\\'")));
}
setGuildSettings(new GuildSettings(this.guild));
addGuild(this);
@@ -56,12 +55,12 @@ public class RixaGuild {
}
private boolean checkExists() {
- Result r = Rixa.getInstance().getDbManager().checkExists("SELECT `guild_name` FROM `core` WHERE `guild_id` = '" + guild.getId() + "';");
+ Result r = Rixa.getDbManager().checkExists("SELECT `guild_name` FROM `core` WHERE `guild_id` = '" + guild.getId() + "';");
return r == Result.TRUE;
}
public boolean hasPermission(Member member, RixaPermission permission) {
- if(Rixa.getInstance().getConfig().getConfig().getStringList("botAdmins").contains(member.getUser().getId()) ||
+ if(Rixa.getConfig().getJsonObject().getJSONArray("botAdmins").toList().contains(member.getUser().getId()) ||
member.getUser().getId().equals(guild.getOwner().getUser().getId())) {
return true;
}