diff --git a/build.gradle.kts b/build.gradle.kts index 99ca9d4..43c14fd 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -43,6 +43,7 @@ allprojects { maven("https://repo.infernalsuite.com/repository/maven-releases/") maven("https://repo.rapture.pw/repository/maven-releases/") maven("https://s01.oss.sonatype.org/content/repositories/snapshots/") + maven("https://repo.xenondevs.xyz/releases/") } } diff --git a/gui-plugin/.gitignore b/gui-plugin/.gitignore new file mode 100644 index 0000000..b63da45 --- /dev/null +++ b/gui-plugin/.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/gui-plugin/build.gradle.kts b/gui-plugin/build.gradle.kts new file mode 100644 index 0000000..7c65573 --- /dev/null +++ b/gui-plugin/build.gradle.kts @@ -0,0 +1,13 @@ +dependencies { + compileOnly("io.papermc.paper:paper-api:1.20.4-R0.1-SNAPSHOT") + compileOnly(project(":api")) + implementation("xyz.xenondevs.invui:invui:1.27") { + exclude("org.jetbrains") + } +} + +tasks { + shadowJar { + relocate ("xyz.xenondevs", "net.momirealms.customcrops.libraries") + } +} \ No newline at end of file diff --git a/gui-plugin/src/main/java/net/momirealms/customcrops/gui/CustomCropsGUI.java b/gui-plugin/src/main/java/net/momirealms/customcrops/gui/CustomCropsGUI.java new file mode 100644 index 0000000..158ee0b --- /dev/null +++ b/gui-plugin/src/main/java/net/momirealms/customcrops/gui/CustomCropsGUI.java @@ -0,0 +1,21 @@ +package net.momirealms.customcrops.gui; + +import org.bukkit.plugin.java.JavaPlugin; + +public class CustomCropsGUI extends JavaPlugin { + + private static CustomCropsGUI instance; + + @Override + public void onEnable() { + instance = this; + } + + @Override + public void onDisable() { + } + + public static CustomCropsGUI getInstance() { + return instance; + } +} diff --git a/gui-plugin/src/main/java/net/momirealms/customcrops/gui/GUIManager.java b/gui-plugin/src/main/java/net/momirealms/customcrops/gui/GUIManager.java new file mode 100644 index 0000000..1ae4af4 --- /dev/null +++ b/gui-plugin/src/main/java/net/momirealms/customcrops/gui/GUIManager.java @@ -0,0 +1,16 @@ +package net.momirealms.customcrops.gui; + +import net.momirealms.customcrops.api.event.PotInteractEvent; +import org.bukkit.Material; +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +public class GUIManager implements Listener { + + @EventHandler (ignoreCancelled = true) + public void onInteractPot(PotInteractEvent event) { + if (event.getItemInHand().getType() != Material.AIR) + return; + + } +} diff --git a/gui-plugin/src/main/resources/config.yml b/gui-plugin/src/main/resources/config.yml new file mode 100644 index 0000000..e69de29 diff --git a/gui-plugin/src/main/resources/plugin.yml b/gui-plugin/src/main/resources/plugin.yml new file mode 100644 index 0000000..9da86ef --- /dev/null +++ b/gui-plugin/src/main/resources/plugin.yml @@ -0,0 +1,9 @@ +name: CustomCrops +version: '${version}' +main: net.momirealms.customcrops.gui.CustomCropsGUI +api-version: 1.17 +load: POSTWORLD +authors: [ XiaoMoMi ] +folia-supported: true +depend: + - CustomCrops \ No newline at end of file diff --git a/plugin/src/main/java/net/momirealms/customcrops/mechanic/requirement/RequirementManagerImpl.java b/plugin/src/main/java/net/momirealms/customcrops/mechanic/requirement/RequirementManagerImpl.java index 9ba82c1..1e0ee34 100644 --- a/plugin/src/main/java/net/momirealms/customcrops/mechanic/requirement/RequirementManagerImpl.java +++ b/plugin/src/main/java/net/momirealms/customcrops/mechanic/requirement/RequirementManagerImpl.java @@ -586,6 +586,22 @@ public class RequirementManagerImpl implements RequirementManager { } private void registerNumberEqualRequirement() { + registerRequirement("=", (args, actions, advanced) -> { + if (args instanceof ConfigurationSection section) { + String v1 = section.getString("value1", ""); + String v2 = section.getString("value2", ""); + return state -> { + String p1 = v1.startsWith("%") ? ParseUtils.setPlaceholders(state.getPlayer(), v1) : v1; + String p2 = v2.startsWith("%") ? ParseUtils.setPlaceholders(state.getPlayer(), v2) : v2; + if (Double.parseDouble(p1) == Double.parseDouble(p2)) return true; + if (advanced) triggerActions(actions, state); + return false; + }; + } else { + LogUtils.warn("Wrong value format found at = requirement."); + return EmptyRequirement.instance; + } + }); registerRequirement("==", (args, actions, advanced) -> { if (args instanceof ConfigurationSection section) { String v1 = section.getString("value1", ""); @@ -598,7 +614,7 @@ public class RequirementManagerImpl implements RequirementManager { return false; }; } else { - LogUtils.warn("Wrong value format found at !startsWith requirement."); + LogUtils.warn("Wrong value format found at == requirement."); return EmptyRequirement.instance; } }); @@ -614,7 +630,7 @@ public class RequirementManagerImpl implements RequirementManager { return false; }; } else { - LogUtils.warn("Wrong value format found at !startsWith requirement."); + LogUtils.warn("Wrong value format found at != requirement."); return EmptyRequirement.instance; } }); @@ -857,7 +873,7 @@ public class RequirementManagerImpl implements RequirementManager { return false; }; } else { - LogUtils.warn("Wrong value format found at in-list requirement."); + LogUtils.warn("Wrong value format found at !in-list requirement."); return EmptyRequirement.instance; } }); @@ -946,7 +962,7 @@ public class RequirementManagerImpl implements RequirementManager { private void registerPotionEffectRequirement() { registerRequirement("potion-effect", (args, actions, advanced) -> { String potions = (String) args; - String[] split = potions.split("(<=|>=|<|>|==)", 2); + String[] split = potions.split("(<=|>=|<|>|==|=)", 2); PotionEffectType type = PotionEffectType.getByName(split[0]); if (type == null) { LogUtils.warn("Potion effect doesn't exist: " + split[0]); @@ -969,7 +985,7 @@ public class RequirementManagerImpl implements RequirementManager { case ">" -> { if (level > required) result = true; } - case "==" -> { + case "==", "=" -> { if (level == required) result = true; } case "!=" -> { diff --git a/settings.gradle b/settings.gradle index 3b4dbf8..a5b54b7 100644 --- a/settings.gradle +++ b/settings.gradle @@ -1,5 +1,6 @@ rootProject.name = 'CustomCrops' include(":plugin") include(":api") -include 'legacy-api' +include(":legacy-api") +include(":gui-plugin")