From 70c8d650a36df862b5056fc37e957b5ed4938731 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Ahmet=20Hakan=20Karg=C4=B1n?= Date: Tue, 13 Jan 2026 18:43:15 +0300 Subject: [PATCH] feat: Add uxmClaims support --- .gitignore | 2 +- dependency-reduced-pom.xml | 317 ------------------ pom.xml | 17 +- .../compatibility/CompatibilityHandler.java | 2 + .../compatibility/uxmclaims/UxmClaims.java | 23 ++ .../uxmclaims/UxmClaimsChopListener.java | 46 +++ .../event/reason/DefaultReason.java | 1 + 7 files changed, 88 insertions(+), 320 deletions(-) delete mode 100644 dependency-reduced-pom.xml create mode 100644 src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/uxmclaims/UxmClaims.java create mode 100644 src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/uxmclaims/UxmClaimsChopListener.java diff --git a/.gitignore b/.gitignore index 83aa490..dbebe5c 100644 --- a/.gitignore +++ b/.gitignore @@ -8,4 +8,4 @@ .vscode/settings.json /.apt_generated/ /.apt_generated_tests/ -dependency-reduced-pom.xml \ No newline at end of file +dependency-reduced-pom.xml diff --git a/dependency-reduced-pom.xml b/dependency-reduced-pom.xml deleted file mode 100644 index 46f1b59..0000000 --- a/dependency-reduced-pom.xml +++ /dev/null @@ -1,317 +0,0 @@ - - - 4.0.0 - com.syntaxphoenix.spigot - smoothtimber-legacy - SmoothTimber - 1.27.6 - - - - true - src/main/resources - - - - - maven-shade-plugin - 3.3.0 - - - package - - shade - - - - - - - org.jboss.forge.roaster - - - - - *:* - - META-INF/*.SF - META-INF/*.DSA - META-INF/*.RSA - - - - *:* - - com/syntaxphoenix/spigot/smoothtimber/annotation/*.class - - - - - - com.syntaxphoenix.syntaxapi - com.syntaxphoenix.spigot.smoothtimber.shaded.syntaxapi - - - net.coreprotect.v1 - net.coreprotect - - - net.coreprotect.v2 - net.coreprotect - - - lands.v1 - me.angeschossen.lands - - - lands.v2 - me.angeschossen.lands - - - mcmmo.v1.com - com - - - - - - maven-compiler-plugin - - - compile-processors - generate-sources - - compile - - - none - - com/syntaxphoenix/spigot/smoothtimber/annotation/MCVersionEnumGenerator.java - - - - - compile-annotationSource - process-sources - - compile - - - none - - com/syntaxphoenix/spigot/smoothtimber/version/manager/gen/MCversion.java - - - - - - 11 - 11 - - -parameters - - - com.syntaxphoenix.spigot.smoothtimber.annotation.MCVersionEnumGenerator - - - - - - - - jitpack.io - https://jitpack.io - - - papermc - https://repo.papermc.io/repository/maven-public/ - - - spigot-repo - https://hub.spigotmc.org/nexus/content/repositories/snapshots/ - - - sk89q-repo - https://maven.enginehub.org/repo/ - - - placeholderapi - https://repo.extendedclip.com/content/repositories/placeholderapi/ - - - md_5-repo - https://repo.md-5.net/content/repositories/public/ - - - moss-repo - https://ci.ender.zone/plugin/repository/everything/ - - - neetgames - https://nexus.neetgames.com/repository/maven-releases/ - - - - - apache.snapshots - https://repository.apache.org/snapshots/ - - - - - me.clip - placeholderapi - 2.10.9 - provided - - - com.github.TechFortress - GriefPrevention - 16.16.0 - provided - - - com.github.Zrips - Jobs - v4.17.2 - provided - - - com.sk89q.worldguard - worldguard-core - 7.0.0 - provided - - - snakeyaml - org.yaml - - - gson - com.google.code.gson - - - bukkit - org.bukkit - - - - - de.diddiz - logblock - 1.16.1.2-SNAPSHOT - provided - - - com.gmail.nossr50.mcMMO - mcMMO - 2.2.004 - provided - - - com.github.TownyAdvanced - Towny - 0.96.7.0 - provided - - - com.massivecraft - Factions - 1.6.9.5-U0.6.28 - provided - - - org.spigotmc - spigot-api - 1.21.4-R0.1-SNAPSHOT - provided - - - dev.folia - folia-api - 1.21.4-R0.1-SNAPSHOT - provided - - - org.jboss.forge.roaster - roaster-api - 2.28.0.Final - compile - - - org.jboss.forge.roaster - roaster-jdt - 2.28.0.Final - compile - - - lands - lands1 - 1 - system - ${project.basedir}/libraries/LandsAPI.repackaged.jar - - - lands - lands2 - 1 - system - ${project.basedir}/libraries/lands-api-7.0.2.repackaged.jar - - - net.coreprotect - CoreProtect6 - 1 - system - ${project.basedir}/libraries/CoreProtect-19.4.repackaged.jar - - - net.coreprotect - CoreProtect5 - 1 - system - ${project.basedir}/libraries/CoreProtect-2.14.4.repackaged.jar - - - com.bekvon - residence - 1 - system - ${project.basedir}/libraries/Residence4.9.1.9.jar - - - com.syntaxphoenix - blockylog1 - 1 - system - ${project.basedir}/libraries/BlockyLog-1.0.jar - - - com.syntaxphoenix - blockylog2 - 1 - system - ${project.basedir}/libraries/BlockyLog-2.3.0.jar - - - com.sk89q.worldguard - worldguard-bukkit2 - 1 - system - ${project.basedir}/libraries/worldguard-bukkit-6.2.2.jar - - - com.gmail.nossr50.mcMMO - mcMMO-jar - 2.1.175-SNAPSHOT - system - ${project.basedir}/libraries/mcMMO.repackaged.jar - - - - smoothtimber - UTF-8 - 1.21.4-R0.1-SNAPSHOT - 2.28.0.Final - - diff --git a/pom.xml b/pom.xml index 1a2fdde..6a5466a 100644 --- a/pom.xml +++ b/pom.xml @@ -173,8 +173,8 @@ - md_5-repo - https://repo.md-5.net/content/repositories/public/ + iani-snapshots + https://www.iani.de/nexus/content/repositories/snapshots/ @@ -186,6 +186,11 @@ neetgames https://nexus.neetgames.com/repository/maven-releases/ + + + uxplima + https://repo.inovixi.com/repository/maven-releases/ + @@ -341,6 +346,14 @@ provided + + + com.uxplima.claim + bukkit-api + 3.4.6 + provided + + diff --git a/src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/CompatibilityHandler.java b/src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/CompatibilityHandler.java index 865122b..b89c900 100644 --- a/src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/CompatibilityHandler.java +++ b/src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/CompatibilityHandler.java @@ -19,6 +19,7 @@ import com.syntaxphoenix.spigot.smoothtimber.compatibility.placeholderapi.PlaceholderApi; import com.syntaxphoenix.spigot.smoothtimber.compatibility.residence.Residence; import com.syntaxphoenix.spigot.smoothtimber.compatibility.towny.Towny; +import com.syntaxphoenix.spigot.smoothtimber.compatibility.uxmclaims.UxmClaims; import com.syntaxphoenix.spigot.smoothtimber.compatibility.worldguard.WorldGuard; import com.syntaxphoenix.spigot.smoothtimber.config.config.AddonConfig; import com.syntaxphoenix.spigot.smoothtimber.utilities.PluginUtils; @@ -44,6 +45,7 @@ public static void registerDefaults() { register("mcMMO", McMmo.class); register("Towny", Towny.class); register("Factions", FactionsUUID.class); + register("uxmClaims", UxmClaims.class); } public static boolean register(final String pluginName, final Class addonClass) { diff --git a/src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/uxmclaims/UxmClaims.java b/src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/uxmclaims/UxmClaims.java new file mode 100644 index 0000000..b52473f --- /dev/null +++ b/src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/uxmclaims/UxmClaims.java @@ -0,0 +1,23 @@ +package com.syntaxphoenix.spigot.smoothtimber.compatibility.uxmclaims; + +import org.bukkit.Bukkit; +import org.bukkit.event.HandlerList; + +import com.syntaxphoenix.spigot.smoothtimber.SmoothTimber; +import com.syntaxphoenix.spigot.smoothtimber.compatibility.CompatibilityAddon; +import com.syntaxphoenix.spigot.smoothtimber.utilities.plugin.PluginPackage; + +public class UxmClaims extends CompatibilityAddon { + + private final UxmClaimsChopListener listener = new UxmClaimsChopListener(); + + @Override + public void onEnable(PluginPackage pluginPackage, SmoothTimber smoothTimber) { + Bukkit.getPluginManager().registerEvents(listener, smoothTimber); + } + + @Override + public void onDisable(SmoothTimber smoothTimber) { + HandlerList.unregisterAll(listener); + } +} diff --git a/src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/uxmclaims/UxmClaimsChopListener.java b/src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/uxmclaims/UxmClaimsChopListener.java new file mode 100644 index 0000000..33c18f1 --- /dev/null +++ b/src/main/java/com/syntaxphoenix/spigot/smoothtimber/compatibility/uxmclaims/UxmClaimsChopListener.java @@ -0,0 +1,46 @@ +package com.syntaxphoenix.spigot.smoothtimber.compatibility.uxmclaims; + +import java.util.Optional; +import java.util.UUID; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.Listener; + +import com.syntaxphoenix.spigot.smoothtimber.event.AsyncPlayerChopTreeEvent; +import com.syntaxphoenix.spigot.smoothtimber.event.reason.DefaultReason; +import com.syntaxphoenix.spigot.smoothtimber.platform.Platform; +import com.uxplima.claim.app.facade.ClaimFacade; +import com.uxplima.claim.bukkit.api.BukkitConverter; +import com.uxplima.claim.bukkit.api.UxmClaimBukkitAPI; +import com.uxplima.claim.domain.model.Claim; +import com.uxplima.claim.domain.model.ClaimMember; +import com.uxplima.claim.domain.model.enums.ClaimPermission; +import com.uxplima.claim.domain.model.vo.Location; + +public class UxmClaimsChopListener implements Listener { + + @EventHandler(ignoreCancelled = true) + public void onChopEvent(AsyncPlayerChopTreeEvent event) { + ClaimFacade claimFacade = UxmClaimBukkitAPI.getInstance().claimFacade(); + UUID uuid = event.getPlayer().getUniqueId(); + + for (org.bukkit.Location location : event.getBlockLocations()) { + // Convert Bukkit location to valid domain location + Location domainLoc = BukkitConverter.toDomainLocation(location); + + // Find claim at check location + Claim claim = claimFacade.getByLocationUnsafe(domainLoc); + + if (claim != null) { + if (claim.hasPermission(uuid, ClaimPermission.BLOCK_BREAK)) { + continue; + } + + // Deny if neither owner nor member with permission + event.setCancelled(true); + event.setReason(DefaultReason.UXMCLAIMS); + return; + } + } + } +} diff --git a/src/main/java/com/syntaxphoenix/spigot/smoothtimber/event/reason/DefaultReason.java b/src/main/java/com/syntaxphoenix/spigot/smoothtimber/event/reason/DefaultReason.java index d3e21f7..cee18c6 100644 --- a/src/main/java/com/syntaxphoenix/spigot/smoothtimber/event/reason/DefaultReason.java +++ b/src/main/java/com/syntaxphoenix/spigot/smoothtimber/event/reason/DefaultReason.java @@ -10,6 +10,7 @@ public enum DefaultReason implements IChopReason { RESIDENCE, LANDS, FACTIONS, + UXMCLAIMS, UNKNOWN; @Override