Files
AkarinMC/patches/server/0022-Remove-a-few-more-streams.patch
2020-04-15 23:18:38 +07:00

106 lines
4.7 KiB
Diff

From 6c78e211340d417d966f0ac836db8fac179b93f4 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 13d113aee5..1890fad9ed 100644
--- a/src/main/java/net/minecraft/server/ChunkMapDistance.java
+++ b/src/main/java/net/minecraft/server/ChunkMapDistance.java
@@ -108,9 +108,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) {
@@ -126,6 +132,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 9c31edade2..eb3f45d8b7 100644
--- a/src/main/java/net/minecraft/server/EntityTNTPrimed.java
+++ b/src/main/java/net/minecraft/server/EntityTNTPrimed.java
@@ -92,12 +92,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 a7a07ffc43..c9f0f7787f 100644
--- a/src/main/java/net/minecraft/server/EntityVillager.java
+++ b/src/main/java/net/minecraft/server/EntityVillager.java
@@ -548,11 +548,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
}
}
}
--
2.25.1.windows.1