Added support for BentoBox
This commit is contained in:
@@ -30,7 +30,12 @@ import com.willfp.eco.spigot.data.PlayerBlockListener
|
||||
import com.willfp.eco.spigot.data.storage.DataHandler
|
||||
import com.willfp.eco.spigot.data.storage.MySQLDataHandler
|
||||
import com.willfp.eco.spigot.data.storage.YamlDataHandler
|
||||
import com.willfp.eco.spigot.display.*
|
||||
import com.willfp.eco.spigot.display.PacketAutoRecipe
|
||||
import com.willfp.eco.spigot.display.PacketChat
|
||||
import com.willfp.eco.spigot.display.PacketOpenWindowMerchant
|
||||
import com.willfp.eco.spigot.display.PacketSetCreativeSlot
|
||||
import com.willfp.eco.spigot.display.PacketSetSlot
|
||||
import com.willfp.eco.spigot.display.PacketWindowItems
|
||||
import com.willfp.eco.spigot.display.frame.clearFrames
|
||||
import com.willfp.eco.spigot.drops.CollatedRunnable
|
||||
import com.willfp.eco.spigot.eventlisteners.EntityDeathByEntityListeners
|
||||
@@ -41,8 +46,22 @@ import com.willfp.eco.spigot.eventlisteners.armor.ArmorListener
|
||||
import com.willfp.eco.spigot.gui.GUIListener
|
||||
import com.willfp.eco.spigot.integrations.afk.AFKIntegrationCMI
|
||||
import com.willfp.eco.spigot.integrations.afk.AFKIntegrationEssentials
|
||||
import com.willfp.eco.spigot.integrations.anticheat.*
|
||||
import com.willfp.eco.spigot.integrations.antigrief.*
|
||||
import com.willfp.eco.spigot.integrations.anticheat.AnticheatAAC
|
||||
import com.willfp.eco.spigot.integrations.anticheat.AnticheatAlice
|
||||
import com.willfp.eco.spigot.integrations.anticheat.AnticheatMatrix
|
||||
import com.willfp.eco.spigot.integrations.anticheat.AnticheatNCP
|
||||
import com.willfp.eco.spigot.integrations.anticheat.AnticheatSpartan
|
||||
import com.willfp.eco.spigot.integrations.anticheat.AnticheatVulcan
|
||||
import com.willfp.eco.spigot.integrations.antigrief.AntigriefBentoBox
|
||||
import com.willfp.eco.spigot.integrations.antigrief.AntigriefCombatLogXV10
|
||||
import com.willfp.eco.spigot.integrations.antigrief.AntigriefCombatLogXV11
|
||||
import com.willfp.eco.spigot.integrations.antigrief.AntigriefFactionsUUID
|
||||
import com.willfp.eco.spigot.integrations.antigrief.AntigriefGriefPrevention
|
||||
import com.willfp.eco.spigot.integrations.antigrief.AntigriefKingdoms
|
||||
import com.willfp.eco.spigot.integrations.antigrief.AntigriefLands
|
||||
import com.willfp.eco.spigot.integrations.antigrief.AntigriefSuperiorSkyblock2
|
||||
import com.willfp.eco.spigot.integrations.antigrief.AntigriefTowny
|
||||
import com.willfp.eco.spigot.integrations.antigrief.AntigriefWorldGuard
|
||||
import com.willfp.eco.spigot.integrations.customitems.CustomItemsHeadDatabase
|
||||
import com.willfp.eco.spigot.integrations.customitems.CustomItemsItemsAdder
|
||||
import com.willfp.eco.spigot.integrations.customitems.CustomItemsOraxen
|
||||
@@ -155,6 +174,7 @@ abstract class EcoSpigotPlugin : EcoPlugin(
|
||||
return listOf(
|
||||
// AntiGrief
|
||||
IntegrationLoader("SuperiorSkyblock2") { AntigriefManager.register(AntigriefSuperiorSkyblock2()) },
|
||||
IntegrationLoader("BentoBox") { AntigriefManager.register(AntigriefBentoBox()) },
|
||||
IntegrationLoader("WorldGuard") { AntigriefManager.register(AntigriefWorldGuard()) },
|
||||
IntegrationLoader("GriefPrevention") { AntigriefManager.register(AntigriefGriefPrevention()) },
|
||||
IntegrationLoader("FactionsUUID") { AntigriefManager.register(AntigriefFactionsUUID()) },
|
||||
|
||||
@@ -0,0 +1,72 @@
|
||||
package com.willfp.eco.spigot.integrations.antigrief
|
||||
|
||||
import com.willfp.eco.core.integrations.antigrief.AntigriefWrapper
|
||||
import org.bukkit.Location
|
||||
import org.bukkit.World
|
||||
import org.bukkit.block.Block
|
||||
import org.bukkit.entity.LivingEntity
|
||||
import org.bukkit.entity.Player
|
||||
import world.bentobox.bentobox.BentoBox
|
||||
import world.bentobox.bentobox.api.user.User
|
||||
import world.bentobox.bentobox.lists.Flags
|
||||
|
||||
class AntigriefBentoBox : AntigriefWrapper {
|
||||
override fun canBreakBlock(
|
||||
player: Player,
|
||||
block: Block
|
||||
): Boolean {
|
||||
val island = BentoBox.getInstance().islandsManager.getIslandAt(block.location).orElse(null) ?: return true
|
||||
return island.isAllowed(User.getInstance(player), Flags.BREAK_BLOCKS)
|
||||
}
|
||||
|
||||
override fun canCreateExplosion(
|
||||
player: Player,
|
||||
location: Location
|
||||
): Boolean {
|
||||
val island = BentoBox.getInstance().islandsManager.getIslandAt(location).orElse(null) ?: return true
|
||||
return island.isAllowed(User.getInstance(player), Flags.TNT_DAMAGE)
|
||||
}
|
||||
|
||||
override fun canPlaceBlock(
|
||||
player: Player,
|
||||
block: Block
|
||||
): Boolean {
|
||||
val island = BentoBox.getInstance().islandsManager.getIslandAt(block.location).orElse(null) ?: return true
|
||||
return island.isAllowed(User.getInstance(player), Flags.PLACE_BLOCKS)
|
||||
}
|
||||
|
||||
override fun canInjure(
|
||||
player: Player,
|
||||
victim: LivingEntity
|
||||
): Boolean {
|
||||
val island = BentoBox.getInstance().islandsManager.getIslandAt(victim.location).orElse(null) ?: return true
|
||||
return if (victim is Player) {
|
||||
island.isAllowed(
|
||||
User.getInstance(player), when (victim.world.environment) {
|
||||
World.Environment.NORMAL -> Flags.PVP_OVERWORLD
|
||||
World.Environment.NETHER -> Flags.PVP_NETHER
|
||||
World.Environment.THE_END -> Flags.PVP_END
|
||||
else -> Flags.PVP_OVERWORLD
|
||||
}
|
||||
)
|
||||
} else {
|
||||
island.isAllowed(User.getInstance(player), Flags.HURT_ANIMALS)
|
||||
}
|
||||
}
|
||||
|
||||
override fun getPluginName(): String {
|
||||
return "BentoBox"
|
||||
}
|
||||
|
||||
override fun equals(other: Any?): Boolean {
|
||||
if (other !is AntigriefWrapper) {
|
||||
return false
|
||||
}
|
||||
|
||||
return other.pluginName == this.pluginName
|
||||
}
|
||||
|
||||
override fun hashCode(): Int {
|
||||
return this.pluginName.hashCode()
|
||||
}
|
||||
}
|
||||
@@ -32,6 +32,7 @@ softdepend:
|
||||
- CMI
|
||||
- Essentials
|
||||
- Vault
|
||||
- BentoBox
|
||||
libraries:
|
||||
- 'org.reflections:reflections:0.9.12'
|
||||
- 'org.apache.maven:maven-artifact:3.0.3'
|
||||
|
||||
Reference in New Issue
Block a user