geforkt von Mirrors/Paper
29 Zeilen
1.6 KiB
Diff
29 Zeilen
1.6 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/world/entity/raid/Raider.java b/src/main/java/net/minecraft/world/entity/raid/Raider.java
|
|
index 37f4becb39d6d4c13aa0c3901ed123083518cdbf..49028fef0706a4413e446c337750f31e756e8de1 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/raid/Raider.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/raid/Raider.java
|
|
@@ -305,7 +305,7 @@ public abstract class Raider extends PatrollingMonster {
|
|
|
|
public class ObtainRaidLeaderBannerGoal<T extends Raider> extends Goal {
|
|
|
|
- private final T mob;
|
|
+ private final T mob; private T getRaider() { return mob; } // Paper - obfhelper
|
|
|
|
public ObtainRaidLeaderBannerGoal(T entityraider) { // CraftBukkit - decompile error
|
|
this.mob = entityraider;
|
|
@@ -314,6 +314,7 @@ public abstract class Raider extends PatrollingMonster {
|
|
|
|
@Override
|
|
public boolean canUse() {
|
|
+ if (!getRaider().level.getGameRules().getBoolean(GameRules.RULE_MOBGRIEFING) || !getRaider().canPickUpLoot()) return false; // Paper - respect game and entity rules for picking up items
|
|
Raid raid = this.mob.getCurrentRaid();
|
|
|
|
if (this.mob.hasActiveRaid() && !this.mob.getCurrentRaid().isOver() && this.mob.canBeLeader() && !ItemStack.matches(this.mob.getItemBySlot(EquipmentSlot.HEAD), Raid.getLeaderBannerInstance())) {
|