9
0
mirror of https://github.com/BX-Team/DivineMC.git synced 2025-12-19 14:59:25 +00:00

Updated Upstream (Purpur)

Upstream has released updates that appear to apply and compile correctly

Purpur Changes:
PurpurMC/Purpur@69d3bb4 Updated Upstream (Paper)
PurpurMC/Purpur@ad32b22 fix version command throwing an exception
PurpurMC/Purpur@9dcfdf1 [ci skip] missed this from the upstream
This commit is contained in:
NONPLAYT
2024-05-18 02:30:29 +03:00
parent 2ad24bfaf6
commit 6d81d01819
14 changed files with 153 additions and 126 deletions

View File

@@ -18,7 +18,7 @@ repositories {
}
dependencies {
remapper("net.fabricmc:tiny-remapper:0.10.1:fat")
remapper("net.fabricmc:tiny-remapper:0.10.2:fat")
decompiler("org.vineflower:vineflower:1.10.1")
paperclip("io.papermc:paperclip:3.0.3")
}
@@ -54,8 +54,8 @@ subprojects {
repositories {
mavenCentral()
maven(paperMavenPublicUrl)
maven("https://oss.sonatype.org/content/groups/public/")
maven("https://papermc.io/repo/repository/maven-public/")
maven("https://ci.emc.gs/nexus/content/groups/aikar/")
maven("https://repo.aikar.co/content/groups/aikar")
maven("https://repo.md-5.net/content/repositories/releases/")

View File

@@ -1,7 +1,7 @@
group = space.bxteam.divinemc
version = 1.20.6-R0.1-SNAPSHOT
purpurRef = ba950ad7758d4da6ccc26f578521ab4a07a2402d
purpurRef = 9dcfdf13c206866ec56b4044f4a7905886a669ea
org.gradle.caching = true
org.gradle.parallel = true

View File

@@ -0,0 +1,24 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: NONPLAYT <76615486+NONPLAYT@users.noreply.github.com>
Date: Sat, 18 May 2024 01:10:38 +0300
Subject: [PATCH] Divine Branding
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfo.java b/src/main/java/io/papermc/paper/ServerBuildInfo.java
index 7107eabf02d9d9b69d97c978ba421ad52031ec3f..f6005cb48750fdcf903609f3fb693895df229bc2 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfo.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfo.java
@@ -25,6 +25,13 @@ public interface ServerBuildInfo {
Key BRAND_PURPUR_ID = Key.key("purpurmc", "purpur");
// Purpur end
+ // DivineMC start
+ /**
+ * The brand id for DivineMC.
+ */
+ Key BRAND_DIVINEMC_ID = Key.key("divinemc", "divinemc");
+ // DivineMC end
+
/**
* Gets the {@code ServerBuildInfo}.
*

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Divine Configuration
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
index 320422ff95773efa01e8205edcc5c6c9a84d5ecd..ec743558a4901513c1e2266c1058f65dcfc29d1a 100644
index ec8b9b2cbe65838a194281f7d76d0e17defc5211..adeb76886e99bd8f8374102471c71694ab5a30e4 100644
--- a/src/main/java/org/bukkit/Server.java
+++ b/src/main/java/org/bukkit/Server.java
@@ -2269,6 +2269,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Divine Branding
diff --git a/build.gradle.kts b/build.gradle.kts
index 89f21e21efc5f5ab99d1586f4f3b8f2f3c48ac06..682908b659fd11b781fc1ce0aebc3cbd58cb061a 100644
index d23ecfabf6bf1e355fb2efe5abd80236259ce3c4..ba4a171468365dbfa95d50f4eb2830815eb167e3 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -12,7 +12,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
@@ -13,7 +13,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
val alsoShade: Configuration by configurations.creating
dependencies {
@@ -17,15 +17,26 @@ index 89f21e21efc5f5ab99d1586f4f3b8f2f3c48ac06..682908b659fd11b781fc1ce0aebc3cbd
// Paper start
implementation("org.jline:jline-terminal-jansi:3.21.0")
implementation("net.minecrell:terminalconsoleappender:1.3.0")
@@ -82,7 +82,7 @@ tasks.jar {
@@ -84,14 +84,14 @@ tasks.jar {
val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
"Implementation-Title" to "CraftBukkit",
- "Implementation-Version" to "git-Purpur-$implementationVersion", // Pufferfish // Purpur
+ "Implementation-Version" to "git-DivineMC-$implementationVersion", // Pufferfish // Purpur // DivineMC
- "Implementation-Title" to "Purpur", // Purpur
+ "Implementation-Title" to "DivineMC", // DivineMC
"Implementation-Version" to implementationVersion,
"Implementation-Vendor" to date, // Paper
"Specification-Title" to "Bukkit",
- "Specification-Title" to "Purpur", // Purpur
+ "Specification-Title" to "DivineMC", // DivineMC
"Specification-Version" to project.version,
- "Specification-Vendor" to "Purpur Team", // Purpur
- "Brand-Id" to "purpurmc:purpur", // Purpur
- "Brand-Name" to "Purpur", // Purpur
+ "Specification-Vendor" to "BX Team", // DivineMC + BX Team
+ "Brand-Id" to "divinemc:divinemc", // DivineMC
+ "Brand-Name" to "DivineMC", // DivineMC
"Build-Number" to (build ?: ""),
"Build-Time" to Instant.now().toString(),
"Git-Branch" to gitBranch, // Paper
diff --git a/src/main/java/com/destroystokyo/paper/Metrics.java b/src/main/java/com/destroystokyo/paper/Metrics.java
index 8cde30544e14f8fc2dac32966ae3c21f8cf3a551..8b06174a9c42ea1d5a1cc5a423a0d6f7304a06c4 100644
--- a/src/main/java/com/destroystokyo/paper/Metrics.java
@@ -56,18 +67,17 @@ index 8cde30544e14f8fc2dac32966ae3c21f8cf3a551..8b06174a9c42ea1d5a1cc5a423a0d6f7
metrics.addCustomChart(new Metrics.DrilldownPie("java_version", () -> {
Map<String, Map<String, Integer>> map = new HashMap<>();
diff --git a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
index 462a6eed350fd660ddaf25d567bb6e97b77d0b2b..fb3d33117279df26ddd55005d16f80b6ce273ac3 100644
index 6d36fc6d8e22d9b68dea3830f6ecc8763184c343..4d2a8974546016b80182ca30e34a1d85055caa87 100644
--- a/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
+++ b/src/main/java/com/destroystokyo/paper/PaperVersionFetcher.java
@@ -20,21 +20,21 @@ import java.util.stream.StreamSupport;
public class PaperVersionFetcher implements VersionFetcher {
private static final java.util.regex.Pattern VER_PATTERN = java.util.regex.Pattern.compile("^([0-9\\.]*)\\-.*R"); // R is an anchor, will always give '-R' at end
@@ -36,13 +36,13 @@ public class PaperVersionFetcher implements VersionFetcher {
private static final int DISTANCE_ERROR = -1;
private static final int DISTANCE_UNKNOWN = -2;
// Purpur start
- private static final String DOWNLOAD_PAGE = "https://purpurmc.org/downloads";
+ private static final String DOWNLOAD_PAGE = "https://github.com/DivineMC/DivineMC/releases/latest"; // DivineMC
private static int distance = -2; public int distance() { return distance; }
private static int distance = DISTANCE_UNKNOWN; public int distance() { return distance; }
// Purpur end
private static @Nullable String mcVer;
@Override
public long getCacheTime() {
@@ -75,70 +85,65 @@ index 462a6eed350fd660ddaf25d567bb6e97b77d0b2b..fb3d33117279df26ddd55005d16f80b6
+ return 600000; // DivineMC - Decrease cache time to 10 minutes
}
@Nonnull
@Override
public Component getVersionMessage(@Nonnull String serverVersion) {
- String[] parts = serverVersion.substring("git-Purpur-".length()).split("[-\\s]"); // Purpur
- final Component updateMessage = getUpdateStatusMessage("PurpurMC/Purpur", "ver/" + getMinecraftVersion(), parts[0]); // Purpur
+ String[] parts = serverVersion.substring("git-DivineMC-".length()).split("[-\\s]"); // DivineMC
+ final Component updateMessage = getUpdateStatusMessage("DivineMC/DivineMC", "ver/" + getMinecraftVersion(), parts[0]); // DivineMC
final Component history = getHistory();
return history != null ? Component.join(net.kyori.adventure.text.JoinConfiguration.separator(Component.newline()), history, updateMessage) : updateMessage; // Purpur
@@ -47,7 +47,7 @@ public class PaperVersionFetcher implements VersionFetcher {
String result = matcher.group();
mcVer = result.substring(0, result.length() - 2); // strip 'R' anchor and trailing '-'
@@ -52,7 +52,7 @@ public class PaperVersionFetcher implements VersionFetcher {
if (build.buildNumber().isEmpty() && build.gitCommit().isEmpty()) {
updateMessage = text("You are running a development version without access to version information", color(0xFF5300));
} else {
- org.bukkit.Bukkit.getLogger().warning("Unable to match version to pattern! Report to Purpur!"); // Purpur
+ org.bukkit.Bukkit.getLogger().warning("Unable to match version to pattern! Report to DivineMC!"); // DivineMC
org.bukkit.Bukkit.getLogger().warning("Pattern: " + VER_PATTERN.toString());
org.bukkit.Bukkit.getLogger().warning("Version: " + org.bukkit.Bukkit.getBukkitVersion());
}
@@ -57,14 +57,14 @@ public class PaperVersionFetcher implements VersionFetcher {
- updateMessage = getUpdateStatusMessage("PurpurMC/Purpur", build); // Purpur
+ updateMessage = getUpdateStatusMessage("DivineMC/DivineMC", build); // DivineMC
}
final @Nullable Component history = this.getHistory();
private static Component getUpdateStatusMessage(@Nonnull String repo, @Nonnull String branch, @Nonnull String versionInfo) {
- //int distance; // Purpur - use field
@@ -62,16 +62,13 @@ public class PaperVersionFetcher implements VersionFetcher {
private static Component getUpdateStatusMessage(final String repo, final ServerBuildInfo build) {
//int distance = DISTANCE_ERROR; // Purpur - use field
- final OptionalInt buildNumber = build.buildNumber();
- if (buildNumber.isPresent()) {
- distance = fetchDistanceFromSiteApi(build, buildNumber.getAsInt());
- } else {
- final Optional<String> gitBranch = build.gitBranch();
- final Optional<String> gitCommit = build.gitCommit();
- if (gitBranch.isPresent() && gitCommit.isPresent()) {
- distance = fetchDistanceFromGitHub(repo, gitBranch.get(), gitCommit.get());
- }
+ // DivineMC start - Branding
try {
- int jenkinsBuild = Integer.parseInt(versionInfo);
- distance = fetchDistanceFromSiteApi(jenkinsBuild, getMinecraftVersion());
- } catch (NumberFormatException ignored) {
versionInfo = versionInfo.replace("\"", "");
distance = fetchDistanceFromGitHub(repo, branch, versionInfo);
+ } catch (Exception ex) {
+ org.bukkit.Bukkit.getLogger().warning("Error obtaining version information! Report to DivineMC!");
+ final Optional<String> gitBranch = build.gitBranch();
+ final Optional<String> gitCommit = build.gitCommit();
+ if (gitBranch.isPresent() && gitCommit.isPresent()) {
+ distance = fetchDistanceFromGitHub(repo, gitBranch.get(), gitCommit.get());
}
+ // DivineMC end
switch (distance) {
case -1:
@@ -83,26 +83,6 @@ public class PaperVersionFetcher implements VersionFetcher {
}
return switch (distance) {
case DISTANCE_ERROR -> text("* Error obtaining version information", NamedTextColor.RED); // Purpur
@@ -86,26 +83,6 @@ public class PaperVersionFetcher implements VersionFetcher {
};
}
- private static int fetchDistanceFromSiteApi(int jenkinsBuild, @Nullable String siteApiVersion) {
- if (siteApiVersion == null) { return -1; }
- private static int fetchDistanceFromSiteApi(final ServerBuildInfo build, final int jenkinsBuild) {
- try {
- try (BufferedReader reader = Resources.asCharSource(
- new URL("https://api.purpurmc.org/v2/purpur/" + siteApiVersion), // Purpur
- try (final BufferedReader reader = Resources.asCharSource(
- URI.create("https://api.purpurmc.org/v2/purpur/" + build.minecraftVersionId()).toURL(), // Purpur
- Charsets.UTF_8
- ).openBufferedStream()) {
- JsonObject json = new Gson().fromJson(reader, JsonObject.class);
- int latest = json.getAsJsonObject("builds").getAsJsonPrimitive("latest").getAsInt(); // Purpur
- final JsonObject json = new Gson().fromJson(reader, JsonObject.class);
- //final JsonArray builds = json.getAsJsonArray("builds"); // Purpur
- final int latest = json.getAsJsonObject("builds").getAsJsonPrimitive("latest").getAsInt(); // Purpur
- return latest - jenkinsBuild;
- } catch (JsonSyntaxException ex) {
- ex.printStackTrace();
- return -1;
- } catch (final JsonSyntaxException ex) {
- LOGGER.error("Error parsing json from Purpur's downloads API", ex); // Purpur
- return DISTANCE_ERROR;
- }
- } catch (IOException e) {
- e.printStackTrace();
- return -1;
- } catch (final IOException e) {
- LOGGER.error("Error while parsing version", e);
- return DISTANCE_ERROR;
- }
- }
-
// Contributed by Techcable <Techcable@outlook.com> in GH-65
private static int fetchDistanceFromGitHub(@Nonnull String repo, @Nonnull String branch, @Nonnull String hash) {
private static int fetchDistanceFromGitHub(final String repo, final String branch, final String hash) {
try {
diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
index 3cb56595822799926a8141e60a42f5d1edfc6de5..05478a1ea04ec0396bc8c97090edef4a2aced2a9 100644
@@ -153,6 +158,30 @@ index 3cb56595822799926a8141e60a42f5d1edfc6de5..05478a1ea04ec0396bc8c97090edef4a
.variable(LineReader.HISTORY_FILE, java.nio.file.Paths.get(".console_history"))
.completer(new ConsoleCommandCompleter(this.server))
.option(LineReader.Option.COMPLETE_IN_WORD, true);
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
index a6e5950b5875cafd734300cdfbf58f5d3736f3c8..3c2102bd861f65474968a51d379993efc639bdc3 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
+++ b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
@@ -32,6 +32,7 @@ public record ServerBuildInfoImpl(
private static final String BRAND_PAPER_NAME = "Paper";
private static final String BRAND_PURPUR_NAME = "Purpur"; // Purpur
+ private static final String BRAND_DIVINEMC_NAME = "DivineMC"; // DivineMC
private static final String BUILD_DEV = "DEV";
@@ -43,9 +44,9 @@ public record ServerBuildInfoImpl(
this(
getManifestAttribute(manifest, ATTRIBUTE_BRAND_ID)
.map(Key::key)
- .orElse(BRAND_PURPUR_ID), // Purpur
+ .orElse(BRAND_DIVINEMC_ID), // DivineMC
getManifestAttribute(manifest, ATTRIBUTE_BRAND_NAME)
- .orElse(BRAND_PURPUR_NAME), // Purpur
+ .orElse(BRAND_DIVINEMC_NAME), // Purpur
SharedConstants.getCurrentVersion().getId(),
SharedConstants.getCurrentVersion().getName(),
getManifestAttribute(manifest, ATTRIBUTE_BUILD_NUMBER)
diff --git a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java b/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
index 8f74c2ec5252b6265549589310d742337c91cb2c..1f4c965531393dd81246de487bc86f6d6f73b723 100644
--- a/src/main/java/net/minecraft/server/gui/MinecraftServerGui.java
@@ -184,19 +213,6 @@ index 8f74c2ec5252b6265549589310d742337c91cb2c..1f4c965531393dd81246de487bc86f6d
server.halt(true);
servergui.runFinalizers();
}
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index b82c66c402823874e3a5fc9bb7b1df73c708aec5..2f934d807a0b005fcf682ad2aa97b783b0a2169a 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -269,7 +269,7 @@ import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
public final class CraftServer implements Server {
- private final String serverName = "Purpur"; // Paper // Pufferfish // Purpur
+ private final String serverName = "DivineMC"; // Paper // Pufferfish // Purpur // DivineMC
private final String serverVersion;
private final String bukkitVersion = Versioning.getBukkitVersion();
private final Logger logger = Logger.getLogger("Minecraft");
diff --git a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java b/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
index 99597258e8e88cd9e2c901c4ac3ff7faeeabee2b..7bbbdf2895776f12ebc153dc83f4d53be8f06c7c 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/Versioning.java
@@ -210,19 +226,6 @@ index 99597258e8e88cd9e2c901c4ac3ff7faeeabee2b..7bbbdf2895776f12ebc153dc83f4d53b
Properties properties = new Properties();
if (stream != null) {
diff --git a/src/main/java/org/purpurmc/purpur/PurpurConfig.java b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
index de70bfdbdd7740fdf20dd063a7a623a9e96cef98..bcdd2bc6ffc91349ac75833bd3928e8ca7de7a0f 100644
--- a/src/main/java/org/purpurmc/purpur/PurpurConfig.java
+++ b/src/main/java/org/purpurmc/purpur/PurpurConfig.java
@@ -231,7 +231,7 @@ public class PurpurConfig {
deathMessageOnlyBroadcastToAffectedPlayer = getBoolean("settings.broadcasts.death.only-broadcast-to-affected-player", deathMessageOnlyBroadcastToAffectedPlayer);
}
- public static String serverModName = "Purpur";
+ public static String serverModName = "DivineMC"; // DivineMC
private static void serverModName() {
serverModName = getString("settings.server-mod-name", serverModName);
}
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index a353eb9f45af7b7f9bfd92a4a89403335b841840..20775a8c668c44111104b149a532dfedf691f405 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java

View File

@@ -62,19 +62,19 @@ index eda2f8cc034cf46293be1be117a60cf8b663c303..6a3c349cb36a0c89747cf4665e7bc272
this.generator = gen;
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 2f934d807a0b005fcf682ad2aa97b783b0a2169a..5905ea67e79c46b90c60b191a0967e07fee4606e 100644
index ccdf1b7b86895fe469476112277b5f76f7f02bf0..dd0f1013f3de00d67e6b3d69ed09176176bc6a0b 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -268,6 +268,8 @@ import net.md_5.bungee.api.chat.BaseComponent; // Spigot
@@ -263,6 +263,8 @@ import net.md_5.bungee.api.chat.BaseComponent; // Spigot
import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
+import space.bxteam.divinemc.configuration.DivineConfig; // DivineMC
+
public final class CraftServer implements Server {
private final String serverName = "DivineMC"; // Paper // Pufferfish // Purpur // DivineMC
private final String serverName = io.papermc.paper.ServerBuildInfo.buildInfo().brandName(); // Paper
private final String serverVersion;
@@ -1053,6 +1055,7 @@ public final class CraftServer implements Server {
@@ -1048,6 +1050,7 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.init((File) this.console.options.valueOf("spigot-settings")); // Spigot
this.console.paperConfigurations.reloadConfigs(this.console);
org.purpurmc.purpur.PurpurConfig.init((File) console.options.valueOf("purpur-settings")); // Purpur
@@ -82,7 +82,7 @@ index 2f934d807a0b005fcf682ad2aa97b783b0a2169a..5905ea67e79c46b90c60b191a0967e07
for (ServerLevel world : this.console.getAllLevels()) {
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
@@ -1069,6 +1072,7 @@ public final class CraftServer implements Server {
@@ -1064,6 +1067,7 @@ public final class CraftServer implements Server {
}
world.spigotConfig.init(); // Spigot
world.purpurConfig.init(); // Purpur
@@ -90,7 +90,7 @@ index 2f934d807a0b005fcf682ad2aa97b783b0a2169a..5905ea67e79c46b90c60b191a0967e07
}
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
@@ -1086,6 +1090,7 @@ public final class CraftServer implements Server {
@@ -1081,6 +1085,7 @@ public final class CraftServer implements Server {
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
org.purpurmc.purpur.PurpurConfig.registerCommands(); // Purpur
@@ -98,7 +98,7 @@ index 2f934d807a0b005fcf682ad2aa97b783b0a2169a..5905ea67e79c46b90c60b191a0967e07
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
@@ -3117,6 +3122,13 @@ public final class CraftServer implements Server {
@@ -3112,6 +3117,13 @@ public final class CraftServer implements Server {
}
// Purpur end
@@ -113,10 +113,10 @@ index 2f934d807a0b005fcf682ad2aa97b783b0a2169a..5905ea67e79c46b90c60b191a0967e07
public void restart() {
org.spigotmc.RestartCommand.restart();
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index a0a7bfe8f5a40b945b83096de1efd650adeb9ee3..248405f9c0290b16a580d16bc3cb824cc9f53bc2 100644
index 6d8e9cf4ee496b8748654e792ce438f512c3d946..d62bb6611ec37ec9c35712810cc65a60cb88ed6e 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -183,6 +183,14 @@ public class Main {
@@ -184,6 +184,14 @@ public class Main {
.describedAs("Yml file");
// Purpur end

View File

@@ -6,18 +6,18 @@ Subject: [PATCH] Optimize CraftServer.getWorld(UUID)
Original code by MultiPaper - https://github.com/MultiPaper/MultiPaper
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 5905ea67e79c46b90c60b191a0967e07fee4606e..978146aaf5ec11b82c41ecc9f766d6e6045958cf 100644
index dd0f1013f3de00d67e6b3d69ed09176176bc6a0b..9d3d7118bae9315b08291e3f5a2052e2100c0037 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -269,6 +269,7 @@ import javax.annotation.Nullable; // Paper
@@ -264,6 +264,7 @@ import javax.annotation.Nullable; // Paper
import javax.annotation.Nonnull; // Paper
import space.bxteam.divinemc.configuration.DivineConfig; // DivineMC
+import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; // DivineMC
public final class CraftServer implements Server {
private final String serverName = "DivineMC"; // Paper // Pufferfish // Purpur // DivineMC
@@ -287,6 +288,7 @@ public final class CraftServer implements Server {
private final String serverName = io.papermc.paper.ServerBuildInfo.buildInfo().brandName(); // Paper
@@ -282,6 +283,7 @@ public final class CraftServer implements Server {
protected final DedicatedPlayerList playerList;
private final Map<String, World> worlds = new LinkedHashMap<String, World>();
// private final Map<Class<?>, Registry<?>> registries = new HashMap<>(); // Paper - replace with RegistryAccess
@@ -25,7 +25,7 @@ index 5905ea67e79c46b90c60b191a0967e07fee4606e..978146aaf5ec11b82c41ecc9f766d6e6
private YamlConfiguration configuration;
private YamlConfiguration commandsConfiguration;
private final Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
@@ -1474,6 +1476,7 @@ public final class CraftServer implements Server {
@@ -1469,6 +1471,7 @@ public final class CraftServer implements Server {
this.getLogger().log(Level.SEVERE, null, ex);
}
@@ -33,7 +33,7 @@ index 5905ea67e79c46b90c60b191a0967e07fee4606e..978146aaf5ec11b82c41ecc9f766d6e6
this.worlds.remove(world.getName().toLowerCase(java.util.Locale.ENGLISH));
this.console.removeLevel(handle);
return true;
@@ -1492,6 +1495,7 @@ public final class CraftServer implements Server {
@@ -1487,6 +1490,7 @@ public final class CraftServer implements Server {
@Override
public World getWorld(UUID uid) {
@@ -41,7 +41,7 @@ index 5905ea67e79c46b90c60b191a0967e07fee4606e..978146aaf5ec11b82c41ecc9f766d6e6
for (World world : this.worlds.values()) {
if (world.getUID().equals(uid)) {
return world;
@@ -1515,6 +1519,7 @@ public final class CraftServer implements Server {
@@ -1510,6 +1514,7 @@ public final class CraftServer implements Server {
System.out.println("World " + world.getName() + " is a duplicate of another world and has been prevented from loading. Please delete the uid.dat file from " + world.getName() + "'s world directory if you want to be able to load the duplicate world.");
return;
}

View File

@@ -842,7 +842,7 @@ index 8c134a642ccaf3530022f2e675a858d726e1dda4..d6daa27a8d7aca00b181e90d789f4249
} catch (Exception exception) {
if (exception instanceof ReportedException) {
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index dfe3d28bd97d1335457d1005ecf69afe75d5ff80..2720d080ab34d7ced08cc54852a1e489c1f72e90 100644
index 71705ccbc0cce88382b1fb536271773a332ad3a2..eca0c8afe003e0c3155aded8b5a9855ad0952e60 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -3,7 +3,6 @@ package net.minecraft.server;
@@ -853,7 +853,7 @@ index dfe3d28bd97d1335457d1005ecf69afe75d5ff80..2720d080ab34d7ced08cc54852a1e489
import com.destroystokyo.paper.event.server.PaperServerListPingEvent;
import com.google.common.base.Stopwatch;
import com.google.common.collect.Lists;
@@ -193,8 +192,6 @@ import org.bukkit.craftbukkit.Main;
@@ -190,8 +189,6 @@ import org.bukkit.craftbukkit.CraftRegistry;
import org.bukkit.event.server.ServerLoadEvent;
// CraftBukkit end
@@ -862,7 +862,7 @@ index dfe3d28bd97d1335457d1005ecf69afe75d5ff80..2720d080ab34d7ced08cc54852a1e489
public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTask> implements ServerInfo, CommandSource, AutoCloseable {
private static MinecraftServer SERVER; // Paper
@@ -981,7 +978,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -978,7 +975,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
MinecraftServer.LOGGER.info("Stopping server");
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
@@ -870,7 +870,7 @@ index dfe3d28bd97d1335457d1005ecf69afe75d5ff80..2720d080ab34d7ced08cc54852a1e489
// Purpur start
if (upnp) {
if (dev.omega24.upnp4j.UPnP4J.close(this.getPort(), dev.omega24.upnp4j.util.Protocol.TCP)) {
@@ -1493,34 +1489,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1490,34 +1486,29 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
return;
}
@@ -924,7 +924,7 @@ index dfe3d28bd97d1335457d1005ecf69afe75d5ff80..2720d080ab34d7ced08cc54852a1e489
}
}
// Paper end - execute chunk tasks mid tick
@@ -1595,15 +1586,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1592,15 +1583,14 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
}
public void tickServer(BooleanSupplier shouldKeepTicking) {
@@ -942,7 +942,7 @@ index dfe3d28bd97d1335457d1005ecf69afe75d5ff80..2720d080ab34d7ced08cc54852a1e489
// Paper end
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
@@ -1640,9 +1630,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1637,9 +1627,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper end - Incremental chunk and player saving
io.papermc.paper.util.CachedLists.reset(); // Paper
// Paper start - move executeAll() into full server tick timing
@@ -953,7 +953,7 @@ index dfe3d28bd97d1335457d1005ecf69afe75d5ff80..2720d080ab34d7ced08cc54852a1e489
// Paper end
// Paper start - Server Tick Events
long endTime = System.nanoTime();
@@ -1665,7 +1653,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -1662,7 +1650,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
this.logTickMethodTime(i);
//this.profiler.pop(); // Purpur
org.spigotmc.WatchdogThread.tick(); // Spigot
@@ -1039,7 +1039,7 @@ index 7924e3c597164f71056cd58dd167ee8b1d41b9c3..90aa52efeb8ae92bf981a973415d1c11
entity.postTick(); // CraftBukkit
} else { entity.inactiveTick(); } // Paper - EAR 2
diff --git a/src/main/java/net/minecraft/server/players/PlayerList.java b/src/main/java/net/minecraft/server/players/PlayerList.java
index cc1c9fe6dfb436befbe626c53d896ac8ec58ff31..e26fb91e7fcce8c08a68d9038f15aecd4024e0cb 100644
index 10d52cd97b292a38ee6bb809cdb40554a011bb78..5a5ab84a944693efa10a7deb31bd1c59a445af1e 100644
--- a/src/main/java/net/minecraft/server/players/PlayerList.java
+++ b/src/main/java/net/minecraft/server/players/PlayerList.java
@@ -1,6 +1,5 @@
@@ -1214,10 +1214,10 @@ index 8dc1436fe78759cee5247cc28e8a18999e738a1b..ce3cc2d4b8cdfae98c02e03f7290c611
private static final CraftPersistentDataTypeRegistry DATA_TYPE_REGISTRY = new CraftPersistentDataTypeRegistry();
public CraftPersistentDataContainer persistentDataContainer;
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 248405f9c0290b16a580d16bc3cb824cc9f53bc2..30807e53812d1f3d00019ef82f4e014c2af65840 100644
index d62bb6611ec37ec9c35712810cc65a60cb88ed6e..93cf19c3bb09f4b639c60d1093181256b93d612a 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -361,8 +361,10 @@ public class Main {
@@ -362,8 +362,10 @@ public class Main {
tryPreloadClass("org.jline.terminal.impl.MouseSupport");
tryPreloadClass("org.jline.terminal.impl.MouseSupport$1");
tryPreloadClass("org.jline.terminal.Terminal$MouseTracking");
@@ -1230,7 +1230,7 @@ index 248405f9c0290b16a580d16bc3cb824cc9f53bc2..30807e53812d1f3d00019ef82f4e014c
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$11");
tryPreloadClass("io.netty.channel.AbstractChannelHandlerContext$12");
@@ -375,7 +377,7 @@ public class Main {
@@ -376,7 +378,7 @@ public class Main {
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$1");
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$2");
tryPreloadClass("org.bukkit.craftbukkit.scheduler.CraftScheduler$3");
@@ -1334,7 +1334,7 @@ index d3ec817e95628f1fc8be4a29c9a0f13c7d5fd552..e9798517b9211c50a20ea5c69603aab3
}
}
diff --git a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
index 8c62796dacf79dbe7ac228ac04ea478679466fd4..46c2e7b4deddcf1e829ccc1a69256139af77f793 100644
index 3daf674f1e0de3fdd89db5536cc1e34140a5abb8..066ad76b6545016d79009f46678106802e36d1f9 100644
--- a/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
+++ b/src/main/java/org/bukkit/craftbukkit/util/CraftMagicNumbers.java
@@ -219,7 +219,7 @@ public final class CraftMagicNumbers implements UnsafeValues {

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Implement Linear region format
diff --git a/build.gradle.kts b/build.gradle.kts
index 682908b659fd11b781fc1ce0aebc3cbd58cb061a..5d5ed441aa561a855c803401bee418070f9895a7 100644
index ba4a171468365dbfa95d50f4eb2830815eb167e3..e47d61efeb9f099b53885ced4b400e6663995c4f 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -29,6 +29,10 @@ dependencies {
@@ -30,6 +30,10 @@ dependencies {
alsoShade(log4jPlugins.output)
implementation("io.netty:netty-codec-haproxy:4.1.97.Final") // Paper - Add support for proxy protocol
// Paper end
@@ -121,10 +121,10 @@ index 7f6d1ccd147e5593412567bb2934ce5662da7ef0..8b232e22b1db41043ccc38e672c9bb3b
long expectedChunks = (long)regionFiles.length * (32L * 32L);
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
index 2720d080ab34d7ced08cc54852a1e489c1f72e90..41d47be479d90d714fbeacc02a61f443a2d81b67 100644
index eca0c8afe003e0c3155aded8b5a9855ad0952e60..0271452c3ddf2e95df3f6f8a6b1cbe3b76678658 100644
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
@@ -890,7 +890,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -887,7 +887,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
// Paper start - rewrite chunk system
worldserver.save((ProgressListener) null, flush, worldserver.noSave && !force, close);
if (flush) {
@@ -133,7 +133,7 @@ index 2720d080ab34d7ced08cc54852a1e489c1f72e90..41d47be479d90d714fbeacc02a61f443
}
// Paper end - rewrite chunk system
}
@@ -914,7 +914,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
@@ -911,7 +911,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
//MinecraftServer.LOGGER.info("ThreadedAnvilChunkStorage ({}): All chunks are saved", worldserver2.getChunkSource().chunkMap.getStorageName()); // Paper - move up
}

View File

@@ -572,10 +572,10 @@ index 82b4bd669c57b18fb0b443bcd94495023cd5a528..4cf13d10f24be20b2f9c8b0338b6af3d
@Override
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
index 978146aaf5ec11b82c41ecc9f766d6e6045958cf..deb1d245da99b5817df3852b6c091870b60d96f1 100644
index 9d3d7118bae9315b08291e3f5a2052e2100c0037..d91ba94cfda7458531ec5b5046d13351f9f82899 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
@@ -270,6 +270,8 @@ import javax.annotation.Nonnull; // Paper
@@ -265,6 +265,8 @@ import javax.annotation.Nonnull; // Paper
import space.bxteam.divinemc.configuration.DivineConfig; // DivineMC
import it.unimi.dsi.fastutil.objects.Object2ObjectLinkedOpenHashMap; // DivineMC
@@ -583,8 +583,8 @@ index 978146aaf5ec11b82c41ecc9f766d6e6045958cf..deb1d245da99b5817df3852b6c091870
+import space.bxteam.divinemc.seed.WorldgenCryptoRandom; // DivineMC
public final class CraftServer implements Server {
private final String serverName = "DivineMC"; // Paper // Pufferfish // Purpur // DivineMC
@@ -1361,7 +1363,7 @@ public final class CraftServer implements Server {
private final String serverName = io.papermc.paper.ServerBuildInfo.buildInfo().brandName(); // Paper
@@ -1356,7 +1358,7 @@ public final class CraftServer implements Server {
iregistrycustom_dimension = leveldataanddimensions.dimensions().dimensionsRegistryAccess();
} else {
LevelSettings worldsettings;