Removed streams from hoppers and also fixed a mistake in the logic. When this patch was ported to 1.14/1.15, a line of code was put in the wrong place which disabled a significant portion of the improvement. Replaced usages of streams in isEmpty and itemstack checks Replaced usage of streams in pulling loop Replaced usage of streams in Lootable Inventory isEmpty() check Only check for refilling Lootable Inventory when accessing first slot, not all All of these in general were pretty significant hits, so this single commit is going to cause tacos to magically appear in front of you every day. 🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮🌮 Nom Nom Nom If you hate taco's, you're not allowed to use this improvement. Also ignore the renames, pulled a lot of PR's.
30 lines
1.4 KiB
Diff
30 lines
1.4 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: kickash32 <kickash32@gmail.com>
|
|
Date: Sat, 9 May 2020 02:01:48 -0400
|
|
Subject: [PATCH] Ensure EntityRaider respects game and entity rules for
|
|
picking up items
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityRaider.java b/src/main/java/net/minecraft/server/EntityRaider.java
|
|
index c0b7b5f072b0b3777b2042b0b80f3bb22e617b11..ee1fcb11afbc3efa42ce0170b72da3fd4460b95b 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityRaider.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityRaider.java
|
|
@@ -486,7 +486,7 @@ public abstract class EntityRaider extends EntityMonsterPatrolling {
|
|
|
|
public class b<T extends EntityRaider> extends PathfinderGoal {
|
|
|
|
- private final T b;
|
|
+ private final T b; private T getRaider() { return b; } // Paper - obfhelper
|
|
|
|
public b(T entityraider) { // CraftBukkit - decompile error
|
|
this.b = entityraider;
|
|
@@ -495,6 +495,8 @@ public abstract class EntityRaider extends EntityMonsterPatrolling {
|
|
|
|
@Override
|
|
public boolean a() {
|
|
+ if (!getRaider().world.getGameRules().getBoolean(GameRules.MOB_GRIEFING) || !getRaider().canPickupLoot()) return false; // Paper - respect game and entity rules for picking up items
|
|
+
|
|
Raid raid = this.b.eE();
|
|
|
|
if (this.b.eF() && !this.b.eE().a() && this.b.es() && !ItemStack.matches(this.b.getEquipment(EnumItemSlot.HEAD), Raid.s())) {
|