mirror of
https://github.com/PurpurMC/Purpur.git
synced 2026-02-17 16:37:43 +01:00
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@a90092e Updated Upstream (CraftBukkit/Spigot) (#7848) PaperMC/Paper@79e07f3 Fix addPassenger for Marker (#7762) PaperMC/Paper@182a609 Fix duplicate world keys via createWorld (#7614) PaperMC/Paper@b6a6544 Provide ComponentSerializer services (#7527) PaperMC/Paper@3f7fbe3 Fix cb's janky level name in WorldCreator (#7851) PaperMC/Paper@af3b377 Update ForgeFlower (#7857) PaperMC/Paper@9667181 Fix OfflinePlayer#getBedSpawnLocation (#7861) PaperMC/Paper@c123915 Fix FurnaceInventory for smokers and blast furnaces (#7249) PaperMC/Paper@f7382f5 Remove unneeded UOE when copying biome sources (#7629) PaperMC/Paper@6b035fd Update default vanilla command perms (#7386) PaperMC/Paper@f210f67 Update the rewriteForIde for new cb package version (#7242) PaperMC/Paper@3f7111d Fix EntityEquipment and related javadocs (#7380) PaperMC/Paper@78e6431 Add default kick msg component (#6886) PaperMC/Paper@04e1b07 Check HAProxyMessage type is PROXY (#7864) PaperMC/Paper@00c6ae8 Implement Translatable on CreativeCategory (#7587) PaperMC/Paper@7602dd2 Sanitize Sent BlockEntity NBT (#7010) PaperMC/Paper@2d17a50 Add translation keys to GameMode enum (#7081) PaperMC/Paper@c5caee3 Prevent entity loading causing async lookups (#7553) PaperMC/Paper@71fe3c6 Add numeric string completion suggestions as int suggestions (#6360) PaperMC/Paper@b1ac25f Respect x-ray permission in World#refreshChunk (#7214) Pufferfish Changes: pufferfish-gg/Pufferfish@6186c1f Updated Upstream (Paper) pufferfish-gg/Pufferfish@b235d83 Fix regression with SIMD vector sizes not matching 256-bits pufferfish-gg/Pufferfish@27cb1ac Updated Upstream (Paper)
67 lines
3.0 KiB
Diff
67 lines
3.0 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: James Lyne <jim+github@not-null.co.uk>
|
|
Date: Mon, 7 Dec 2020 17:52:36 +0000
|
|
Subject: [PATCH] Spread out and optimise player list ticksSpread out and
|
|
optimise player list ticks
|
|
|
|
|
|
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
index b90138f95ad0cdeda2ed6e9a881f01c7b22dd3f2..ed4e4de5f4e303a8fe1c64040c65ab24c2f7e4d6 100644
|
|
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
|
|
@@ -1018,22 +1018,22 @@ public abstract class PlayerList {
|
|
}
|
|
|
|
public void tick() {
|
|
- if (++this.sendAllPlayerInfoIn > 600) {
|
|
- // CraftBukkit start
|
|
- for (int i = 0; i < this.players.size(); ++i) {
|
|
- final ServerPlayer target = (ServerPlayer) this.players.get(i);
|
|
-
|
|
- target.connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_LATENCY, this.players.stream().filter(new Predicate<ServerPlayer>() {
|
|
- @Override
|
|
- public boolean apply(ServerPlayer input) {
|
|
- return target.getBukkitEntity().canSee(input.getBukkitEntity());
|
|
- }
|
|
- }).collect(Collectors.toList())));
|
|
+ // Purpur start
|
|
+ if (this.sendAllPlayerInfoIn < this.players.size()) {
|
|
+ final org.bukkit.craftbukkit.entity.CraftPlayer target = this.players.get(this.sendAllPlayerInfoIn).getBukkitEntity();
|
|
+ final List<ServerPlayer> list = new java.util.ArrayList<>();
|
|
+ for (ServerPlayer player : this.players) {
|
|
+ if (target.canSee(player.getUUID())) {
|
|
+ list.add(player);
|
|
+ }
|
|
}
|
|
- // CraftBukkit end
|
|
- this.sendAllPlayerInfoIn = 0;
|
|
+ target.getHandle().connection.send(new ClientboundPlayerInfoPacket(ClientboundPlayerInfoPacket.Action.UPDATE_LATENCY, list));
|
|
}
|
|
|
|
+ if (++this.sendAllPlayerInfoIn > 600) {
|
|
+ this.sendAllPlayerInfoIn = 0;
|
|
+ }
|
|
+ // Purpur end
|
|
}
|
|
|
|
public void broadcastAll(Packet<?> packet) {
|
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
index 2cd475ac88b3d28aa918ca7f8599a70a5b5c2ea4..365358ef910594980f0126a4300a40bb2293e03c 100644
|
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
|
|
@@ -1737,7 +1737,13 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
|
|
|
|
@Override
|
|
public boolean canSee(org.bukkit.entity.Entity entity) {
|
|
- return !this.hiddenEntities.containsKey(entity.getUniqueId());
|
|
+ // Purpur start
|
|
+ return this.canSee(entity.getUniqueId());
|
|
+ }
|
|
+
|
|
+ public boolean canSee(UUID uuid) {
|
|
+ return !this.hiddenEntities.containsKey(uuid);
|
|
+ // Purpur end
|
|
}
|
|
|
|
@Override
|