Added ability to modify items on DropQueuePushEvent

This commit is contained in:
often
2024-02-24 21:13:01 +03:00
parent 1908d9a5c2
commit dbbab8518e
2 changed files with 14 additions and 2 deletions

View File

@@ -27,7 +27,7 @@ public class DropQueuePushEvent extends PlayerEvent implements Cancellable {
/** /**
* The items. * The items.
*/ */
private final Collection<? extends ItemStack> items; private Collection<? extends ItemStack> items;
/** /**
* The xp. * The xp.
@@ -114,6 +114,15 @@ public class DropQueuePushEvent extends PlayerEvent implements Cancellable {
return items; return items;
} }
/**
* Set the items to be dropped.
*
* @param items The items.
*/
public void setItems(Collection<? extends ItemStack> items) {
this.items = items;
}
/** /**
* Get the xp to be dropped. * Get the xp to be dropped.
* *

View File

@@ -54,13 +54,16 @@ open class EcoDropQueue(val player: Player) : DropQueue() {
hasTelekinesis = false hasTelekinesis = false
} }
val pushEvent = DropQueuePushEvent(player, items, location, xp, hasTelekinesis) val pushEvent = DropQueuePushEvent(player, items.toMutableList(), location, xp, hasTelekinesis)
Bukkit.getServer().pluginManager.callEvent(pushEvent) Bukkit.getServer().pluginManager.callEvent(pushEvent)
if (pushEvent.isCancelled) { if (pushEvent.isCancelled) {
return return
} }
items.clear()
items.addAll(pushEvent.items)
val world = location.world!! val world = location.world!!
location = location.add(0.5, 0.5, 0.5) location = location.add(0.5, 0.5, 0.5)
items.removeIf { itemStack: ItemStack -> itemStack.type == Material.AIR } items.removeIf { itemStack: ItemStack -> itemStack.type == Material.AIR }