Updated KingdomsX antigrief integration

This commit is contained in:
_OfTeN_
2023-06-23 10:41:15 +03:00
parent 85c02d3402
commit 910cdaf992
2 changed files with 18 additions and 17 deletions

View File

@@ -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(