Updated KingdomsX antigrief integration
This commit is contained in:
@@ -6,11 +6,11 @@ import org.bukkit.block.Block
|
|||||||
import org.bukkit.entity.LivingEntity
|
import org.bukkit.entity.LivingEntity
|
||||||
import org.bukkit.entity.Player
|
import org.bukkit.entity.Player
|
||||||
import org.kingdoms.constants.group.Kingdom
|
import org.kingdoms.constants.group.Kingdom
|
||||||
import org.kingdoms.constants.group.model.relationships.StandardRelationAttribute
|
|
||||||
import org.kingdoms.constants.land.Land
|
import org.kingdoms.constants.land.Land
|
||||||
|
import org.kingdoms.constants.land.location.SimpleChunkLocation
|
||||||
import org.kingdoms.constants.player.KingdomPlayer
|
import org.kingdoms.constants.player.KingdomPlayer
|
||||||
import org.kingdoms.constants.player.StandardKingdomPermission
|
|
||||||
import org.kingdoms.managers.PvPManager
|
import org.kingdoms.managers.PvPManager
|
||||||
|
import org.kingdoms.managers.land.BuildingProcessor
|
||||||
|
|
||||||
class AntigriefKingdoms : AntigriefIntegration {
|
class AntigriefKingdoms : AntigriefIntegration {
|
||||||
override fun canBreakBlock(
|
override fun canBreakBlock(
|
||||||
@@ -21,34 +21,35 @@ class AntigriefKingdoms : AntigriefIntegration {
|
|||||||
if (kp.isAdmin) {
|
if (kp.isAdmin) {
|
||||||
return true
|
return true
|
||||||
}
|
}
|
||||||
val kingdom: Kingdom = kp.kingdom ?: return false
|
return BuildingProcessor(
|
||||||
val land = Land.getLand(block) ?: return true
|
player,
|
||||||
val permission = if (land.isNexusLand) {
|
kp,
|
||||||
StandardKingdomPermission.NEXUS_BUILD
|
SimpleChunkLocation.of(block),
|
||||||
} else StandardKingdomPermission.BUILD
|
|
||||||
|
|
||||||
return if (!kp.hasPermission(permission)) {
|
|
||||||
false
|
false
|
||||||
} else kingdom.hasAttribute(land.kingdom, StandardRelationAttribute.BUILD)
|
).process().isSuccessful
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun canCreateExplosion(
|
override fun canCreateExplosion(
|
||||||
player: Player,
|
player: Player,
|
||||||
location: Location
|
location: Location
|
||||||
): Boolean {
|
): Boolean {
|
||||||
val land = Land.getLand(location) ?: return true
|
return canBreakBlock(player, location.block)
|
||||||
if (!land.isClaimed) {
|
|
||||||
return true
|
|
||||||
}
|
|
||||||
val kingdom: Kingdom = land.kingdom
|
|
||||||
return kingdom.isMember(player)
|
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun canPlaceBlock(
|
override fun canPlaceBlock(
|
||||||
player: Player,
|
player: Player,
|
||||||
block: Block
|
block: Block
|
||||||
): Boolean {
|
): Boolean {
|
||||||
return canBreakBlock(player, block)
|
val kp: KingdomPlayer = KingdomPlayer.getKingdomPlayer(player)
|
||||||
|
if (kp.isAdmin) {
|
||||||
|
return true
|
||||||
|
}
|
||||||
|
return BuildingProcessor(
|
||||||
|
player,
|
||||||
|
kp,
|
||||||
|
SimpleChunkLocation.of(block),
|
||||||
|
true
|
||||||
|
).process().isSuccessful
|
||||||
}
|
}
|
||||||
|
|
||||||
override fun canInjure(
|
override fun canInjure(
|
||||||
|
|||||||
Binary file not shown.
Reference in New Issue
Block a user