diff --git a/pom.xml b/pom.xml index ee8b828..bb7535c 100644 --- a/pom.xml +++ b/pom.xml @@ -255,6 +255,13 @@ 920a610 provided + + + com.github.songoda + ultimateclaims + 012e53d + provided + xyz.xenondevs diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java index 230f577..66749bd 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTP.java @@ -124,7 +124,7 @@ public class RTP { public void loadWorldLocations() { FileBasics.FILETYPE config = FileBasics.FILETYPE.LOCATIONS; worldLocations.clear(); - if (!config.getBoolean("Settings.Enabled")) + if (!config.getBoolean("Enabled")) return; List> map = config.getMapList("Locations"); for (Map m : map) diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPluginValidation.java b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPluginValidation.java index 8129e80..3a29733 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPluginValidation.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/player/rtp/RTPPluginValidation.java @@ -14,6 +14,7 @@ import com.sk89q.worldguard.WorldGuard; import com.sk89q.worldguard.protection.ApplicableRegionSet; import com.sk89q.worldguard.protection.regions.RegionContainer; import com.sk89q.worldguard.protection.regions.RegionQuery; +import com.songoda.ultimateclaims.UltimateClaims; import me.SuperRonanCraft.BetterRTP.BetterRTP; import me.angeschossen.lands.api.integration.LandsIntegration; import me.ryanhamshire.GriefPrevention.GriefPrevention; @@ -32,6 +33,7 @@ public class RTPPluginValidation { //Safe locations depending on enabled depende boolean plugin_kingdomsx = getKingdomsx(loc); boolean plugin_hClaims = gethClaims(loc); boolean plugin_griefDefender = getGriefDefender(loc); + boolean plugin_ultimateClaims = getUltimateClaims(loc); return plugin_worldguard && plugin_griefPrevention && plugin_towny @@ -41,7 +43,8 @@ public class RTPPluginValidation { //Safe locations depending on enabled depende && plugin_residence && plugin_kingdomsx && plugin_hClaims - && plugin_griefDefender; + && plugin_griefDefender + && plugin_ultimateClaims; } // TESTED (v2.12.3) @@ -186,14 +189,29 @@ public class RTPPluginValidation { //Safe locations depending on enabled depende if (getPl().getSettings().getsDepends().isGriefDefender()) try { for (Claim claim : GriefDefender.getCore().getAllClaims()) - if (claim.contains(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())) - return false; + if (claim.contains(loc.getBlockX(), loc.getBlockY(), loc.getBlockZ())) { + result = false; + break; + } } catch (Exception e) { e.printStackTrace(); } return result; } + // NOT TESTED (3.1.0) + // UltimateClaims (v1.6.1) + // https://songoda.com/marketplace/product/ultimateclaims-the-ultimate-claiming-plugin.65 + private boolean getUltimateClaims(Location loc) { + boolean result = true; + if (getPl().getSettings().getsDepends().isUltimateClaims()) + try { + result = UltimateClaims.getInstance().getClaimManager().getClaim(loc.getChunk()) == null; + } catch (Exception e) { + e.printStackTrace(); + } + return result; + } private BetterRTP getPl() { return BetterRTP.getInstance(); diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/LangFile.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/LangFile.java index a1c27b0..f752fd9 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/LangFile.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/file/LangFile.java @@ -64,7 +64,8 @@ public class LangFile { "du.yml", //Dutch "es.yml", //Spanish "cs.yml", //Czech - "pl.yml" //Polish + "pl.yml", //Polish + "it.yml" //Italian }; private void generateDefaults() { diff --git a/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java b/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java index 9a84cb3..78442a5 100644 --- a/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java +++ b/src/main/java/me/SuperRonanCraft/BetterRTP/references/settings/SoftDepends.java @@ -18,6 +18,7 @@ public class SoftDepends { private boolean respect_kingdomsx = false; private boolean respect_hClaims = false; private boolean respect_griefDefender = false; + private boolean respect_ultimateClaims = false; //RETURNABLES private boolean worldguard = false; private boolean griefprevention = false; @@ -29,6 +30,7 @@ public class SoftDepends { private boolean kingdomsx = false; private boolean hClaims = false; private boolean griefDefender = false; + private boolean ultimateClaims = false; public boolean isWorldguard() { return worldguard; @@ -70,6 +72,10 @@ public class SoftDepends { return griefDefender; } + public boolean isUltimateClaims() { + return ultimateClaims; + } + void load() { FileBasics.FILETYPE config = BetterRTP.getInstance().getFiles().getType(FileBasics.FILETYPE.CONFIG); String pre = "Settings.Respect."; @@ -83,6 +89,7 @@ public class SoftDepends { respect_kingdomsx = config.getBoolean( pre + "KingdomsX"); respect_hClaims = config.getBoolean( pre + "hClaims"); respect_griefDefender = config.getBoolean( pre + "GriefDefender"); + respect_ultimateClaims = config.getBoolean( pre + "UltimateClaims"); registerWorldguard(); registerGriefPrevention(); registerTowny(); @@ -93,6 +100,7 @@ public class SoftDepends { registerKingdomsX(); registerClaimAPIPandomim(); registerGriefDefender(); + registerUltimateClaims(); } public void registerWorldguard() { @@ -155,6 +163,12 @@ public class SoftDepends { debug("Respecting `GriefDefender` was " + (griefDefender ? "SUCCESSFULLY" : "NOT") + " registered"); } + public void registerUltimateClaims() { + ultimateClaims = respect_ultimateClaims && Bukkit.getPluginManager().isPluginEnabled("UltimateClaims"); + if (respect_ultimateClaims) + debug("Respecting `UltimateClaims` was " + (ultimateClaims ? "SUCCESSFULLY" : "NOT") + " registered"); + } + private void debug(String str) { if (BetterRTP.getInstance().getSettings().debug) BetterRTP.getInstance().getLogger().log(Level.INFO, str); diff --git a/src/main/resources/config.yml b/src/main/resources/config.yml index de6eacd..c26e4b4 100644 --- a/src/main/resources/config.yml +++ b/src/main/resources/config.yml @@ -25,6 +25,9 @@ Settings: hClaims: false ## Respect GriefDefender areas (https://www.spigotmc.org/resources/griefdefender.68900/) GriefDefender: false + ## Respect UltimateClaims areas (https://songoda.com/marketplace/product/ultimateclaims-the-ultimate-claiming-plugin.65) + UltimateClaims: false + ## Output to console some debugging info Debugger: false ## Amount of chunks to preload around a safe location diff --git a/src/main/resources/locations.yml b/src/main/resources/locations.yml index 26e0786..656beb0 100644 --- a/src/main/resources/locations.yml +++ b/src/main/resources/locations.yml @@ -6,8 +6,9 @@ # CenterY: 150 # MaxRadius: 100 # MinRadius: 5 -Settings: - Enabled: false + +Enabled: false + Locations: - main_loc: World: world diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 368d81a..b306451 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,5 +1,5 @@ main: me.SuperRonanCraft.BetterRTP.BetterRTP -version: '3.1.0' +version: '3.1.1' name: BetterRTP author: SuperRonanCraft softdepend: @@ -15,6 +15,7 @@ softdepend: - Kingdoms - hClaims - GriefDefender + - UltimateClaims api-version: '1.13' commands: