Skip to content
Merged
Show file tree
Hide file tree
Changes from 3 commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
10 changes: 5 additions & 5 deletions aspaper-api/build.gradle.kts.patch
Original file line number Diff line number Diff line change
@@ -1,14 +1,14 @@
--- a/paper-api/build.gradle.kts
+++ b/paper-api/build.gradle.kts
@@ -39,6 +_,7 @@
@@ -41,6 +_,7 @@
}

dependencies {
+ api(project(":api")) //ASP
// api dependencies are listed transitively to API consumers
api("com.google.guava:guava:33.3.1-jre")
api("com.google.code.gson:gson:2.11.0")
@@ -89,7 +_,7 @@
@@ -91,7 +_,7 @@
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
}

Expand All @@ -17,7 +17,7 @@
idea {
module {
generatedSourceDirs.add(generatedDir.toFile())
@@ -99,6 +_,18 @@
@@ -101,6 +_,18 @@
main {
java {
srcDir(generatedDir)
Expand All @@ -36,7 +36,7 @@
}
}
}
@@ -165,7 +_,7 @@
@@ -183,7 +_,7 @@

tasks.withType<Javadoc>().configureEach {
val options = options as StandardJavadocDocletOptions
Expand All @@ -45,7 +45,7 @@
options.use()
options.isDocFilesSubDirs = true
options.links(
@@ -198,11 +_,11 @@
@@ -216,11 +_,11 @@
}

// workaround for https://github.com/gradle/gradle/issues/4046
Expand Down
10 changes: 5 additions & 5 deletions aspaper-server/build.gradle.kts.patch
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- a/paper-server/build.gradle.kts
+++ b/paper-server/build.gradle.kts
@@ -23,6 +_,17 @@
@@ -22,6 +_,17 @@
minecraftVersion = providers.gradleProperty("mcVersion")
gitFilePatches = false

Expand All @@ -17,7 +17,7 @@
+
spigot {
enabled = true
buildDataRef = "42d18d4c4653ffc549778dbe223f6994a031d69e"
buildDataRef = "17f77cee7117ab9d6175f088ae8962bfd04e61a9"
@@ -104,7 +_,19 @@
}
}
Expand Down Expand Up @@ -46,10 +46,10 @@
- implementation(project(":paper-api"))
+ implementation(project(":aspaper-api")) //ASP
+ implementation(project(":core")) //ASP
implementation("ca.spottedleaf:concurrentutil:0.0.7")
implementation("ca.spottedleaf:concurrentutil:0.0.8")
implementation("org.jline:jline-terminal-ffm:3.27.1") // use ffm on java 22+
implementation("org.jline:jline-terminal-jni:3.27.1") // fall back to jni on java 21
@@ -197,14 +_,14 @@
@@ -198,14 +_,14 @@
val gitBranch = git.exec(providers, "rev-parse", "--abbrev-ref", "HEAD").get().trim()
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
Expand All @@ -69,7 +69,7 @@
"Build-Number" to (build ?: ""),
"Build-Time" to buildTime.toString(),
"Git-Branch" to gitBranch,
@@ -263,7 +_,7 @@
@@ -264,7 +_,7 @@
jvmArgumentProviders.add(provider)
}

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,10 +5,10 @@ Subject: [PATCH] Disable dragon battle


diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index efd599c516d89ebc5f040413b7c17c5bf0ad796c..fe30353d28cf7e35e7ba7267a8a630f2cffccd4a 100644
index 24d3b1161cf45a915b37f510645500c5a45350eb..cd7aca9f76aef0824d94c73373a8f4536d05c4e8 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -707,7 +707,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -715,7 +715,13 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
);
this.structureManager = new StructureManager(this, this.serverLevelData.worldGenOptions(), this.structureCheck); // CraftBukkit
if (this.dimension() == Level.END && this.dimensionTypeRegistration().is(BuiltinDimensionTypes.END) || env == org.bukkit.World.Environment.THE_END) { // CraftBukkit - Allow to create EnderDragonBattle in default and custom END
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,12 +5,12 @@ Subject: [PATCH] Avoid IO call for UUID


diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index 2c8e5d8bebb53c70c3180e72af738e87ec0f36f6..c394731283ee3344a8e21d3b2d0f75470e4f6bfd 100644
index cd7aca9f76aef0824d94c73373a8f4536d05c4e8..7893b71f81ae055512ec88415ebe388b7152cc5a 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -636,7 +636,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -642,7 +642,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
// CraftBukkit start
super(serverLevelData, dimension, server.registryAccess(), levelStem.type(), false, isDebug, biomeZoomSeed, server.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> server.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(levelStorageAccess.levelDirectory.path(), serverLevelData.getLevelName(), dimension.location(), spigotConfig, server.registryAccess(), serverLevelData.getGameRules())), dispatcher); // Paper - create paper world configs & Async-Anti-Xray: Pass executor
super(serverLevelData, dimension, server.registryAccess(), levelStem.type(), false, isDebug, biomeZoomSeed, server.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> server.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(levelStorageAccess.levelDirectory.path(), serverLevelData.getLevelName(), dimension.identifier(), spigotConfig, server.registryAccess(), serverLevelData.getGameRules())), dispatcher); // Paper - create paper world configs & Async-Anti-Xray: Pass executor
this.levelStorageAccess = levelStorageAccess;
- this.uuid = org.bukkit.craftbukkit.util.WorldUUID.getOrCreate(levelStorageAccess.levelDirectory.path().toFile());
+ this.uuid = bootstrap == null ? org.bukkit.craftbukkit.util.WorldUUID.getOrCreate(levelStorageAccess.levelDirectory.path().toFile()) : java.util.UUID.randomUUID(); //ASP - avoid IO calls
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,20 +5,20 @@ Subject: [PATCH] Prevent config disk io on world load


diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index c394731283ee3344a8e21d3b2d0f75470e4f6bfd..db13c732fdea20e28130a89b40bbe8662d4873da 100644
index 7893b71f81ae055512ec88415ebe388b7152cc5a..b43b7d06a7514da20a35a856d19eaef5670fc4af 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -634,7 +634,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -640,7 +640,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
) {
//ASP end
// CraftBukkit start
- super(serverLevelData, dimension, server.registryAccess(), levelStem.type(), false, isDebug, biomeZoomSeed, server.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> server.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(levelStorageAccess.levelDirectory.path(), serverLevelData.getLevelName(), dimension.location(), spigotConfig, server.registryAccess(), serverLevelData.getGameRules())), dispatcher); // Paper - create paper world configs & Async-Anti-Xray: Pass executor
+ super(serverLevelData, dimension, server.registryAccess(), levelStem.type(), false, isDebug, biomeZoomSeed, server.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> bootstrap != null ? com.infernalsuite.asp.config.SlimePaperWorldConfig.initializeOrGet() : server.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(levelStorageAccess.levelDirectory.path(), serverLevelData.getLevelName(), dimension.location(), spigotConfig, server.registryAccess(), serverLevelData.getGameRules())), dispatcher); // Paper - create paper world configs & Async-Anti-Xray: Pass executor //ASP - Optimize world config
- super(serverLevelData, dimension, server.registryAccess(), levelStem.type(), false, isDebug, biomeZoomSeed, server.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> server.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(levelStorageAccess.levelDirectory.path(), serverLevelData.getLevelName(), dimension.identifier(), spigotConfig, server.registryAccess(), serverLevelData.getGameRules())), dispatcher); // Paper - create paper world configs & Async-Anti-Xray: Pass executor
+ super(serverLevelData, dimension, server.registryAccess(), levelStem.type(), false, isDebug, biomeZoomSeed, server.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> bootstrap != null ? com.infernalsuite.asp.config.SlimePaperWorldConfig.initializeOrGet() : server.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(levelStorageAccess.levelDirectory.path(), serverLevelData.getLevelName(), dimension.identifier(), spigotConfig, server.registryAccess(), serverLevelData.getGameRules())), dispatcher); // Paper - create paper world configs & Async-Anti-Xray: Pass executor //ASP - Optimize world config
this.levelStorageAccess = levelStorageAccess;
this.uuid = bootstrap == null ? org.bukkit.craftbukkit.util.WorldUUID.getOrCreate(levelStorageAccess.levelDirectory.path().toFile()) : java.util.UUID.randomUUID(); //ASP - avoid IO calls
this.levelLoadListener = new net.minecraft.server.level.progress.LoggingLevelLoadListener(false, this);
diff --git a/net/minecraft/world/level/Level.java b/net/minecraft/world/level/Level.java
index d225267b1b07854b76c88ce461d7817a86d023a0..de152aca205954d33cf2997043cb8c91b9587cdf 100644
index 0df3a12f64f9c48561d64059289727b18239d6ce..25c2fe67019da8089107c2662c5813ff302485cc 100644
--- a/net/minecraft/world/level/Level.java
+++ b/net/minecraft/world/level/Level.java
@@ -844,7 +844,7 @@ public abstract class Level implements LevelAccessor, AutoCloseable, ca.spottedl
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,19 +5,19 @@ Subject: [PATCH] Read only dimension data store


diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
index 413f0673557b9e3f9177d15e9bef61bded209e34..ebc9373bb3a48ef41d54d445c1aa02fe06d83cff 100644
index af67b07722bb0125acd081dab767d7e7b360623b..fc4f631f7d55ce67f348e3b6090095e6ef8445e8 100644
--- a/net/minecraft/server/level/ServerChunkCache.java
+++ b/net/minecraft/server/level/ServerChunkCache.java
@@ -210,7 +210,13 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
@@ -208,7 +208,13 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
LOGGER.error("Failed to create dimension data storage directory", (Throwable)var14);
}

- this.dataStorage = new DimensionDataStorage(new SavedData.Context(level), path, fixerUpper, level.registryAccess());
- this.dataStorage = new DimensionDataStorage(path, fixerUpper, level.registryAccess());
+ //ASP start - No dimension data storage
+ if(level instanceof com.infernalsuite.asp.level.SlimeLevelInstance) {
+ this.dataStorage = new com.infernalsuite.asp.level.ReadOnlyDimensionDataStorage(new SavedData.Context(level), path, fixerUpper, level.registryAccess());
+ this.dataStorage = new com.infernalsuite.asp.level.ReadOnlyDimensionDataStorage(path, fixerUpper, level.registryAccess());
+ } else {
+ this.dataStorage = new DimensionDataStorage(new SavedData.Context(level), path, fixerUpper, level.registryAccess());
+ this.dataStorage = new DimensionDataStorage(path, fixerUpper, level.registryAccess());
+ }
+ //ASP end - No dimension data storage
this.ticketStorage = this.dataStorage.computeIfAbsent(TicketStorage.TYPE);
Expand Down
Original file line number Diff line number Diff line change
@@ -1,6 +1,6 @@
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -592,7 +_,31 @@
@@ -598,7 +_,31 @@
}
// Paper end - chunk tick iteration

Expand Down Expand Up @@ -29,19 +29,19 @@
+ }
+
+ public ServerLevel(
+ @Nullable com.infernalsuite.asp.level.SlimeBootstrap bootstrap,
+ com.infernalsuite.asp.level.@Nullable SlimeBootstrap bootstrap,
MinecraftServer server,
Executor dispatcher,
LevelStorageSource.LevelStorageAccess levelStorageAccess,
@@ -608,6 +_,7 @@
@@ -614,6 +_,7 @@
org.bukkit.generator.ChunkGenerator gen, // CraftBukkit
org.bukkit.generator.BiomeProvider biomeProvider // CraftBukkit
) {
+ //ASP end
// CraftBukkit start
super(serverLevelData, dimension, server.registryAccess(), levelStem.type(), false, isDebug, biomeZoomSeed, server.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> server.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(levelStorageAccess.levelDirectory.path(), serverLevelData.getLevelName(), dimension.location(), spigotConfig, server.registryAccess(), serverLevelData.getGameRules())), dispatcher); // Paper - create paper world configs & Async-Anti-Xray: Pass executor
super(serverLevelData, dimension, server.registryAccess(), levelStem.type(), false, isDebug, biomeZoomSeed, server.getMaxChainedNeighborUpdates(), gen, biomeProvider, env, spigotConfig -> server.paperConfigurations.createWorldConfig(io.papermc.paper.configuration.PaperConfigurations.createWorldContextMap(levelStorageAccess.levelDirectory.path(), serverLevelData.getLevelName(), dimension.identifier(), spigotConfig, server.registryAccess(), serverLevelData.getGameRules())), dispatcher); // Paper - create paper world configs & Async-Anti-Xray: Pass executor
this.levelStorageAccess = levelStorageAccess;
@@ -635,6 +_,13 @@
@@ -641,6 +_,13 @@
chunkGenerator = new org.bukkit.craftbukkit.generator.CustomChunkGenerator(this, chunkGenerator, gen);
}
// CraftBukkit end
Expand All @@ -55,7 +55,7 @@
boolean flag = server.forceSynchronousWrites();
DataFixer fixerUpper = server.getFixerUpper();
// Paper - rewrite chunk system
@@ -713,6 +_,12 @@
@@ -723,6 +_,12 @@
public void setDragonFight(@Nullable EndDragonFight dragonFight) {
this.dragonFight = dragonFight;
}
Expand Down
13 changes: 0 additions & 13 deletions aspaper-server/paper-patches/features/0003-Branding.patch
Original file line number Diff line number Diff line change
Expand Up @@ -88,16 +88,3 @@ index 74ffdc823e66fc5ec027c4b7c462382bcbfe2be2..2610e8d1ce20331895b0a76fa50efc06
}

@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 774556a62eb240da42e84db4502e2ed43495be17..0c54eb1187c31a2e6efd4b0898fc600fa1bddeee 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
@@ -11,7 +11,7 @@ public final class Versioning {
public static String getBukkitVersion() {
String result = "Unknown-Version";

- InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/io.papermc.paper/paper-api/pom.properties");
+ InputStream stream = Bukkit.class.getClassLoader().getResourceAsStream("META-INF/maven/com.infernalsuite.asp/aspaper-api/pom.properties");
Properties properties = new Properties();

if (stream != null) {
Original file line number Diff line number Diff line change
Expand Up @@ -15,12 +15,13 @@
import net.minecraft.core.registries.Registries;
import net.minecraft.nbt.CompoundTag;
import net.minecraft.resources.ResourceKey;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.resources.Identifier;
import net.minecraft.server.MinecraftServer;
import net.minecraft.server.WorldLoader;
import net.minecraft.server.dedicated.DedicatedServer;
import net.minecraft.server.dedicated.DedicatedServerProperties;
import net.minecraft.world.level.GameRules;
import net.minecraft.world.level.gamerules.GameRules;
import net.minecraft.world.level.gamerules.GameRuleMap;
import net.minecraft.world.level.Level;
import net.minecraft.world.level.LevelSettings;
import net.minecraft.world.level.dimension.LevelStem;
Expand Down Expand Up @@ -187,7 +188,7 @@ private SlimeLevelInstance createCustomWorld(SlimeWorld world, @Nullable Resourc
default -> throw new IllegalArgumentException("Unknown dimension supplied");
};

ResourceKey<Level> worldKey = dimensionOverride == null ? ResourceKey.create(Registries.DIMENSION, ResourceLocation.parse(worldName.toLowerCase(Locale.ENGLISH))) : dimensionOverride;
ResourceKey<Level> worldKey = dimensionOverride == null ? ResourceKey.create(Registries.DIMENSION, Identifier.parse(worldName.toLowerCase(Locale.ENGLISH))) : dimensionOverride;
LevelStem stem = MinecraftServer.getServer().registries().compositeAccess().lookupOrThrow(Registries.LEVEL_STEM).get(dimension).orElseThrow().value();

SlimeLevelInstance level;
Expand All @@ -212,7 +213,7 @@ private PrimaryLevelData createWorldData(SlimeWorld world) {
WorldLoader.DataLoadContext context = mcServer.worldLoaderContext;

LevelSettings worldsettings = new LevelSettings(worldName, serverProps.gameMode.get(), false, serverProps.difficulty.get(),
true, new GameRules(context.dataConfiguration().enabledFeatures()), mcServer.worldLoaderContext.dataConfiguration());
true, new GameRules(context.dataConfiguration().enabledFeatures(), GameRuleMap.of()), mcServer.worldLoaderContext.dataConfiguration());

WorldOptions worldoptions = new WorldOptions(0, false, false);

Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -3,16 +3,16 @@
import io.papermc.paper.configuration.Configurations;
import io.papermc.paper.configuration.PaperConfigurations;
import io.papermc.paper.configuration.WorldConfiguration;
import net.minecraft.resources.ResourceLocation;
import net.minecraft.resources.Identifier;
import net.minecraft.server.MinecraftServer;
import net.minecraft.world.level.GameRules;
import net.minecraft.world.level.gamerules.GameRules;
import org.spigotmc.SpigotWorldConfig;

import java.nio.file.Path;

public class SlimePaperWorldConfig {

private static final ResourceLocation FAKE_WORLD_KEY = ResourceLocation.fromNamespaceAndPath("infernalsuite", "asp-slimeworld");
private static final Identifier FAKE_WORLD_KEY = Identifier.fromNamespaceAndPath("infernalsuite", "asp-slimeworld");
public static WorldConfiguration cachedSlimeWorldConfig;

private SlimePaperWorldConfig() {}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -17,8 +17,8 @@
*/
public class ReadOnlyDimensionDataStorage extends DimensionDataStorage {

public ReadOnlyDimensionDataStorage(SavedData.Context ctx, Path dataFolder, DataFixer fixerUpper, HolderLookup.Provider registries) {
super(ctx, dataFolder, fixerUpper, registries);
public ReadOnlyDimensionDataStorage(Path dataFolder, DataFixer fixerUpper, HolderLookup.Provider registries) {
super(dataFolder, fixerUpper, registries);
}

@Override
Expand Down
Loading
Loading