mirror of
https://github.com/PaperMC/Paper.git
synced 2024-12-28 23:38:25 +01:00
More more more more more work
This commit is contained in:
parent
e165710bb5
commit
7409d8fed7
39 changed files with 31 additions and 32 deletions
|
@ -9,13 +9,13 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
--- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
--- a/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
+++ b/src/main/java/net/minecraft/world/level/dimension/end/EndDragonFight.java
|
||||||
@@ -0,0 +0,0 @@ public class EndDragonFight {
|
@@ -0,0 +0,0 @@ public class EndDragonFight {
|
||||||
private List<EndCrystal> respawnCrystals;
|
}
|
||||||
|
|
||||||
public EndDragonFight(ServerLevel world, long gatewaysSeed, CompoundTag nbt) {
|
public EndDragonFight(ServerLevel world, long gatewaysSeed, EndDragonFight.Data data, BlockPos origin) {
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ this.needsStateScanning = world.paperConfig().entities.spawning.scanForLegacyEnderDragon;
|
+ this.needsStateScanning = world.paperConfig().entities.spawning.scanForLegacyEnderDragon;
|
||||||
+ if (!this.needsStateScanning) this.dragonKilled = true;
|
+ if (!this.needsStateScanning) this.dragonKilled = true;
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
this.level = world;
|
this.level = world;
|
||||||
if (nbt.contains("NeedsStateScanning")) {
|
this.origin = origin;
|
||||||
this.needsStateScanning = nbt.getBoolean("NeedsStateScanning");
|
this.validPlayer = EntitySelector.ENTITY_STILL_ALIVE.and(EntitySelector.withinDistance((double)origin.getX(), (double)(128 + origin.getY()), (double)origin.getZ(), 192.0D));
|
|
@ -20,10 +20,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
Preconditions.checkArgument(sign.getWorld() == player.getWorld(), "Sign must be in same world as Player");
|
Preconditions.checkArgument(sign.getWorld() == player.getWorld(), "Sign must be in same world as Player");
|
||||||
|
|
||||||
SignBlockEntity handle = ((CraftSign<?>) sign).getTileEntity();
|
SignBlockEntity handle = ((CraftSign<?>) sign).getTileEntity();
|
||||||
handle.isEditable = true;
|
|
||||||
|
|
||||||
- ((CraftPlayer) player).getHandle().openTextEdit(handle);
|
- ((CraftPlayer) player).getHandle().openTextEdit(handle, true);
|
||||||
+ ((org.bukkit.craftbukkit.entity.CraftHumanEntity) player).getHandle().openTextEdit(handle); // Paper - change move open sign to HumanEntity
|
+ ((org.bukkit.craftbukkit.entity.CraftHumanEntity) player).getHandle().openTextEdit(handle, true); // Paper - change move open sign to HumanEntity
|
||||||
}
|
}
|
||||||
|
|
||||||
// Paper start
|
// Paper start
|
|
@ -37,10 +37,10 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
--- a/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
+++ b/src/main/java/net/minecraft/world/entity/projectile/Projectile.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
@@ -0,0 +0,0 @@ public abstract class Projectile extends Entity implements TraceableEntity {
|
||||||
protected void readAdditionalSaveData(CompoundTag nbt) {
|
|
||||||
if (nbt.hasUUID("Owner")) {
|
if (nbt.hasUUID("Owner")) {
|
||||||
this.ownerUUID = nbt.getUUID("Owner");
|
this.ownerUUID = nbt.getUUID("Owner");
|
||||||
+ if (this instanceof ThrownEnderpearl && this.level != null && this.level.paperConfig().fixes.disableUnloadedChunkEnderpearlExploit) { this.ownerUUID = null; } // Paper - Don't store shooter name for pearls to block enderpearl travel exploit
|
this.cachedOwner = null;
|
||||||
|
+ if (this instanceof ThrownEnderpearl && this.level() != null && this.level().paperConfig().fixes.disableUnloadedChunkEnderpearlExploit) { this.ownerUUID = null; } // Paper - Don't store shooter name for pearls to block enderpearl travel exploit
|
||||||
}
|
}
|
||||||
|
|
||||||
this.leftOwner = nbt.getBoolean("LeftOwner");
|
this.leftOwner = nbt.getBoolean("LeftOwner");
|
|
@ -15,7 +15,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
|
|
||||||
- protected boolean teleport() {
|
- protected boolean teleport() {
|
||||||
+ public boolean teleport() { // Paper - protected->public
|
+ public boolean teleport() { // Paper - protected->public
|
||||||
if (!this.level.isClientSide() && this.isAlive()) {
|
if (!this.level().isClientSide() && this.isAlive()) {
|
||||||
double d0 = this.getX() + (this.random.nextDouble() - 0.5D) * 64.0D;
|
double d0 = this.getX() + (this.random.nextDouble() - 0.5D) * 64.0D;
|
||||||
double d1 = this.getY() + (double) (this.random.nextInt(64) - 32);
|
double d1 = this.getY() + (double) (this.random.nextInt(64) - 32);
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEnderman.java
|
|
@ -12,7 +12,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/EnderMan.java
|
||||||
@@ -0,0 +0,0 @@ public class EnderMan extends Monster implements NeutralMob {
|
@@ -0,0 +0,0 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||||
this.readPersistentAngerSaveData(this.level, nbt);
|
this.readPersistentAngerSaveData(this.level(), nbt);
|
||||||
}
|
}
|
||||||
|
|
||||||
- boolean isLookingAtMe(Player player) {
|
- boolean isLookingAtMe(Player player) {
|
|
@ -25,11 +25,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
public boolean setTarget(LivingEntity entityliving, org.bukkit.event.entity.EntityTargetEvent.TargetReason reason, boolean fireEvent) {
|
public boolean setTarget(LivingEntity entityliving, org.bukkit.event.entity.EntityTargetEvent.TargetReason reason, boolean fireEvent) {
|
||||||
if (!super.setTarget(entityliving, reason, fireEvent)) {
|
if (!super.setTarget(entityliving, reason, fireEvent)) {
|
||||||
@@ -0,0 +0,0 @@ public class EnderMan extends Monster implements NeutralMob {
|
@@ -0,0 +0,0 @@ public class EnderMan extends Monster implements NeutralMob {
|
||||||
if (this.level.isDay() && this.tickCount >= this.targetChangeTime + 600) {
|
if (this.level().isDay() && this.tickCount >= this.targetChangeTime + 600) {
|
||||||
float f = this.getLightLevelDependentMagicValue();
|
float f = this.getLightLevelDependentMagicValue();
|
||||||
|
|
||||||
- if (f > 0.5F && this.level.canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F) {
|
- if (f > 0.5F && this.level().canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F) {
|
||||||
+ if (f > 0.5F && this.level.canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper
|
+ if (f > 0.5F && this.level().canSeeSky(this.blockPosition()) && this.random.nextFloat() * 30.0F < (f - 0.4F) * 2.0F && this.tryEscape(com.destroystokyo.paper.event.entity.EndermanEscapeEvent.Reason.RUNAWAY)) { // Paper
|
||||||
this.setTarget((LivingEntity) null);
|
this.setTarget((LivingEntity) null);
|
||||||
this.teleport();
|
this.teleport();
|
||||||
}
|
}
|
|
@ -69,7 +69,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
@@ -0,0 +0,0 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -0,0 +0,0 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
Vec3 vec3d1 = (new Vec3(x, 0.0D, z)).normalize().scale(strength);
|
Vec3 vec3d1 = (new Vec3(x, 0.0D, z)).normalize().scale(strength);
|
||||||
|
|
||||||
this.setDeltaMovement(vec3d.x / 2.0D - vec3d1.x, this.onGround ? Math.min(0.4D, vec3d.y / 2.0D + strength) : vec3d.y, vec3d.z / 2.0D - vec3d1.z);
|
this.setDeltaMovement(vec3d.x / 2.0D - vec3d1.x, this.onGround() ? Math.min(0.4D, vec3d.y / 2.0D + strength) : vec3d.y, vec3d.z / 2.0D - vec3d1.z);
|
||||||
+ // Paper start - call EntityKnockbackByEntityEvent
|
+ // Paper start - call EntityKnockbackByEntityEvent
|
||||||
+ Vec3 currentMovement = this.getDeltaMovement();
|
+ Vec3 currentMovement = this.getDeltaMovement();
|
||||||
+ org.bukkit.util.Vector delta = new org.bukkit.util.Vector(currentMovement.x - vec3d.x, currentMovement.y - vec3d.y, currentMovement.z - vec3d.z);
|
+ org.bukkit.util.Vector delta = new org.bukkit.util.Vector(currentMovement.x - vec3d.x, currentMovement.y - vec3d.y, currentMovement.z - vec3d.z);
|
||||||
|
@ -152,9 +152,9 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java
|
--- a/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/hoglin/HoglinBase.java
|
||||||
@@ -0,0 +0,0 @@ public interface HoglinBase {
|
@@ -0,0 +0,0 @@ public interface HoglinBase {
|
||||||
double j = f * (double)(attacker.level.random.nextFloat() * 0.5F + 0.2F);
|
double j = f * (double)(attacker.level().random.nextFloat() * 0.5F + 0.2F);
|
||||||
Vec3 vec3 = (new Vec3(g, 0.0D, h)).normalize().scale(j).yRot(i);
|
Vec3 vec3 = (new Vec3(g, 0.0D, h)).normalize().scale(j).yRot(i);
|
||||||
double k = f * (double)attacker.level.random.nextFloat() * 0.5D;
|
double k = f * (double)attacker.level().random.nextFloat() * 0.5D;
|
||||||
- target.push(vec3.x, k, vec3.z);
|
- target.push(vec3.x, k, vec3.z);
|
||||||
+ target.push(vec3.x, k, vec3.z, attacker); // Paper
|
+ target.push(vec3.x, k, vec3.z, attacker); // Paper
|
||||||
target.hurtMarked = true;
|
target.hurtMarked = true;
|
|
@ -14,7 +14,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
|
+++ b/src/main/java/net/minecraft/world/entity/monster/AbstractSkeleton.java
|
||||||
@@ -0,0 +0,0 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
|
@@ -0,0 +0,0 @@ public abstract class AbstractSkeleton extends Monster implements RangedAttackMo
|
||||||
|
|
||||||
entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.level.getDifficulty().getId() * 4));
|
entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.level().getDifficulty().getId() * 4));
|
||||||
// CraftBukkit start
|
// CraftBukkit start
|
||||||
- org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), null, entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true);
|
- org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), null, entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true);
|
||||||
+ org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper
|
+ org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, net.minecraft.world.InteractionHand.MAIN_HAND, 0.8F, true); // Paper
|
||||||
|
@ -28,7 +28,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
@@ -0,0 +0,0 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
@@ -0,0 +0,0 @@ public class Illusioner extends SpellcasterIllager implements RangedAttackMob {
|
||||||
double d3 = Math.sqrt(d0 * d0 + d2 * d2);
|
double d3 = Math.sqrt(d0 * d0 + d2 * d2);
|
||||||
|
|
||||||
entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.level.getDifficulty().getId() * 4));
|
entityarrow.shoot(d0, d1 + d3 * 0.20000000298023224D, d2, 1.6F, (float) (14 - this.level().getDifficulty().getId() * 4));
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, target.getUsedItemHand(), 0.8F, true);
|
+ org.bukkit.event.entity.EntityShootBowEvent event = org.bukkit.craftbukkit.event.CraftEventFactory.callEntityShootBowEvent(this, this.getMainHandItem(), entityarrow.getPickupItem(), entityarrow, target.getUsedItemHand(), 0.8F, true);
|
||||||
+ if (event.isCancelled()) {
|
+ if (event.isCancelled()) {
|
||||||
|
@ -37,11 +37,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ }
|
+ }
|
||||||
+
|
+
|
||||||
+ if (event.getProjectile() == entityarrow.getBukkitEntity()) {
|
+ if (event.getProjectile() == entityarrow.getBukkitEntity()) {
|
||||||
+ this.level.addFreshEntity(entityarrow);
|
+ this.level().addFreshEntity(entityarrow);
|
||||||
+ }
|
+ }
|
||||||
this.playSound(SoundEvents.SKELETON_SHOOT, 1.0F, 1.0F / (this.getRandom().nextFloat() * 0.4F + 0.8F));
|
|
||||||
- this.level.addFreshEntity(entityarrow);
|
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
|
this.playSound(SoundEvents.SKELETON_SHOOT, 1.0F, 1.0F / (this.getRandom().nextFloat() * 0.4F + 0.8F));
|
||||||
|
- this.level().addFreshEntity(entityarrow);
|
||||||
}
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
|
@ -35,7 +35,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
@@ -0,0 +0,0 @@ public class ServerPlayer extends Player {
|
@@ -0,0 +0,0 @@ public class ServerPlayer extends Player {
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
if (!this.level.isClientSide && !this.containerMenu.stillValid(this)) {
|
if (!this.level().isClientSide && !this.containerMenu.stillValid(this)) {
|
||||||
- this.closeContainer();
|
- this.closeContainer();
|
||||||
+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper
|
+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper
|
||||||
this.containerMenu = this.inventoryMenu;
|
this.containerMenu = this.inventoryMenu;
|
||||||
|
@ -91,11 +91,11 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
@Override
|
@Override
|
||||||
public void handleContainerClose(ServerboundContainerClosePacket packet) {
|
public void handleContainerClose(ServerboundContainerClosePacket packet) {
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
+ handleContainerClose(packet, InventoryCloseEvent.Reason.PLAYER);
|
+ this.handleContainerClose(packet, InventoryCloseEvent.Reason.PLAYER);
|
||||||
+ }
|
+ }
|
||||||
+ public void handleContainerClose(ServerboundContainerClosePacket packet, InventoryCloseEvent.Reason reason) {
|
+ public void handleContainerClose(ServerboundContainerClosePacket packet, InventoryCloseEvent.Reason reason) {
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.getLevel());
|
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
|
||||||
|
|
||||||
if (this.player.isImmobile()) return; // CraftBukkit
|
if (this.player.isImmobile()) return; // CraftBukkit
|
||||||
- CraftEventFactory.handleInventoryCloseEvent(this.player); // CraftBukkit
|
- CraftEventFactory.handleInventoryCloseEvent(this.player); // CraftBukkit
|
||||||
|
@ -123,7 +123,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
@@ -0,0 +0,0 @@ public abstract class Player extends LivingEntity {
|
@@ -0,0 +0,0 @@ public abstract class Player extends LivingEntity {
|
||||||
this.updateIsUnderwater();
|
this.updateIsUnderwater();
|
||||||
super.tick();
|
super.tick();
|
||||||
if (!this.level.isClientSide && this.containerMenu != null && !this.containerMenu.stillValid(this)) {
|
if (!this.level().isClientSide && this.containerMenu != null && !this.containerMenu.stillValid(this)) {
|
||||||
- this.closeContainer();
|
- this.closeContainer();
|
||||||
+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper
|
+ this.closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason.CANT_USE); // Paper
|
||||||
this.containerMenu = this.inventoryMenu;
|
this.containerMenu = this.inventoryMenu;
|
||||||
|
@ -197,7 +197,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper
|
+ player.connection.handleContainerClose(new ServerboundContainerClosePacket(player.containerMenu.containerId), InventoryCloseEvent.Reason.OPEN_NEW); // Paper
|
||||||
}
|
}
|
||||||
|
|
||||||
CraftServer server = player.level.getCraftServer();
|
CraftServer server = player.level().getCraftServer();
|
||||||
@@ -0,0 +0,0 @@ public class CraftEventFactory {
|
@@ -0,0 +0,0 @@ public class CraftEventFactory {
|
||||||
return event;
|
return event;
|
||||||
}
|
}
|
||||||
|
@ -215,6 +215,6 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ public static void handleInventoryCloseEvent(net.minecraft.world.entity.player.Player human, org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) {
|
+ public static void handleInventoryCloseEvent(net.minecraft.world.entity.player.Player human, org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) {
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
+ InventoryCloseEvent event = new InventoryCloseEvent(human.containerMenu.getBukkitView(), reason); // Paper
|
+ InventoryCloseEvent event = new InventoryCloseEvent(human.containerMenu.getBukkitView(), reason); // Paper
|
||||||
human.level.getCraftServer().getPluginManager().callEvent(event);
|
human.level().getCraftServer().getPluginManager().callEvent(event);
|
||||||
human.containerMenu.transferTo(human.inventoryMenu, human.getBukkitEntity());
|
human.containerMenu.transferTo(human.inventoryMenu, human.getBukkitEntity());
|
||||||
}
|
}
|
|
@ -64,8 +64,8 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
import net.minecraft.world.level.block.Blocks;
|
import net.minecraft.world.level.block.Blocks;
|
||||||
+import net.minecraft.world.level.biome.BiomeManager;
|
+import net.minecraft.world.level.biome.BiomeManager;
|
||||||
import net.minecraft.world.level.block.entity.SignBlockEntity;
|
import net.minecraft.world.level.block.entity.SignBlockEntity;
|
||||||
|
import net.minecraft.world.level.block.entity.SignText;
|
||||||
import net.minecraft.world.level.border.BorderChangeListener;
|
import net.minecraft.world.level.border.BorderChangeListener;
|
||||||
import net.minecraft.world.level.saveddata.maps.MapDecoration;
|
|
||||||
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
@@ -0,0 +0,0 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
||||||
return server.getPlayer(getUniqueId()) != null;
|
return server.getPlayer(getUniqueId()) != null;
|
||||||
}
|
}
|
||||||
|
@ -82,7 +82,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
|
|
||||||
private void untrackAndHideEntity(org.bukkit.entity.Entity entity) {
|
private void untrackAndHideEntity(org.bukkit.entity.Entity entity) {
|
||||||
// Remove this entity from the hidden player's EntityTrackerEntry
|
// Remove this entity from the hidden player's EntityTrackerEntry
|
||||||
- ChunkMap tracker = ((ServerLevel) this.getHandle().level).getChunkSource().chunkMap;
|
- ChunkMap tracker = ((ServerLevel) this.getHandle().level()).getChunkSource().chunkMap;
|
||||||
+ // Paper start
|
+ // Paper start
|
||||||
Entity other = ((CraftEntity) entity).getHandle();
|
Entity other = ((CraftEntity) entity).getHandle();
|
||||||
+ unregisterEntity(other);
|
+ unregisterEntity(other);
|
||||||
|
@ -91,7 +91,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ }
|
+ }
|
||||||
+ private void unregisterEntity(Entity other) {
|
+ private void unregisterEntity(Entity other) {
|
||||||
+ // Paper end
|
+ // Paper end
|
||||||
+ ChunkMap tracker = ((ServerLevel) this.getHandle().level).getChunkSource().chunkMap;
|
+ ChunkMap tracker = ((ServerLevel) this.getHandle().level()).getChunkSource().chunkMap;
|
||||||
ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId());
|
ChunkMap.TrackedEntity entry = tracker.entityMap.get(other.getId());
|
||||||
if (entry != null) {
|
if (entry != null) {
|
||||||
entry.removePlayer(this.getHandle());
|
entry.removePlayer(this.getHandle());
|
|
@ -20,7 +20,7 @@ index 0000000000000000000000000000000000000000..00000000000000000000000000000000
|
||||||
+ return;
|
+ return;
|
||||||
+ }
|
+ }
|
||||||
+ potion = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getPotion());
|
+ potion = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(event.getPotion());
|
||||||
ThrownPotion entitypotion = new ThrownPotion(this.level, this);
|
ThrownPotion entitypotion = new ThrownPotion(this.level(), this);
|
||||||
-
|
-
|
||||||
- entitypotion.setItem(PotionUtils.setPotion(new ItemStack(Items.SPLASH_POTION), potionregistry));
|
- entitypotion.setItem(PotionUtils.setPotion(new ItemStack(Items.SPLASH_POTION), potionregistry));
|
||||||
+ entitypotion.setItem(potion);
|
+ entitypotion.setItem(potion);
|
Loading…
Reference in a new issue