Files
AkarinMC/patches-1.16.5/server/0014-Remove-a-few-more-streams.patch
2025-02-18 18:18:07 +11:00

103 lines
4.9 KiB
Diff

From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Sotr <i@omc.hk>
Date: Wed, 15 Apr 2020 22:45:48 +0700
Subject: [PATCH] Remove a few more streams
diff --git a/src/main/java/net/minecraft/server/ChunkMapDistance.java b/src/main/java/net/minecraft/server/ChunkMapDistance.java
index 7f3887b0894aca0f972922f434382646a6ad6174..4f74922bf0b364bf1ab84460f2a01302a1ea596c 100644
--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java
+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java
@@ -192,9 +192,15 @@ public abstract class ChunkMapDistance {
while (longiterator.hasNext()) {
long j = longiterator.nextLong();
+ // Akarin start - remove stream
+ ArraySetSorted<Ticket<?>> sorted = this.tickets.get(j);
+ /*
if (this.e(j).stream().anyMatch((ticket) -> {
return ticket.getTicketType() == TicketType.PLAYER;
})) {
+ */
+ Runnable runnable = () -> {
+ // Akarin end
PlayerChunk playerchunk = playerchunkmap.getUpdatingChunk(j);
if (playerchunk == null) {
@@ -210,6 +216,22 @@ public abstract class ChunkMapDistance {
});
});
}
+ // Akarin start - remove stream
+ ; // end runnable
+
+ if (sorted == null) {
+ sorted = ArraySetSorted.a(4);
+ this.tickets.put(j, sorted);
+
+ } else {
+ for (Ticket<?> ticket : sorted) {
+ if (ticket.getTicketType() == TicketType.PLAYER) {
+ runnable.run();
+ break; // run for only once
+ }
+ }
+ }
+ // Akarin end
}
this.l.clear();
diff --git a/src/main/java/net/minecraft/server/EntityTNTPrimed.java b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
index 6e77dc89f5441f0f483571fee9aa9f34b6d1dd1c..33097f23326a033bc82a64315e296c8990b28b7f 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -93,12 +93,23 @@ public class EntityTNTPrimed extends Entity {
PacketPlayOutEntityVelocity velocityPacket = new PacketPlayOutEntityVelocity(this);
PacketPlayOutEntityTeleport positionPacket = new PacketPlayOutEntityTeleport(this);
+ // Akarin start - remove stream
+ /*
ete.trackedPlayers.stream()
.filter(viewer -> (viewer.locX() - this.locX()) * (viewer.locY() - this.locY()) * (viewer.locZ() - this.locZ()) < 16 * 16)
.forEach(viewer -> {
viewer.playerConnection.sendPacket(velocityPacket);
viewer.playerConnection.sendPacket(positionPacket);
});
+ */
+
+ for (EntityPlayer viewer : ete.trackedPlayers) {
+ if ((viewer.locX() - this.locX()) * (viewer.locY() - this.locY()) * (viewer.locZ() - this.locZ()) < 16 * 16) {
+ viewer.playerConnection.sendPacket(velocityPacket);
+ viewer.playerConnection.sendPacket(positionPacket);
+ }
+ }
+ // Akarin end
}
}
// Paper end
diff --git a/src/main/java/net/minecraft/server/EntityVillager.java b/src/main/java/net/minecraft/server/EntityVillager.java
index bf9732058c7e55e8f1ed38b3b5e8831e6b21706c..ab6dcc3a19f4a1de86fe36802c13fc484cbb2e88 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -589,11 +589,20 @@ public class EntityVillager extends EntityVillagerAbstract implements Reputation
if (optional.isPresent()) {
WorldServer worldserver = (WorldServer) this.world;
+ // Akarin start - remote stream
+ /*
((List) optional.get()).stream().filter((entityliving) -> {
return entityliving instanceof ReputationHandler;
}).forEach((entityliving) -> {
worldserver.a(ReputationEvent.d, entity, (ReputationHandler) entityliving);
});
+ */
+
+ for (EntityLiving each : optional.get()) {
+ if (each instanceof ReputationHandler)
+ worldserver.a(ReputationEvent.d, entity, (ReputationHandler) each);
+ }
+ // Akarin end
}
}
}