Move UltimateClaims compatibility to use reflection. (#142)

* Move UltimateClaims compatibility to use reflection. The project or repository was taken offline.

* Cleanup imports
This commit is contained in:
TechnicallyCoded
2023-06-12 15:03:20 +02:00
committed by GitHub
parent 54731925bd
commit 3b34dd7d90
3 changed files with 20 additions and 17 deletions

View File

@@ -2,10 +2,6 @@ package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
import com.griefdefender.api.GriefDefender;
import com.griefdefender.api.claim.Claim;
import com.songoda.ultimateclaims.UltimateClaims;
import me.RonanCraft.Pueblos.Pueblos;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.settings.SoftDepends;
import org.bukkit.Location;
public class RTP_GriefDefender implements RegionPluginCheck {

View File

@@ -1,21 +1,35 @@
package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
import com.songoda.ultimateclaims.UltimateClaims;
import me.RonanCraft.Pueblos.Pueblos;
import me.SuperRonanCraft.BetterRTP.BetterRTP;
import me.SuperRonanCraft.BetterRTP.references.settings.SoftDepends;
import org.bukkit.Chunk;
import org.bukkit.Location;
import java.lang.reflect.Method;
public class RTP_UltimateClaims implements RegionPluginCheck {
// NOT TESTED (3.1.0)
// UltimateClaims (v1.6.1)
// UltimateClaims (v1.6.1) - Abandoned
// https://songoda.com/marketplace/product/ultimateclaims-the-ultimate-claiming-plugin.65
public boolean check(Location loc) {
boolean result = true;
if (REGIONPLUGINS.ULTIMATECLAIMS.isEnabled())
try {
result = UltimateClaims.getInstance().getClaimManager().getClaim(loc.getChunk()) == null;
Chunk chunk = loc.getChunk();
// Get instance of UltimateClaims
Class<?> ultimateClaimsClass = Class.forName("com.songoda.ultimateclaims.UltimateClaims");
Method getInstanceMethod = ultimateClaimsClass.getMethod("getInstance");
Object ultimateClaims = getInstanceMethod.invoke(null);
// Get the ClaimManager
Method getClaimManagerMethod = ultimateClaimsClass.getMethod("getClaimManager");
Object claimManager = getClaimManagerMethod.invoke(ultimateClaims);
// Get the claim based on the chunk
Method getClaimMethod = claimManager.getClass().getMethod("getClaim", chunk.getClass());
Object claimObj = getClaimMethod.invoke(claimManager, chunk);
// Check if a claim exists
return claimObj == null;
} catch (Exception e) {
e.printStackTrace();
}