From e390976cb7e2217a0b243db0626f47de96772a21 Mon Sep 17 00:00:00 2001 From: XiaoMoMi <972454774@qq.com> Date: Tue, 7 May 2024 22:08:57 +0800 Subject: [PATCH] 3.4.8 --- api/build.gradle.kts | 13 ++++ build.gradle.kts | 14 ++--- legacy-api/build.gradle.kts | 13 ++++ oraxen-j21/.gitignore | 42 +++++++++++++ oraxen-j21/build.gradle.kts | 18 ++++++ .../item/custom/oraxen/OraxenListener.java | 4 +- .../item/custom/oraxen/OraxenProvider.java | 0 oraxen-legacy/build.gradle.kts | 15 ++++- plugin/build.gradle.kts | 19 +++++- .../customcrops/CustomCropsPluginImpl.java | 42 +------------ .../libraries/dependencies/Dependency.java | 8 +-- .../mechanic/item/ItemManagerImpl.java | 17 ++++-- .../momirealms/customcrops/util/NBTUtils.java | 61 +++++++++++++++++++ settings.gradle | 1 + 14 files changed, 204 insertions(+), 63 deletions(-) create mode 100644 oraxen-j21/.gitignore create mode 100644 oraxen-j21/build.gradle.kts rename {plugin => oraxen-j21}/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java (96%) rename {plugin => oraxen-j21}/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenProvider.java (100%) create mode 100644 plugin/src/main/java/net/momirealms/customcrops/util/NBTUtils.java diff --git a/api/build.gradle.kts b/api/build.gradle.kts index 7aa76c7..4e9c7bd 100644 --- a/api/build.gradle.kts +++ b/api/build.gradle.kts @@ -1,4 +1,17 @@ dependencies { compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") implementation("com.flowpowered:flow-nbt:2.0.2") +} + +tasks.withType { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } } \ No newline at end of file diff --git a/build.gradle.kts b/build.gradle.kts index d581e36..b90284c 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -8,7 +8,7 @@ plugins { allprojects { project.group = "net.momirealms" - project.version = "3.4.7" + project.version = "3.4.8" apply() apply(plugin = "java") @@ -58,13 +58,10 @@ subprojects { } } - tasks.withType { - options.encoding = "UTF-8" - options.release.set(17) - } - tasks.shadowJar { - destinationDirectory.set(file("$rootDir/target")) + if (arrayListOf("plugin", "api").contains(project.name)) { + destinationDirectory.set(file("$rootDir/target")) + } archiveClassifier.set("") archiveFileName.set("CustomCrops-" + project.name + "-" + project.version + ".jar") } @@ -81,5 +78,4 @@ subprojects { } } } -} - +} \ No newline at end of file diff --git a/legacy-api/build.gradle.kts b/legacy-api/build.gradle.kts index 5094bf0..9612fc8 100644 --- a/legacy-api/build.gradle.kts +++ b/legacy-api/build.gradle.kts @@ -1,3 +1,16 @@ dependencies { compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") +} + +tasks.withType { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } } \ No newline at end of file diff --git a/oraxen-j21/.gitignore b/oraxen-j21/.gitignore new file mode 100644 index 0000000..b63da45 --- /dev/null +++ b/oraxen-j21/.gitignore @@ -0,0 +1,42 @@ +.gradle +build/ +!gradle/wrapper/gradle-wrapper.jar +!**/src/main/**/build/ +!**/src/test/**/build/ + +### IntelliJ IDEA ### +.idea/modules.xml +.idea/jarRepositories.xml +.idea/compiler.xml +.idea/libraries/ +*.iws +*.iml +*.ipr +out/ +!**/src/main/**/out/ +!**/src/test/**/out/ + +### Eclipse ### +.apt_generated +.classpath +.factorypath +.project +.settings +.springBeans +.sts4-cache +bin/ +!**/src/main/**/bin/ +!**/src/test/**/bin/ + +### NetBeans ### +/nbproject/private/ +/nbbuild/ +/dist/ +/nbdist/ +/.nb-gradle/ + +### VS Code ### +.vscode/ + +### Mac OS ### +.DS_Store \ No newline at end of file diff --git a/oraxen-j21/build.gradle.kts b/oraxen-j21/build.gradle.kts new file mode 100644 index 0000000..9c4c091 --- /dev/null +++ b/oraxen-j21/build.gradle.kts @@ -0,0 +1,18 @@ +dependencies { + compileOnly(project(":api")) + compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") + compileOnly("io.th0rgal:oraxen:2.0-SNAPSHOT") +} + +tasks.withType { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + sourceCompatibility = JavaVersion.VERSION_21 + targetCompatibility = JavaVersion.VERSION_21 + toolchain { + languageVersion = JavaLanguageVersion.of(21) + } +} \ No newline at end of file diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java b/oraxen-j21/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java similarity index 96% rename from plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java rename to oraxen-j21/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java index 272475b..57fc32d 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java +++ b/oraxen-j21/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenListener.java @@ -24,14 +24,14 @@ import io.th0rgal.oraxen.api.events.custom_block.stringblock.OraxenStringBlockPl import io.th0rgal.oraxen.api.events.furniture.OraxenFurnitureBreakEvent; import io.th0rgal.oraxen.api.events.furniture.OraxenFurnitureInteractEvent; import io.th0rgal.oraxen.api.events.furniture.OraxenFurniturePlaceEvent; +import net.momirealms.customcrops.api.manager.ItemManager; import net.momirealms.customcrops.api.mechanic.item.custom.AbstractCustomListener; import net.momirealms.customcrops.api.util.LocationUtils; -import net.momirealms.customcrops.mechanic.item.ItemManagerImpl; import org.bukkit.event.EventHandler; public class OraxenListener extends AbstractCustomListener { - public OraxenListener(ItemManagerImpl itemManager) { + public OraxenListener(ItemManager itemManager) { super(itemManager); } diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenProvider.java b/oraxen-j21/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenProvider.java similarity index 100% rename from plugin/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenProvider.java rename to oraxen-j21/src/main/java/net/momirealms/customcrops/mechanic/item/custom/oraxen/OraxenProvider.java diff --git a/oraxen-legacy/build.gradle.kts b/oraxen-legacy/build.gradle.kts index a9bc7a9..2506dc0 100644 --- a/oraxen-legacy/build.gradle.kts +++ b/oraxen-legacy/build.gradle.kts @@ -1,5 +1,18 @@ dependencies { compileOnly(project(":api")) - compileOnly("dev.folia:folia-api:1.20.1-R0.1-SNAPSHOT") + compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") compileOnly("com.github.oraxen:oraxen:1.172.0") +} + +tasks.withType { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } } \ No newline at end of file diff --git a/plugin/build.gradle.kts b/plugin/build.gradle.kts index baa80be..8b902e6 100644 --- a/plugin/build.gradle.kts +++ b/plugin/build.gradle.kts @@ -30,7 +30,6 @@ dependencies { // Items compileOnly("com.github.LoneDev6:api-itemsadder:3.6.2-beta-r3-b") - compileOnly("io.th0rgal:oraxen:2.0-SNAPSHOT") compileOnly("pers.neige.neigeitems:NeigeItems:1.16.24") compileOnly("net.Indyuce:MMOItems-API:6.9.2-SNAPSHOT") compileOnly("io.lumine:MythicLib-dist:1.6-SNAPSHOT") @@ -49,15 +48,16 @@ dependencies { implementation(project(":api")) implementation(project(":oraxen-legacy")) + implementation(project(":oraxen-j21")) implementation(project(":legacy-api")) compileOnly("net.kyori:adventure-api:4.16.0") compileOnly("net.kyori:adventure-platform-bukkit:4.3.2") compileOnly("com.github.Xiao-MoMi:AntiGriefLib:0.11") - compileOnly("com.github.Xiao-MoMi:BiomeAPI:0.3") + compileOnly("com.github.Xiao-MoMi:BiomeAPI:0.6") compileOnly("net.kyori:adventure-text-minimessage:4.16.0") compileOnly("net.kyori:adventure-text-serializer-legacy:4.16.0") - compileOnly("de.tr7zw:item-nbt-api:2.12.3") + compileOnly("de.tr7zw:item-nbt-api:2.12.4") compileOnly("org.bstats:bstats-bukkit:3.0.2") implementation("com.flowpowered:flow-nbt:2.0.2") implementation("com.github.luben:zstd-jni:1.5.6-2") @@ -74,4 +74,17 @@ tasks { relocate ("net.momirealms.biomeapi", "net.momirealms.customcrops.libraries.biomeapi") relocate ("net.momirealms.antigrieflib", "net.momirealms.customcrops.libraries.antigrieflib") } +} + +tasks.withType { + options.encoding = "UTF-8" + options.release.set(17) +} + +java { + sourceCompatibility = JavaVersion.VERSION_17 + targetCompatibility = JavaVersion.VERSION_17 + toolchain { + languageVersion = JavaLanguageVersion.of(17) + } } \ No newline at end of file diff --git a/plugin/src/main/java/net/momirealms/customcrops/CustomCropsPluginImpl.java b/plugin/src/main/java/net/momirealms/customcrops/CustomCropsPluginImpl.java index ab2438e..8a6b248 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/CustomCropsPluginImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/CustomCropsPluginImpl.java @@ -17,8 +17,6 @@ package net.momirealms.customcrops; -import de.tr7zw.changeme.nbtapi.utils.MinecraftVersion; -import de.tr7zw.changeme.nbtapi.utils.VersionChecker; import net.momirealms.antigrieflib.AntiGriefLib; import net.momirealms.customcrops.api.CustomCropsPlugin; import net.momirealms.customcrops.api.event.CustomCropsReloadEvent; @@ -39,10 +37,10 @@ import net.momirealms.customcrops.mechanic.misc.migrator.Migration; import net.momirealms.customcrops.mechanic.requirement.RequirementManagerImpl; import net.momirealms.customcrops.mechanic.world.WorldManagerImpl; import net.momirealms.customcrops.scheduler.SchedulerImpl; +import net.momirealms.customcrops.util.NBTUtils; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; -import java.lang.reflect.Field; import java.util.ArrayList; import java.util.List; @@ -99,7 +97,7 @@ public class CustomCropsPluginImpl extends CustomCropsPlugin { this.hologramManager = new HologramManager(this); this.commandManager.init(); this.integrationManager.init(); - this.disableNBTAPILogs(); + NBTUtils.disableNBTAPILogs(); Migration.tryUpdating(); this.reload(); if (ConfigManager.metrics()) new Metrics(this, 16593); @@ -142,42 +140,6 @@ public class CustomCropsPluginImpl extends CustomCropsPlugin { EventUtils.fireAndForget(new CustomCropsReloadEvent(this)); } - /** - * Disable NBT API logs - */ - private void disableNBTAPILogs() { - MinecraftVersion.disableBStats(); - MinecraftVersion.disableUpdateCheck(); - VersionChecker.hideOk = true; - try { - Field field = MinecraftVersion.class.getDeclaredField("version"); - field.setAccessible(true); - MinecraftVersion minecraftVersion; - try { - minecraftVersion = MinecraftVersion.valueOf(getVersionManager().getServerVersion().replace("v", "MC")); - } catch (IllegalArgumentException ex) { - minecraftVersion = MinecraftVersion.UNKNOWN; - } - field.set(MinecraftVersion.class, minecraftVersion); - } catch (NoSuchFieldException | IllegalAccessException e) { - throw new RuntimeException(e); - } - boolean hasGsonSupport; - try { - Class.forName("com.google.gson.Gson"); - hasGsonSupport = true; - } catch (Exception ex) { - hasGsonSupport = false; - } - try { - Field field= MinecraftVersion.class.getDeclaredField("hasGsonSupport"); - field.setAccessible(true); - field.set(Boolean.class, hasGsonSupport); - } catch (NoSuchFieldException | IllegalAccessException e) { - throw new RuntimeException(e); - } - } - @Override public void debug(String debug) { if (ConfigManager.debug()) { diff --git a/plugin/src/main/java/net/momirealms/customcrops/libraries/dependencies/Dependency.java b/plugin/src/main/java/net/momirealms/customcrops/libraries/dependencies/Dependency.java index 96c0e3b..55edebe 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/libraries/dependencies/Dependency.java +++ b/plugin/src/main/java/net/momirealms/customcrops/libraries/dependencies/Dependency.java @@ -42,14 +42,14 @@ public enum Dependency { ASM( "org.ow2.asm", "asm", - "9.1", + "9.7", null, "asm" ), ASM_COMMONS( "org.ow2.asm", "asm-commons", - "9.1", + "9.7", null, "asm-commons" ), @@ -118,7 +118,7 @@ public enum Dependency { NBT_API( "de{}tr7zw", "item-nbt-api", - "2.12.3", + "2.12.4", "codemc", "item-nbt-api", Relocation.of("changeme", "de{}tr7zw{}changeme") @@ -134,7 +134,7 @@ public enum Dependency { BIOME_API( "com{}github{}Xiao-MoMi", "BiomeAPI", - "0.3", + "0.6", "jitpack", "biome-api", Relocation.of("biomeapi", "net{}momirealms{}biomeapi") diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java index 06372e6..7f7c317 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/item/ItemManagerImpl.java @@ -45,8 +45,6 @@ import net.momirealms.customcrops.api.util.LocationUtils; import net.momirealms.customcrops.api.util.LogUtils; import net.momirealms.customcrops.mechanic.item.custom.itemsadder.ItemsAdderListener; import net.momirealms.customcrops.mechanic.item.custom.itemsadder.ItemsAdderProvider; -import net.momirealms.customcrops.mechanic.item.custom.oraxen.OraxenListener; -import net.momirealms.customcrops.mechanic.item.custom.oraxen.OraxenProvider; import net.momirealms.customcrops.mechanic.item.custom.oraxenlegacy.LegacyOraxenListener; import net.momirealms.customcrops.mechanic.item.custom.oraxenlegacy.LegacyOraxenProvider; import net.momirealms.customcrops.mechanic.item.function.CFunction; @@ -81,6 +79,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; import java.io.File; +import java.lang.reflect.Constructor; import java.util.*; public class ItemManagerImpl implements ItemManager { @@ -128,8 +127,18 @@ public class ItemManagerImpl implements ItemManager { this.deadCrops = new HashSet<>(); if (Bukkit.getPluginManager().getPlugin("Oraxen") != null) { if (Bukkit.getPluginManager().getPlugin("Oraxen").getDescription().getVersion().startsWith("2")) { - listener = new OraxenListener(this); - customProvider = new OraxenProvider(); + try { + Class oraxenListenerClass = Class.forName("net.momirealms.customcrops.mechanic.item.custom.oraxen.OraxenListener"); + Constructor oraxenListenerConstructor = oraxenListenerClass.getDeclaredConstructor(ItemManager.class); + oraxenListenerConstructor.setAccessible(true); + this.listener = (AbstractCustomListener) oraxenListenerConstructor.newInstance(this); + Class oraxenProviderClass = Class.forName("net.momirealms.customcrops.mechanic.item.custom.oraxen.OraxenProvider"); + Constructor oraxenProviderConstructor = oraxenProviderClass.getDeclaredConstructor(ItemManager.class); + oraxenProviderConstructor.setAccessible(true); + this.customProvider = (CustomProvider) oraxenProviderConstructor.newInstance(); + } catch (ReflectiveOperationException e) { + e.printStackTrace(); + } } else { listener = new LegacyOraxenListener(this); customProvider = new LegacyOraxenProvider(); diff --git a/plugin/src/main/java/net/momirealms/customcrops/util/NBTUtils.java b/plugin/src/main/java/net/momirealms/customcrops/util/NBTUtils.java new file mode 100644 index 0000000..7a726bb --- /dev/null +++ b/plugin/src/main/java/net/momirealms/customcrops/util/NBTUtils.java @@ -0,0 +1,61 @@ +package net.momirealms.customcrops.util; + +import de.tr7zw.changeme.nbtapi.utils.MinecraftVersion; +import de.tr7zw.changeme.nbtapi.utils.VersionChecker; +import net.momirealms.customcrops.api.CustomCropsPlugin; +import org.bukkit.Bukkit; + +import java.lang.reflect.Field; +import java.util.HashMap; +import java.util.Map; + +public class NBTUtils { + + private NBTUtils() {} + + public static void disableNBTAPILogs() { + MinecraftVersion.disableBStats(); + MinecraftVersion.disableUpdateCheck(); + VersionChecker.hideOk = true; + try { + Field field = MinecraftVersion.class.getDeclaredField("version"); + field.setAccessible(true); + MinecraftVersion minecraftVersion; + try { + minecraftVersion = MinecraftVersion.valueOf(CustomCropsPlugin.get().getVersionManager().getServerVersion().replace("v", "MC")); + } catch (Exception ex) { + minecraftVersion = VERSION_TO_REVISION.getOrDefault(Bukkit.getServer().getBukkitVersion().split("-")[0], + MinecraftVersion.UNKNOWN); + } + field.set(MinecraftVersion.class, minecraftVersion); + } catch (NoSuchFieldException | IllegalAccessException e) { + throw new RuntimeException(e); + } + boolean hasGsonSupport; + try { + Class.forName("com.google.gson.Gson"); + hasGsonSupport = true; + } catch (Exception ex) { + hasGsonSupport = false; + } + try { + Field field= MinecraftVersion.class.getDeclaredField("hasGsonSupport"); + field.setAccessible(true); + field.set(Boolean.class, hasGsonSupport); + } catch (NoSuchFieldException | IllegalAccessException e) { + throw new RuntimeException(e); + } + } + + private static final Map VERSION_TO_REVISION = new HashMap<>() { + { + this.put("1.20", MinecraftVersion.MC1_20_R1); + this.put("1.20.1", MinecraftVersion.MC1_20_R1); + this.put("1.20.2", MinecraftVersion.MC1_20_R2); + this.put("1.20.3", MinecraftVersion.MC1_20_R3); + this.put("1.20.4", MinecraftVersion.MC1_20_R3); + this.put("1.20.5", MinecraftVersion.MC1_20_R4); + this.put("1.20.6", MinecraftVersion.MC1_20_R4); + } + }; +} diff --git a/settings.gradle b/settings.gradle index a643408..5a9da64 100644 --- a/settings.gradle +++ b/settings.gradle @@ -3,4 +3,5 @@ include(":plugin") include(":api") include(":legacy-api") include("oraxen-legacy") +include(":oraxen-j21")