mirror of
https://github.com/TotalFreedomMC/TFGuilds.git
synced 2024-12-22 07:55:03 +00:00
Completely remove TFM as a dependency and use reflections instead
Simplify removing color codes by using ChatColor#stripColor Have an option to use sqlite or mysql, by default it will be sqlite
This commit is contained in:
parent
4ec00d977c
commit
11b3e194ec
11 changed files with 162 additions and 136 deletions
106
TFGuilds.iml
106
TFGuilds.iml
|
@ -1,106 +0,0 @@
|
||||||
<?xml version="1.0" encoding="UTF-8"?>
|
|
||||||
<module org.jetbrains.idea.maven.project.MavenProjectsManager.isMavenModule="true" type="JAVA_MODULE" version="4">
|
|
||||||
<component name="FacetManager">
|
|
||||||
<facet type="minecraft" name="Minecraft">
|
|
||||||
<configuration>
|
|
||||||
<autoDetectTypes>
|
|
||||||
<platformType>SPIGOT</platformType>
|
|
||||||
</autoDetectTypes>
|
|
||||||
</configuration>
|
|
||||||
</facet>
|
|
||||||
</component>
|
|
||||||
<component name="NewModuleRootManager" LANGUAGE_LEVEL="JDK_11">
|
|
||||||
<output url="file://$MODULE_DIR$/target/classes" />
|
|
||||||
<output-test url="file://$MODULE_DIR$/target/test-classes" />
|
|
||||||
<content url="file://$MODULE_DIR$">
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/java" isTestSource="false" />
|
|
||||||
<sourceFolder url="file://$MODULE_DIR$/src/main/resources" type="java-resource" />
|
|
||||||
<excludeFolder url="file://$MODULE_DIR$/target" />
|
|
||||||
</content>
|
|
||||||
<orderEntry type="inheritedJdk" />
|
|
||||||
<orderEntry type="sourceFolder" forTests="false" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.spigotmc:spigot-api:1.16.5-R0.1-SNAPSHOT" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-lang:commons-lang:2.6" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.guava:guava:21.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.gson:gson:2.8.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.md-5:bungeecord-chat:1.16-R0.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.yaml:snakeyaml:1.27" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.github.AtlasMediaGroup:TotalFreedomMod:main-caaa067096-1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.plugins:maven-checkstyle-plugin:3.1.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-artifact:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-core:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-settings:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-settings-builder:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-repository-metadata:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-model-builder:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-aether-provider:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.aether:aether-impl:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.aether:aether-spi:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.aether:aether-api:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.aether:aether-util:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.sisu:sisu-inject-plexus:1.4.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.sisu:sisu-inject-bean:1.4.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.sisu:sisu-guice:noaop:2.1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-classworlds:2.2.3" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.plexus:plexus-sec-dispatcher:1.3" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.sonatype.plexus:plexus-cipher:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-model:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven:maven-plugin-api:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.reporting:maven-reporting-api:3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.reporting:maven-reporting-impl:2.3" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.shared:maven-shared-utils:0.6" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.google.code.findbugs:jsr305:2.0.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-core:1.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: xerces:xercesImpl:2.9.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: xml-apis:xml-apis:1.3.04" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.httpcomponents:httpclient:4.0.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.httpcomponents:httpcore:4.0.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-codec:commons-codec:1.3" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-validator:commons-validator:1.3.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-digester:commons-digester:1.6" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-logging:commons-logging:1.0.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-sink-api:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-logging-api:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-decoration-model:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-site-renderer:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-module-xhtml:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-module-fml:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-i18n:1.0-beta-7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.velocity:velocity-tools:2.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-chain:commons-chain:1.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: dom4j:dom4j:1.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: oro:oro:2.0.8" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: sslext:sslext:1.2-0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.struts:struts-core:1.3.8" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.struts:struts-taglib:1.3.8" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.struts:struts-tiles:1.3.8" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.maven.doxia:doxia-integration-tools:1.6" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-io:commons-io:1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-container-default:1.0-alpha-9" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: junit:junit:3.8.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: classworlds:classworlds:1.1-alpha-2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-component-annotations:2.0.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-resources:1.1.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-utils:3.3.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-interpolation:1.26" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.codehaus.plexus:plexus-velocity:1.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: com.puppycrawl.tools:checkstyle:8.29" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: info.picocli:picocli:4.1.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: antlr:antlr:2.7.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.antlr:antlr4-runtime:4.8-1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-beanutils:commons-beanutils:1.9.4" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: net.sf.saxon:Saxon-HE:9.9.1-6" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apache.velocity:velocity:1.7" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: commons-collections:commons-collections:3.2.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.xml.bind:jaxb-api:2.3.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: javax.activation:javax.activation-api:1.2.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.junit.jupiter:junit-jupiter:5.4.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.junit.jupiter:junit-jupiter-api:5.4.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.apiguardian:apiguardian-api:1.0.0" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.opentest4j:opentest4j:1.1.1" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.junit.platform:junit-platform-commons:1.4.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.junit.jupiter:junit-jupiter-params:5.4.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.junit.jupiter:junit-jupiter-engine:5.4.2" level="project" />
|
|
||||||
<orderEntry type="library" scope="PROVIDED" name="Maven: org.junit.platform:junit-platform-engine:1.4.2" level="project" />
|
|
||||||
</component>
|
|
||||||
</module>
|
|
8
pom.xml
8
pom.xml
|
@ -4,9 +4,9 @@
|
||||||
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
|
||||||
<modelVersion>4.0.0</modelVersion>
|
<modelVersion>4.0.0</modelVersion>
|
||||||
|
|
||||||
<groupId>me.totalfreedom</groupId>
|
<groupId>com.github.AtlasMediaGroup</groupId>
|
||||||
<artifactId>TFGuilds</artifactId>
|
<artifactId>TFGuilds</artifactId>
|
||||||
<version>2021.06-RC3</version>
|
<version>master-4ec00d977c-1</version>
|
||||||
<packaging>jar</packaging>
|
<packaging>jar</packaging>
|
||||||
|
|
||||||
<name>TFGuilds</name>
|
<name>TFGuilds</name>
|
||||||
|
@ -72,11 +72,11 @@
|
||||||
<version>1.16.5-R0.1-SNAPSHOT</version>
|
<version>1.16.5-R0.1-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>
|
||||||
<dependency>
|
<!-- <dependency>
|
||||||
<groupId>com.github.AtlasMediaGroup</groupId>
|
<groupId>com.github.AtlasMediaGroup</groupId>
|
||||||
<artifactId>TotalFreedomMod</artifactId>
|
<artifactId>TotalFreedomMod</artifactId>
|
||||||
<version>main-SNAPSHOT</version>
|
<version>main-SNAPSHOT</version>
|
||||||
<scope>provided</scope>
|
<scope>provided</scope>
|
||||||
</dependency>
|
</dependency>-->
|
||||||
</dependencies>
|
</dependencies>
|
||||||
</project>
|
</project>
|
|
@ -1,5 +1,6 @@
|
||||||
package me.totalfreedom.tfguilds;
|
package me.totalfreedom.tfguilds;
|
||||||
|
|
||||||
|
import java.sql.SQLException;
|
||||||
import java.util.ArrayList;
|
import java.util.ArrayList;
|
||||||
import java.util.Collections;
|
import java.util.Collections;
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
|
@ -49,8 +50,14 @@ public class TFGuilds extends JavaPlugin
|
||||||
@Override
|
@Override
|
||||||
public void onDisable()
|
public void onDisable()
|
||||||
{
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
getSQL().getConnection().close();
|
||||||
|
}
|
||||||
|
catch (SQLException throwables)
|
||||||
|
{
|
||||||
|
}
|
||||||
config.save();
|
config.save();
|
||||||
this.plugin = null;
|
|
||||||
}
|
}
|
||||||
|
|
||||||
public Config getConfig()
|
public Config getConfig()
|
||||||
|
|
|
@ -1,8 +1,9 @@
|
||||||
package me.totalfreedom.tfguilds;
|
package me.totalfreedom.tfguilds;
|
||||||
|
|
||||||
import me.totalfreedom.totalfreedommod.TotalFreedomMod;
|
import java.lang.reflect.InvocationTargetException;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
import me.totalfreedom.tfguilds.util.Reflections;
|
||||||
import org.bukkit.Bukkit;
|
import org.bukkit.Bukkit;
|
||||||
import org.bukkit.ChatColor;
|
|
||||||
import org.bukkit.command.CommandSender;
|
import org.bukkit.command.CommandSender;
|
||||||
import org.bukkit.entity.Player;
|
import org.bukkit.entity.Player;
|
||||||
import org.bukkit.plugin.Plugin;
|
import org.bukkit.plugin.Plugin;
|
||||||
|
@ -11,18 +12,18 @@ public class TFMBridge
|
||||||
{
|
{
|
||||||
|
|
||||||
private final TFGuilds plugin = TFGuilds.getPlugin();
|
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)
|
if (tfm == null)
|
||||||
{
|
{
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
final Plugin tfmPlugin = plugin.getServer().getPluginManager().getPlugin("TotalFreedomMod");
|
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)
|
catch (Exception ex)
|
||||||
|
@ -40,7 +41,17 @@ public class TFMBridge
|
||||||
Bukkit.getLogger().warning("TotalFreedomMod not detected, checking operator status instead.");
|
Bukkit.getLogger().warning("TotalFreedomMod not detected, checking operator status instead.");
|
||||||
return player.isOp();
|
return player.isOp();
|
||||||
}
|
}
|
||||||
return getTfm().al.isAdmin(player);
|
Object al = Reflections.getField(getTfm(), "al");
|
||||||
|
Method isAdmin = Reflections.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)
|
public boolean isAdmin(CommandSender sender)
|
||||||
|
@ -50,7 +61,17 @@ public class TFMBridge
|
||||||
Bukkit.getLogger().warning("TotalFreedomMod not detected, checking operator status instead.");
|
Bukkit.getLogger().warning("TotalFreedomMod not detected, checking operator status instead.");
|
||||||
return sender.isOp();
|
return sender.isOp();
|
||||||
}
|
}
|
||||||
return getTfm().al.isAdmin(sender);
|
Object al = Reflections.getField(getTfm(), "al");
|
||||||
|
Method isAdmin = Reflections.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)
|
public boolean isVanished(Player player)
|
||||||
|
@ -60,7 +81,17 @@ public class TFMBridge
|
||||||
Bukkit.getLogger().warning("TotalFreedomMod not detected, vanish will return false.");
|
Bukkit.getLogger().warning("TotalFreedomMod not detected, vanish will return false.");
|
||||||
return false;
|
return false;
|
||||||
}
|
}
|
||||||
return getTfm().al.isVanished(player.getName());
|
Object al = Reflections.getField(getTfm(), "al");
|
||||||
|
Method isVanished = Reflections.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)
|
public String getTag(Player player)
|
||||||
|
@ -69,7 +100,22 @@ public class TFMBridge
|
||||||
{
|
{
|
||||||
return null;
|
return null;
|
||||||
}
|
}
|
||||||
return ChatColor.stripColor(getTfm().pl.getPlayer(player).getTag());
|
|
||||||
|
Object pl = Reflections.getField(getTfm(), "pl");
|
||||||
|
Method getPlayer = Reflections.getMethod(pl, "getPlayer", Player.class);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Object fPlayer = getPlayer.invoke(pl, player);
|
||||||
|
Method getTag = Reflections.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)
|
public void clearTag(Player player)
|
||||||
|
@ -78,6 +124,19 @@ public class TFMBridge
|
||||||
{
|
{
|
||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
getTfm().pl.getPlayer(player).setTag(null);
|
// getTfm().pl.getPlayer(player).setTag(null);
|
||||||
|
Object pl = Reflections.getField(getTfm(), "pl");
|
||||||
|
Method getPlayer = Reflections.getMethod(pl, "getPlayer", Player.class);
|
||||||
|
try
|
||||||
|
{
|
||||||
|
Object fPlayer = getPlayer.invoke(pl, player);
|
||||||
|
Method setTag = Reflections.getMethod(fPlayer, "setTag", String.class);
|
||||||
|
|
||||||
|
setTag.invoke(fPlayer, (Object)null);
|
||||||
|
}
|
||||||
|
catch (IllegalAccessException | InvocationTargetException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -19,7 +19,6 @@ public class Config extends YamlConfiguration
|
||||||
|
|
||||||
if (!file.exists())
|
if (!file.exists())
|
||||||
{
|
{
|
||||||
options().copyDefaults(true);
|
|
||||||
plugin.saveResource(fileName, false);
|
plugin.saveResource(fileName, false);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|
|
@ -9,6 +9,7 @@ public enum ConfigEntry
|
||||||
GUILD_TAGS("server.guild_tags"),
|
GUILD_TAGS("server.guild_tags"),
|
||||||
GUILD_TAG_MAX_LENGTH("server.guild_tag_max_length"),
|
GUILD_TAG_MAX_LENGTH("server.guild_tag_max_length"),
|
||||||
GLOBAL_TAG_MAX_LENGTH("server.global_tag_max_length"),
|
GLOBAL_TAG_MAX_LENGTH("server.global_tag_max_length"),
|
||||||
|
CONNECTION_TYPE("settings.connection"),
|
||||||
MYSQL_HOST("mysql.host"),
|
MYSQL_HOST("mysql.host"),
|
||||||
MYSQL_PORT("mysql.port"),
|
MYSQL_PORT("mysql.port"),
|
||||||
MYSQL_USERNAME("mysql.username"),
|
MYSQL_USERNAME("mysql.username"),
|
||||||
|
|
|
@ -135,7 +135,7 @@ public class Guild
|
||||||
while (set.next())
|
while (set.next())
|
||||||
{
|
{
|
||||||
String id = set.getString("id");
|
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<UUID> moderators = new ArrayList<>();
|
List<UUID> moderators = new ArrayList<>();
|
||||||
if (set.getString("moderators") != null)
|
if (set.getString("moderators") != null)
|
||||||
{
|
{
|
||||||
|
@ -512,7 +512,7 @@ public class Guild
|
||||||
{
|
{
|
||||||
statement.setString(1, id);
|
statement.setString(1, id);
|
||||||
statement.setString(2, name);
|
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(4, null);
|
||||||
statement.setString(5, null);
|
statement.setString(5, null);
|
||||||
statement.setString(6, tag);
|
statement.setString(6, tag);
|
||||||
|
@ -528,7 +528,7 @@ public class Guild
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
{
|
{
|
||||||
statement.setInt(1, User.getUserFromUuid(owner).getId());
|
statement.setString(1, owner.toString());
|
||||||
statement.setString(2, moderators.isEmpty() ? null : getModeratorIds());
|
statement.setString(2, moderators.isEmpty() ? null : getModeratorIds());
|
||||||
statement.setString(3, members.isEmpty() ? null : getMemberIds());
|
statement.setString(3, members.isEmpty() ? null : getMemberIds());
|
||||||
statement.setString(4, tag);
|
statement.setString(4, tag);
|
||||||
|
|
|
@ -1,5 +1,7 @@
|
||||||
package me.totalfreedom.tfguilds.sql;
|
package me.totalfreedom.tfguilds.sql;
|
||||||
|
|
||||||
|
import java.io.File;
|
||||||
|
import java.io.IOException;
|
||||||
import java.sql.Connection;
|
import java.sql.Connection;
|
||||||
import java.sql.DriverManager;
|
import java.sql.DriverManager;
|
||||||
import java.sql.SQLException;
|
import java.sql.SQLException;
|
||||||
|
@ -20,12 +22,34 @@ public class SQLDatabase
|
||||||
}
|
}
|
||||||
try
|
try
|
||||||
{
|
{
|
||||||
connection = DriverManager.getConnection(String.format("jdbc:mysql://%s:%d/%s",
|
switch (ConfigEntry.CONNECTION_TYPE.getString().toLowerCase())
|
||||||
ConfigEntry.MYSQL_HOST.getString(),
|
{
|
||||||
ConfigEntry.MYSQL_PORT.getInteger(),
|
case "sqlite":
|
||||||
ConfigEntry.MYSQL_DATABASE.getString()),
|
File file = new File(plugin.getDataFolder(), "database.db");
|
||||||
ConfigEntry.MYSQL_USERNAME.getString(),
|
if (!file.exists())
|
||||||
password);
|
{
|
||||||
|
try
|
||||||
|
{
|
||||||
|
file.createNewFile();
|
||||||
|
plugin.getLogger().info("Creating database.db file");
|
||||||
|
}
|
||||||
|
catch (IOException e)
|
||||||
|
{
|
||||||
|
e.printStackTrace();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
connection = DriverManager.getConnection("jdbc:sqlite:" + file.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;
|
||||||
|
}
|
||||||
|
|
||||||
createTables();
|
createTables();
|
||||||
plugin.getLogger().info("Connection to the MySQL server established!");
|
plugin.getLogger().info("Connection to the MySQL server established!");
|
||||||
}
|
}
|
||||||
|
@ -60,7 +84,7 @@ public class SQLDatabase
|
||||||
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `guilds` (" +
|
connection.prepareStatement("CREATE TABLE IF NOT EXISTS `guilds` (" +
|
||||||
"`id` TEXT," +
|
"`id` TEXT," +
|
||||||
"`name` TEXT," +
|
"`name` TEXT," +
|
||||||
"`owner` INT," +
|
"`owner` TEXT," +
|
||||||
"`moderators` TEXT," +
|
"`moderators` TEXT," +
|
||||||
"`members` TEXT," +
|
"`members` TEXT," +
|
||||||
"`tag` TEXT," +
|
"`tag` TEXT," +
|
||||||
|
|
|
@ -40,7 +40,7 @@ public class GUtil
|
||||||
|
|
||||||
public static String removeColorCodes(String string)
|
public static String removeColorCodes(String string)
|
||||||
{
|
{
|
||||||
String s = null;
|
/*String s = null;
|
||||||
if (string != null)
|
if (string != null)
|
||||||
{
|
{
|
||||||
Matcher matcher = CHAT_COLOR_FORMAT.matcher(string);
|
Matcher matcher = CHAT_COLOR_FORMAT.matcher(string);
|
||||||
|
@ -48,8 +48,8 @@ public class GUtil
|
||||||
{
|
{
|
||||||
s = string.replaceAll(matcher.group(), "");
|
s = string.replaceAll(matcher.group(), "");
|
||||||
}
|
}
|
||||||
}
|
}*/
|
||||||
return s;
|
return ChatColor.stripColor(string);
|
||||||
}
|
}
|
||||||
|
|
||||||
public static boolean containsBlacklistedWord(String string)
|
public static boolean containsBlacklistedWord(String string)
|
||||||
|
|
38
src/main/java/me/totalfreedom/tfguilds/util/Reflections.java
Normal file
38
src/main/java/me/totalfreedom/tfguilds/util/Reflections.java
Normal file
|
@ -0,0 +1,38 @@
|
||||||
|
package me.totalfreedom.tfguilds.util;
|
||||||
|
|
||||||
|
import java.lang.reflect.Field;
|
||||||
|
import java.lang.reflect.Method;
|
||||||
|
|
||||||
|
public class Reflections
|
||||||
|
{
|
||||||
|
|
||||||
|
public static <T> 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 <T> 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;
|
||||||
|
}
|
||||||
|
|
||||||
|
|
||||||
|
}
|
|
@ -2,6 +2,10 @@
|
||||||
# TFGuilds - Configuration
|
# TFGuilds - Configuration
|
||||||
#
|
#
|
||||||
|
|
||||||
|
settings:
|
||||||
|
# Types: mysql, sqlite
|
||||||
|
connection: sqlite
|
||||||
|
|
||||||
server:
|
server:
|
||||||
# Log guild chat to console?
|
# Log guild chat to console?
|
||||||
guild_chat_logging: true
|
guild_chat_logging: true
|
||||||
|
|
Loading…
Reference in a new issue