From de5524ad9ab8754d71c64481cf29520654d991a9 Mon Sep 17 00:00:00 2001 From: FN-FAL113 Date: Sat, 5 Mar 2022 11:51:45 +0800 Subject: [PATCH 1/7] Fix pedestal bug --- .../listeners/AncientAltarListener.java | 13 ++++++++++++- 1 file changed, 12 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java index 7c2a865a0..aeae13ef9 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java @@ -156,8 +156,19 @@ public class AncientAltarListener implements Listener { Slimefun.runSync(() -> removedItems.remove(uuid), 30L); entity.remove(); - p.getInventory().addItem(pedestalItem.getOriginalItemStack(entity)); p.playSound(pedestal.getLocation(), Sound.ENTITY_ITEM_PICKUP, 1F, 1F); + + /* + * Fixes #3476 + * Drop the item instead if the player's + * inventory is full + */ + if (p.getInventory().firstEmpty() != -1) { + p.getInventory().addItem(pedestalItem.getOriginalItemStack(entity)); + + } else { + p.getWorld().dropItem(pedestal.getLocation().add(0, 1, 0), pedestalItem.getOriginalItemStack(entity)); + } } } From 9ea414bd04d08049585482f3705465fd7ef9c72f Mon Sep 17 00:00:00 2001 From: FN-FAL113 Date: Mon, 7 Mar 2022 08:39:19 +0800 Subject: [PATCH 2/7] Update AncientAltarListener.java --- .../slimefun4/implementation/listeners/AncientAltarListener.java | 1 - 1 file changed, 1 deletion(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java index aeae13ef9..44f940a4f 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java @@ -165,7 +165,6 @@ public class AncientAltarListener implements Listener { */ if (p.getInventory().firstEmpty() != -1) { p.getInventory().addItem(pedestalItem.getOriginalItemStack(entity)); - } else { p.getWorld().dropItem(pedestal.getLocation().add(0, 1, 0), pedestalItem.getOriginalItemStack(entity)); } From a11ca349fa9bbd30b8d780976af3c5cb2726c58c Mon Sep 17 00:00:00 2001 From: FN-FAL113 Date: Tue, 8 Mar 2022 10:06:58 +0800 Subject: [PATCH 3/7] Use the return value of addItem as basis for dropping left overs --- .../listeners/AncientAltarListener.java | 12 ++++++------ 1 file changed, 6 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java index 44f940a4f..abfdfee54 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java @@ -160,13 +160,13 @@ public class AncientAltarListener implements Listener { /* * Fixes #3476 - * Drop the item instead if the player's - * inventory is full + * Drop the item instead if the player's inventory is full and + * no stack space left else add remaining items from the returned map value */ - if (p.getInventory().firstEmpty() != -1) { - p.getInventory().addItem(pedestalItem.getOriginalItemStack(entity)); - } else { - p.getWorld().dropItem(pedestal.getLocation().add(0, 1, 0), pedestalItem.getOriginalItemStack(entity)); + for (Map.Entry stackEntry : p.getInventory().addItem(pedestalItem.getOriginalItemStack(entity)).entrySet()) { + if (stackEntry != null) { + p.getWorld().dropItem(pedestal.getLocation().add(0, 1, 0), stackEntry.getValue().clone()); + } } } } From 82941dd8e89bbfcd87bcfef6749c2786453a1647 Mon Sep 17 00:00:00 2001 From: FN-FAL113 Date: Tue, 8 Mar 2022 10:10:54 +0800 Subject: [PATCH 4/7] fix a little typo from a comment --- .../implementation/listeners/AncientAltarListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java index abfdfee54..19284fd6d 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java @@ -115,7 +115,7 @@ public class AncientAltarListener implements Listener { return; } - // Make altarinuse simply because that was the last block clicked. + // Make altar in use simply because that was the last block clicked. altarsInUse.add(b.getLocation()); e.cancel(); From f657016aa8764daaa5a9dac0421ece4f6128d308 Mon Sep 17 00:00:00 2001 From: FN-FAL113 Date: Tue, 8 Mar 2022 10:12:05 +0800 Subject: [PATCH 5/7] Update fix comment --- .../implementation/listeners/AncientAltarListener.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java index 19284fd6d..0c42be294 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java @@ -161,7 +161,7 @@ public class AncientAltarListener implements Listener { /* * Fixes #3476 * Drop the item instead if the player's inventory is full and - * no stack space left else add remaining items from the returned map value + * no stack space left else add the item in the inventory */ for (Map.Entry stackEntry : p.getInventory().addItem(pedestalItem.getOriginalItemStack(entity)).entrySet()) { if (stackEntry != null) { From de36da446f1c1204e26ab4388ad6af2efffa202e Mon Sep 17 00:00:00 2001 From: FN-FAL113 Date: Tue, 8 Mar 2022 21:05:52 +0800 Subject: [PATCH 6/7] assign return value to a variable and loop values --- .../implementation/listeners/AncientAltarListener.java | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java index 0c42be294..8ed9f26f8 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java @@ -161,12 +161,12 @@ public class AncientAltarListener implements Listener { /* * Fixes #3476 * Drop the item instead if the player's inventory is full and - * no stack space left else add the item in the inventory + * no stack space left else add remaining items from the returned map value */ - for (Map.Entry stackEntry : p.getInventory().addItem(pedestalItem.getOriginalItemStack(entity)).entrySet()) { - if (stackEntry != null) { - p.getWorld().dropItem(pedestal.getLocation().add(0, 1, 0), stackEntry.getValue().clone()); - } + Map remainingItemMap = p.getInventory().addItem(pedestalItem.getOriginalItemStack(entity)); + + for (ItemStack item : remainingItemMap.values()) { + p.getWorld().dropItem(pedestal.getLocation().add(0, 1, 0), item.clone()); } } } From 3c0dadef337eb12fe6857a3a782c2925e70de899 Mon Sep 17 00:00:00 2001 From: FN-FAL113 Date: Wed, 9 Mar 2022 08:21:20 +0800 Subject: [PATCH 7/7] Added missing map import --- .../slimefun4/implementation/listeners/AncientAltarListener.java | 1 + 1 file changed, 1 insertion(+) diff --git a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java index 8ed9f26f8..4187d19b6 100644 --- a/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java +++ b/src/main/java/io/github/thebusybiscuit/slimefun4/implementation/listeners/AncientAltarListener.java @@ -6,6 +6,7 @@ import java.util.List; import java.util.Optional; import java.util.Set; import java.util.UUID; +import java.util.Map; import javax.annotation.Nonnull; import javax.annotation.ParametersAreNonnullByDefault;