Added FabledSkyBlock integration in AntigriefManager

This commit is contained in:
Kapitowa
2022-08-02 18:33:18 +03:00
parent a526f51780
commit b003ec96f7
3 changed files with 101 additions and 0 deletions

View File

@@ -93,6 +93,7 @@ import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefRPGHorses
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefSuperiorSkyblock2
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefTowny
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefWorldGuard
import com.willfp.eco.internal.spigot.integrations.antigrief.AntigriefFabledSkyBlock
import com.willfp.eco.internal.spigot.integrations.customentities.CustomEntitiesMythicMobs
import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsCustomCrafting
import com.willfp.eco.internal.spigot.integrations.customitems.CustomItemsExecutableItems
@@ -264,6 +265,7 @@ abstract class EcoSpigotPlugin : EcoPlugin() {
IntegrationLoader("IridiumSkyblock") { AntigriefManager.register(AntigriefIridiumSkyblock()) },
IntegrationLoader("DeluxeCombat") { AntigriefManager.register(AntigriefDeluxeCombat()) },
IntegrationLoader("SuperiorSkyblock2") { AntigriefManager.register(AntigriefSuperiorSkyblock2()) },
IntegrationLoader("FabledSkyBlock") { AntigriefManager.register(AntigriefFabledSkyBlock()) },
IntegrationLoader("BentoBox") { AntigriefManager.register(AntigriefBentoBox()) },
IntegrationLoader("WorldGuard") { AntigriefManager.register(AntigriefWorldGuard()) },
IntegrationLoader("GriefPrevention") { AntigriefManager.register(AntigriefGriefPrevention()) },

View File

@@ -0,0 +1,98 @@
package com.willfp.eco.internal.spigot.integrations.antigrief
import com.songoda.skyblock.SkyBlock
import com.willfp.eco.core.integrations.antigrief.AntigriefIntegration
import org.bukkit.Location
import org.bukkit.block.Block
import org.bukkit.entity.LivingEntity
import org.bukkit.entity.Monster
import org.bukkit.entity.Player
class AntigriefFabledSkyBlock : AntigriefIntegration {
override fun getPluginName(): String {
return "FabledSkyBlock"
}
override fun canBreakBlock(player: Player, block: Block): Boolean {
val skyblock = SkyBlock.getInstance()
val island = skyblock.islandManager.getIslandAtLocation(block.location) ?: return true
if (!player.hasPermission("fabledskyblock.bypass.destroy")) {
return false
}
if (!skyblock.permissionManager.hasPermission(island, "Destroy", island.getRole(player))) {
return false
}
return true
}
override fun canCreateExplosion(player: Player, location: Location): Boolean {
val skyblock = SkyBlock.getInstance()
val island = skyblock.islandManager.getIslandAtLocation(location) ?: return true
if (!player.hasPermission("fabledskyblock.bypass.explosions")) {
return false
}
if (!skyblock.permissionManager.hasPermission(island, "Explosions", island.getRole(player))) {
return false
}
return true
}
override fun canPlaceBlock(player: Player, block: Block): Boolean {
val skyblock = SkyBlock.getInstance()
val island = skyblock.islandManager.getIslandAtLocation(block.location) ?: return true
if (!player.hasPermission("fabledskyblock.bypass.place")) {
return false
}
if (!skyblock.permissionManager.hasPermission(island, "Place", island.getRole(player))) {
return false
}
return true
}
override fun canInjure(player: Player, victim: LivingEntity): Boolean {
val skyblock = SkyBlock.getInstance()
val island = SkyBlock.getInstance().islandManager.getIslandAtLocation(victim.location) ?: return true
if (victim is Player) return skyblock.permissionManager.hasPermission(island, "PvP", island.getRole(player))
val islandPermission = when (victim) {
is Monster -> "MonsterHurting"
else -> "MobHurting"
}
if (!skyblock.permissionManager.hasPermission(island, islandPermission, island.getRole(player))) {
return false
}
return true
}
override fun canPickupItem(player: Player, location: Location): Boolean {
val skyblock = SkyBlock.getInstance()
val island = SkyBlock.getInstance().islandManager.getIslandAtLocation(location) ?: return true
if (!player.hasPermission("fabledskyblock.bypass.itempickup")) {
return false
}
if (!skyblock.permissionManager.hasPermission(island, "ItemPickup", island.getRole(player))) {
return false
}
return true
}
}