geforkt von Mirrors/Paper
ea855e2b46
Upstream has released updates that appears to apply and compile correctly. This update has not been tested by PaperMC and as with ANY update, please do your own testing Developers!: You will need to clean up your work/Minecraft/1.13.2 folder for this Also, restore a patch that was dropped in the last upstream Bukkit Changes: 279eeab3 Fix command description not being set 96e2bb18 Remove debug print from SyntheticEventTest CraftBukkit Changes:d3ed1516
Fix dangerously threaded beacons217a293d
Don't relocate joptsimple to allow --help to work.1be05a21
Prepare for imminent Java 12 releasea49270b2
Mappings Update5259d80c
SPIGOT-4669: Fix PlayerTeleportEvent coordinates for relative teleports Spigot Changes: e6eb36f2 Rebuild patches
43 Zeilen
1.8 KiB
Diff
43 Zeilen
1.8 KiB
Diff
From 0f87ea655baaaa6ca4d45542454bd04f44104ded Mon Sep 17 00:00:00 2001
|
|
From: Aikar <aikar@aikar.co>
|
|
Date: Wed, 17 Oct 2018 19:17:27 -0400
|
|
Subject: [PATCH] MC-50319: Check other worlds for shooter of projectiles
|
|
|
|
Say a player shoots an arrow through a nether portal, the game
|
|
would lose the shooter for determining things such as Player Kills,
|
|
because the entity is in another world.
|
|
|
|
If the projectile fails to find the shooter in the current world, check
|
|
other worlds.
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/EntityProjectile.java b/src/main/java/net/minecraft/server/EntityProjectile.java
|
|
index 62b5b6ece..60ab1c751 100644
|
|
--- a/src/main/java/net/minecraft/server/EntityProjectile.java
|
|
+++ b/src/main/java/net/minecraft/server/EntityProjectile.java
|
|
@@ -250,11 +250,21 @@ public abstract class EntityProjectile extends Entity implements IProjectile {
|
|
public EntityLiving getShooter() {
|
|
if (this.shooter == null && this.shooterId != null && this.world instanceof WorldServer) {
|
|
Entity entity = ((WorldServer) this.world).getEntity(this.shooterId);
|
|
+ // Paper start - MC-50319 - shooter might be in another world (arrows through portals)
|
|
+ if (entity == null) {
|
|
+ for (WorldServer world : world.getMinecraftServer().getWorlds()) {
|
|
+ entity = world.getEntity(this.shooterId);
|
|
+ if (entity != null) {
|
|
+ break;
|
|
+ }
|
|
+ }
|
|
+ }
|
|
+ // Paper end
|
|
|
|
if (entity instanceof EntityLiving) {
|
|
this.shooter = (EntityLiving) entity;
|
|
} else {
|
|
- this.shooterId = null;
|
|
+ //this.shooterId = null; // Paper - don't unset shooterId
|
|
}
|
|
}
|
|
|
|
--
|
|
2.21.0
|
|
|