Skip to content

Commit 00f2e40

Browse files
Update Upstream (#74)
Co-authored-by: PureGero <8893026+PureGero@users.noreply.github.com>
1 parent 08492f3 commit 00f2e40

4 files changed

Lines changed: 61 additions & 61 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,7 @@ mcVersion=26.2
44
apiVersion=26.2
55
version=26.2
66

7-
purpurRef=fc3c961cdbea92b1205f2f175b89dcd9b4ab0be2
7+
purpurRef=ed29e9980557c6f252ccbfbc50dced007b6c05f7
88

99
org.gradle.configuration-cache=true
1010
org.gradle.caching=true

shreddedpaper-server/minecraft-patches/sources/net/minecraft/server/level/ChunkMap.java.patch

Lines changed: 22 additions & 22 deletions
Original file line numberDiff line numberDiff line change
@@ -79,7 +79,7 @@
7979
((ca.spottedleaf.moonrise.patches.chunk_system.level.ChunkSystemServerLevel)this.level).moonrise$getChunkTaskScheduler().chunkHolderManager.autoSave(); // Paper - rewrite chunk system
8080
}
8181

82-
@@ -702,7 +_,7 @@
82+
@@ -703,7 +_,7 @@
8383
}
8484

8585
// Paper start - optimise chunk tick iteration
@@ -88,15 +88,15 @@
8888
final ca.spottedleaf.moonrise.patches.chunk_system.level.chunk.ChunkData chunkData = ((ca.spottedleaf.moonrise.patches.chunk_system.level.chunk.ChunkSystemLevelChunk)levelChunk).moonrise$getChunkHolder().holderData;
8989
final ca.spottedleaf.moonrise.common.misc.NearbyPlayers.TrackedChunk nearbyPlayers = chunkData.nearbyPlayers;
9090
if (nearbyPlayers == null) {
91-
@@ -722,6 +_,7 @@
91+
@@ -723,6 +_,7 @@
9292

9393
Objects.checkFromIndexSize(0, len, raw.length);
9494
for (int i = 0; i < len; ++i) {
9595
+ try { // ShreddedPaper - concurrent modification
9696
// Paper start - PlayerNaturallySpawnCreaturesEvent
9797
com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent event = raw[i].playerNaturallySpawnedEvent;
9898
if (event == null || event.isCancelled()) {
99-
@@ -732,31 +_,34 @@
99+
@@ -733,31 +_,34 @@
100100
// Paper end - PlayerNaturallySpawnCreaturesEvent
101101
return true;
102102
}
@@ -150,7 +150,7 @@
150150

151151
public void forEachBlockTickingChunk(final Consumer<LevelChunk> tickingChunkConsumer) {
152152
this.distanceManager.forEachEntityTickingChunk(chunkPos -> {
153-
@@ -814,7 +_,9 @@
153+
@@ -815,7 +_,9 @@
154154

155155
Objects.checkFromIndexSize(0, len, raw.length);
156156
for (int i = 0; i < len; ++i) {
@@ -160,15 +160,15 @@
160160
// Paper start - PlayerNaturallySpawnCreaturesEvent
161161
com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent event;
162162
blockRange = 16384.0;
163-
@@ -827,6 +_,7 @@
163+
@@ -828,6 +_,7 @@
164164
// Paper end - PlayerNaturallySpawnCreaturesEvent
165165
return true;
166166
}
167167
+ } catch (IndexOutOfBoundsException ignored) {} // ShreddedPaper - concurrent modification
168168
}
169169

170170
return false;
171-
@@ -849,7 +_,9 @@
171+
@@ -850,7 +_,9 @@
172172

173173
Objects.checkFromIndexSize(0, len, raw.length);
174174
for (int i = 0; i < len; ++i) {
@@ -178,15 +178,15 @@
178178
if (this.playerIsCloseEnoughForSpawning(player, pos, 16384.0D)) { // Spigot
179179
if (ret == null) {
180180
ret = new ArrayList<>(len - i);
181-
@@ -858,6 +_,7 @@
181+
@@ -859,6 +_,7 @@
182182
ret.add(player);
183183
}
184184
}
185185
+ } catch (IndexOutOfBoundsException ignored) {} // ShreddedPaper - concurrent modification
186186
}
187187

188188
return ret == null ? new ArrayList<>() : ret;
189-
@@ -983,9 +_,9 @@
189+
@@ -984,9 +_,9 @@
190190
protected void addEntity(final Entity entity) {
191191
org.spigotmc.AsyncCatcher.catchOp("entity track"); // Spigot
192192
// Paper start - ignore and warn about illegal addEntity calls instead of crashing server
@@ -198,7 +198,7 @@
198198
return;
199199
}
200200
// Paper end - ignore and warn about illegal addEntity calls instead of crashing server
201-
@@ -996,12 +_,13 @@
201+
@@ -997,12 +_,13 @@
202202
range = org.spigotmc.TrackingRange.getEntityTrackingRange(entity, range); // Spigot
203203
if (range != 0) {
204204
int updateInterval = type.updateInterval();
@@ -214,7 +214,7 @@
214214
// Paper start - optimise entity tracker
215215
if (((ca.spottedleaf.moonrise.patches.entity_tracker.EntityTrackerEntity)entity).moonrise$getTrackedEntity() != null) {
216216
throw new IllegalStateException("Entity is already tracked");
217-
@@ -1011,8 +_,9 @@
217+
@@ -1012,8 +_,9 @@
218218
trackedEntity.updatePlayers(this.level.players());
219219
if (entity instanceof ServerPlayer player) {
220220
this.updatePlayerStatus(player, true);
@@ -225,7 +225,7 @@
225225
if (e.entity != player) {
226226
e.updatePlayer(player);
227227
}
228-
@@ -1027,13 +_,14 @@
228+
@@ -1028,13 +_,14 @@
229229
if (entity instanceof ServerPlayer player) {
230230
this.updatePlayerStatus(player, false);
231231

@@ -242,7 +242,7 @@
242242
trackedEntity.broadcastRemoved();
243243
}
244244
((ca.spottedleaf.moonrise.patches.entity_tracker.EntityTrackerEntity)entity).moonrise$setTrackedEntity(null); // Paper - optimise entity tracker
245-
@@ -1041,22 +_,25 @@
245+
@@ -1042,22 +_,25 @@
246246

247247
// Paper start - optimise entity tracker
248248
private void newTrackerTick() {
@@ -282,7 +282,7 @@
282282
}
283283
// Paper end - optimise entity tracker
284284

285-
@@ -1072,7 +_,7 @@
285+
@@ -1073,7 +_,7 @@
286286
List<ServerPlayer> movedPlayers = Lists.newArrayList();
287287
List<ServerPlayer> players = this.level.players();
288288

@@ -291,7 +291,7 @@
291291
SectionPos oldPos = trackedEntity.lastSectionPos;
292292
SectionPos newPos = SectionPos.of(trackedEntity.entity);
293293
boolean sectionPosChanged = !Objects.equals(oldPos, newPos);
294-
@@ -1091,14 +_,14 @@
294+
@@ -1092,14 +_,14 @@
295295
}
296296

297297
if (!movedPlayers.isEmpty()) {
@@ -308,7 +308,7 @@
308308
if (trackedEntity != null) {
309309
trackedEntity.sendToTrackingPlayers(packet);
310310
}
311-
@@ -1107,26 +_,26 @@
311+
@@ -1108,26 +_,26 @@
312312
public void sendToTrackingPlayersFiltered(
313313
final Entity entity, final Packet<? super ClientGamePacketListener> packet, final Predicate<ServerPlayer> targetPredicate
314314
) {
@@ -339,15 +339,15 @@
339339
if (entity.seenBy.contains(player.connection)) {
340340
consumer.accept(entity.entity);
341341
}
342-
@@ -1212,6 +_,7 @@
342+
@@ -1213,6 +_,7 @@
343343
private final int range;
344344
private SectionPos lastSectionPos;
345345
public final Set<ServerPlayerConnection> seenBy = new it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet<>(); // Paper - Perf: optimise map impl
346346
+ public final ReentrantLock seenByLock = new ReentrantLock(); // ShreddedPaper - seenBy thread safety
347347

348348
// Paper start - optimise entity tracker
349349
private long lastChunkUpdate = -1L;
350-
@@ -1237,21 +_,33 @@
350+
@@ -1238,21 +_,33 @@
351351
this.lastChunkUpdate = currChunkUpdate;
352352
this.lastTrackedChunk = chunk;
353353

@@ -382,7 +382,7 @@
382382
}
383383
}
384384

385-
@@ -1302,6 +_,91 @@
385+
@@ -1303,6 +_,91 @@
386386
this.range = range;
387387
this.lastSectionPos = SectionPos.of(entity);
388388
}
@@ -474,7 +474,7 @@
474474

475475
@Override
476476
public boolean equals(final Object obj) {
477-
@@ -1315,9 +_,13 @@
477+
@@ -1316,9 +_,13 @@
478478

479479
@Override
480480
public void sendToTrackingPlayers(final Packet<? super ClientGamePacketListener> packet) {
@@ -488,7 +488,7 @@
488488
}
489489

490490
@Override
491-
@@ -1330,27 +_,33 @@
491+
@@ -1331,27 +_,33 @@
492492

493493
@Override
494494
public void sendToTrackingPlayersFiltered(final Packet<? super ClientGamePacketListener> packet, final Predicate<ServerPlayer> targetPredicate) {
@@ -522,15 +522,15 @@
522522
}
523523

524524
public void updatePlayer(final ServerPlayer player) {
525-
@@ -1384,6 +_,7 @@
525+
@@ -1385,6 +_,7 @@
526526
}
527527
// CraftBukkit end
528528
if (visibleToPlayer) {
529529
+ this.seenByLock.lock(); try { // ShreddedPaper - seenBy thread safety
530530
if (this.seenBy.add(player.connection)) {
531531
// Paper start - entity tracking events
532532
if (io.papermc.paper.event.player.PlayerTrackEntityEvent.getHandlerList().getRegisteredListeners().length == 0 || new io.papermc.paper.event.player.PlayerTrackEntityEvent(player.getBukkitEntity(), this.entity.getBukkitEntity()).callEvent()) {
533-
@@ -1397,6 +_,7 @@
533+
@@ -1398,6 +_,7 @@
534534
// Paper end - entity tracking events
535535
this.serverEntity.onPlayerAdd(); // Paper - fix desync when a player is added to the tracker
536536
}

0 commit comments

Comments
 (0)