9
0
mirror of https://github.com/Auxilor/EcoSkills.git synced 2026-01-06 15:51:52 +00:00

Fix BountifulHarvest

This commit is contained in:
TomTom
2022-07-21 16:16:33 +02:00
committed by GitHub
parent 5348f3b5d5
commit 91126da870

View File

@@ -1,58 +1,50 @@
package com.willfp.ecoskills.effects.effects
import com.willfp.ecoskills.effects.DropMultiplierEffect
import org.bukkit.Location
import org.bukkit.Material
import org.bukkit.block.data.Ageable
import org.bukkit.event.EventHandler
import org.bukkit.event.EventPriority
import org.bukkit.event.block.BlockBreakEvent
import org.bukkit.event.block.BlockDropItemEvent
class EffectBountifulHarvest : DropMultiplierEffect(
"bountiful_harvest"
) {
private val blockMap = mutableMapOf<Location, Material>()
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
fun onBreak(event: BlockBreakEvent) {
blockMap[event.block.location] = event.block.type
this.plugin.scheduler.run {
blockMap.remove(event.block.location)
}
}
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
fun handle(event: BlockDropItemEvent) {
if (this.config.getStrings("disabled-in-worlds").contains(event.block.world.name)) {
return
}
val mat = blockMap[event.block.location] ?: return
val player = event.player
val block = event.block
val data = block.blockData
if (data !is Ageable) {
return
}
if (mat == Material.SUGAR_CANE || mat == Material.SWEET_BERRY_BUSH || mat == Material.CACTUS || mat == Material.BAMBOO) {
return
}
if (data.age != data.maximumAge) {
return
}
if (!config.getStrings("on-blocks").contains(mat.name.lowercase())) {
return
}
this.handleDropBonus(player, event.items.map { it.itemStack.clone() })
}
package com.willfp.ecoskills.effects.effects
import com.willfp.ecoskills.effects.DropMultiplierEffect
import org.bukkit.Location
import org.bukkit.Material
import org.bukkit.block.data.Ageable
import org.bukkit.event.EventHandler
import org.bukkit.event.EventPriority
import org.bukkit.event.block.BlockBreakEvent
import org.bukkit.event.block.BlockDropItemEvent
class EffectBountifulHarvest : DropMultiplierEffect(
"bountiful_harvest"
) {
private val blockMap = mutableMapOf<Location, Material>()
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
fun onBreak(event: BlockBreakEvent) {
blockMap[event.block.location] = event.block.type
this.plugin.scheduler.runLater(5) {
blockMap.remove(event.block.location)
}
}
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
fun handle(event: BlockDropItemEvent) {
if (this.config.getStrings("disabled-in-worlds").contains(event.block.world.name)) {
return
}
val mat = blockMap[event.block.location] ?: return
val state = (event.blockState.blockData as Ageable)
if (state.age != state.maximumAge) {
return
}
if (mat == Material.SUGAR_CANE || mat == Material.SWEET_BERRY_BUSH || mat == Material.CACTUS || mat == Material.BAMBOO) {
return
}
if (!config.getStrings("on-blocks").contains(mat.name.lowercase())) {
return
}
this.handleDropBonus(event.player, event.items.map { it.itemStack.clone() })
}
}