Remove use of private dependencies (use reflection instead), (#137)

Add comments for people that want to use the private repo locally
This commit is contained in:
TechnicallyCoded
2023-05-24 15:10:15 +02:00
committed by GitHub
parent ea8f998c83
commit b6cfe1e1c4
3 changed files with 23 additions and 16 deletions

View File

@@ -1,12 +1,5 @@
package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
import com.bekvon.bukkit.residence.Residence;
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_Residence implements RegionPluginCheck {
@@ -18,7 +11,13 @@ public class RTP_Residence implements RegionPluginCheck {
boolean result = true;
if (REGIONPLUGINS.RESIDENCE.isEnabled())
try {
result = Residence.getInstance().getResidenceManager().getByLoc(loc) == null;
// Using reflection
Class<?> residenceClass = Class.forName("com.bekvon.bukkit.residence.Residence");
Object residence = residenceClass.getMethod("getInstance").invoke(null);
Object residenceManager = residenceClass.getMethod("getResidenceManager").invoke(residence);
Class<?> residenceManagerClass = residenceManager.getClass();
Object claim = residenceManagerClass.getMethod("getByLoc", Location.class).invoke(residenceManager, loc);
result = claim == null;
} catch (Exception e) {
e.printStackTrace();
}

View File

@@ -1,8 +1,9 @@
package me.SuperRonanCraft.BetterRTP.references.depends.regionPlugins;
import com.hakan.claim.api.ClaimHandler;
import org.bukkit.Location;
import java.lang.reflect.Method;
public class RTP_hClaims implements RegionPluginCheck {
// NOT TESTED (3.1.0)
@@ -12,7 +13,9 @@ public class RTP_hClaims implements RegionPluginCheck {
boolean result = true;
if (REGIONPLUGINS.HCLAIMS.isEnabled())
try {
result = ClaimHandler.has(loc);
Class<?> claimHandlerClass = Class.forName("com.hakan.claim.api.ClaimHandler");
Method hasMethod = claimHandlerClass.getDeclaredMethod("has", Location.class);
result = (boolean) hasMethod.invoke(null, loc);
} catch (Exception e) {
e.printStackTrace();
}