Move CraftBukkit per-file patches
By: Initial <noreply+automated@papermc.io>
This commit is contained in:
@@ -0,0 +1,49 @@
|
||||
--- a/net/minecraft/world/entity/raid/EntityRaider.java
|
||||
+++ b/net/minecraft/world/entity/raid/EntityRaider.java
|
||||
@@ -41,6 +41,10 @@
|
||||
import net.minecraft.world.level.pathfinder.PathEntity;
|
||||
import net.minecraft.world.phys.Vec3D;
|
||||
|
||||
+// CraftBukkit start
|
||||
+import org.bukkit.event.entity.EntityRemoveEvent;
|
||||
+// CraftBukkit end
|
||||
+
|
||||
public abstract class EntityRaider extends EntityMonsterPatrolling {
|
||||
|
||||
protected static final DataWatcherObject<Boolean> IS_CELEBRATING = DataWatcher.defineId(EntityRaider.class, DataWatcherRegistry.BOOLEAN);
|
||||
@@ -236,7 +240,7 @@
|
||||
this.onItemPickup(entityitem);
|
||||
this.setItemSlot(enumitemslot, itemstack);
|
||||
this.take(entityitem, itemstack.getCount());
|
||||
- entityitem.discard();
|
||||
+ entityitem.discard(EntityRemoveEvent.Cause.PICKUP); // CraftBukkit - add Bukkit remove cause
|
||||
this.getCurrentRaid().setLeader(this.getWave(), this);
|
||||
this.setPatrolLeader(true);
|
||||
} else {
|
||||
@@ -290,7 +294,7 @@
|
||||
@Nullable
|
||||
private EntityItem pursuedBannerItemEntity;
|
||||
|
||||
- public b(final EntityRaider entityraider) {
|
||||
+ public b(final T entityraider) { // CraftBukkit - decompile error
|
||||
this.mob = entityraider;
|
||||
this.setFlags(EnumSet.of(PathfinderGoal.Type.MOVE));
|
||||
}
|
||||
@@ -547,7 +551,7 @@
|
||||
while (iterator.hasNext()) {
|
||||
EntityRaider entityraider = (EntityRaider) iterator.next();
|
||||
|
||||
- entityraider.setTarget(this.mob.getTarget());
|
||||
+ entityraider.setTarget(this.mob.getTarget(), org.bukkit.event.entity.EntityTargetEvent.TargetReason.FOLLOW_LEADER, true); // CraftBukkit
|
||||
}
|
||||
|
||||
}
|
||||
@@ -564,7 +568,7 @@
|
||||
while (iterator.hasNext()) {
|
||||
EntityRaider entityraider = (EntityRaider) iterator.next();
|
||||
|
||||
- entityraider.setTarget(entityliving);
|
||||
+ entityraider.setTarget(this.mob.getTarget(), org.bukkit.event.entity.EntityTargetEvent.TargetReason.FOLLOW_LEADER, true); // CraftBukkit
|
||||
entityraider.setAggressive(true);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,27 @@
|
||||
--- a/net/minecraft/world/entity/raid/PersistentRaid.java
|
||||
+++ b/net/minecraft/world/entity/raid/PersistentRaid.java
|
||||
@@ -115,11 +115,23 @@
|
||||
|
||||
Raid raid = this.getOrCreateRaid(entityplayer.serverLevel(), blockposition2);
|
||||
|
||||
+ /* CraftBukkit - moved down
|
||||
if (!raid.isStarted() && !this.raidMap.containsKey(raid.getId())) {
|
||||
this.raidMap.put(raid.getId(), raid);
|
||||
}
|
||||
+ */
|
||||
|
||||
- if (!raid.isStarted() || raid.getRaidOmenLevel() < raid.getMaxRaidOmenLevel()) {
|
||||
+ if (!raid.isStarted() || (raid.isInProgress() && raid.getRaidOmenLevel() < raid.getMaxRaidOmenLevel())) { // CraftBukkit - fixed a bug with raid: players could add up Bad Omen level even when the raid had finished
|
||||
+ // CraftBukkit start
|
||||
+ if (!org.bukkit.craftbukkit.event.CraftEventFactory.callRaidTriggerEvent(raid, entityplayer)) {
|
||||
+ entityplayer.removeEffect(net.minecraft.world.effect.MobEffects.RAID_OMEN);
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ if (!raid.isStarted() && !this.raidMap.containsKey(raid.getId())) {
|
||||
+ this.raidMap.put(raid.getId(), raid);
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
raid.absorbRaidOmen(entityplayer);
|
||||
}
|
||||
|
||||
@@ -0,0 +1,138 @@
|
||||
--- a/net/minecraft/world/entity/raid/Raid.java
|
||||
+++ b/net/minecraft/world/entity/raid/Raid.java
|
||||
@@ -177,6 +177,12 @@
|
||||
return this.status == Raid.Status.LOSS;
|
||||
}
|
||||
|
||||
+ // CraftBukkit start
|
||||
+ public boolean isInProgress() {
|
||||
+ return this.status == Status.ONGOING;
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
public float getTotalHealth() {
|
||||
return this.totalHealth;
|
||||
}
|
||||
@@ -281,6 +287,7 @@
|
||||
|
||||
this.active = this.level.hasChunkAt(this.center);
|
||||
if (this.level.getDifficulty() == EnumDifficulty.PEACEFUL) {
|
||||
+ org.bukkit.craftbukkit.event.CraftEventFactory.callRaidStopEvent(this, org.bukkit.event.raid.RaidStopEvent.Reason.PEACE); // CraftBukkit
|
||||
this.stop();
|
||||
return;
|
||||
}
|
||||
@@ -300,13 +307,16 @@
|
||||
if (!this.level.isVillage(this.center)) {
|
||||
if (this.groupsSpawned > 0) {
|
||||
this.status = Raid.Status.LOSS;
|
||||
+ org.bukkit.craftbukkit.event.CraftEventFactory.callRaidFinishEvent(this, new java.util.ArrayList<>()); // CraftBukkit
|
||||
} else {
|
||||
+ org.bukkit.craftbukkit.event.CraftEventFactory.callRaidStopEvent(this, org.bukkit.event.raid.RaidStopEvent.Reason.NOT_IN_VILLAGE); // CraftBukkit
|
||||
this.stop();
|
||||
}
|
||||
}
|
||||
|
||||
++this.ticksActive;
|
||||
if (this.ticksActive >= 48000L) {
|
||||
+ org.bukkit.craftbukkit.event.CraftEventFactory.callRaidStopEvent(this, org.bukkit.event.raid.RaidStopEvent.Reason.TIMEOUT); // CraftBukkit
|
||||
this.stop();
|
||||
return;
|
||||
}
|
||||
@@ -374,6 +384,7 @@
|
||||
}
|
||||
|
||||
if (j > 5) {
|
||||
+ org.bukkit.craftbukkit.event.CraftEventFactory.callRaidStopEvent(this, org.bukkit.event.raid.RaidStopEvent.Reason.UNSPAWNABLE); // CraftBukkit
|
||||
this.stop();
|
||||
break;
|
||||
}
|
||||
@@ -386,6 +397,7 @@
|
||||
this.status = Raid.Status.VICTORY;
|
||||
Iterator iterator = this.heroesOfTheVillage.iterator();
|
||||
|
||||
+ List<org.bukkit.entity.Player> winners = new java.util.ArrayList<>(); // CraftBukkit
|
||||
while (iterator.hasNext()) {
|
||||
UUID uuid = (UUID) iterator.next();
|
||||
Entity entity = this.level.getEntity(uuid);
|
||||
@@ -400,10 +412,12 @@
|
||||
|
||||
entityplayer.awardStat(StatisticList.RAID_WIN);
|
||||
CriterionTriggers.RAID_WIN.trigger(entityplayer);
|
||||
+ winners.add(entityplayer.getBukkitEntity()); // CraftBukkit
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
+ org.bukkit.craftbukkit.event.CraftEventFactory.callRaidFinishEvent(this, winners); // CraftBukkit
|
||||
}
|
||||
}
|
||||
|
||||
@@ -411,6 +425,7 @@
|
||||
} else if (this.isOver()) {
|
||||
++this.celebrationTicks;
|
||||
if (this.celebrationTicks >= 600) {
|
||||
+ org.bukkit.craftbukkit.event.CraftEventFactory.callRaidStopEvent(this, org.bukkit.event.raid.RaidStopEvent.Reason.FINISHED); // CraftBukkit
|
||||
this.stop();
|
||||
return;
|
||||
}
|
||||
@@ -544,6 +559,10 @@
|
||||
int j = araid_wave.length;
|
||||
int k = 0;
|
||||
|
||||
+ // CraftBukkit start
|
||||
+ EntityRaider leader = null;
|
||||
+ List<EntityRaider> raiders = new java.util.ArrayList<>();
|
||||
+ // CraftBukkit end
|
||||
while (k < j) {
|
||||
Raid.Wave raid_wave = araid_wave[k];
|
||||
int l = this.getDefaultNumSpawns(raid_wave, i, flag1) + this.getPotentialBonusSpawns(raid_wave, this.random, i, difficultydamagescaler, flag1);
|
||||
@@ -559,9 +578,11 @@
|
||||
entityraider.setPatrolLeader(true);
|
||||
this.setLeader(i, entityraider);
|
||||
flag = true;
|
||||
+ leader = entityraider; // CraftBukkit
|
||||
}
|
||||
|
||||
this.joinRaid(i, entityraider, blockposition, false);
|
||||
+ raiders.add(entityraider); // CraftBukkit
|
||||
if (raid_wave.entityType == EntityTypes.RAVAGER) {
|
||||
EntityRaider entityraider1 = null;
|
||||
|
||||
@@ -580,6 +601,7 @@
|
||||
this.joinRaid(i, entityraider1, blockposition, false);
|
||||
entityraider1.moveTo(blockposition, 0.0F, 0.0F);
|
||||
entityraider1.startRiding(entityraider);
|
||||
+ raiders.add(entityraider); // CraftBukkit
|
||||
}
|
||||
}
|
||||
|
||||
@@ -597,6 +619,7 @@
|
||||
++this.groupsSpawned;
|
||||
this.updateBossbar();
|
||||
this.setDirty();
|
||||
+ org.bukkit.craftbukkit.event.CraftEventFactory.callRaidSpawnWaveEvent(this, leader, raiders); // CraftBukkit
|
||||
}
|
||||
|
||||
public void joinRaid(int i, EntityRaider entityraider, @Nullable BlockPosition blockposition, boolean flag) {
|
||||
@@ -612,7 +635,7 @@
|
||||
entityraider.finalizeSpawn(this.level, this.level.getCurrentDifficultyAt(blockposition), EntitySpawnReason.EVENT, (GroupDataEntity) null);
|
||||
entityraider.applyRaidBuffs(this.level, i, false);
|
||||
entityraider.setOnGround(true);
|
||||
- this.level.addFreshEntityWithPassengers(entityraider);
|
||||
+ this.level.addFreshEntityWithPassengers(entityraider, org.bukkit.event.entity.CreatureSpawnEvent.SpawnReason.RAID); // CraftBukkit
|
||||
}
|
||||
}
|
||||
|
||||
@@ -865,6 +888,12 @@
|
||||
this.heroesOfTheVillage.add(entity.getUUID());
|
||||
}
|
||||
|
||||
+ // CraftBukkit start - a method to get all raiders
|
||||
+ public java.util.Collection<EntityRaider> getRaiders() {
|
||||
+ return this.groupRaiderMap.values().stream().flatMap(Set::stream).collect(java.util.stream.Collectors.toSet());
|
||||
+ }
|
||||
+ // CraftBukkit end
|
||||
+
|
||||
private static enum Status {
|
||||
|
||||
ONGOING, VICTORY, LOSS, STOPPED;
|
||||
Reference in New Issue
Block a user