9
0
mirror of https://github.com/BX-Team/DivineMC.git synced 2025-12-20 07:19:23 +00:00

Updated Upstream (Purpur)

Upstream has released updates that appear to apply and compile correctly

Purpur Changes:
PurpurMC/Purpur@5d1df704 Updated Upstream (Paper)
This commit is contained in:
NONPLAYT
2025-03-15 13:27:04 +03:00
parent e7a219d49c
commit 13fbd60a09
8 changed files with 126 additions and 45 deletions

View File

@@ -441,7 +441,7 @@ index 61eeec6a0d789e5e44abdeb5826d7ee2307301ba..d6b8486d8ec534b8fcfa50899cae4281
try {
org.purpurmc.purpur.PurpurConfig.init((java.io.File) options.valueOf("purpur-settings"));
diff --git a/net/minecraft/server/level/ServerLevel.java b/net/minecraft/server/level/ServerLevel.java
index fdfb92daeb5dd60360a80baf5c1778d641cfd9be..04d36514e55e31d867dca6cd46fdef4fa601c97d 100644
index 95d24f500e919f1deae1b7b1ce6e67fa24566eff..a3f363d0c86142e03edc7fc6e2ff6ed81de8ed65 100644
--- a/net/minecraft/server/level/ServerLevel.java
+++ b/net/minecraft/server/level/ServerLevel.java
@@ -184,7 +184,7 @@ public class ServerLevel extends Level implements ServerEntityGetter, WorldGenLe
@@ -521,10 +521,10 @@ index fdfb92daeb5dd60360a80baf5c1778d641cfd9be..04d36514e55e31d867dca6cd46fdef4f
// Paper start - extra debug info
if (entity.valid) {
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
index 515b2178e71a3723eace26c89032e45678145224..7bafc62f601d0205bc673c2b6accbd2a80c75277 100644
index a9f723528dd05cb9583319edcb14143b784a2fd7..16fb9ee92f2e7b648d81bb0d90ede61405700001 100644
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -427,6 +427,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -434,6 +434,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
return this.viewDistanceHolder;
}
// Paper end - rewrite chunk system
@@ -532,7 +532,7 @@ index 515b2178e71a3723eace26c89032e45678145224..7bafc62f601d0205bc673c2b6accbd2a
public ServerPlayer(MinecraftServer server, ServerLevel level, GameProfile gameProfile, ClientInformation clientInformation) {
super(level, level.getSharedSpawnPos(), level.getSharedSpawnAngle(), gameProfile);
@@ -803,6 +804,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -810,6 +811,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@Override
public void tick() {
@@ -540,7 +540,7 @@ index 515b2178e71a3723eace26c89032e45678145224..7bafc62f601d0205bc673c2b6accbd2a
// CraftBukkit start
if (this.joining) {
this.joining = false;
@@ -1448,6 +1450,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1455,6 +1457,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
return this;
} else {
// CraftBukkit start
@@ -548,7 +548,7 @@ index 515b2178e71a3723eace26c89032e45678145224..7bafc62f601d0205bc673c2b6accbd2a
/*
this.isChangingDimension = true;
LevelData levelData = level.getLevelData();
@@ -1815,6 +1818,12 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1822,6 +1825,12 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
return OptionalInt.empty();
} else {
// CraftBukkit start
@@ -561,7 +561,7 @@ index 515b2178e71a3723eace26c89032e45678145224..7bafc62f601d0205bc673c2b6accbd2a
this.containerMenu = abstractContainerMenu; // Moved up
if (!this.isImmobile())
this.connection
@@ -1879,6 +1888,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
@@ -1886,6 +1895,11 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
}
@Override
public void closeContainer(org.bukkit.event.inventory.InventoryCloseEvent.Reason reason) {
@@ -574,7 +574,7 @@ index 515b2178e71a3723eace26c89032e45678145224..7bafc62f601d0205bc673c2b6accbd2a
// Paper end - Inventory close reason
this.connection.send(new ClientboundContainerClosePacket(this.containerMenu.containerId));
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 04fdd32394e473995648842027b88bf7ed0136ba..676b56c2898d714423dcc87170f325963749cec7 100644
index 6f66c5a93383b2897425e117c32add9a34054add..3d8c1c5aa922ec0417388a1ff27d423cdb6d1351 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -150,6 +150,7 @@ public abstract class PlayerList {
@@ -630,7 +630,7 @@ index 3709efe15b30e4140ba677ffdcd4634b06e34d7d..33f24b21e2170700f3d38e072c106e1a
List<Entity> list = new ArrayList<>(passengers.size());
this.ejectPassengers();
diff --git a/net/minecraft/world/inventory/AbstractContainerMenu.java b/net/minecraft/world/inventory/AbstractContainerMenu.java
index 3dcd8df0b395a8fed8bc0cbe0ff78f4ae0056fd3..43a421306ee2ebd68981d12ec382ad63cdfeb897 100644
index e6419715fab462b12790ecb175ce1e1a1fceed8f..40040b1e78765a4a686f9e430d16361c8c31fb14 100644
--- a/net/minecraft/world/inventory/AbstractContainerMenu.java
+++ b/net/minecraft/world/inventory/AbstractContainerMenu.java
@@ -92,8 +92,14 @@ public abstract class AbstractContainerMenu {

View File

@@ -287,7 +287,7 @@ index 398c1733824b689520170de0be94006731afa5cd..072e9b8810a6ccc292f1eb5ffe02355a
if (packet == null || this.processedDisconnect) { // Spigot
return;
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
index 676b56c2898d714423dcc87170f325963749cec7..13f9f9ad57c8f2575dfe5822122abccf29c367a9 100644
index 3d8c1c5aa922ec0417388a1ff27d423cdb6d1351..6cbd57650f1f966955ee14039bca8ceb164599cd 100644
--- a/net/minecraft/server/players/PlayerList.java
+++ b/net/minecraft/server/players/PlayerList.java
@@ -274,7 +274,7 @@ public abstract class PlayerList {
@@ -299,7 +299,7 @@ index 676b56c2898d714423dcc87170f325963749cec7..13f9f9ad57c8f2575dfe5822122abccf
)
);
player.getBukkitEntity().sendSupportedChannels(); // CraftBukkit
@@ -1328,6 +1328,7 @@ public abstract class PlayerList {
@@ -1333,6 +1333,7 @@ public abstract class PlayerList {
}
public boolean verifyChatTrusted(PlayerChatMessage message) { // Paper - private -> public

View File

@@ -1,6 +1,6 @@
--- a/net/minecraft/server/level/ServerPlayer.java
+++ b/net/minecraft/server/level/ServerPlayer.java
@@ -2259,6 +_,7 @@
@@ -2266,6 +_,7 @@
this.connection.send(new ClientboundGameEventPacket(ClientboundGameEventPacket.CHANGE_GAME_MODE, gameMode.getId()));
if (gameMode == GameType.SPECTATOR) {
this.removeEntitiesOnShoulder();

View File

@@ -113,6 +113,67 @@ index bc7e4e5560708fea89c584b1d8b471f4966f311a..6567ff18cb1c21230565c2d92caf3a7f
.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/PaperBootstrap.java b/src/main/java/io/papermc/paper/PaperBootstrap.java
deleted file mode 100644
index d543b1b107ab8d3eeb1fc3c1cadf489928d2786e..0000000000000000000000000000000000000000
--- a/src/main/java/io/papermc/paper/PaperBootstrap.java
+++ /dev/null
@@ -1,55 +0,0 @@
-package io.papermc.paper;
-
-import java.util.List;
-import joptsimple.OptionSet;
-import net.minecraft.SharedConstants;
-import net.minecraft.server.Main;
-import org.slf4j.Logger;
-import org.slf4j.LoggerFactory;
-
-public final class PaperBootstrap {
- private static final Logger LOGGER = LoggerFactory.getLogger("bootstrap");
-
- private PaperBootstrap() {
- }
-
- public static void boot(final OptionSet options) {
- SharedConstants.tryDetectVersion();
-
- getStartupVersionMessages().forEach(LOGGER::info);
-
- Main.main(options);
- }
-
- private static List<String> getStartupVersionMessages() {
- final String javaSpecVersion = System.getProperty("java.specification.version");
- final String javaVmName = System.getProperty("java.vm.name");
- final String javaVmVersion = System.getProperty("java.vm.version");
- final String javaVendor = System.getProperty("java.vendor");
- final String javaVendorVersion = System.getProperty("java.vendor.version");
- final String osName = System.getProperty("os.name");
- final String osVersion = System.getProperty("os.version");
- final String osArch = System.getProperty("os.arch");
-
- final ServerBuildInfo bi = ServerBuildInfo.buildInfo();
- return List.of(
- String.format(
- "Running Java %s (%s %s; %s %s) on %s %s (%s)",
- javaSpecVersion,
- javaVmName,
- javaVmVersion,
- javaVendor,
- javaVendorVersion,
- osName,
- osVersion,
- osArch
- ),
- String.format(
- "Loading %s %s for Minecraft %s",
- bi.brandName(),
- bi.asString(ServerBuildInfo.StringRepresentation.VERSION_FULL),
- bi.minecraftVersionId()
- )
- );
- }
-}
diff --git a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java b/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java
index b36e30fd4057a938e4d90cb42a2dca661f16478e..4e29f5f55b9a894099bef6f7c7f11e2a96b02fc8 100644
--- a/src/main/java/io/papermc/paper/ServerBuildInfoImpl.java

View File

@@ -5,10 +5,10 @@ Subject: [PATCH] Optimize canSee checks
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
index 36fc0ec6e21af31e10f63b6bb3952008530b8f81..e744c4a13092f20a591d092fe537f790d23d1db1 100644
index db2cd4603c26bca59654f0a5225b18c446a7f612..fcc124e1005f4ddda10b9d08226e6d64693f9009 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftPlayer.java
@@ -214,7 +214,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -215,7 +215,7 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
private boolean hasPlayedBefore = false;
private final ConversationTracker conversationTracker = new ConversationTracker();
private final Set<String> channels = new HashSet<String>();
@@ -17,7 +17,7 @@ index 36fc0ec6e21af31e10f63b6bb3952008530b8f81..e744c4a13092f20a591d092fe537f790
private final Set<UUID> unlistedEntities = new HashSet<>(); // Paper - Add Listing API for Player
private static final WeakHashMap<Plugin, WeakReference<Plugin>> pluginWeakReferences = new WeakHashMap<>();
private int hash = 0;
@@ -2270,9 +2270,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@@ -2272,9 +2272,15 @@ public class CraftPlayer extends CraftHumanEntity implements Player {
@Override
public boolean canSee(org.bukkit.entity.Entity entity) {

View File

@@ -1,20 +1,23 @@
package org.bxteam.divinemc;
import io.papermc.paper.PaperBootstrap;
import io.papermc.paper.ServerBuildInfo;
import joptsimple.OptionSet;
import net.minecraft.SharedConstants;
import net.minecraft.server.Eula;
import net.minecraft.server.Main;
import org.slf4j.Logger;
import org.slf4j.LoggerFactory;
import java.lang.management.ManagementFactory;
import java.nio.file.Path;
import java.nio.file.Paths;
import java.util.List;
public class DivineBootstrap {
private static final Logger LOGGER = LoggerFactory.getLogger("bootstrap");
private static final Logger LOGGER = LoggerFactory.getLogger("DivineBootstrap");
public static void boot(final OptionSet options) {
runPreBootTasks();
// DivineMC start - Verify Minecraft EULA earlier
SharedConstants.tryDetectVersion();
Path path2 = Paths.get("eula.txt");
Eula eula = new Eula(path2);
boolean eulaAgreed = Boolean.getBoolean("com.mojang.eula.agree");
@@ -28,28 +31,44 @@ public class DivineBootstrap {
return;
}
System.out.println("Loading libraries, please wait..."); // Restore CraftBukkit log
// DivineMC end - Verify Minecraft EULA earlier
getStartupVersionMessages().forEach(LOGGER::info);
PaperBootstrap.boot(options);
Main.main(options);
}
private static void runPreBootTasks() {
if (getJavaVersion() > 21) {
System.setProperty("jdk.console", "java.base");
}
}
private static List<String> getStartupVersionMessages() {
final String javaSpecVersion = System.getProperty("java.specification.version");
final String javaVmName = System.getProperty("java.vm.name");
final String javaVmVersion = System.getProperty("java.vm.version");
final String javaVendor = System.getProperty("java.vendor");
final String javaVendorVersion = System.getProperty("java.vendor.version");
final String osName = System.getProperty("os.name");
final String osVersion = System.getProperty("os.version");
final String osArch = System.getProperty("os.arch");
private static int getJavaVersion() {
String version = System.getProperty("java.version");
if (version.startsWith("1.")) {
version = version.substring(2, 3);
} else {
int dot = version.indexOf(".");
if (dot != -1) {
version = version.substring(0, dot);
}
}
version = version.split("-")[0];
return Integer.parseInt(version);
final ServerBuildInfo bi = ServerBuildInfo.buildInfo();
return List.of(
String.format(
"Running Java %s (%s %s; %s %s) on %s %s (%s)",
javaSpecVersion,
javaVmName,
javaVmVersion,
javaVendor,
javaVendorVersion,
osName,
osVersion,
osArch
),
String.format(
"Loading %s %s for Minecraft %s",
bi.brandName(),
bi.asString(ServerBuildInfo.StringRepresentation.VERSION_FULL),
bi.minecraftVersionId()
),
String.format(
"Running JVM args %s",
ManagementFactory.getRuntimeMXBean().getInputArguments().toString()
)
);
}
}

View File

@@ -1,8 +1,8 @@
group = org.bxteam.divinemc
version=1.21.4-R0.1-SNAPSHOT
mcVersion=1.21.4
version=1.21.4-R0.1-SNAPSHOT
purpurRef=3a1b29a9e153da446987bbf2ab5e4878cd60f814
purpurRef=5d1df7046101ae74283ed66dd88f800d3d25d860
experimental=false
org.gradle.configuration-cache=true

View File

@@ -22,11 +22,12 @@ if (!file(".git").exists()) {
the DivineMC repository using Git, not download a code
zip from GitHub.
Built Gale jars are available for download at
https://github.com/BX-Team/DivineMC/actions
Built DivineMC jars are available for download at
https://github.com/BX-Team/DivineMC/releases or
at https://mcjars.app/DIVINEMC/versions
See https://github.com/PaperMC/Paper/blob/main/CONTRIBUTING.md
for further information on building and modifying Paper forks.
See https://bxteam.org/docs/divinemc/development/contributing
for further information on building and modifying DivineMC.
===================================================
""".trimIndent()
error(errorText)