2d09115b3a
Uses the new ANSIComponentSerializer introduced in Adventure 4.14.0 to serialize components when logging them via the ComponentLogger, or when sending messages to the console. This replaces the old solution which uses legacy jank and custom color conversions, with a new library that handles the conversion and config
46 lines
2.1 KiB
Diff
46 lines
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: MelnCat <melncatuwu@gmail.com>
|
|
Date: Fri, 12 Aug 2022 23:24:37 -0700
|
|
Subject: [PATCH] Add getDrops to BlockState
|
|
|
|
Originally added isPreferredTool to BlockData but
|
|
upstream added that.
|
|
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
|
index 3e1d36a8c65e6567ac3b78903a25d5828ab74ea5..577a352dab0f8a71558cb6dedce788e78053ef52 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockState.java
|
|
@@ -331,5 +331,33 @@ public class CraftBlockState implements BlockState {
|
|
public boolean isCollidable() {
|
|
return this.data.getBlock().hasCollision;
|
|
}
|
|
+
|
|
+ @Override
|
|
+ public java.util.Collection<org.bukkit.inventory.ItemStack> getDrops() {
|
|
+ return this.getDrops(null);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public java.util.Collection<org.bukkit.inventory.ItemStack> getDrops(org.bukkit.inventory.ItemStack item) {
|
|
+ return this.getDrops(item, null);
|
|
+ }
|
|
+
|
|
+ @Override
|
|
+ public java.util.Collection<org.bukkit.inventory.ItemStack> getDrops(org.bukkit.inventory.ItemStack item, org.bukkit.entity.Entity entity) {
|
|
+ net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
|
|
+
|
|
+ // Modelled off EntityHuman#hasBlock
|
|
+ if (item == null || !data.requiresCorrectToolForDrops() || nms.isCorrectToolForDrops(data)) {
|
|
+ return net.minecraft.world.level.block.Block.getDrops(
|
|
+ data,
|
|
+ world.getHandle(),
|
|
+ position,
|
|
+ world.getHandle().getBlockEntity(position), entity == null ? null :
|
|
+ ((org.bukkit.craftbukkit.entity.CraftEntity) entity).getHandle(), nms
|
|
+ ).stream().map(org.bukkit.craftbukkit.inventory.CraftItemStack::asBukkitCopy).toList();
|
|
+ } else {
|
|
+ return java.util.Collections.emptyList();
|
|
+ }
|
|
+ }
|
|
// Paper end
|
|
}
|