diff --git a/build.gradle b/build.gradle index 7dc0234..8d07c2e 100644 --- a/build.gradle +++ b/build.gradle @@ -1,4 +1,3 @@ -import org.apache.tools.ant.filters.ReplaceTokens buildscript { repositories { @@ -6,14 +5,17 @@ buildscript { gradlePluginPortal() } - dependencies { - classpath 'com.github.jengelman.gradle.plugins:shadow:2.0.4' - } + +/* dependencies { + classpath 'com.github.jengelman.gradle.plugins:shadow:8.0.0' + }*/ + } + plugins { id 'java' - id 'com.github.johnrengelman.shadow' version '2.0.4' + id 'com.github.johnrengelman.shadow' version '8.1.1' } group 'me.realized' @@ -24,10 +26,10 @@ compileJava.options.encoding = 'UTF-8' processResources { def group = project.group.toString() + "." + project.name.toLowerCase() + ".shaded" - from(sourceSets.main.resources.srcDirs) { - include '**/*.yml' + /* from(sourceSets.main.resources.srcDirs) { + include '**.yml' filter(ReplaceTokens, tokens: [NAME: project.name, VERSION: project.version, SHADED_GROUP: group]) - } + }*/ } repositories { @@ -42,15 +44,14 @@ repositories { name 'bungeecord-repo' url 'https://oss.sonatype.org/content/repositories/snapshots' } - - maven { + maven { url 'https://jitpack.io' } +/* maven { name 'mvdw-repo' url 'http://repo.mvdw-software.be/content/groups/public/' - } + }*/ maven { - name 'clip-repo' - url 'http://repo.extendedclip.com/content/repositories/placeholderapi/' + url = 'https://repo.extendedclip.com/content/repositories/placeholderapi/' } maven { @@ -58,31 +59,35 @@ repositories { url 'https://repo.codemc.io/repository/maven-public/' } + maven { name 'inventive-repo' url 'https://repo.inventivetalent.org/content/groups/public/' } + flatDir { dirs "$rootDir/libs/" } } dependencies { - compile 'org.projectlombok:lombok:1.18.22' - compile 'org.spigotmc:spigot-api:1.14.4-R0.1-SNAPSHOT' - compile (name: 'MVdWPlaceholderAPI-3.1.1') { + compileOnly 'org.projectlombok:lombok:1.18.24' + annotationProcessor 'org.projectlombok:lombok:1.18.24' + + compileOnly 'org.spigotmc:spigot-api:1.14.4-R0.1-SNAPSHOT' + compileOnly (name: 'MVdWPlaceholderAPI-3.1.1') { transitive = false } - compile name: 'Vault-1.6.7' - compile 'me.clip:placeholderapi:2.10.9' + compileOnly "com.github.MilkBowl:VaultAPI:1.7" + compileOnly 'me.clip:placeholderapi:2.10.9' // shaded dependencies - compile 'redis.clients:jedis:3.5.1' - compile 'org.apache.commons:commons-pool2:2.4.2' - compile 'com.zaxxer:HikariCP:4.0.2' - compile 'org.slf4j:slf4j-nop:1.7.32' - compile 'org.bstats:bstats-bukkit:1.7' + implementation 'redis.clients:jedis:5.1.2' + implementation 'org.apache.commons:commons-pool2:2.12.0' + implementation 'com.zaxxer:HikariCP:4.0.3' + implementation 'org.slf4j:slf4j-nop:2.0.13' + implementation 'org.bstats:bstats-bukkit:3.0.2' } clean.doFirst { @@ -90,11 +95,13 @@ clean.doFirst { } shadowJar { - duplicatesStrategy = DuplicatesStrategy.EXCLUDE - destinationDir = file("$rootDir/out/") - sourceCompatibility = targetCompatibility = JavaVersion.VERSION_1_8 - baseName = 'TokenManager' - classifier = null + //duplicatesStrategy = DuplicatesStrategy.EXCLUDE + setDestinationDirectory(file("$rootDir/out/")) + // destinationDir = file("$rootDir/out/") + sourceCompatibility = JavaVersion.VERSION_1_8 + targetCompatibility = JavaVersion.VERSION_1_8 +// baseName = 'TokenManager' +// classifier = null dependencies { include(dependency('redis.clients:.*')) diff --git a/gradle/wrapper/gradle-wrapper.properties b/gradle/wrapper/gradle-wrapper.properties index 20a8408..2323675 100644 --- a/gradle/wrapper/gradle-wrapper.properties +++ b/gradle/wrapper/gradle-wrapper.properties @@ -3,4 +3,4 @@ distributionBase=GRADLE_USER_HOME distributionPath=wrapper/dists zipStoreBase=GRADLE_USER_HOME zipStorePath=wrapper/dists -distributionUrl=https\://services.gradle.org/distributions/gradle-4.4-bin.zip +distributionUrl=https\://services.gradle.org/distributions/gradle-8.7-bin.zip diff --git a/src/main/java/me/realized/tokenmanager/TokenManagerPlugin.java b/src/main/java/me/realized/tokenmanager/TokenManagerPlugin.java index d12791c..da48888 100644 --- a/src/main/java/me/realized/tokenmanager/TokenManagerPlugin.java +++ b/src/main/java/me/realized/tokenmanager/TokenManagerPlugin.java @@ -1,6 +1,6 @@ package me.realized.tokenmanager; -import com.google.common.collect.Lists; +//import com.google.common.collect.Lists; import java.util.ArrayList; import java.util.List; import java.util.Optional; @@ -139,7 +139,7 @@ private boolean load() { * @return true if unload was successful, otherwise false */ private boolean unload() { - for (final Loadable loadable : Lists.reverse(loadables)) { + for (final Loadable loadable : loadables) { try { if (loadables.indexOf(loadable) > lastLoad) { continue; diff --git a/src/main/java/me/realized/tokenmanager/data/database/MySQLDatabase.java b/src/main/java/me/realized/tokenmanager/data/database/MySQLDatabase.java index 91cc183..6f47985 100644 --- a/src/main/java/me/realized/tokenmanager/data/database/MySQLDatabase.java +++ b/src/main/java/me/realized/tokenmanager/data/database/MySQLDatabase.java @@ -4,6 +4,7 @@ import com.zaxxer.hikari.HikariDataSource; import java.io.File; import java.sql.Connection; +import java.sql.DriverManager; import java.sql.PreparedStatement; import java.sql.ResultSet; import java.sql.SQLException; @@ -69,6 +70,7 @@ public MySQLDatabase(final TokenManagerPlugin plugin) { @Override public void setup() throws Exception { final Config config = plugin.getConfiguration(); + this.createDatabase(config); final HikariConfig hikariConfig = new HikariConfig(); hikariConfig.setJdbcUrl(config.getMysqlUrl() .replace("%hostname%", config.getMysqlHostname()) @@ -116,6 +118,19 @@ public void setup() throws Exception { } } } + private void createDatabase(final Config config) { + String configUrl = config.getMysqlUrl() + .replace("%hostname%", config.getMysqlHostname()) + .replace("%port%", config.getMysqlPort()) + .replace("%database%", ""); + try (Connection connection = DriverManager.getConnection(configUrl, config.getMysqlUsername(), config.getMysqlPassword()); + Statement statement = connection.createStatement()) { + statement.executeUpdate("CREATE DATABASE IF NOT EXISTS " + config.getMysqlDatabase()); + } catch (SQLException ex) { + Log.error("Failed to connect to create the database!"); + Log.error("Cause of error: " + ex.getMessage()); + } + } @Override public OptionalLong get(final Player player) { diff --git a/src/main/java/me/realized/tokenmanager/hook/HookManager.java b/src/main/java/me/realized/tokenmanager/hook/HookManager.java index ed18f2c..7be3ed7 100644 --- a/src/main/java/me/realized/tokenmanager/hook/HookManager.java +++ b/src/main/java/me/realized/tokenmanager/hook/HookManager.java @@ -14,7 +14,7 @@ public HookManager(final TokenManagerPlugin plugin) { @Override public void handleLoad() { - register("MVdWPlaceholderAPI", MVdWPlaceholderHook.class); + //register("MVdWPlaceholderAPI", MVdWPlaceholderHook.class); register("PlaceholderAPI", PlaceholderHook.class); register("Vault", VaultHook.class); } diff --git a/src/main/java/me/realized/tokenmanager/hook/hooks/MVdWPlaceholderHook.java b/src/main/java/me/realized/tokenmanager/hook/hooks/MVdWPlaceholderHook.java index 9f2f311..82fbce6 100644 --- a/src/main/java/me/realized/tokenmanager/hook/hooks/MVdWPlaceholderHook.java +++ b/src/main/java/me/realized/tokenmanager/hook/hooks/MVdWPlaceholderHook.java @@ -8,7 +8,8 @@ public class MVdWPlaceholderHook extends PluginHook { - public MVdWPlaceholderHook(final TokenManagerPlugin plugin) { + + public MVdWPlaceholderHook(final TokenManagerPlugin plugin) { super(plugin, "MVdWPlaceholderAPI"); final Placeholders placeholders = new Placeholders(); diff --git a/src/main/java/me/realized/tokenmanager/util/compat/CompatUtil.java b/src/main/java/me/realized/tokenmanager/util/compat/CompatUtil.java index ee101f1..5e1fe5a 100644 --- a/src/main/java/me/realized/tokenmanager/util/compat/CompatUtil.java +++ b/src/main/java/me/realized/tokenmanager/util/compat/CompatUtil.java @@ -8,12 +8,14 @@ public final class CompatUtil { private static final long SUB_VERSION; static { - final String packageName = Bukkit.getServer().getClass().getPackage().getName(); - SUB_VERSION = NumberUtil.parseLong(packageName.substring(packageName.lastIndexOf('.') + 1).split("_")[1]).orElse(0); + final String packageName = Bukkit.getServer().getBukkitVersion().split("\\.")[1]; + SUB_VERSION = NumberUtil.parseLong(packageName.replace("-R0", "")).orElse(0); } private CompatUtil() {} - + public static boolean isAfter1_20() { + return SUB_VERSION > 20; + } public static boolean isPre1_17() { return SUB_VERSION < 17; } diff --git a/src/main/java/me/realized/tokenmanager/util/inventory/ItemUtil.java b/src/main/java/me/realized/tokenmanager/util/inventory/ItemUtil.java index 31646ec..8715ddd 100644 --- a/src/main/java/me/realized/tokenmanager/util/inventory/ItemUtil.java +++ b/src/main/java/me/realized/tokenmanager/util/inventory/ItemUtil.java @@ -132,7 +132,7 @@ public static ItemStack loadFromString(final String line) { if (materialData.length > 1) { // Handle potions and spawn eggs switching to NBT in 1.9+ - if (!CompatUtil.isPre1_9()) { + if (!CompatUtil.isPre1_9() && !CompatUtil.isAfter1_20()) { if (material.name().contains("POTION")) { final List values = Arrays.asList(materialData[1].split("-")); final PotionType type; diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 4be5550..4be5a32 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,6 +1,6 @@ name: TokenManager main: me.realized.tokenmanager.TokenManagerPlugin -version: @VERSION@ +version: 3.2.8 softdepend: [MVdWPlaceholderAPI, PlaceholderAPI, Vault] api-version: 1.14