19a620213f
This is a lot but basically adds a method to disable the dropping of experience and drops experience by default. This way things that require XP to be dropped manually (via modification), they can drop XP themselves when needed but without touching anywhere else that may drop xp. It should be noted this causes breakNaturally() to now drop experience.
73 Zeilen
2.0 KiB
Diff
73 Zeilen
2.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Jake Potrebic <jake.m.potrebic@gmail.com>
|
|
Date: Sun, 3 Jan 2021 17:58:25 -0800
|
|
Subject: [PATCH] Add BlockBreakBlockEvent
|
|
|
|
|
|
diff --git a/src/main/java/io/papermc/paper/event/block/BlockBreakBlockEvent.java b/src/main/java/io/papermc/paper/event/block/BlockBreakBlockEvent.java
|
|
new file mode 100644
|
|
index 0000000000000000000000000000000000000000..51129c5c90dafdba08b7f533a71448ace56381d5
|
|
--- /dev/null
|
|
+++ b/src/main/java/io/papermc/paper/event/block/BlockBreakBlockEvent.java
|
|
@@ -0,0 +1,60 @@
|
|
+package io.papermc.paper.event.block;
|
|
+
|
|
+import org.bukkit.block.Block;
|
|
+import org.bukkit.event.HandlerList;
|
|
+import org.bukkit.event.block.BlockEvent;
|
|
+import org.bukkit.event.block.BlockExpEvent;
|
|
+import org.bukkit.inventory.ItemStack;
|
|
+import org.jetbrains.annotations.NotNull;
|
|
+
|
|
+import java.util.List;
|
|
+
|
|
+/**
|
|
+ * Called when a block forces another block to break and drop items.
|
|
+ * <p>
|
|
+ * Currently called for piston's and liquid flows.
|
|
+ */
|
|
+public class BlockBreakBlockEvent extends BlockExpEvent {
|
|
+
|
|
+ private static final HandlerList HANDLER_LIST = new HandlerList();
|
|
+
|
|
+ private final List<ItemStack> drops;
|
|
+ private final Block source;
|
|
+
|
|
+ public BlockBreakBlockEvent(@NotNull Block block, @NotNull Block source, @NotNull List<ItemStack> drops) {
|
|
+ super(block, 0);
|
|
+ this.source = source;
|
|
+ this.drops = drops;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Get the drops of this event
|
|
+ *
|
|
+ * @return the drops
|
|
+ */
|
|
+ @NotNull
|
|
+ public List<ItemStack> getDrops() {
|
|
+ return drops;
|
|
+ }
|
|
+
|
|
+ /**
|
|
+ * Gets the block that cause this (e.g. a piston, or adjacent liquid)
|
|
+ *
|
|
+ * @return the source
|
|
+ */
|
|
+ @NotNull
|
|
+ public Block getSource() {
|
|
+ return source;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ @Override
|
|
+ public HandlerList getHandlers() {
|
|
+ return HANDLER_LIST;
|
|
+ }
|
|
+
|
|
+ @NotNull
|
|
+ public static HandlerList getHandlerList() {
|
|
+ return HANDLER_LIST;
|
|
+ }
|
|
+}
|