Skip to content

Commit 7cf5564

Browse files
committed
Fix build errors
1 parent aa4cf19 commit 7cf5564

26 files changed

Lines changed: 66 additions & 138 deletions

File tree

.github/workflows/build.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -25,9 +25,9 @@ jobs:
2525
- name: Apply Patches
2626
run: ./gradlew applyAllPatches --stacktrace
2727
- name: Build
28-
run: ./gradlew createMojmapPaperclipJar --stacktrace
28+
run: ./gradlew createPaperclipJar --stacktrace
2929
- name: Upload Paperclip jar
3030
uses: actions/upload-artifact@v4
3131
with:
3232
name: shreddedpaper.jar
33-
path: shreddedpaper-server/build/libs/shreddedpaper-paperclip-*-mojmap.jar
33+
path: shreddedpaper-server/build/libs/shreddedpaper-paperclip-*.jar

.github/workflows/upstream.yml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -27,7 +27,7 @@ jobs:
2727
- name: Apply Patches
2828
run: ./gradlew applyAllPatches --stacktrace
2929
- name: Build
30-
run: ./gradlew createMojmapPaperclipJar --stacktrace
30+
run: ./gradlew createPaperclipJar --stacktrace
3131
- name: Rebuild Server Patches
3232
run: ./gradlew rebuildAllServerPatches --stacktrace
3333
- name: Rebuild Api Patches
@@ -36,7 +36,7 @@ jobs:
3636
uses: actions/upload-artifact@v4
3737
with:
3838
name: shreddedpaper.jar
39-
path: shreddedpaper-server/build/libs/shreddedpaper-paperclip-*-mojmap.jar
39+
path: shreddedpaper-server/build/libs/shreddedpaper-paperclip-*.jar
4040
- name: Create Pull Request
4141
uses: peter-evans/create-pull-request@v6
4242
with:

gradle.properties

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@ group=io.multipaper.shreddedpaper
22

33
mcVersion=26.1.1
44
apiVersion=26.1.1
5+
version=26.1.1
56

67
purpurRef=d53e7784d601acc5b40579486858c9fded29ec09
78

shreddedpaper-server/minecraft-patches/sources/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/NewChunkHolder.java.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -29,14 +29,14 @@
2929
if (!this.inUnloadQueue) {
3030
this.inUnloadQueue = true;
3131
- this.scheduler.chunkHolderManager.unloadQueue.addChunk(this.chunkX, this.chunkZ);
32-
+ world.chunkSource.tickingRegions.getOrCreate(RegionPos.forChunk(vanillaChunkHolder.getPos())).unloadQueue.add(vanillaChunkHolder.getPos().toLong()); // this.scheduler.chunkHolderManager.unloadQueue.addChunk(this.chunkX, this.chunkZ); // ShreddedPaper
32+
+ world.chunkSource.tickingRegions.getOrCreate(RegionPos.forChunk(vanillaChunkHolder.getPos())).unloadQueue.add(vanillaChunkHolder.getPos().longKey()); // this.scheduler.chunkHolderManager.unloadQueue.addChunk(this.chunkX, this.chunkZ); // ShreddedPaper
3333
}
3434
} else {
3535
// ensure not in unload queue
3636
if (this.inUnloadQueue) {
3737
this.inUnloadQueue = false;
3838
- this.scheduler.chunkHolderManager.unloadQueue.removeChunk(this.chunkX, this.chunkZ);
39-
+ Optional.ofNullable(world.chunkSource.tickingRegions.get(RegionPos.forChunk(vanillaChunkHolder.getPos()))).ifPresent(v -> v.unloadQueue.remove(vanillaChunkHolder.getPos().toLong())); // this.scheduler.chunkHolderManager.unloadQueue.removeChunk(this.chunkX, this.chunkZ); // ShreddedPaper
39+
+ Optional.ofNullable(world.chunkSource.tickingRegions.get(RegionPos.forChunk(vanillaChunkHolder.getPos()))).ifPresent(v -> v.unloadQueue.remove(vanillaChunkHolder.getPos().longKey())); // this.scheduler.chunkHolderManager.unloadQueue.removeChunk(this.chunkX, this.chunkZ); // ShreddedPaper
4040
}
4141
}
4242
}

shreddedpaper-server/minecraft-patches/sources/net/minecraft/server/Main.java.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,7 +14,7 @@
1414
JvmProfiler.INSTANCE.start(Environment.SERVER);
1515
}
1616
+
17-
+ ShreddedPaperConfigurationLoader.init((File) optionSet.valueOf("shreddedpaper-settings")); // ShreddedPaper
17+
+ ShreddedPaperConfigurationLoader.init((File) options.valueOf("shreddedpaper-settings")); // ShreddedPaper
1818

1919
// Purpur start - Add toggle for enchant level clamping - load config files early
2020
org.bukkit.configuration.file.YamlConfiguration purpurConfiguration = io.papermc.paper.configuration.PaperConfigurations.loadLegacyConfigFile((File) options.valueOf("purpur-settings"));

shreddedpaper-server/minecraft-patches/sources/net/minecraft/server/MinecraftServer.java.patch

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -136,7 +136,7 @@
136136
this.processQueue.remove().run();
137137
}
138138

139-
+ profilerFiller.popPush("connection"); // ShreddedPaper - moved up
139+
+ profiler.popPush("connection"); // ShreddedPaper - moved up
140140
+ this.tickConnection(); // ShreddedPaper - moved up
141141
+ // ShreddedPaper start - some players aren't registered in their level if they're dead, let's manually add a task for them to process them
142142
+ for (ServerPlayer player : this.playerList.getPlayers()) {
@@ -159,10 +159,11 @@
159159
for (ServerLevel level : this.getAllLevels()) {
160160
level.hasPhysicsEvent = org.bukkit.event.block.BlockPhysicsEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - BlockPhysicsEvent
161161
level.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
162-
@@ -1878,6 +_,9 @@
162+
@@ -1877,7 +_,9 @@
163+
profiler.push("tick");
163164

164165
try {
165-
level.tick(haveTime);
166+
- level.tick(haveTime);
166167
+ futures.add(CompletableFuture.supplyAsync(() -> level.tickAsync(haveTime), level.levelThread).thenCompose(v -> v).thenRun(() -> { // ShreddedPaper - tick worlds async
167168
+ level.explosionDensityCache.clear(); // Paper - Optimize explosions // ShreddedPaper - moved up from below
168169
+ })); // ShreddedPaper

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

Lines changed: 1 addition & 87 deletions
Original file line numberDiff line numberDiff line change
@@ -381,7 +381,7 @@
381381
}
382382
}
383383

384-
@@ -1303,6 +_,177 @@
384+
@@ -1303,6 +_,91 @@
385385
this.range = range;
386386
this.lastSectionPos = SectionPos.of(entity);
387387
}
@@ -469,92 +469,6 @@
469469
+ seenByLock.unlock();
470470
+ }
471471
+ }
472-
+ // ShreddedPaper end - maximum trackers per entity
473-
+
474-
+
475-
+ // ShreddedPaper start - maximum trackers per entity
476-
+ private record DistancedServerPlayer(ServerPlayer serverPlayer, double distanceSqr, boolean hasBypassPerm) implements Comparable<DistancedServerPlayer> {
477-
+ DistancedServerPlayer(ServerPlayer serverPlayer, Entity entity) {
478-
+ this(serverPlayer, distanceBetween(serverPlayer, entity), serverPlayer.hasMaximumTrackerBypassPermission);
479-
+ }
480-
+
481-
+ private static double distanceBetween(ServerPlayer serverPlayer, Entity entity) {
482-
+ double vec3d_dx = serverPlayer.getX() - entity.getX();
483-
+ double vec3d_dz = serverPlayer.getZ() - entity.getZ();
484-
+ return vec3d_dx * vec3d_dx + vec3d_dz * vec3d_dz;
485-
+ }
486-
+
487-
+ @Override
488-
+ public int compareTo(@NotNull ChunkMap.TrackedEntity.DistancedServerPlayer o) {
489-
+ int compareResult = Double.compare(hasBypassPerm ? 0 : this.distanceSqr, o.hasBypassPerm ? 0 : o.distanceSqr);
490-
+ return compareResult == 0 ? Integer.compare(this.serverPlayer.getId(), o.serverPlayer.getId()) : compareResult;
491-
+ }
492-
+ }
493-
+
494-
+ public void updatePlayersLimitedAndOrdered(ca.spottedleaf.moonrise.common.list.ReferenceList<ServerPlayer> players, boolean hasTrackerCandidatesChanged, boolean fullTrackerUpdate) {
495-
+ if (!hasTrackerCandidatesChanged && !fullTrackerUpdate) return;
496-
+
497-
+ TreeSet<DistancedServerPlayer> playerSet = new TreeSet<>();
498-
+ final ServerPlayer[] playersRaw = players.getRawDataUnchecked();
499-
+
500-
+ for (int index = 0, len = players.size(); index < len; ++index) {
501-
+ ServerPlayer player = playersRaw[index];
502-
+ if (player == null || player == this.entity) continue;
503-
+ DistancedServerPlayer distancedPlayer = new DistancedServerPlayer(player, this.entity);
504-
+ int i = ChunkMap.this.getPlayerViewDistance(player);
505-
+ double d0 = (double) Math.min(this.getEffectiveRange(), i * 16);
506-
+ double d2 = d0 * d0;
507-
+ boolean flag = distancedPlayer.distanceSqr <= d2 && this.entity.broadcastToPlayer(player) && ChunkMap.this.isChunkTracked(player, this.entity.chunkPosition().x, this.entity.chunkPosition().z);
508-
+ // Paper start - Configurable entity tracking range by Y
509-
+ if (flag && level.paperConfig().entities.trackingRangeY.enabled) {
510-
+ double rangeY = level.paperConfig().entities.trackingRangeY.get(this.entity, -1);
511-
+ if (rangeY != -1) {
512-
+ double vec3d_dy = player.getY() - this.entity.getY();
513-
+ flag = vec3d_dy * vec3d_dy <= rangeY * rangeY;
514-
+ }
515-
+ }
516-
+ // Paper end - Configurable entity tracking range by Y
517-
+
518-
+ // CraftBukkit start - respect vanish API
519-
+ if (flag && !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Paper - only consider hits
520-
+ flag = false;
521-
+ }
522-
+
523-
+ if (flag) {
524-
+ playerSet.add(distancedPlayer);
525-
+ }
526-
+ }
527-
+
528-
+ seenByLock.lock();
529-
+ try {
530-
+ Set<ServerPlayer> canBeSeenBy = new ReferenceOpenHashSet<>(Math.min(ShreddedPaperConfiguration.get().optimizations.maximumTrackersPerEntity, playerSet.size()));
531-
+ java.util.Iterator<DistancedServerPlayer> playerSetIterator = playerSet.iterator();
532-
+ int count = 0;
533-
+ while (playerSetIterator.hasNext() && count++ < ShreddedPaperConfiguration.get().optimizations.maximumTrackersPerEntity) { // ShreddedPaper - maximum trackers per entity
534-
+ DistancedServerPlayer distancedPlayer = playerSetIterator.next();
535-
+ ServerPlayer player = distancedPlayer.serverPlayer();
536-
+ canBeSeenBy.add(player);
537-
+ if (this.seenBy.add(player.connection)) {
538-
+ // Paper start - entity tracking events
539-
+ if (io.papermc.paper.event.player.PlayerTrackEntityEvent.getHandlerList().getRegisteredListeners().length == 0 || new io.papermc.paper.event.player.PlayerTrackEntityEvent(player.getBukkitEntity(), this.entity.getBukkitEntity()).callEvent()) {
540-
+ this.serverEntity.addPairing(player);
541-
+ }
542-
+ // Paper end - entity tracking events
543-
+ this.serverEntity.onPlayerAdd(); // Paper - fix desync when a player is added to the tracker
544-
+ }
545-
+ }
546-
+
547-
+ if (this.seenBy.size() != canBeSeenBy.size()) {
548-
+ for (ServerPlayerConnection conn : this.seenBy.toArray(new ServerPlayerConnection[0])) { // avoid CME
549-
+ if (!canBeSeenBy.contains(conn.getPlayer()) && this.seenBy.remove(conn)) {
550-
+ this.serverEntity.removePairing(conn.getPlayer());
551-
+ }
552-
+ }
553-
+ }
554-
+ } finally {
555-
+ seenByLock.unlock();
556-
+ }
557-
+ }
558472
+ // ShreddedPaper end - maximum trackers per entity
559473

560474
@Override

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

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -55,13 +55,14 @@
5555
}
5656

5757
private int getPlayerTicketLevel() {
58-
@@ -233,8 +_,10 @@
58+
@@ -233,8 +_,11 @@
5959
}
6060

6161
private boolean havePlayer(final long chunkPos) {
6262
- ObjectSet<ServerPlayer> players = DistanceManager.this.playersPerChunk.get(chunkPos);
6363
- return players != null && !players.isEmpty();
6464
+ // ShreddedPaper start - Remove unused DistanceManager methods
65+
+ throw new UnsupportedOperationException("REPORT THIS STACK TRACE TO SHREDDEDPAPER"); // ShreddedPaper - Remove unused DistanceManager methods
6566
+// ObjectSet<ServerPlayer> players = DistanceManager.this.playersPerChunk.get(chunkPos);
6667
+// return players != null && !players.isEmpty();
6768
+ // ShreddedPaper end - Remove unused DistanceManager methods

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

Lines changed: 1 addition & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -9,15 +9,6 @@
99
import net.minecraft.CrashReport;
1010
import net.minecraft.CrashReportCategory;
1111
import net.minecraft.ReportedException;
12-
@@ -50,7 +_,7 @@
13-
public static CompletableFuture<Vec3> findSpawn(final ServerLevel level, final BlockPos spawnSuggestion) {
14-
if (level.dimensionType().hasSkyLight() && level.serverLevelData.getGameType() != GameType.ADVENTURE) { // CraftBukkit
15-
int radius = Math.max(0, level.getGameRules().get(GameRules.RESPAWN_RADIUS));
16-
- int distToBorder = Mth.floor(level.getWorldBorder().getDistanceToBorder(spawnSuggestion.getX(), spawnSuggestion.getZ()));
17-
+ int distToBorder = Mth.floor(level.getWorldBorder().geDistanceToBorder(spawnSuggestion.getX(), spawnSuggestion.getZ()));
18-
if (distToBorder < radius) {
19-
radius = distToBorder;
20-
}
2112
@@ -70,9 +_,9 @@
2213
private void scheduleNext() {
2314
int candidateIndex = this.nextCandidateIndex++;
@@ -36,7 +27,7 @@
3627
this.finishedFuture.completeExceptionally(new ReportedException(report));
3728
}
3829
- }, this.level.chunkSource.mainThreadProcessor); // Paper - rewrite chunk system
39-
+ }, this.level.getChunkSource().tickingRegions.executorFor(RegionPos.forChunk(sectionPosX, sectionPosZ))); // Paper - rewrite chunk system // ShreddedPaper - run on region
30+
+ }, this.level.getChunkSource().tickingRegions.executorFor(RegionPos.forChunk(chunkX, chunkZ))); // Paper - rewrite chunk system // ShreddedPaper - run on region
4031
}
4132
}
4233

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

Lines changed: 12 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,14 @@
1616
import it.unimi.dsi.fastutil.longs.LongSet;
1717
import it.unimi.dsi.fastutil.objects.ObjectArrayList;
1818
import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet;
19+
@@ -22,6 +_,7 @@
20+
import net.minecraft.core.SectionPos;
21+
import net.minecraft.network.protocol.Packet;
22+
import net.minecraft.network.protocol.game.ClientGamePacketListener;
23+
+import net.minecraft.server.MinecraftServer;
24+
import net.minecraft.util.FileUtil;
25+
import net.minecraft.util.Util;
26+
import net.minecraft.util.VisibleForDebug;
1927
@@ -72,7 +_,9 @@
2028
private final @Nullable ChunkStatus[] lastChunkStatus = new ChunkStatus[4];
2129
private final @Nullable ChunkAccess[] lastChunk = new ChunkAccess[4];
@@ -274,10 +282,12 @@
274282
}
275283
}
276284

277-
@@ -828,12 +_,27 @@
285+
@@ -827,13 +_,28 @@
286+
}
278287

279288
@Override
280-
protected boolean pollTask() {
289+
- protected boolean pollTask() {
290+
+ public boolean pollTask() { // ShreddedPaper - make public
281291
+ // ShreddedPaper start - run all region tasks cause the worker threads might be deadlocked and not get to them
282292
+ if ((!MinecraftServer.getServer().executingMidTickTasks.get() && TickThread.isTickThread()) || TickThread.isShutdownThread()) {
283293
+ level.getChunkSource().tickingRegions.forEach(region -> {

0 commit comments

Comments
 (0)