mirror of
https://gitlab.com/SamB440/rpgregions-2.git
synced 2026-01-03 22:16:18 +00:00
Implements #14
This commit is contained in:
@@ -41,6 +41,7 @@ dependencies {
|
||||
compileOnly 'org.spigotmc:spigot-api:1.13-R0.1-SNAPSHOT' // spigot
|
||||
compileOnly 'net.islandearth:languagy:2.0.0-SNAPSHOT' // languagy
|
||||
compileOnly 'net.zrips:residence:4.9.0.6' // residence
|
||||
compileOnly 'me.ryanhamshire:griefprevention:16.13.0' // griefprevention
|
||||
compileOnly project(':api')
|
||||
compileOnly project(':rpgregions')
|
||||
}
|
||||
|
||||
@@ -0,0 +1,70 @@
|
||||
package net.islandearth.rpgregions.api.integrations.griefprevention;
|
||||
|
||||
import com.bekvon.bukkit.residence.Residence;
|
||||
import com.bekvon.bukkit.residence.protection.ClaimedResidence;
|
||||
import me.ryanhamshire.GriefPrevention.Claim;
|
||||
import me.ryanhamshire.GriefPrevention.GriefPrevention;
|
||||
import net.islandearth.rpgregions.RPGRegions;
|
||||
import net.islandearth.rpgregions.api.events.RegionsEnterEvent;
|
||||
import net.islandearth.rpgregions.api.integrations.IntegrationManager;
|
||||
import net.islandearth.rpgregions.managers.data.region.ConfiguredRegion;
|
||||
import net.islandearth.rpgregions.requirements.RegionRequirement;
|
||||
import net.islandearth.rpgregions.translation.Translations;
|
||||
import org.bukkit.Bukkit;
|
||||
import org.bukkit.Location;
|
||||
import org.bukkit.World;
|
||||
import org.bukkit.entity.Player;
|
||||
import org.bukkit.event.player.PlayerMoveEvent;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class GriefPreventionIntegration implements IntegrationManager {
|
||||
|
||||
private final RPGRegions plugin;
|
||||
|
||||
public GriefPreventionIntegration(RPGRegions plugin) {
|
||||
this.plugin = plugin;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isInRegion(Location location) {
|
||||
Claim claim = GriefPrevention.instance.dataStore.getClaimAt(location, false, null);
|
||||
return claim != null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void handleMove(PlayerMoveEvent pme) {
|
||||
Player player = pme.getPlayer();
|
||||
Claim oldClaim = GriefPrevention.instance.dataStore.getClaimAt(pme.getFrom(), false, null);
|
||||
Claim claim = GriefPrevention.instance.dataStore.getClaimAt(pme.getTo(), false, null);
|
||||
if (oldClaim == null || claim == null) return;
|
||||
|
||||
List<String> stringClaim = new ArrayList<>();
|
||||
ConfiguredRegion configuredRegion = plugin.getManagers().getRegionsCache().getConfiguredRegion("" + claim.getID());
|
||||
if (configuredRegion != null && configuredRegion.getRequirements() != null) {
|
||||
for (RegionRequirement requirement : configuredRegion.getRequirements()) {
|
||||
if (!player.hasPermission("rpgregions.bypassentry") && !requirement.meetsRequirements(player)) {
|
||||
requirement.getPreventType().prevent(pme);
|
||||
Translations.CANNOT_ENTER.send(player, requirement.getText(player));
|
||||
return;
|
||||
}
|
||||
}
|
||||
}
|
||||
stringClaim.add("" + claim.getID());
|
||||
|
||||
Bukkit.getPluginManager().callEvent(new RegionsEnterEvent(player, stringClaim, !oldClaim.equals(claim)));
|
||||
}
|
||||
|
||||
@Override
|
||||
public ConfiguredRegion getPrioritisedRegion(Location location) {
|
||||
Claim claim = GriefPrevention.instance.dataStore.getClaimAt(location, false, null);
|
||||
return plugin.getManagers().getRegionsCache().getConfiguredRegions().get("" + claim.getID());
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean exists(World location, String region) {
|
||||
Claim claim = GriefPrevention.instance.dataStore.getClaim(Long.parseLong(region));
|
||||
return claim != null;
|
||||
}
|
||||
}
|
||||
@@ -9,7 +9,8 @@ import java.util.Optional;
|
||||
public enum IntegrationType {
|
||||
WORLDGUARD_LEGACY("worldguard.WorldGuardLegacyIntegration"),
|
||||
WORLDGUARD("worldguard.WorldGuardIntegration"),
|
||||
RESIDENCE("residence.ResidenceIntegration");
|
||||
RESIDENCE("residence.ResidenceIntegration"),
|
||||
GRIEFPREVENTION("griefprevention.GriefPrevention");
|
||||
|
||||
private final String path;
|
||||
|
||||
|
||||
Reference in New Issue
Block a user