Skip to content

Commit 6a660f3

Browse files
authored
Merge pull request #179 from InfernalSuite/develop
Promote 1.21.8 to stable
2 parents 06e861f + 6c0bd1e commit 6a660f3

File tree

49 files changed

+522
-283
lines changed

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

49 files changed

+522
-283
lines changed

aspaper-api/build.gradle.kts.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -38,7 +38,7 @@
3838
}
3939
@@ -166,7 +_,7 @@
4040

41-
tasks.withType<Javadoc> {
41+
tasks.withType<Javadoc>().configureEach {
4242
val options = options as StandardJavadocDocletOptions
4343
- options.overview = "src/main/javadoc/overview.html"
4444
+ options.overview = "../paper-api/src/main/javadoc/overview.html"

aspaper-server/build.gradle.kts.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,7 @@
4949
implementation("ca.spottedleaf:concurrentutil:0.0.3")
5050
implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+
5151
implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21
52-
@@ -205,14 +_,14 @@
52+
@@ -200,14 +_,14 @@
5353
val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim()
5454
attributes(
5555
"Main-Class" to "org.bukkit.craftbukkit.Main",
@@ -69,7 +69,7 @@
6969
"Build-Number" to (build ?: ""),
7070
"Build-Time" to buildTime.toString(),
7171
"Git-Branch" to gitBranch,
72-
@@ -271,7 +_,7 @@
72+
@@ -266,7 +_,7 @@
7373
jvmArgumentProviders.add(provider)
7474
}
7575

aspaper-server/minecraft-patches/sources/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/task/ChunkLoadTask.java.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55

66
public final NewChunkHolder chunkHolder;
77
- private final ChunkDataLoadTask loadTask;
8-
+ private final com.infernalsuite.asp.level.CommonLoadTask loadTask; // ASP
8+
+ private final com.infernalsuite.asp.level.moonrise.CommonLoadTask loadTask; // ASP
99

1010
private volatile boolean cancelled;
1111
private NewChunkHolder.GenericDataLoadTaskCallback entityLoadTask;
@@ -40,7 +40,7 @@
4040
private static record ReadChunk(ProtoChunk protoChunk, SerializableChunkData chunkData) {}
4141

4242
- private static final class ChunkDataLoadTask extends CallbackDataLoadTask<ReadChunk, ChunkAccess> {
43-
+ private static final class ChunkDataLoadTask extends CallbackDataLoadTask<ReadChunk, ChunkAccess> implements com.infernalsuite.asp.level.CommonLoadTask { // ASP
43+
+ private static final class ChunkDataLoadTask extends CallbackDataLoadTask<ReadChunk, ChunkAccess> implements com.infernalsuite.asp.level.moonrise.CommonLoadTask { // ASP
4444
private ChunkDataLoadTask(final ChunkTaskScheduler scheduler, final ServerLevel world, final int chunkX,
4545
final int chunkZ, final Priority priority) {
4646
super(scheduler, world, chunkX, chunkZ, MoonriseRegionFileIO.RegionFileType.CHUNK_DATA, priority);

aspaper-server/paper-patches/features/0004-Delete-temp-folder-after-world-is-unloaded.patch

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,10 @@ Subject: [PATCH] Delete temp folder after world is unloaded
55

66

77
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
8-
index 09096a99c914b9ffe555e876559b02c437543f58..4ac6cc136824e43ac8a8677a1c45735a669882af 100644
8+
index 185bfb619767a2ce8b831b083d946e9f8e7bfb0c..a920263b6eef436abe113d1264a782e458748728 100644
99
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
1010
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
11-
@@ -1457,6 +1457,12 @@ public final class CraftServer implements Server {
11+
@@ -1460,6 +1460,12 @@ public final class CraftServer implements Server {
1212
handle.getChunkSource().close(save);
1313
io.papermc.paper.FeatureHooks.closeEntityManager(handle, save); // SPIGOT-6722: close entityManager // Paper - chunk system
1414
handle.levelStorageAccess.close();

aspaper-server/paper-patches/files/src/main/java/org/bukkit/craftbukkit/CraftServer.java.patch

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,6 @@
11
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
22
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
3-
@@ -1447,6 +_,8 @@
3+
@@ -1450,6 +_,8 @@
44
return false;
55
}
66

aspaper-server/src/main/java/com/infernalsuite/asp/Converter.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,7 @@ public static <T extends BinaryTag> Tag convertTag(T tag) {
5656
case Tag.TAG_STRING -> StringTag.valueOf(((StringBinaryTag) tag).value());
5757
case Tag.TAG_LIST -> {
5858
ListTag list = new ListTag();
59-
for (BinaryTag entry : ((ListBinaryTag) tag)) list.add(convertTag(entry));
59+
for (BinaryTag entry : ((ListBinaryTag) tag)) list.addAndUnwrap(convertTag(entry));
6060
yield list;
6161
}
6262
case Tag.TAG_COMPOUND -> {

aspaper-server/src/main/java/com/infernalsuite/asp/SimpleDataFixerConverter.java

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -2,13 +2,12 @@
22

33
import ca.spottedleaf.dataconverter.converters.DataConverter;
44
import ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry;
5-
import ca.spottedleaf.dataconverter.minecraft.datatypes.MCDataType;
65
import ca.spottedleaf.dataconverter.minecraft.walkers.generic.WalkerUtils;
76
import ca.spottedleaf.dataconverter.types.MapType;
87
import ca.spottedleaf.dataconverter.types.nbt.NBTListType;
98
import ca.spottedleaf.dataconverter.types.nbt.NBTMapType;
109
import com.infernalsuite.asp.api.SlimeDataConverter;
11-
import com.infernalsuite.asp.level.SlimeChunkConverter;
10+
import com.infernalsuite.asp.level.chunk.SlimeChunkConverter;
1211
import com.infernalsuite.asp.serialization.SlimeWorldReader;
1312
import com.infernalsuite.asp.skeleton.SkeletonSlimeWorld;
1413
import com.infernalsuite.asp.skeleton.SlimeChunkSectionSkeleton;

aspaper-server/src/main/java/com/infernalsuite/asp/SlimeNMSBridgeImpl.java

Lines changed: 0 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -198,14 +198,6 @@ private SlimeLevelInstance createCustomWorld(SlimeWorld world, @Nullable Resourc
198198
throw new RuntimeException(ex); // TODO do something better with this?
199199
}
200200

201-
// level.setReady(true);
202-
level.setSpawnSettings(world.getPropertyMap().getValue(SlimeProperties.ALLOW_MONSTERS));
203-
204-
CompoundTag nmsExtraData = (CompoundTag) Converter.convertTag(CompoundBinaryTag.from(world.getExtraData()));
205-
206-
//Attempt to read PDC
207-
if (nmsExtraData.get("BukkitValues") != null) level.getWorld().readBukkitValues(nmsExtraData.get("BukkitValues"));
208-
209201
return level;
210202
}
211203

aspaper-server/src/main/java/com/infernalsuite/asp/level/SlimeInMemoryWorld.java

Lines changed: 10 additions & 38 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,7 @@
77
import com.infernalsuite.asp.api.exceptions.WorldAlreadyExistsException;
88
import com.infernalsuite.asp.api.loaders.SlimeLoader;
99
import com.infernalsuite.asp.api.world.properties.SlimeProperties;
10+
import com.infernalsuite.asp.level.chunk.*;
1011
import com.infernalsuite.asp.pdc.AdventurePersistentDataContainer;
1112
import com.infernalsuite.asp.serialization.slime.SlimeSerializer;
1213
import com.infernalsuite.asp.skeleton.SkeletonCloning;
@@ -179,56 +180,27 @@ public SlimeWorld getSerializableCopy() {
179180
SlimeChunk clonedChunk = entry.getValue();
180181
// NMS "live" chunks need to be converted
181182
{
182-
LevelChunk chunk = null;
183+
NMSSlimeChunk chunk = null;
183184
if (clonedChunk instanceof SafeNmsChunkWrapper safeNmsChunkWrapper) {
184185
if (safeNmsChunkWrapper.shouldDefaultBackToSlimeChunk()) {
185186
clonedChunk = safeNmsChunkWrapper.getSafety();
186187
} else {
187-
chunk = safeNmsChunkWrapper.getWrapper().getChunk();
188+
chunk = safeNmsChunkWrapper.getWrapper();
188189
}
189190
} else if (clonedChunk instanceof NMSSlimeChunk nmsSlimeChunk) {
190-
chunk = nmsSlimeChunk.getChunk();
191+
chunk = nmsSlimeChunk;
191192
}
192193

193-
194-
195194
if (chunk != null) {
196-
if (FastChunkPruner.canBePruned(world, chunk)) {
195+
if (FastChunkPruner.canBePruned(world, chunk.getChunk())) {
197196
continue;
198197
}
199198

200-
// Serialize Bukkit Values (PDC)
201-
202-
CompoundBinaryTag adventureTag = Converter.convertTag(chunk.persistentDataContainer.toTagCompound());
203-
clonedChunk.getExtraData().put("ChunkBukkitValues", adventureTag);
204-
205-
ListBinaryTag blockTicks = null;
206-
ListBinaryTag fluidTicks = null;
207-
//Only save this data into memory when we actually want it there
208-
if(getPropertyMap().getValue(SlimeProperties.SAVE_BLOCK_TICKS) || getPropertyMap().getValue(SlimeProperties.SAVE_FLUID_TICKS)) {
209-
ChunkAccess.PackedTicks ticksForSerialization = chunk.getTicksForSerialization(this.instance.getGameTime());
210-
211-
if(getPropertyMap().getValue(SlimeProperties.SAVE_BLOCK_TICKS)) {
212-
blockTicks = SlimeChunkConverter.convertSavedBlockTicks(ticksForSerialization.blocks());
213-
}
214-
if(getPropertyMap().getValue(SlimeProperties.SAVE_FLUID_TICKS)) {
215-
fluidTicks = SlimeChunkConverter.convertSavedFluidTicks(ticksForSerialization.fluids());
216-
}
217-
}
218-
219-
220-
clonedChunk = new SlimeChunkSkeleton(
221-
clonedChunk.getX(),
222-
clonedChunk.getZ(),
223-
clonedChunk.getSections(),
224-
clonedChunk.getHeightMaps(),
225-
clonedChunk.getTileEntities(),
226-
clonedChunk.getEntities(),
227-
clonedChunk.getExtraData(),
228-
clonedChunk.getUpgradeData(),
229-
clonedChunk.getPoiChunkSections(),
230-
blockTicks,
231-
fluidTicks
199+
clonedChunk = PartiallySerializedSlimeChunk.of(
200+
chunk,
201+
getPropertyMap().getValue(SlimeProperties.SAVE_BLOCK_TICKS),
202+
getPropertyMap().getValue(SlimeProperties.SAVE_FLUID_TICKS),
203+
getPropertyMap().getValue(SlimeProperties.SAVE_POI)
232204
);
233205
}
234206
}

aspaper-server/src/main/java/com/infernalsuite/asp/level/SlimeLevelInstance.java

Lines changed: 12 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -7,16 +7,21 @@
77
import ca.spottedleaf.moonrise.patches.chunk_system.scheduling.task.ChunkLoadTask;
88
import ca.spottedleaf.moonrise.patches.chunk_system.scheduling.task.GenericDataLoadTask;
99
import com.google.common.util.concurrent.ThreadFactoryBuilder;
10+
import com.infernalsuite.asp.Converter;
11+
import com.infernalsuite.asp.level.moonrise.ChunkDataLoadTask;
1012
import com.infernalsuite.asp.level.moonrise.SlimeEntityDataLoader;
1113
import com.infernalsuite.asp.level.moonrise.SlimePoiDataLoader;
1214
import com.infernalsuite.asp.serialization.slime.SlimeSerializer;
1315
import com.infernalsuite.asp.api.world.SlimeWorld;
1416
import com.infernalsuite.asp.api.world.SlimeWorldInstance;
1517
import com.infernalsuite.asp.api.world.properties.SlimeProperties;
1618
import com.infernalsuite.asp.api.world.properties.SlimePropertyMap;
19+
import net.kyori.adventure.nbt.BinaryTag;
20+
import net.kyori.adventure.nbt.CompoundBinaryTag;
1721
import net.minecraft.core.BlockPos;
1822
import net.minecraft.core.Holder;
1923
import net.minecraft.core.registries.Registries;
24+
import net.minecraft.nbt.CompoundTag;
2025
import net.minecraft.resources.ResourceKey;
2126
import net.minecraft.resources.ResourceLocation;
2227
import net.minecraft.server.MinecraftServer;
@@ -48,10 +53,7 @@
4853
import java.nio.file.attribute.BasicFileAttributes;
4954
import java.util.Collections;
5055
import java.util.UUID;
51-
import java.util.concurrent.CompletableFuture;
52-
import java.util.concurrent.ExecutorService;
53-
import java.util.concurrent.Executors;
54-
import java.util.concurrent.Future;
56+
import java.util.concurrent.*;
5557
import java.util.function.Consumer;
5658
import java.util.logging.Level;
5759

@@ -101,6 +103,12 @@ public SlimeLevelInstance(SlimeBootstrap slimeBootstrap, PrimaryLevelData primar
101103
propertyMap.getValue(SlimeProperties.SPAWN_YAW));
102104
super.chunkSource.setSpawnSettings(propertyMap.getValue(SlimeProperties.ALLOW_MONSTERS), propertyMap.getValue(SlimeProperties.ALLOW_ANIMALS));
103105

106+
ConcurrentMap<String, BinaryTag> extraData = this.slimeInstance.getExtraData();
107+
//Attempt to read PDC
108+
if (extraData.containsKey("BukkitValues")) {
109+
getWorld().readBukkitValues(Converter.convertTag(extraData.get("BukkitValues")));
110+
}
111+
104112
this.pvpMode = propertyMap.getValue(SlimeProperties.PVP);
105113

106114
this.entityDataController = new SlimeEntityDataLoader(

0 commit comments

Comments
 (0)