diff --git a/build.gradle b/build.gradle index 970aac05..b5d1c31e 100644 --- a/build.gradle +++ b/build.gradle @@ -4,10 +4,11 @@ plugins { } group = 'net.momirealms' -version = '1.3.0-beta-7' +version = '1.3.0' repositories { mavenCentral() + maven {name = "aliyun-repo"; url = "https://maven.aliyun.com/repository/public/"} maven {name = 'papermc-repo'; url = 'https://papermc.io/repo/repository/maven-public/'} maven {name = 'sonatype-repo'; url = 'https://oss.sonatype.org/content/groups/public/'} maven {name = "dmulloy2-repo"; url = "https://repo.dmulloy2.net/repository/public/"} @@ -30,25 +31,25 @@ dependencies { compileOnly('com.github.TechFortress:GriefPrevention:16.18') compileOnly('com.palmergames.bukkit.towny:towny:0.98.2.0') compileOnly('redis.clients:jedis:4.3.1') - compileOnly('me.clip:placeholderapi:2.11.1') + compileOnly('me.clip:placeholderapi:2.11.3') compileOnly('com.sk89q.worldguard:worldguard-bukkit:7.0.7') compileOnly('io.lumine:Mythic-Dist:5.0.3-SNAPSHOT') compileOnly('dev.dejvokep:boosted-yaml:1.3') compileOnly('com.github.Zrips:Jobs:4.17.2') compileOnly('com.github.LoneDev6:api-itemsadder:3.2.3c') compileOnly('net.objecthunter:exp4j:0.4.8') - compileOnly('org.mariadb.jdbc:mariadb-java-client:3.0.6') + compileOnly('org.mariadb.jdbc:mariadb-java-client:3.1.2') compileOnly('com.google.code.gson:gson:2.10.1') compileOnly('com.willfp:EcoEnchants:9.17.5') compileOnly('com.willfp:EcoJobs:1.35.0') compileOnly('com.willfp:EcoSkills:1.72.0') compileOnly('com.willfp:eco:6.52.2') - implementation('net.kyori:adventure-api:4.12.0') - implementation('net.kyori:adventure-platform-bukkit:4.2.0') - implementation('net.kyori:adventure-text-minimessage:4.12.0') - implementation('net.kyori:adventure-text-serializer-legacy:4.12.0') - implementation('de.tr7zw:item-nbt-api:2.11.1') - implementation("org.bstats:bstats-bukkit:3.0.0") + implementation('net.kyori:adventure-api:4.13.0') + implementation('net.kyori:adventure-platform-bukkit:4.3.0') + implementation('net.kyori:adventure-text-minimessage:4.13.0') + implementation('net.kyori:adventure-text-serializer-legacy:4.13.0') + implementation('de.tr7zw:item-nbt-api:2.11.2') + implementation('org.bstats:bstats-bukkit:3.0.1') } def targetJavaVersion = 16 diff --git a/libs/BetonQuest2.0.0.jar b/libs/BetonQuest2.0.0-dev-603.jar similarity index 81% rename from libs/BetonQuest2.0.0.jar rename to libs/BetonQuest2.0.0-dev-603.jar index a8b24829..8a8c3366 100644 Binary files a/libs/BetonQuest2.0.0.jar and b/libs/BetonQuest2.0.0-dev-603.jar differ diff --git a/libs/BiomeAPI.jar b/libs/BiomeAPI.jar index a9c346d1..a0a1f749 100644 Binary files a/libs/BiomeAPI.jar and b/libs/BiomeAPI.jar differ diff --git a/src/main/java/net/momirealms/customfishing/CustomFishing.java b/src/main/java/net/momirealms/customfishing/CustomFishing.java index 13cf200b..03631614 100644 --- a/src/main/java/net/momirealms/customfishing/CustomFishing.java +++ b/src/main/java/net/momirealms/customfishing/CustomFishing.java @@ -32,6 +32,8 @@ import org.bukkit.Bukkit; import org.bukkit.command.PluginCommand; import org.bukkit.plugin.java.JavaPlugin; +import java.util.TimeZone; + public final class CustomFishing extends JavaPlugin { private static CustomFishing plugin; @@ -83,20 +85,18 @@ public final class CustomFishing extends JavaPlugin { @Override public void onDisable() { - this.fishingManager.unload(); - this.integrationManager.unload(); - this.competitionManager.unload(); - this.effectManager.unload(); - this.lootManager.unload(); - this.barMechanicManager.unload(); - this.bagDataManager.disable(); - this.totemManager.unload(); - this.sellManager.disable(); - this.dataManager.disable(); - this.statisticsManager.disable(); - if (adventure != null) { - adventure.close(); - } + if (this.fishingManager != null) this.fishingManager.unload(); + if (this.integrationManager != null) this.integrationManager.unload(); + if (this.competitionManager != null) this.competitionManager.unload(); + if (this.effectManager != null) this.effectManager.unload(); + if (this.lootManager != null) this.lootManager.unload(); + if (this.barMechanicManager != null) this.barMechanicManager.unload(); + if (this.totemManager != null) this.totemManager.unload(); + if (this.bagDataManager != null) this.bagDataManager.disable(); + if (this.sellManager != null) this.sellManager.disable(); + if (this.statisticsManager != null) this.statisticsManager.disable(); + if (this.dataManager != null) this.dataManager.disable(); + if (adventure != null) adventure.close(); } private void registerCommands() { @@ -121,12 +121,14 @@ public final class CustomFishing extends JavaPlugin { } private void loadLibs() { - LibraryLoader.load("redis.clients","jedis","4.3.1","https://repo.maven.apache.org/maven2/"); - LibraryLoader.load("org.apache.commons","commons-pool2","2.11.1","https://repo.maven.apache.org/maven2/"); - LibraryLoader.load("dev.dejvokep","boosted-yaml","1.3","https://repo.maven.apache.org/maven2/"); - LibraryLoader.load("com.zaxxer","HikariCP","5.0.1","https://repo.maven.apache.org/maven2/"); - LibraryLoader.load("net.objecthunter","exp4j","0.4.8","https://repo.maven.apache.org/maven2/"); - LibraryLoader.load("org.mariadb.jdbc","mariadb-java-client","3.0.6","https://repo.maven.apache.org/maven2/"); + TimeZone timeZone = TimeZone.getDefault(); + String libRepo = timeZone.getID().startsWith("Asia") ? "https://maven.aliyun.com/repository/public/" : "https://repo.maven.apache.org/maven2/"; + LibraryLoader.load("org.apache.commons","commons-pool2","2.11.1", libRepo); + LibraryLoader.load("redis.clients","jedis","4.3.1", libRepo); + LibraryLoader.load("dev.dejvokep","boosted-yaml","1.3", libRepo); + LibraryLoader.load("com.zaxxer","HikariCP","5.0.1", libRepo); + LibraryLoader.load("net.objecthunter","exp4j","0.4.8", libRepo); + LibraryLoader.load("org.mariadb.jdbc","mariadb-java-client","3.1.2", libRepo); } private void registerQuests() { diff --git a/src/main/java/net/momirealms/customfishing/fishing/competition/bossbar/BossBarManager.java b/src/main/java/net/momirealms/customfishing/fishing/competition/bossbar/BossBarManager.java index 8808b54b..c50868f9 100644 --- a/src/main/java/net/momirealms/customfishing/fishing/competition/bossbar/BossBarManager.java +++ b/src/main/java/net/momirealms/customfishing/fishing/competition/bossbar/BossBarManager.java @@ -65,17 +65,19 @@ public class BossBarManager extends Function { @Override public void onJoin(Player player) { - if (Competition.currentCompetition != null){ - if (Competition.currentCompetition.isJoined(player) && cache.get(player) == null){ - BossBarSender sender = new BossBarSender(player, Competition.currentCompetition.getCompetitionConfig().getBossBarConfig()); - if (!sender.getStatus()) { - sender.show(); + Bukkit.getScheduler().runTaskLater(CustomFishing.getInstance(), () -> { + if (Competition.currentCompetition != null){ + if (Competition.currentCompetition.isJoined(player) && cache.get(player) == null){ + BossBarSender sender = new BossBarSender(player, Competition.currentCompetition.getCompetitionConfig().getBossBarConfig()); + if (!sender.getStatus()) { + sender.show(); + } + cache.put(player, sender); + } else { + AdventureUtil.playerMessage(player, MessageManager.competitionOn); } - cache.put(player, sender); - } else { - AdventureUtil.playerMessage(player, MessageManager.competitionOn); } - } + }, 5); } public void tryJoin(Player player) { diff --git a/src/main/java/net/momirealms/customfishing/helper/LibraryLoader.java b/src/main/java/net/momirealms/customfishing/helper/LibraryLoader.java index 20c211e5..6597a166 100644 --- a/src/main/java/net/momirealms/customfishing/helper/LibraryLoader.java +++ b/src/main/java/net/momirealms/customfishing/helper/LibraryLoader.java @@ -37,6 +37,7 @@ import java.net.URL; import java.net.URLClassLoader; import java.nio.file.Files; import java.util.Objects; +import java.util.StringJoiner; /** * Resolves {@link MavenLibrary} annotations for a class, and loads the dependency @@ -66,7 +67,6 @@ public final class LibraryLoader { if (libs == null) { return; } - for (MavenLibrary lib : libs) { load(lib.groupId(), lib.artifactId(), lib.version(), lib.repo().url()); } @@ -77,7 +77,7 @@ public final class LibraryLoader { } public static void load(Dependency d) { - //Log.info(String.format("Loading dependency %s:%s:%s from %s", d.getGroupId(), d.getArtifactId(), d.getVersion(), d.getRepoUrl())); + Log.info(String.format("Loading dependency %s:%s:%s from %s", d.getGroupId(), d.getArtifactId(), d.getVersion(), d.getRepoUrl())); String name = d.getArtifactId() + "-" + d.getVersion(); File saveLocation = new File(getLibFolder(d), name + ".jar"); @@ -98,13 +98,13 @@ public final class LibraryLoader { } if (!saveLocation.exists()) { - throw new RuntimeException("Unable to download dependency: " + d.toString()); + throw new RuntimeException("Unable to download dependency: " + d); } try { URL_INJECTOR.get().addURL(saveLocation.toURI().toURL()); } catch (Exception e) { - throw new RuntimeException("Unable to load dependency: " + saveLocation.toString(), e); + throw new RuntimeException("Unable to load dependency: " + saveLocation, e); } } @@ -115,11 +115,11 @@ public final class LibraryLoader { File helperDir = new File(serverDir, "libraries"); String[] split = StringUtils.split(dependency.getGroupId(), "."); File jarDir; - if (split.length > 1){ - jarDir = new File(helperDir, split[0] + File.separator + split[1] + File.separator + dependency.artifactId + File.separator + dependency.version ); - }else { - jarDir = new File(helperDir, dependency.getGroupId() + File.separator + dependency.artifactId + File.separator + dependency.version ); + StringJoiner stringJoiner = new StringJoiner(File.separator); + for (String str : split) { + stringJoiner.add(str); } + jarDir = new File(helperDir, stringJoiner + File.separator + dependency.artifactId + File.separator + dependency.version); jarDir.mkdirs(); return jarDir; } diff --git a/src/main/java/net/momirealms/customfishing/integration/mob/MythicMobsMobImpl.java b/src/main/java/net/momirealms/customfishing/integration/mob/MythicMobsMobImpl.java index b6cf49f5..05fd65f2 100644 --- a/src/main/java/net/momirealms/customfishing/integration/mob/MythicMobsMobImpl.java +++ b/src/main/java/net/momirealms/customfishing/integration/mob/MythicMobsMobImpl.java @@ -34,15 +34,18 @@ import java.util.Optional; public class MythicMobsMobImpl implements MobInterface { - private final MobManager mobManager; + private MythicBukkit mythicBukkit; public MythicMobsMobImpl() { - this.mobManager = MythicBukkit.inst().getMobManager(); + this.mythicBukkit = MythicBukkit.inst(); } @Override public void summon(Location playerLoc, Location summonLoc, Mob mob){ - Optional mythicMob = mobManager.getMythicMob(mob.getMobID()); + if (this.mythicBukkit == null || mythicBukkit.isClosed()) { + this.mythicBukkit = MythicBukkit.inst(); + } + Optional mythicMob = mythicBukkit.getMobManager().getMythicMob(mob.getMobID()); if (mythicMob.isPresent()) { MythicMob theMob = mythicMob.get(); Position position = Position.of(summonLoc); diff --git a/src/main/java/net/momirealms/customfishing/manager/ConfigManager.java b/src/main/java/net/momirealms/customfishing/manager/ConfigManager.java index c916aaaf..5f8de6bf 100644 --- a/src/main/java/net/momirealms/customfishing/manager/ConfigManager.java +++ b/src/main/java/net/momirealms/customfishing/manager/ConfigManager.java @@ -173,10 +173,8 @@ public class ConfigManager { } useRedis = true; } - else { - if (JedisUtil.isPoolEnabled()) { - JedisUtil.closePool(); - } + else if (useRedis && JedisUtil.isPoolEnabled()) { + JedisUtil.closePool(); useRedis = false; } } diff --git a/src/main/java/net/momirealms/customfishing/manager/IntegrationManager.java b/src/main/java/net/momirealms/customfishing/manager/IntegrationManager.java index 4dcbc646..22056814 100644 --- a/src/main/java/net/momirealms/customfishing/manager/IntegrationManager.java +++ b/src/main/java/net/momirealms/customfishing/manager/IntegrationManager.java @@ -116,7 +116,7 @@ public class IntegrationManager extends Function { } private void hookMobs() { - if (pluginManager.isPluginEnabled("MythicMobs")) { + if (pluginManager.isPluginEnabled("MythicMobs") && pluginManager.getPlugin("MythicMobs").getDescription().getVersion().startsWith("5")) { this.mobInterface = new MythicMobsMobImpl(); } } @@ -190,7 +190,7 @@ public class IntegrationManager extends Function { itemInterfaceList.add(new MMOItemsItemImpl()); hookMessage("MMOItems"); } - if (pluginManager.isPluginEnabled("MythicMobs")) { + if (pluginManager.isPluginEnabled("MythicMobs") && pluginManager.getPlugin("MythicMobs").getDescription().getVersion().startsWith("5")) { itemInterfaceList.add(new MythicMobsItemImpl()); hookMessage("MythicMobs"); } @@ -210,7 +210,7 @@ public class IntegrationManager extends Function { hookMessage("ClueScrolls"); } if (pluginManager.isPluginEnabled("BetonQuest")) { - if (Bukkit.getPluginManager().getPlugin("BetonQuest").getDescription().getVersion().startsWith("2.")) NewBetonQuestCFQuest.register(); + if (Bukkit.getPluginManager().getPlugin("BetonQuest").getDescription().getVersion().startsWith("2")) NewBetonQuestCFQuest.register(); else OldBetonQuestCFQuest.register(); hookMessage("BetonQuest"); } diff --git a/src/main/java/net/momirealms/customfishing/util/JedisUtil.java b/src/main/java/net/momirealms/customfishing/util/JedisUtil.java index e27af7c1..46a47050 100644 --- a/src/main/java/net/momirealms/customfishing/util/JedisUtil.java +++ b/src/main/java/net/momirealms/customfishing/util/JedisUtil.java @@ -84,6 +84,6 @@ public class JedisUtil { } public static boolean isPoolEnabled() { - return !(jedisPool == null || jedisPool.isClosed()); + return jedisPool != null && !jedisPool.isClosed(); } }