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