diff --git a/.idea/compiler.xml b/.idea/compiler.xml
index e67be4a..ec2a0b4 100644
--- a/.idea/compiler.xml
+++ b/.idea/compiler.xml
@@ -11,7 +11,7 @@
-
+
\ No newline at end of file
diff --git a/TFGuilds.iml b/TFGuilds.iml
deleted file mode 100644
index f2e91f0..0000000
--- a/TFGuilds.iml
+++ /dev/null
@@ -1,106 +0,0 @@
-
-
-
-
-
-
- SPIGOT
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
\ No newline at end of file
diff --git a/pom.xml b/pom.xml
index 95761d7..4658cc1 100644
--- a/pom.xml
+++ b/pom.xml
@@ -4,7 +4,7 @@
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
4.0.0
- me.totalfreedom
+ com.github.AtlasMediaGroup
TFGuilds
2021.06-RC3
jar
@@ -72,11 +72,5 @@
1.16.5-R0.1-SNAPSHOT
provided
-
- com.github.AtlasMediaGroup
- TotalFreedomMod
- main-SNAPSHOT
- provided
-
\ No newline at end of file
diff --git a/src/main/java/me/totalfreedom/tfguilds/TFGuilds.java b/src/main/java/me/totalfreedom/tfguilds/TFGuilds.java
index 0954330..3d2cd17 100644
--- a/src/main/java/me/totalfreedom/tfguilds/TFGuilds.java
+++ b/src/main/java/me/totalfreedom/tfguilds/TFGuilds.java
@@ -1,5 +1,6 @@
package me.totalfreedom.tfguilds;
+import java.sql.SQLException;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
@@ -49,8 +50,14 @@ public class TFGuilds extends JavaPlugin
@Override
public void onDisable()
{
+ try
+ {
+ getSQL().getConnection().close();
+ }
+ catch (SQLException throwables)
+ {
+ }
config.save();
- this.plugin = null;
}
public Config getConfig()
diff --git a/src/main/java/me/totalfreedom/tfguilds/TFMBridge.java b/src/main/java/me/totalfreedom/tfguilds/TFMBridge.java
index 4ec8c28..775d1b2 100644
--- a/src/main/java/me/totalfreedom/tfguilds/TFMBridge.java
+++ b/src/main/java/me/totalfreedom/tfguilds/TFMBridge.java
@@ -1,8 +1,9 @@
package me.totalfreedom.tfguilds;
-import me.totalfreedom.totalfreedommod.TotalFreedomMod;
+import java.lang.reflect.InvocationTargetException;
+import java.lang.reflect.Method;
+import me.totalfreedom.tfguilds.util.ReflectionsHelper;
import org.bukkit.Bukkit;
-import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.plugin.Plugin;
@@ -11,18 +12,18 @@ public class TFMBridge
{
private final TFGuilds plugin = TFGuilds.getPlugin();
- private TotalFreedomMod tfm = null;
+ private /*TotalFreedomMod*/ Plugin tfm = null;
- public TotalFreedomMod getTfm()
+ public /*TotalFreedomMod*/ Plugin getTfm()
{
if (tfm == null)
{
try
{
final Plugin tfmPlugin = plugin.getServer().getPluginManager().getPlugin("TotalFreedomMod");
- if (tfmPlugin != null && tfmPlugin.isEnabled() && tfmPlugin instanceof TotalFreedomMod)
+ if (tfmPlugin != null && tfmPlugin.isEnabled())
{
- tfm = (TotalFreedomMod)tfmPlugin;
+ tfm = /*(TotalFreedomMod)*/tfmPlugin;
}
}
catch (Exception ex)
@@ -40,7 +41,17 @@ public class TFMBridge
Bukkit.getLogger().warning("TotalFreedomMod not detected, checking operator status instead.");
return player.isOp();
}
- return getTfm().al.isAdmin(player);
+ Object al = ReflectionsHelper.getField(getTfm(), "al");
+ Method isAdmin = ReflectionsHelper.getMethod(al, "isAdmin", Player.class);
+ try
+ {
+ return (boolean)isAdmin.invoke(al, player) /*getTfm().al.isAdmin(player)*/;
+ }
+ catch (IllegalAccessException | InvocationTargetException e)
+ {
+ e.printStackTrace();
+ }
+ return false;
}
public boolean isAdmin(CommandSender sender)
@@ -50,7 +61,17 @@ public class TFMBridge
Bukkit.getLogger().warning("TotalFreedomMod not detected, checking operator status instead.");
return sender.isOp();
}
- return getTfm().al.isAdmin(sender);
+ Object al = ReflectionsHelper.getField(getTfm(), "al");
+ Method isAdmin = ReflectionsHelper.getMethod(al, "isAdmin", CommandSender.class);
+ try
+ {
+ return (boolean)isAdmin.invoke(al, sender) /*getTfm().al.isAdmin(player)*/;
+ }
+ catch (IllegalAccessException | InvocationTargetException e)
+ {
+ e.printStackTrace();
+ }
+ return false;
}
public boolean isVanished(Player player)
@@ -60,7 +81,17 @@ public class TFMBridge
Bukkit.getLogger().warning("TotalFreedomMod not detected, vanish will return false.");
return false;
}
- return getTfm().al.isVanished(player.getName());
+ Object al = ReflectionsHelper.getField(getTfm(), "al");
+ Method isVanished = ReflectionsHelper.getMethod(al, "isVanished", String.class);
+ try
+ {
+ return (boolean)isVanished.invoke(al, player.getName()) /*getTfm().al.isVanished(player.getName)*/;
+ }
+ catch (IllegalAccessException | InvocationTargetException e)
+ {
+ e.printStackTrace();
+ }
+ return false;
}
public String getTag(Player player)
@@ -69,7 +100,22 @@ public class TFMBridge
{
return null;
}
- return ChatColor.stripColor(getTfm().pl.getPlayer(player).getTag());
+
+ Object pl = ReflectionsHelper.getField(getTfm(), "pl");
+ Method getPlayer = ReflectionsHelper.getMethod(pl, "getPlayer", Player.class);
+ try
+ {
+ Object fPlayer = getPlayer.invoke(pl, player);
+ Method getTag = ReflectionsHelper.getMethod(fPlayer, "getTag");
+
+ return (String)getTag.invoke(fPlayer);
+ }
+ catch (IllegalAccessException | InvocationTargetException e)
+ {
+ e.printStackTrace();
+ }
+
+ return "" /*ChatColor.stripColor(getTfm().pl.getPlayer(player).getTag())*/;
}
public void clearTag(Player player)
@@ -78,6 +124,19 @@ public class TFMBridge
{
return;
}
- getTfm().pl.getPlayer(player).setTag(null);
+// getTfm().pl.getPlayer(player).setTag(null);
+ Object pl = ReflectionsHelper.getField(getTfm(), "pl");
+ Method getPlayer = ReflectionsHelper.getMethod(pl, "getPlayer", Player.class);
+ try
+ {
+ Object fPlayer = getPlayer.invoke(pl, player);
+ Method setTag = ReflectionsHelper.getMethod(fPlayer, "setTag", String.class);
+
+ setTag.invoke(fPlayer, (Object)null);
+ }
+ catch (IllegalAccessException | InvocationTargetException e)
+ {
+ e.printStackTrace();
+ }
}
}
diff --git a/src/main/java/me/totalfreedom/tfguilds/config/Config.java b/src/main/java/me/totalfreedom/tfguilds/config/Config.java
index ac5daae..636179e 100644
--- a/src/main/java/me/totalfreedom/tfguilds/config/Config.java
+++ b/src/main/java/me/totalfreedom/tfguilds/config/Config.java
@@ -19,7 +19,6 @@ public class Config extends YamlConfiguration
if (!file.exists())
{
- options().copyDefaults(true);
plugin.saveResource(fileName, false);
}
diff --git a/src/main/java/me/totalfreedom/tfguilds/config/ConfigEntry.java b/src/main/java/me/totalfreedom/tfguilds/config/ConfigEntry.java
index 950bff7..2889c02 100644
--- a/src/main/java/me/totalfreedom/tfguilds/config/ConfigEntry.java
+++ b/src/main/java/me/totalfreedom/tfguilds/config/ConfigEntry.java
@@ -9,6 +9,7 @@ public enum ConfigEntry
GUILD_TAGS("server.guild_tags"),
GUILD_TAG_MAX_LENGTH("server.guild_tag_max_length"),
GLOBAL_TAG_MAX_LENGTH("server.global_tag_max_length"),
+ CONNECTION_TYPE("settings.connection"),
MYSQL_HOST("mysql.host"),
MYSQL_PORT("mysql.port"),
MYSQL_USERNAME("mysql.username"),
diff --git a/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java b/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java
index f4c5d7c..a21fd23 100644
--- a/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java
+++ b/src/main/java/me/totalfreedom/tfguilds/guild/Guild.java
@@ -135,7 +135,7 @@ public class Guild
while (set.next())
{
String id = set.getString("id");
- UUID owner = User.getUserFromId(set.getInt("owner")).getUuid();
+ UUID owner = /*User.getUserFromId(set.getInt("owner")).getUuid()*/ UUID.fromString(set.getString("owner"));
List moderators = new ArrayList<>();
if (set.getString("moderators") != null)
{
@@ -512,7 +512,7 @@ public class Guild
{
statement.setString(1, id);
statement.setString(2, name);
- statement.setInt(3, User.getUserFromUuid(owner).getId());
+ statement.setString(3, owner.toString() /*User.getUserFromUuid(owner).getId()*/);
statement.setString(4, null);
statement.setString(5, null);
statement.setString(6, tag);
@@ -528,7 +528,7 @@ public class Guild
}
else
{
- statement.setInt(1, User.getUserFromUuid(owner).getId());
+ statement.setString(1, owner.toString());
statement.setString(2, moderators.isEmpty() ? null : getModeratorIds());
statement.setString(3, members.isEmpty() ? null : getMemberIds());
statement.setString(4, tag);
diff --git a/src/main/java/me/totalfreedom/tfguilds/sql/SQLDatabase.java b/src/main/java/me/totalfreedom/tfguilds/sql/SQLDatabase.java
index 5844953..5209c46 100644
--- a/src/main/java/me/totalfreedom/tfguilds/sql/SQLDatabase.java
+++ b/src/main/java/me/totalfreedom/tfguilds/sql/SQLDatabase.java
@@ -1,5 +1,7 @@
package me.totalfreedom.tfguilds.sql;
+import java.io.File;
+import java.io.IOException;
import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.SQLException;
@@ -20,12 +22,23 @@ public class SQLDatabase
}
try
{
- connection = DriverManager.getConnection(String.format("jdbc:mysql://%s:%d/%s",
- ConfigEntry.MYSQL_HOST.getString(),
- ConfigEntry.MYSQL_PORT.getInteger(),
- ConfigEntry.MYSQL_DATABASE.getString()),
- ConfigEntry.MYSQL_USERNAME.getString(),
- password);
+ switch (ConfigEntry.CONNECTION_TYPE.getString().toLowerCase())
+ {
+ case "sqlite":
+ connection = DriverManager.getConnection("jdbc:sqlite:" + createDBFile(plugin).getAbsolutePath().replace("%20", " "));
+ break;
+ case "mysql":
+ connection = DriverManager.getConnection(String.format("jdbc:mysql://%s:%d/%s",
+ ConfigEntry.MYSQL_HOST.getString(),
+ ConfigEntry.MYSQL_PORT.getInteger(),
+ ConfigEntry.MYSQL_DATABASE.getString()),
+ ConfigEntry.MYSQL_USERNAME.getString(),
+ password);
+ break;
+ default:
+ connection = DriverManager.getConnection("jdbc:sqlite:" + createDBFile(plugin).getAbsolutePath().replace("%20", " "));
+ }
+
createTables();
plugin.getLogger().info("Connection to the MySQL server established!");
}
@@ -60,7 +73,7 @@ public class SQLDatabase
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `guilds` (" +
"`id` TEXT," +
"`name` TEXT," +
- "`owner` INT," +
+ "`owner` TEXT," +
"`moderators` TEXT," +
"`members` TEXT," +
"`tag` TEXT," +
@@ -82,4 +95,22 @@ public class SQLDatabase
"`rowid` INTEGER AUTO_INCREMENT PRIMARY KEY)")
.execute();
}
+
+ private File createDBFile(TFGuilds plugin)
+ {
+ File file = new File(plugin.getDataFolder(), "database.db");
+ if (!file.exists())
+ {
+ try
+ {
+ file.createNewFile();
+ plugin.getLogger().info("Creating database.db file");
+ }
+ catch (IOException e)
+ {
+ e.printStackTrace();
+ }
+ }
+ return file;
+ }
}
diff --git a/src/main/java/me/totalfreedom/tfguilds/util/GUtil.java b/src/main/java/me/totalfreedom/tfguilds/util/GUtil.java
index 8d97620..fe7158a 100644
--- a/src/main/java/me/totalfreedom/tfguilds/util/GUtil.java
+++ b/src/main/java/me/totalfreedom/tfguilds/util/GUtil.java
@@ -40,7 +40,7 @@ public class GUtil
public static String removeColorCodes(String string)
{
- String s = null;
+ /*String s = null;
if (string != null)
{
Matcher matcher = CHAT_COLOR_FORMAT.matcher(string);
@@ -48,8 +48,8 @@ public class GUtil
{
s = string.replaceAll(matcher.group(), "");
}
- }
- return s;
+ }*/
+ return ChatColor.stripColor(string);
}
public static boolean containsBlacklistedWord(String string)
diff --git a/src/main/java/me/totalfreedom/tfguilds/util/ReflectionsHelper.java b/src/main/java/me/totalfreedom/tfguilds/util/ReflectionsHelper.java
new file mode 100644
index 0000000..9a6e03b
--- /dev/null
+++ b/src/main/java/me/totalfreedom/tfguilds/util/ReflectionsHelper.java
@@ -0,0 +1,38 @@
+package me.totalfreedom.tfguilds.util;
+
+import java.lang.reflect.Field;
+import java.lang.reflect.Method;
+
+public class ReflectionsHelper
+{
+
+ public static Object getField(T instance, String name) {
+ try
+ {
+ Field f = instance.getClass().getDeclaredField(name);
+ f.setAccessible(true);
+ return f.get(instance);
+ }
+ catch (NoSuchFieldException | IllegalAccessException e)
+ {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+ public static Method getMethod(T instance, String name, Class>... parameterTypes) {
+ try
+ {
+ Method f = instance.getClass().getDeclaredMethod(name, parameterTypes);
+ f.setAccessible(true);
+ return f;
+ }
+ catch (NoSuchMethodException e)
+ {
+ e.printStackTrace();
+ }
+ return null;
+ }
+
+
+}
diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml
index 5586de3..cae444f 100644
--- a/src/main/resources/config.yml
+++ b/src/main/resources/config.yml
@@ -2,6 +2,10 @@
# TFGuilds - Configuration
#
+settings:
+ # Types: mysql, sqlite
+ connection: sqlite
+
server:
# Log guild chat to console?
guild_chat_logging: true