Updated Upstream (Paper)

Upstream has released updates that appear to apply and compile correctly

Paper Changes:
5b20df6bf added PlayerNameEntityEvent
ff9c82444 Add worldborder events
616b1f3cd consider enchants for destroy speed
aaef1d5cc fix file conversion
674d8f7f7 Make discovered maps config work in treasure maps from loot tables too
be1687914 stop firing pressure plate EntityInteractEvent for ignored entities (fixes #4962)
7d56f38ed Do not use the bukkit singleton for the GUI (Fixes #5301)
4c9bdf53a Updated Upstream (Bukkit/CraftBukkit/Spigot) (#5299)
8647bd130 Improve ServerGUI
fcc6d3359 Throw proper exception on empty JsonList file
17d2e1291 Fix interact event in adventure mode
964e0bf42 MC-29274: Fix Wither hostility towards players
9e24a5213 Fixed furnace cook-speed multiplier losing precision when calculating cook time
c7e42faa3 Do not create unnecessary copies of the passenger list
40881ad67 added tnt minecarts to the tnt height nerf
26be708f4 Remove streams from SensorNearest
5b5989b21 fix nullability of playerlist header/footer, closes #5290
45bc531dd Fix Material#getTranslationKey for Block Materials (#5294)
This commit is contained in:
BillyGalbreath
2021-03-04 21:45:44 -06:00
parent 68ff99ea92
commit d93887a156
60 changed files with 169 additions and 249 deletions

View File

@@ -10318,10 +10318,10 @@ index 95ef96286855624590b72d69514b0fc0e08fddba..73163b417af7e522a4509bf9c1ab56d6
T t0 = this.h.a(this.a.a(i));
diff --git a/src/main/java/net/minecraft/server/DedicatedServer.java b/src/main/java/net/minecraft/server/DedicatedServer.java
index 5504facd2e453238caa71d98743be5416d4dd4fe..ecff0657e5666ddc2e6a5c3111bfb2b8dd2b78d3 100644
index d4793a1d476d8d6687ec8782501c31265f284daa..2644b190813cc934914aeab78fbd6515d1a37c4a 100644
--- a/src/main/java/net/minecraft/server/DedicatedServer.java
+++ b/src/main/java/net/minecraft/server/DedicatedServer.java
@@ -169,6 +169,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -175,6 +175,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
com.destroystokyo.paper.PaperConfig.registerCommands();
com.destroystokyo.paper.VersionHistoryManager.INSTANCE.getClass(); // load version history now
// Paper end
@@ -10329,7 +10329,7 @@ index 5504facd2e453238caa71d98743be5416d4dd4fe..ecff0657e5666ddc2e6a5c3111bfb2b8
this.setPVP(dedicatedserverproperties.pvp);
this.setAllowFlight(dedicatedserverproperties.allowFlight);
@@ -357,7 +358,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
@@ -359,7 +360,7 @@ public class DedicatedServer extends MinecraftServer implements IMinecraftServer
}
if (this.q != null) {
@@ -10352,7 +10352,7 @@ index 550232cb3819138b3bae0fa1c51429485e8bc593..229c3b0f0c650b501f31147adaa17194
throwable = throwable1;
throw throwable1;
diff --git a/src/main/java/net/minecraft/server/Entity.java b/src/main/java/net/minecraft/server/Entity.java
index e87e1b04e13593f1efa4d1c59cb9e433f2b3c694..787df099308e2e1c6485ba8a810a43eaff7f5cd7 100644
index 534238688be75c53058dcfeabcdf86d9c0504089..50c61b633faaa47a86172315b53899d3747c8e27 100644
--- a/src/main/java/net/minecraft/server/Entity.java
+++ b/src/main/java/net/minecraft/server/Entity.java
@@ -136,7 +136,7 @@ public abstract class Entity implements INamableTileEntity, ICommandListener, Ke
@@ -10878,7 +10878,7 @@ index f41aaa7623c052b9f4044898d1bdee898c03057a..d99cecc4075338d7b8f154ab94d8ac04
x = MathHelper.floorLong(x * 4096.0D) * (1 / 4096.0D);
y = MathHelper.floorLong(y * 4096.0D) * (1 / 4096.0D);
diff --git a/src/main/java/net/minecraft/server/EntityLiving.java b/src/main/java/net/minecraft/server/EntityLiving.java
index b7a362bd9c5e9dae909b863335bae3a94d404a16..87b66c284208f12e9e7cd1c9950ada8d0fbf26a5 100644
index 9a79371b40803947ed5deef68c50d45683aaae52..d568db532de83a85d5c387121cec151c160f36bf 100644
--- a/src/main/java/net/minecraft/server/EntityLiving.java
+++ b/src/main/java/net/minecraft/server/EntityLiving.java
@@ -2879,7 +2879,11 @@ public abstract class EntityLiving extends Entity {
@@ -11135,7 +11135,7 @@ index 23017b5486530bcf76b3934cfa8621e8b4772b27..a4d94385ede0303417d676155c2c0b22
}
}
diff --git a/src/main/java/net/minecraft/server/EntityTrackerEntry.java b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
index 3960a975e74ed81c45819fe5e0f01c6c18252982..81869215876d10a84ab27c0e6f41963c1346fd1c 100644
index f2a9396c2ec64c79391782249db7507f12a69a9e..2402c18e6a18221a43bea9fc68278da9d19eede4 100644
--- a/src/main/java/net/minecraft/server/EntityTrackerEntry.java
+++ b/src/main/java/net/minecraft/server/EntityTrackerEntry.java
@@ -74,6 +74,7 @@ public class EntityTrackerEntry {
@@ -11143,7 +11143,7 @@ index 3960a975e74ed81c45819fe5e0f01c6c18252982..81869215876d10a84ab27c0e6f41963c
public final void tick() { this.a(); } // Paper - OBFHELPER
public void a() {
+ com.tuinity.tuinity.util.TickThread.softEnsureTickThread("Tracker update"); // Tuinity
List<Entity> list = this.tracker.getPassengers();
List<Entity> list = this.tracker.passengers; // Paper - do not copy list
if (!list.equals(this.p)) {
@@ -156,7 +157,7 @@ public class EntityTrackerEntry {
@@ -13390,7 +13390,7 @@ index 904c6a7d0a36b57bb4f693fc4fd0dd5b17adcbac..3127fc9dd87e82243e167862cae83ac8
if (chunk != null) {
playerchunkmap.callbackExecutor.execute(() -> {
diff --git a/src/main/java/net/minecraft/server/PlayerChunkMap.java b/src/main/java/net/minecraft/server/PlayerChunkMap.java
index 49008cdec739b19409fdaf1b0ed806a6c0e93200..61570ab947b5a153a4c2bcb5a09344f060e6052d 100644
index e16cd5da219e41f16f9c04fd95b79fe5cf10f6b8..3ae51a3a5d863d58fde73934ed100fbd62e2b279 100644
--- a/src/main/java/net/minecraft/server/PlayerChunkMap.java
+++ b/src/main/java/net/minecraft/server/PlayerChunkMap.java
@@ -121,31 +121,28 @@ public class PlayerChunkMap extends IChunkLoader implements PlayerChunk.d {
@@ -13756,7 +13756,7 @@ index 49008cdec739b19409fdaf1b0ed806a6c0e93200..61570ab947b5a153a4c2bcb5a09344f0
}
// Paper end - optimised tracker
diff --git a/src/main/java/net/minecraft/server/PlayerConnection.java b/src/main/java/net/minecraft/server/PlayerConnection.java
index d77070eaa8fcecf2c142438c5219574c6b4e68cf..891a5bd192389ce80e77b9b5c53029860c86bc8b 100644
index f3679a3ad2d51612381bc47bb23eeffec924d478..24b8a27b46c9e617fe3db6317da60227dbb60a1e 100644
--- a/src/main/java/net/minecraft/server/PlayerConnection.java
+++ b/src/main/java/net/minecraft/server/PlayerConnection.java
@@ -423,7 +423,9 @@ public class PlayerConnection implements PacketListenerPlayIn {
@@ -14122,18 +14122,18 @@ index 114e986e5132e5e4bb42d0f08a067429bce53ba6..05656ea8448aa569e8dd480461e2d5f7
this.player.playerConnection.sendPacket(new PacketPlayOutBlockChange(this.world, blockposition)); // CraftBukkit - SPIGOT-5196
}
diff --git a/src/main/java/net/minecraft/server/PlayerList.java b/src/main/java/net/minecraft/server/PlayerList.java
index c970b8bec13741fcd4d5ce71fd77d0f9ed633088..2aafb0295e37eae3510fd5c5105ad53fa6f2690c 100644
index 610613c2dbea18e1064c5f29cc36cf39aece2277..193a39ba0c07b0f438aba6b3a00af51fa93bd53d 100644
--- a/src/main/java/net/minecraft/server/PlayerList.java
+++ b/src/main/java/net/minecraft/server/PlayerList.java
@@ -100,6 +100,7 @@ public abstract class PlayerList {
}
@@ -101,6 +101,7 @@ public abstract class PlayerList {
abstract public void loadAndSaveFiles(); // Paper - moved from DedicatedPlayerList constructor
public void a(NetworkManager networkmanager, EntityPlayer entityplayer) {
+ entityplayer.isRealPlayer = true; // Paper // Tuinity - this is a better place to write this that works and isn't overriden by plugins
EntityPlayer prev = pendingPlayers.put(entityplayer.getUniqueID(), entityplayer);// Paper
if (prev != null) {
disconnectPendingPlayer(prev);
@@ -640,7 +641,7 @@ public abstract class PlayerList {
@@ -641,7 +642,7 @@ public abstract class PlayerList {
SocketAddress socketaddress = loginlistener.networkManager.getSocketAddress();
EntityPlayer entity = new EntityPlayer(this.server, this.server.getWorldServer(World.OVERWORLD), gameprofile, new PlayerInteractManager(this.server.getWorldServer(World.OVERWORLD)));
@@ -15215,122 +15215,42 @@ index ad3609f2b884f64f1a1a449036cece49a46e933e..d3d28f97f9d2f969a182aec5e0947b69
} else if (this.b < 5) {
this.a.long2LongEntrySet().removeIf((entry) -> {
diff --git a/src/main/java/net/minecraft/server/SensorNearestItems.java b/src/main/java/net/minecraft/server/SensorNearestItems.java
index 2e747158d48ab28ac1611990cc97aa4a9e30b30e..1de170b9fe6f2888da6dcf0151aaf1f865691c6a 100644
index edf7d31e8e06f67be58282b2a76d1ac899b4f3e8..4dc9c47d5bb021b046ad525769fc87122c18cd0a 100644
--- a/src/main/java/net/minecraft/server/SensorNearestItems.java
+++ b/src/main/java/net/minecraft/server/SensorNearestItems.java
@@ -18,20 +18,23 @@ public class SensorNearestItems extends Sensor<EntityInsentient> {
@@ -5,7 +5,6 @@ import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.Set;
-import java.util.stream.Stream;
protected void a(WorldServer worldserver, EntityInsentient entityinsentient) {
BehaviorController<?> behaviorcontroller = entityinsentient.getBehaviorController();
- List<EntityItem> list = worldserver.a(EntityItem.class, entityinsentient.getBoundingBox().grow(8.0D, 4.0D, 8.0D), (entityitem) -> {
- return true;
+ // Tuinity start - remove streams
+ List<EntityItem> list = worldserver.a(EntityItem.class, entityinsentient.getBoundingBox().grow(8.0D, 4.0D, 8.0D), (EntityItem item) -> {
+ return entityinsentient.i(item.getItemStack()) && item.a((Entity)entityinsentient, 9.0D); // copied from removed code, make sure to update - move here so we sort less
});
public class SensorNearestItems extends Sensor<EntityInsentient> {
- entityinsentient.getClass();
- list.sort(Comparator.comparingDouble(entityinsentient::h));
- Stream stream = list.stream().filter((entityitem) -> {
- return entityinsentient.i(entityitem.getItemStack());
- }).filter((entityitem) -> {
- return entityitem.a((Entity) entityinsentient, 9.0D);
- });
-
- entityinsentient.getClass();
- Optional<EntityItem> optional = stream.filter(entityinsentient::hasLineOfSight).findFirst();
+ list.sort(Comparator.comparingDouble(entityinsentient::h)); // better to take the sort perf hit than using line of sight more than we need to.
+ EntityItem nearest = null;
+ for (int index = 0, len = list.size(); index < len; ++index) {
+ EntityItem item = list.get(index);
+ if (entityinsentient.hasLineOfSight(item)) {
+ nearest = item;
+ break;
+ }
+ }
+
+ Optional<EntityItem> optional = Optional.ofNullable(nearest);
+ // Tuinity end - remove streams
behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_WANTED_ITEM, optional);
}
diff --git a/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java b/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java
index f6568a54ab85bc3a682f6fbb19dda7a783625bbe..4005df5ef3dec956a54feff539db2e63c226059a 100644
index b3388d4a665e8f91083a2e746482a9f0bd988da1..c049389aebf41894f64ed51eeabe57b0988c1262 100644
--- a/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java
+++ b/src/main/java/net/minecraft/server/SensorNearestLivingEntities.java
@@ -21,10 +21,17 @@ public class SensorNearestLivingEntities extends Sensor<EntityLiving> {
list.sort(Comparator.comparingDouble(entityliving::h));
BehaviorController<?> behaviorcontroller = entityliving.getBehaviorController();
@@ -4,7 +4,6 @@ import com.google.common.collect.ImmutableSet;
import java.util.Comparator;
import java.util.List;
import java.util.Set;
-import java.util.stream.Collectors;
- behaviorcontroller.setMemory(MemoryModuleType.MOBS, (Object) list);
- behaviorcontroller.setMemory(MemoryModuleType.VISIBLE_MOBS, list.stream().filter((entityliving1) -> {
- return a(entityliving, entityliving1);
- }).collect(Collectors.toList()));
+ behaviorcontroller.setMemory(MemoryModuleType.MOBS, list); // Tuinity - decompile fix
+ // Tuinity start - remove streams
+ List<EntityLiving> visible = new java.util.ArrayList<>(list.size());
+ for (int index = 0, len = list.size(); index < len; ++index) {
+ EntityLiving nearby = list.get(index);
+ if (Sensor.a(entityliving, nearby)) { // copied from removed code, make sure to update
+ visible.add(nearby);
+ }
+ }
+ behaviorcontroller.setMemory(MemoryModuleType.VISIBLE_MOBS, visible);
+ // Tuinity end - remove streams
}
public class SensorNearestLivingEntities extends Sensor<EntityLiving> {
@Override
diff --git a/src/main/java/net/minecraft/server/SensorNearestPlayers.java b/src/main/java/net/minecraft/server/SensorNearestPlayers.java
index 904a6d5ac61d2ac81f1057068383e9ab432852db..fa2d366ca6695c099c29469bf69a7845350b4f07 100644
index ee7b7a9fe393137171bbe2af5c7e3b864cb3aa99..defd6570ea4e42d6f77ef18d63385f2a9f5a07db 100644
--- a/src/main/java/net/minecraft/server/SensorNearestPlayers.java
+++ b/src/main/java/net/minecraft/server/SensorNearestPlayers.java
@@ -19,22 +19,31 @@ public class SensorNearestPlayers extends Sensor<EntityLiving> {
@@ -5,8 +5,6 @@ import java.util.Comparator;
import java.util.List;
import java.util.Optional;
import java.util.Set;
-import java.util.stream.Collectors;
-import java.util.stream.Stream;
@Override
protected void a(WorldServer worldserver, EntityLiving entityliving) {
- Stream stream = worldserver.getPlayers().stream().filter(IEntitySelector.g).filter((entityplayer) -> {
- return entityliving.a((Entity) entityplayer, 16.0D);
- });
-
- entityliving.getClass();
- List<EntityHuman> list = (List) stream.sorted(Comparator.comparingDouble(entityliving::h)).collect(Collectors.toList());
+ // Tuinity start - remove streams
+ List<EntityHuman> nearby = (List)worldserver.getNearbyPlayers(entityliving, entityliving.locX(), entityliving.locY(), entityliving.locZ(),
+ 16.0, IEntitySelector.g);
+ nearby.sort((e1, e2) -> Double.compare(entityliving.getDistanceSquared(e1), entityliving.getDistanceSquared(e2)));
BehaviorController<?> behaviorcontroller = entityliving.getBehaviorController();
public class SensorNearestPlayers extends Sensor<EntityLiving> {
- behaviorcontroller.setMemory(MemoryModuleType.NEAREST_PLAYERS, (Object) list);
- List<EntityHuman> list1 = (List) list.stream().filter((entityhuman) -> {
- return a(entityliving, (EntityLiving) entityhuman);
- }).collect(Collectors.toList());
-
- behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, (Object) (list1.isEmpty() ? null : (EntityHuman) list1.get(0)));
- Optional<EntityHuman> optional = list1.stream().filter(IEntitySelector.f).findFirst();
-
- behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_TARGETABLE_PLAYER, optional);
+ behaviorcontroller.setMemory(MemoryModuleType.NEAREST_PLAYERS, nearby);
+ EntityHuman first = null;
+ EntityHuman firstNonSpectator = null;
+ for (int index = 0, len = nearby.size(); index < len; ++index) {
+ EntityHuman entity = nearby.get(index);
+ if (!Sensor.a(entityliving, (EntityLiving)entity)) { // copied from removed code, make sure to update
+ continue;
+ }
+ if (first == null) {
+ first = entity;
+ }
+ if (IEntitySelector.f.test(entity)) { // copied from removed code, make sure to update
+ firstNonSpectator = entity;
+ break;
+ }
+ }
+
+ behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_PLAYER, first);
+ behaviorcontroller.setMemory(MemoryModuleType.NEAREST_VISIBLE_TARGETABLE_PLAYER, Optional.ofNullable(firstNonSpectator));
+ // Tuinity end - remove streams
}
}
diff --git a/src/main/java/net/minecraft/server/SensorVillagerBabies.java b/src/main/java/net/minecraft/server/SensorVillagerBabies.java
index a367bbfde4fbfeca6d01dec49c05f5e185aab43a..794b33a13b7f11b973caf085b0bded9b2135a4d7 100644
--- a/src/main/java/net/minecraft/server/SensorVillagerBabies.java
@@ -15498,7 +15418,7 @@ index 5c789b25f1df2eae8ea8ceb4ba977ba336fe6d5e..3c964f26592fc84bb5fc11c60808d11c
return new TicketType<>(s, comparator, 0L);
}
diff --git a/src/main/java/net/minecraft/server/UserCache.java b/src/main/java/net/minecraft/server/UserCache.java
index aa1b18ffa1e2b7f865f63b7df81d8f3b3d5aa966..3f9ba8ef2ae4f870c1567454fcb6678895a5094a 100644
index 8c3aa47a28914fd69a7f2e55a8c8f91d8e02371e..afc2ddf519cf4930663f1859b8ce89a7b825f332 100644
--- a/src/main/java/net/minecraft/server/UserCache.java
+++ b/src/main/java/net/minecraft/server/UserCache.java
@@ -49,6 +49,11 @@ public class UserCache {
@@ -15572,7 +15492,7 @@ index aa1b18ffa1e2b7f865f63b7df81d8f3b3d5aa966..3f9ba8ef2ae4f870c1567454fcb66788
}
// Paper start
@@ -287,7 +300,9 @@ public class UserCache {
@@ -288,7 +301,9 @@ public class UserCache {
}
private Stream<UserCache.UserCacheEntry> a(int i) {
@@ -16582,10 +16502,10 @@ index f5ab99156ce5429e63976183cbf115d5340a83a1..970c1be5477a01ab9c6d79e84c519e22
public abstract Entity getEntity(int i);
diff --git a/src/main/java/net/minecraft/server/WorldBorder.java b/src/main/java/net/minecraft/server/WorldBorder.java
index f011869880fedae4b69e505491e8bdbc5f51dfba..0d10d317cd0b60fc0866ae505c7fd71fa886c48b 100644
index 6e82c1d1b272a95144bfc78d34b630c24466fa3e..6b4c007550c3e2e405314d8931630557655ce6f1 100644
--- a/src/main/java/net/minecraft/server/WorldBorder.java
+++ b/src/main/java/net/minecraft/server/WorldBorder.java
@@ -47,11 +47,59 @@ public class WorldBorder {
@@ -50,11 +50,59 @@ public class WorldBorder {
return axisalignedbb.maxX > this.e() && axisalignedbb.minX < this.g() && axisalignedbb.maxZ > this.f() && axisalignedbb.minZ < this.h();
}
@@ -16645,7 +16565,7 @@ index f011869880fedae4b69e505491e8bdbc5f51dfba..0d10d317cd0b60fc0866ae505c7fd71f
public VoxelShape c() {
return this.j.m();
}
@@ -67,18 +115,22 @@ public class WorldBorder {
@@ -70,18 +118,22 @@ public class WorldBorder {
return Math.min(d6, d3);
}