Add itemsadder support

This commit is contained in:
TomTom 2024-02-07 17:51:07 +01:00
parent 8f1260f4ad
commit ee7726100c
4 changed files with 34 additions and 0 deletions

View File

@ -122,6 +122,7 @@ allprojects {
compileOnly 'com.github.angeschossen:LandsAPI:6.29.12'
compileOnly 'com.intellectualsites.plotsquared:plotsquared-core:7.0.0-rc.4'
compileOnly 'com.intellectualsites.plotsquared:plotsquared-bukkit:7.0.0-rc.4'
compileOnly 'com.github.LoneDev6:api-itemsadder:3.6.1'
implementation platform('com.intellectualsites.bom:bom-newest:1.35')
implementation("com.artillexstudios.axapi:axapi:1.4.23")
implementation("net.byteflux:libby-bukkit:1.3.0")

View File

@ -35,6 +35,7 @@ class Integrations : Integrations {
private var economyIntegration: EconomyIntegration? = null
private val protectionIntegrations = com.artillexstudios.axminions.integrations.protection.ProtectionIntegrations()
internal var kGeneratorsIntegration = false
internal var itemsAdderIntegration = false
override fun getStackerIntegration(): StackerIntegration {
return stackerIntegration
@ -164,6 +165,12 @@ class Integrations : Integrations {
Bukkit.getConsoleSender()
.sendMessage(StringUtils.formatToString("<#33FF33>[AxMinions] Hooked into KGenerators!"))
}
if (Bukkit.getPluginManager().getPlugin("ItemsAdder") != null) {
itemsAdderIntegration = true
Bukkit.getConsoleSender()
.sendMessage(StringUtils.formatToString("<#33FF33>[AxMinions] Hooked into ItemsAdder!"))
}
}
override fun register(integration: Integration) {

View File

@ -8,6 +8,7 @@ import com.artillexstudios.axminions.api.utils.MinionUtils
import com.artillexstudios.axminions.api.utils.fastFor
import com.artillexstudios.axminions.api.warnings.Warnings
import com.artillexstudios.axminions.minions.MinionTicker
import dev.lone.itemsadder.api.CustomBlock
import kotlin.math.roundToInt
import org.bukkit.Material
import org.bukkit.block.data.Ageable
@ -56,6 +57,17 @@ class FarmerMinionType : MinionType("farmer", AxMinionsPlugin.INSTANCE.getResour
LocationUtils.getAllBlocksInRadius(minion.getLocation(), minion.getRange(), false).fastFor { location ->
val block = location.block
if (AxMinionsPlugin.integrations.itemsAdderIntegration) {
val customBlock = CustomBlock.byAlreadyPlaced(block)
if (customBlock !== null) {
val blockDrops = customBlock.getLoot(minion.getTool(), false)
size += blockDrops.size
drops.addAll(blockDrops)
customBlock.remove()
return@fastFor
}
}
when (block.type) {
Material.CACTUS, Material.SUGAR_CANE, Material.BAMBOO -> {
MinionUtils.getPlant(block).fastFor {

View File

@ -10,6 +10,7 @@ import com.artillexstudios.axminions.api.utils.MinionUtils
import com.artillexstudios.axminions.api.utils.fastFor
import com.artillexstudios.axminions.api.warnings.Warnings
import com.artillexstudios.axminions.minions.MinionTicker
import dev.lone.itemsadder.api.CustomBlock
import java.util.Locale
import java.util.concurrent.ExecutorService
import java.util.concurrent.Executors
@ -185,6 +186,19 @@ class MinerMinionType : MinionType("miner", AxMinionsPlugin.INSTANCE.getResource
}
}
if (AxMinionsPlugin.integrations.itemsAdderIntegration) {
val block = CustomBlock.byAlreadyPlaced(location.block)
if (block !== null) {
val drops = block.getLoot(minion.getTool(), false)
drops.forEach {
amount += it.amount
}
minion.addToContainerOrDrop(drops)
block.remove()
return@fastFor
}
}
val isStoneGenerator = MinionUtils.isStoneGenerator(location)
if (isStoneGenerator) {