mirror of
https://github.com/Winds-Studio/Leaf.git
synced 2025-12-29 20:09:17 +00:00
Updated Upstream (Paper/Purpur)
Upstream has released updates that appear to apply and compile correctly Paper Changes: PaperMC/Paper@1fcc4162 Implement FeatureHooks#isChunkSent for Moonrise chunk system PaperMC/Paper@e4d7178a Implement WaypointTransmitter#isChunkVisible PaperMC/Paper@8980ead7 Directly walk text component after converting from JSON PaperMC/Paper@5613ed6d Provide env environment variable and copy spigots sys prop for overriding default repository PaperMC/Paper@62b7f86d Avoid and discourage use of Maven Central as a CDN (#12689) PaperMC/Paper@f5534cb7 [ci/skip] Run generators (#12691) PaperMC/Paper@4781d28b Re-add Log4j Javadocs (#12693) PaperMC/Paper@74fbcce5 Check type of Material in get/set stats (#12607) PaperMC/Paper@4b3f967e Improve Fix MC-44654 (#12703) PaperMC/Paper@a7dd2635 Enable spigot obfuscation support (#12695) PaperMC/Paper@6a51c44e Cleanup Primed TNT Fix (#12704) PaperMC/Paper@839c6a18 Fix #11169 (#12706) PaperMC/Paper@c77d5f99 Fix MC-297591 PaperMC/Paper@219f86ee Implement chunk unload delay config option PaperMC/Paper@e4eb69b8 Do not allow ticket level decreases to be processed asynchronously PaperMC/Paper@71b0c768 Adds support for vanilla negative explosions (#12705) PaperMC/Paper@3750927a [ci/skip] Fix PermissionManager#clearPermissions() docs bad wording (#12657) PaperMC/Paper@d61a51e8 Add ItemType#getBurnDuration() (#12604) PaperMC/Paper@29fc8532 Allow empty paths in namespaced keys (#12687) PaperMC/Paper@4419afb9 fix: Safely handle nanosecond overflow in ClickCallback (#12686) PaperMC/Paper@56528821 Add `isProxyEnabled` method to ServerConfiguration (#12664) PaperMC/Paper@c0dda0ea Add `isForceDefaultGameMode` method (#12673) PaperMC/Paper@e714de63 Fix excess slot updates PaperMC/Paper@6d0821d2 [ci/skip] Fix docs for Spawner class and cleanup (#12710) PaperMC/Paper@cceffe3d Release ItemType and BlockType (#12708) PaperMC/Paper@186e9e33 Relocate CommandMap#registerServerAliases() call to after lifecycle events have been run (#12601) PaperMC/Paper@5edcf6dd Cleanup/command dispatching (#12713) Purpur Changes: PurpurMC/Purpur@baa196f5 Updated Upstream (Paper) PurpurMC/Purpur@fdd1e980 Updated Upstream (Paper) PurpurMC/Purpur@439f15db Updated Upstream (Paper) PurpurMC/Purpur@46a28b93 [ci/skip] update version in README PurpurMC/Purpur@162bd288 Updated Upstream (Paper) PurpurMC/Purpur@afcdf9bb Updated Upstream (Paper)
This commit is contained in:
@@ -13,7 +13,7 @@
|
||||
testRuntimeOnly("org.junit.platform:junit-platform-launcher")
|
||||
}
|
||||
|
||||
@@ -24,11 +_,25 @@
|
||||
@@ -24,6 +_,19 @@
|
||||
minecraftVersion = providers.gradleProperty("mcVersion")
|
||||
gitFilePatches = false
|
||||
|
||||
@@ -30,18 +30,9 @@
|
||||
+ activeFork = leaf
|
||||
+ // Leaf end - project setup
|
||||
+
|
||||
+ // Leaf start - Update spigot mapping to compat spigot reobf mapping plugins
|
||||
spigot {
|
||||
- enabled = false
|
||||
- buildDataRef = "702e1a0a5072b2c4082371d5228cb30525687efc"
|
||||
- packageVersion = "v1_21_R4" // also needs to be updated in MappingEnvironment
|
||||
+ buildDataRef = "281ac0de7a76d808753ede97d11b034bc801b63d"
|
||||
+ packageVersion = "v1_21_R5" // also needs to be updated in MappingEnvironment
|
||||
}
|
||||
+ // Leaf end - Update spigot mapping to compat spigot reobf mapping plugins
|
||||
|
||||
reobfPackagesToFix.addAll(
|
||||
"co.aikar.timings",
|
||||
enabled = true
|
||||
buildDataRef = "281ac0de7a76d808753ede97d11b034bc801b63d"
|
||||
@@ -47,6 +_,7 @@
|
||||
libraryRepositories.addAll(
|
||||
"https://repo.maven.apache.org/maven2/",
|
||||
|
||||
@@ -28,10 +28,10 @@ index fd3553bdc1c3cdbf6aa3dc00e0a4987f8eaa4fb8..b16f3f515a76ddbbd74d73464396cf09
|
||||
DedicatedServerSettings dedicatedServerSettings = new DedicatedServerSettings(optionSet); // CraftBukkit - CLI argument support
|
||||
dedicatedServerSettings.forceSave();
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 84f4f0c87f904a31f3f972e9fb1da8a01474dfca..1d79892613707c7a81b5f0686874070f7f98debd 100644
|
||||
index 54a9c4b14a51b3480d634703d4936b15330fba53..991833bfa8d6cb6ab3faccc94199b7105523583f 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1184,6 +1184,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1185,6 +1185,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
org.spigotmc.WatchdogThread.tick();
|
||||
// Paper end
|
||||
org.spigotmc.WatchdogThread.hasStarted = true; // Paper
|
||||
|
||||
@@ -37,7 +37,7 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
|
||||
index 30227063155e3ad386cc64c69927d82cf09428cc..b9b049e025de5393fa4ef6555f5900a7b5b2f032 100644
|
||||
index 656a7013b00dcd3c5555711af6068ac515465af8..edf507ce386b43c81c0e812dd3f3283379997170 100644
|
||||
--- a/net/minecraft/commands/Commands.java
|
||||
+++ b/net/minecraft/commands/Commands.java
|
||||
@@ -58,7 +58,6 @@ import net.minecraft.server.commands.CloneCommands;
|
||||
@@ -56,7 +56,7 @@ index 30227063155e3ad386cc64c69927d82cf09428cc..b9b049e025de5393fa4ef6555f5900a7
|
||||
import net.minecraft.util.profiling.jfr.JvmProfiler;
|
||||
import net.minecraft.world.flag.FeatureFlagSet;
|
||||
import net.minecraft.world.flag.FeatureFlags;
|
||||
@@ -190,7 +188,6 @@ public class Commands {
|
||||
@@ -191,7 +189,6 @@ public class Commands {
|
||||
DamageCommand.register(this.dispatcher, context);
|
||||
DataCommands.register(this.dispatcher);
|
||||
DataPackCommand.register(this.dispatcher, context);
|
||||
@@ -64,15 +64,15 @@ index 30227063155e3ad386cc64c69927d82cf09428cc..b9b049e025de5393fa4ef6555f5900a7
|
||||
DefaultGameModeCommands.register(this.dispatcher);
|
||||
DialogCommand.register(this.dispatcher, context);
|
||||
DifficultyCommand.register(this.dispatcher);
|
||||
@@ -384,7 +381,6 @@ public class Commands {
|
||||
public void performCommand(ParseResults<CommandSourceStack> parseResults, String command, String label, boolean throwCommandError) {
|
||||
@@ -349,7 +346,6 @@ public class Commands {
|
||||
org.spigotmc.AsyncCatcher.catchOp("Cannot perform command async");
|
||||
// Paper end
|
||||
CommandSourceStack commandSourceStack = parseResults.getContext().getSource();
|
||||
- Profiler.get().push(() -> "/" + command);
|
||||
ContextChain contextChain = this.finishParsing(parseResults, command, commandSourceStack, label); // CraftBukkit // Paper - Add UnknownCommandEvent
|
||||
ContextChain<CommandSourceStack> contextChain = finishParsing(parseResults, command, commandSourceStack);
|
||||
|
||||
try {
|
||||
@@ -420,8 +416,6 @@ public class Commands {
|
||||
@@ -385,8 +381,6 @@ public class Commands {
|
||||
commandSourceStack.sendFailure(Component.literal(Util.describeError(var12)));
|
||||
LOGGER.error("'/{}' threw an exception", command, var12);
|
||||
}
|
||||
@@ -81,7 +81,7 @@ index 30227063155e3ad386cc64c69927d82cf09428cc..b9b049e025de5393fa4ef6555f5900a7
|
||||
}
|
||||
}
|
||||
|
||||
@@ -478,7 +472,7 @@ public class Commands {
|
||||
@@ -443,7 +437,7 @@ public class Commands {
|
||||
int max = Math.max(1, server.getGameRules().getInt(GameRules.RULE_MAX_COMMAND_CHAIN_LENGTH));
|
||||
int _int = server.getGameRules().getInt(GameRules.RULE_MAX_COMMAND_FORK_COUNT);
|
||||
|
||||
@@ -169,7 +169,7 @@ index 18071dcc69cc28471dddb7de94e803ec1e5fc2e4..e30bb9c4046200c1a6e4e917d15b205f
|
||||
}
|
||||
}
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c300393b6d 100644
|
||||
index 991833bfa8d6cb6ab3faccc94199b7105523583f..f4daf7ed86e5987ca9da8229402a154b69599f56 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -114,19 +114,8 @@ import net.minecraft.util.TimeUtil;
|
||||
@@ -206,7 +206,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
private ServerConnectionListener connection;
|
||||
public final ChunkProgressListenerFactory progressListenerFactory;
|
||||
@Nullable
|
||||
@@ -991,9 +973,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -992,9 +974,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
shutdownThread = Thread.currentThread(); // Paper - Improved watchdog support
|
||||
org.spigotmc.WatchdogThread.doStop(); // Paper - Improved watchdog support
|
||||
// CraftBukkit end
|
||||
@@ -216,7 +216,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
|
||||
LOGGER.info("Stopping server");
|
||||
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
|
||||
@@ -1238,18 +1217,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1239,18 +1218,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
// Spigot end
|
||||
|
||||
boolean flag = l == 0L;
|
||||
@@ -235,7 +235,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
this.tickFrame.start();
|
||||
this.tickServer(flag ? () -> false : this::haveTime);
|
||||
// Paper start - rewrite chunk system
|
||||
@@ -1260,7 +1232,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1261,7 +1233,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
// Paper end - rewrite chunk system
|
||||
this.tickFrame.end();
|
||||
@@ -243,7 +243,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
this.mayHaveDelayedTasks = true;
|
||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
|
||||
this.startMeasuringTaskExecutionTime();
|
||||
@@ -1270,11 +1241,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1271,11 +1242,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.tickRateManager.endTickWork();
|
||||
}
|
||||
|
||||
@@ -255,7 +255,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
|
||||
this.isReady = true;
|
||||
JvmProfiler.INSTANCE.onServerTick(this.smoothedTickTimeMillis);
|
||||
@@ -1447,7 +1414,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1448,7 +1415,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
@Override
|
||||
public void doRunTask(TickTask task) {
|
||||
@@ -263,7 +263,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
super.doRunTask(task);
|
||||
}
|
||||
|
||||
@@ -1537,12 +1503,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1538,12 +1504,10 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
this.ticksUntilAutosave--;
|
||||
// Paper start - Incremental chunk and player saving
|
||||
@@ -276,7 +276,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
final boolean fullSave = autosavePeriod > 0 && this.tickCount % autosavePeriod == 0;
|
||||
try {
|
||||
this.isSaving = true;
|
||||
@@ -1557,10 +1521,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1558,10 +1522,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
} finally {
|
||||
this.isSaving = false;
|
||||
}
|
||||
@@ -287,7 +287,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
this.runAllTasks(); // Paper - move runAllTasks() into full server tick (previously for timings)
|
||||
this.server.spark.executeMainThreadTasks(); // Paper - spark
|
||||
// Paper start - Server Tick Events
|
||||
@@ -1569,7 +1531,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1570,7 +1532,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
new com.destroystokyo.paper.event.server.ServerTickEndEvent(this.tickCount, ((double)(endTime - lastTick) / 1000000D), remaining).callEvent();
|
||||
// Paper end - Server Tick Events
|
||||
this.server.spark.tickEnd(((double)(endTime - lastTick) / 1000000D)); // Paper - spark
|
||||
@@ -295,7 +295,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
long l = Util.getNanos() - nanos;
|
||||
int i1 = this.tickCount % 100;
|
||||
this.aggregatedTickTimesNanos = this.aggregatedTickTimesNanos - this.tickTimesNanos[i1];
|
||||
@@ -1582,16 +1543,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1583,16 +1544,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.tickTimes60s.add(this.tickCount, l);
|
||||
// Paper end - Add tick times API and /mspt command
|
||||
this.logTickMethodTime(nanos);
|
||||
@@ -312,7 +312,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
LOGGER.debug("Autosave finished");
|
||||
}
|
||||
|
||||
@@ -1657,7 +1614,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1658,7 +1615,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
protected void tickChildren(BooleanSupplier hasTimeLeft) {
|
||||
@@ -320,7 +320,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
this.getPlayerList().getPlayers().forEach(serverPlayer1 -> serverPlayer1.connection.suspendFlushing());
|
||||
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
|
||||
// Paper start - Folia scheduler API
|
||||
@@ -1675,9 +1631,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1676,9 +1632,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
});
|
||||
// Paper end - Folia scheduler API
|
||||
io.papermc.paper.adventure.providers.ClickCallbackProviderImpl.CALLBACK_MANAGER.handleQueue(this.tickCount); // Paper
|
||||
@@ -330,7 +330,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
|
||||
// CraftBukkit start
|
||||
// Run tasks that are waiting on processing
|
||||
@@ -1712,17 +1666,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1713,17 +1667,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
||||
serverLevel.updateLagCompensationTick(); // Paper - lag compensation
|
||||
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
|
||||
@@ -348,7 +348,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
try {
|
||||
serverLevel.tick(hasTimeLeft);
|
||||
} catch (Throwable var7) {
|
||||
@@ -1731,34 +1680,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1732,34 +1681,24 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
throw new ReportedException(crashReport);
|
||||
}
|
||||
|
||||
@@ -383,7 +383,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
}
|
||||
|
||||
public void tickConnection() {
|
||||
@@ -1774,14 +1713,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1775,14 +1714,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
public void forceTimeSynchronization() {
|
||||
@@ -398,7 +398,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
}
|
||||
|
||||
public boolean isLevelEnabled(Level level) {
|
||||
@@ -2597,55 +2531,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2598,55 +2532,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -454,7 +454,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
public Path getWorldPath(LevelResource levelResource) {
|
||||
return this.storageSource.getLevelPath(levelResource);
|
||||
}
|
||||
@@ -2695,24 +2580,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2696,24 +2581,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
return this.isSaving;
|
||||
}
|
||||
|
||||
@@ -479,7 +479,7 @@ index 1d79892613707c7a81b5f0686874070f7f98debd..eae529b69296f4c1329907ae6bb1b0c3
|
||||
public int getMaxChainedNeighborUpdates() {
|
||||
return 1000000;
|
||||
}
|
||||
@@ -2822,55 +2689,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2823,55 +2690,6 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
public record ServerResourcePackInfo(UUID id, String url, String hash, boolean isRequired, @Nullable Component prompt) {
|
||||
}
|
||||
|
||||
@@ -681,10 +681,10 @@ index b10cb4a73df58a5fe64e88868733ba41616f59e4..1987afa2b3c0b9bdf5022629455bc212
|
||||
String string = String.format(
|
||||
Locale.ROOT, "%s-%s-%s", Util.getFilenameFormattedDateTime(), server.getWorldData().getLevelName(), SharedConstants.getCurrentVersion().id()
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 29b712952aed0205e72a3e8db6d87b9473f00b12..ab5e7b05df55303d46f172e1819a4c6f28a08095 100644
|
||||
index d71213de973860cb3c7d689b59414fb6f5c964c8..b63f1b27c60faf90b3d991b9a88b0642afa29a93 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -758,12 +758,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -755,12 +755,6 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
return this.settings.getProperties().serverResourcePackInfo;
|
||||
}
|
||||
|
||||
@@ -1234,7 +1234,7 @@ index 64b0508ef21952c65b0b967b756b2a4c64d96899..b6b03fbbd669e6331b30255df5419611
|
||||
|
||||
protected abstract T prepare(ResourceManager resourceManager, ProfilerFiller profiler);
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 20765c1563a31952bdc62eeb6c04e9fdba3f0cf1..96ff8384beabdfd471579d4626ce89d5587b0a35 100644
|
||||
index 56297cc84d5425dbc0b18cff377828c1a6bcd0d4..f4ee277dee9495a098030b563e417874a086c1d4 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -80,8 +80,6 @@ import net.minecraft.tags.TagKey;
|
||||
@@ -2196,7 +2196,7 @@ index 14a2514a408a66a83f7b5fb43b4c4dc8f23fd5f4..ec32d77447dd250857a2af1d8cc3e6e2
|
||||
|
||||
// Paper start - Add mobcaps commands
|
||||
diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java
|
||||
index e5ccfb8cbfafed7bb0a1d888b5bc98a923e46e59..93ac791a028f7da821db448c503532acb4a5490e 100644
|
||||
index 07e4025ca6c9c31905db2e6921138a0ded479dde..fa4695b7ee56724b4d47ce4da0a5aeb8b5467db4 100644
|
||||
--- a/net/minecraft/world/level/ServerExplosion.java
|
||||
+++ b/net/minecraft/world/level/ServerExplosion.java
|
||||
@@ -13,8 +13,6 @@ import net.minecraft.Util;
|
||||
@@ -2208,7 +2208,7 @@ index e5ccfb8cbfafed7bb0a1d888b5bc98a923e46e59..93ac791a028f7da821db448c503532ac
|
||||
import net.minecraft.world.damagesource.DamageSource;
|
||||
import net.minecraft.world.entity.Entity;
|
||||
import net.minecraft.world.entity.EntityType;
|
||||
@@ -654,10 +652,7 @@ public class ServerExplosion implements Explosion {
|
||||
@@ -652,10 +650,7 @@ public class ServerExplosion implements Explosion {
|
||||
List<BlockPos> list = this.calculateExplodedPositions();
|
||||
this.hurtEntities();
|
||||
if (this.interactsWithBlocks()) {
|
||||
|
||||
@@ -43,10 +43,10 @@ index b2bcfb3557a0326fd7ec1059f95d6da4568dfd80..fee4a7452178c274eb835d758b718d8e
|
||||
} else {
|
||||
this.storage = Arrays.copyOf(this.storage, this.storage.length * 2);
|
||||
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/server/ServerEntityLookup.java b/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/server/ServerEntityLookup.java
|
||||
index 26207443b1223119c03db478d7e816d9cdf8e618..bbd1c262674b42eb9ea2830acb8bf94182f971f9 100644
|
||||
index 5f2deeb5cc01d8bbeb7449bd4e59c466b3dfdf57..2cced8ed80e05ea398b234fa9871af0a43d9d9a1 100644
|
||||
--- a/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/server/ServerEntityLookup.java
|
||||
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/level/entity/server/ServerEntityLookup.java
|
||||
@@ -14,10 +14,8 @@ import net.minecraft.world.level.entity.LevelCallback;
|
||||
@@ -19,10 +19,8 @@ import net.minecraft.world.level.entity.LevelCallback;
|
||||
|
||||
public final class ServerEntityLookup extends EntityLookup {
|
||||
|
||||
@@ -56,8 +56,8 @@ index 26207443b1223119c03db478d7e816d9cdf8e618..bbd1c262674b42eb9ea2830acb8bf941
|
||||
- public final ReferenceList<Entity> trackerEntities = new ReferenceList<>(EMPTY_ENTITY_ARRAY); // Moonrise - entity tracker
|
||||
+ public final ReferenceList<Entity> trackerEntities = new ReferenceList<>(me.titaniumtown.ArrayConstants.emptyEntityArray); // Moonrise - entity tracker // Gale - JettPack - reduce array allocations
|
||||
|
||||
public ServerEntityLookup(final ServerLevel world, final LevelCallback<Entity> worldCallback) {
|
||||
super(world, worldCallback);
|
||||
// Vanilla does not increment ticket timeouts if the chunk is progressing in generation. They made this change in 1.21.6 so that the ender pearl
|
||||
// ticket does not expire if the chunk fails to generate before the timeout expires. Rather than blindly adjusting the entire system behavior
|
||||
diff --git a/net/minecraft/nbt/ByteArrayTag.java b/net/minecraft/nbt/ByteArrayTag.java
|
||||
index 6fbb131b472a3093b137d8ced9889777a133bd5b..cecfd48f57bc11b84c18b4e5a723228fd3c18e23 100644
|
||||
--- a/net/minecraft/nbt/ByteArrayTag.java
|
||||
@@ -217,7 +217,7 @@ index 3eea236bd1fd401fefdf7c5cc553a3db335029c7..3739272cbc73b7c4f15a2fbe874905cf
|
||||
if (!itemBySlot.isEmpty()) {
|
||||
newMob.setItemSlot(equipmentSlot, itemBySlot.copyAndClear());
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 96ff8384beabdfd471579d4626ce89d5587b0a35..6714668563e3a7543765064d9824b93ec3924473 100644
|
||||
index f4ee277dee9495a098030b563e417874a086c1d4..7aac71525a0472dc055d788904eac60118f1ec50 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -3077,7 +3077,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
|
||||
@@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
|
||||
index b9b049e025de5393fa4ef6555f5900a7b5b2f032..189cba4369a029713bb3b0cdc77d5c103c6cd852 100644
|
||||
index edf507ce386b43c81c0e812dd3f3283379997170..561b25ff9b424c2a658860b17462137ce7ae3abd 100644
|
||||
--- a/net/minecraft/commands/Commands.java
|
||||
+++ b/net/minecraft/commands/Commands.java
|
||||
@@ -531,6 +531,7 @@ public class Commands {
|
||||
@@ -496,6 +496,7 @@ public class Commands {
|
||||
private void runSync(ServerPlayer player, java.util.Collection<String> bukkit, RootCommandNode<CommandSourceStack> rootCommandNode) {
|
||||
// Paper end - Perf: Async command map building
|
||||
new com.destroystokyo.paper.event.brigadier.AsyncPlayerSendCommandsEvent<CommandSourceStack>(player.getBukkitEntity(), (RootCommandNode) rootCommandNode, true).callEvent(); // Paper - Brigadier API
|
||||
@@ -48,7 +48,7 @@ index b9b049e025de5393fa4ef6555f5900a7b5b2f032..189cba4369a029713bb3b0cdc77d5c10
|
||||
org.bukkit.event.player.PlayerCommandSendEvent event = new org.bukkit.event.player.PlayerCommandSendEvent(player.getBukkitEntity(), new java.util.LinkedHashSet<>(bukkit));
|
||||
event.getPlayer().getServer().getPluginManager().callEvent(event);
|
||||
|
||||
@@ -541,6 +542,7 @@ public class Commands {
|
||||
@@ -506,6 +507,7 @@ public class Commands {
|
||||
}
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
@@ -37,10 +37,10 @@ OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE
|
||||
SOFTWARE.
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index eae529b69296f4c1329907ae6bb1b0c300393b6d..8b7b0232fa176e7034be34bf12cfdb63151ae059 100644
|
||||
index f4daf7ed86e5987ca9da8229402a154b69599f56..3cab16e4fef4acc7e56d60e1f2221806ad7ef355 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1093,6 +1093,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1094,6 +1094,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
private static final long MAX_CATCHUP_BUFFER = TICK_TIME * TPS * 60L;
|
||||
private long lastTick = 0;
|
||||
private long catchupTime = 0;
|
||||
@@ -48,7 +48,7 @@ index eae529b69296f4c1329907ae6bb1b0c300393b6d..8b7b0232fa176e7034be34bf12cfdb63
|
||||
public final RollingAverage tps1 = new RollingAverage(60);
|
||||
public final RollingAverage tps5 = new RollingAverage(60 * 5);
|
||||
public final RollingAverage tps15 = new RollingAverage(60 * 15);
|
||||
@@ -1203,6 +1204,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1204,6 +1205,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
if (++MinecraftServer.currentTick % MinecraftServer.SAMPLE_INTERVAL == 0) {
|
||||
final long diff = currentTime - tickSection;
|
||||
final java.math.BigDecimal currentTps = TPS_BASE.divide(new java.math.BigDecimal(diff), 30, java.math.RoundingMode.HALF_UP);
|
||||
|
||||
@@ -23,10 +23,10 @@ The above copyright notice and this permission notice shall be included in all c
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 8b7b0232fa176e7034be34bf12cfdb63151ae059..d1f79b29bc56afe62503f8b3caf0b7bf443add9e 100644
|
||||
index 3cab16e4fef4acc7e56d60e1f2221806ad7ef355..25eaae9a6ba26f7b8e318526b1fb94c301e68c9d 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1140,6 +1140,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1141,6 +1141,11 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
private static final java.math.BigDecimal TPS_BASE = new java.math.BigDecimal(1E9).multiply(new java.math.BigDecimal(SAMPLE_INTERVAL));
|
||||
// Paper end
|
||||
|
||||
@@ -38,7 +38,7 @@ index 8b7b0232fa176e7034be34bf12cfdb63151ae059..d1f79b29bc56afe62503f8b3caf0b7bf
|
||||
protected void runServer() {
|
||||
try {
|
||||
if (!this.initServer()) {
|
||||
@@ -1225,7 +1230,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1226,7 +1231,9 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.nextTickTimeNanos += l;
|
||||
|
||||
this.tickFrame.start();
|
||||
@@ -48,7 +48,7 @@ index 8b7b0232fa176e7034be34bf12cfdb63151ae059..d1f79b29bc56afe62503f8b3caf0b7bf
|
||||
// Paper start - rewrite chunk system
|
||||
final Throwable crash = this.chunkSystemCrash;
|
||||
if (crash != null) {
|
||||
@@ -1354,11 +1361,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1355,11 +1362,13 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
protected void waitUntilNextTick() {
|
||||
this.runAllTasks();
|
||||
this.waitingForNextTick = true;
|
||||
|
||||
@@ -22,7 +22,7 @@ and, in my opinion, worth the low risk of minor mob-spawning-related
|
||||
inconsistencies.
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index d1f79b29bc56afe62503f8b3caf0b7bf443add9e..74f760cf52fa16a5e023ca348dadc9dbb761497d 100644
|
||||
index 25eaae9a6ba26f7b8e318526b1fb94c301e68c9d..45db35e085161b724a19c0d6f0a558c217fba9cd 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -286,6 +286,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -33,7 +33,7 @@ index d1f79b29bc56afe62503f8b3caf0b7bf443add9e..74f760cf52fa16a5e023ca348dadc9db
|
||||
|
||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
||||
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
|
||||
@@ -1048,6 +1049,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1049,6 +1050,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
// Paper end - rewrite chunk system
|
||||
// Paper start - Improved watchdog support - move final shutdown items here
|
||||
Util.shutdownExecutors();
|
||||
@@ -42,7 +42,7 @@ index d1f79b29bc56afe62503f8b3caf0b7bf443add9e..74f760cf52fa16a5e023ca348dadc9db
|
||||
net.minecrell.terminalconsole.TerminalConsoleAppender.close(); // Paper - Use TerminalConsoleAppender
|
||||
} catch (final Exception ignored) {
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 3e87adacbde617755d7a47b92f83c291546b998f..872e74d3d22c65b1d6ac624a2ccab7473dc65ff8 100644
|
||||
index 9c8d88e81ad9d06966bcec0ef134c8e658b9b51e..ca1406178cfb1a5a10947872585e2dcf3059b460 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -320,6 +320,8 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Minecraft Changes
|
||||
Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
Commit: 469a4de5ce87dcf6461e067d29a88507231f4a6b
|
||||
Commit: afcdf9bb72f88eb18266f5efd8c135904d82fd3d
|
||||
|
||||
Patches listed below are removed in this patch, They exists in Gale or Leaf:
|
||||
* "net/minecraft/CrashReport.java.patch"
|
||||
@@ -120,10 +120,10 @@ index 3acfb2a78845dd8081dc3c01d653034232c76e60..51caf352e77df49fc04bf84f1fab29b6
|
||||
boolean flag = this.source.acceptsSuccess() && !this.silent;
|
||||
boolean flag1 = allowLogging && this.source.shouldInformAdmins() && !this.silent;
|
||||
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
|
||||
index 189cba4369a029713bb3b0cdc77d5c103c6cd852..24a88a87474f003684d3ea3fa22e59b1a036f7c2 100644
|
||||
index 561b25ff9b424c2a658860b17462137ce7ae3abd..40db0b3d92bcaf4362da33720a0c4ec5451ed886 100644
|
||||
--- a/net/minecraft/commands/Commands.java
|
||||
+++ b/net/minecraft/commands/Commands.java
|
||||
@@ -248,7 +248,7 @@ public class Commands {
|
||||
@@ -249,7 +249,7 @@ public class Commands {
|
||||
JfrCommand.register(this.dispatcher);
|
||||
}
|
||||
|
||||
@@ -132,7 +132,7 @@ index 189cba4369a029713bb3b0cdc77d5c103c6cd852..24a88a87474f003684d3ea3fa22e59b1
|
||||
RaidCommand.register(this.dispatcher, context);
|
||||
DebugPathCommand.register(this.dispatcher);
|
||||
DebugMobSpawningCommand.register(this.dispatcher);
|
||||
@@ -276,6 +276,14 @@ public class Commands {
|
||||
@@ -277,6 +277,14 @@ public class Commands {
|
||||
StopCommand.register(this.dispatcher);
|
||||
TransferCommand.register(this.dispatcher);
|
||||
WhitelistCommand.register(this.dispatcher);
|
||||
@@ -322,7 +322,7 @@ index b16f3f515a76ddbbd74d73464396cf094cb30599..dd6ae338fa48d52962ee0af5b1572077
|
||||
io.papermc.paper.plugin.PluginInitializerManager.load(optionSet); // Paper
|
||||
Bootstrap.bootStrap();
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 74f760cf52fa16a5e023ca348dadc9dbb761497d..b72834526c4ebbe24c975aa4b21f55f1986a773e 100644
|
||||
index 45db35e085161b724a19c0d6f0a558c217fba9cd..db1f0031a6ae6ba1b9ea265043b87817e2c746f8 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -266,6 +266,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -342,7 +342,7 @@ index 74f760cf52fa16a5e023ca348dadc9dbb761497d..b72834526c4ebbe24c975aa4b21f55f1
|
||||
|
||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
||||
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
|
||||
@@ -977,6 +980,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -978,6 +981,15 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
LOGGER.info("Stopping server");
|
||||
Commands.COMMAND_SENDING_POOL.shutdownNow(); // Paper - Perf: Async command map building; Shutdown and don't bother finishing
|
||||
@@ -358,7 +358,7 @@ index 74f760cf52fa16a5e023ca348dadc9dbb761497d..b72834526c4ebbe24c975aa4b21f55f1
|
||||
// CraftBukkit start
|
||||
if (this.server != null) {
|
||||
this.server.spark.disable(); // Paper - spark
|
||||
@@ -1076,6 +1088,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1077,6 +1089,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.safeShutdown(waitForServer, false);
|
||||
}
|
||||
public void safeShutdown(boolean waitForServer, boolean isRestarting) {
|
||||
@@ -367,7 +367,7 @@ index 74f760cf52fa16a5e023ca348dadc9dbb761497d..b72834526c4ebbe24c975aa4b21f55f1
|
||||
this.isRestarting = isRestarting;
|
||||
this.hasLoggedStop = true; // Paper - Debugging
|
||||
if (isDebugging()) io.papermc.paper.util.TraceUtil.dumpTraceForThread("Server stopped"); // Paper - Debugging
|
||||
@@ -1187,6 +1201,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1188,6 +1202,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
// Paper end - Add onboarding message for initial server start
|
||||
|
||||
@@ -384,7 +384,7 @@ index 74f760cf52fa16a5e023ca348dadc9dbb761497d..b72834526c4ebbe24c975aa4b21f55f1
|
||||
while (this.running) {
|
||||
long l;
|
||||
if (!this.isPaused() && this.tickRateManager.isSprinting() && this.tickRateManager.checkShouldSprintThisTick()) {
|
||||
@@ -1220,6 +1244,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1221,6 +1245,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.recentTps[0] = tps1.getAverage();
|
||||
this.recentTps[1] = tps5.getAverage();
|
||||
this.recentTps[2] = tps15.getAverage();
|
||||
@@ -392,7 +392,7 @@ index 74f760cf52fa16a5e023ca348dadc9dbb761497d..b72834526c4ebbe24c975aa4b21f55f1
|
||||
tickSection = currentTime;
|
||||
}
|
||||
// Paper end - further improve server tick loop
|
||||
@@ -1245,6 +1270,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1246,6 +1271,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.tickFrame.end();
|
||||
this.mayHaveDelayedTasks = true;
|
||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
|
||||
@@ -405,7 +405,7 @@ index 74f760cf52fa16a5e023ca348dadc9dbb761497d..b72834526c4ebbe24c975aa4b21f55f1
|
||||
this.startMeasuringTaskExecutionTime();
|
||||
this.waitUntilNextTick();
|
||||
this.finishMeasuringTaskExecutionTime();
|
||||
@@ -1660,7 +1691,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1661,7 +1692,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
long worldTime = level.getGameTime();
|
||||
final ClientboundSetTimePacket worldPacket = new ClientboundSetTimePacket(worldTime, dayTime, doDaylight);
|
||||
for (Player entityhuman : level.players()) {
|
||||
@@ -414,7 +414,7 @@ index 74f760cf52fa16a5e023ca348dadc9dbb761497d..b72834526c4ebbe24c975aa4b21f55f1
|
||||
continue;
|
||||
}
|
||||
ServerPlayer entityplayer = (ServerPlayer) entityhuman;
|
||||
@@ -1679,6 +1710,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1680,6 +1711,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
serverLevel.hasEntityMoveEvent = io.papermc.paper.event.entity.EntityMoveEvent.getHandlerList().getRegisteredListeners().length > 0; // Paper - Add EntityMoveEvent
|
||||
serverLevel.updateLagCompensationTick(); // Paper - lag compensation
|
||||
net.minecraft.world.level.block.entity.HopperBlockEntity.skipHopperEvents = serverLevel.paperConfig().hopper.disableMoveEvent || org.bukkit.event.inventory.InventoryMoveItemEvent.getHandlerList().getRegisteredListeners().length == 0; // Paper - Perf: Optimize Hoppers
|
||||
@@ -492,7 +492,7 @@ index ea9db57a1fe2f11739ceb062ea7cce15776f959a..a919d91eeaaeef0f79190cc5e78e4f8b
|
||||
ItemEntity itemEntity = serverPlayer.drop(itemStack, false);
|
||||
if (itemEntity != null) {
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 872e74d3d22c65b1d6ac624a2ccab7473dc65ff8..69880a8d52f60ac3a5e5cf1ccf0654f26d456812 100644
|
||||
index ca1406178cfb1a5a10947872585e2dcf3059b460..87fc8861948b50361ec04c5a23406d3abdec6eac 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -105,6 +105,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -1903,7 +1903,7 @@ index 1fc9e1ad541c46124183a401b2a7d99aea69cecf..881271f0bc77a8a8a7d31daad9a8188b
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 57e669eeb2a05805b8ed81311344bc27292608f3..46938755cfd291bb2e4711a0651eacd7a4721aa0 100644
|
||||
index 9a6e0c203ae7f0436a0b87f6060a1cdb6623d181..d8209037e988bc7a68f634a6650930bd1082c4d1 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -146,6 +146,7 @@ import org.jetbrains.annotations.Contract;
|
||||
@@ -2111,7 +2111,7 @@ index 57e669eeb2a05805b8ed81311344bc27292608f3..46938755cfd291bb2e4711a0651eacd7
|
||||
// Paper start - optimise collisions
|
||||
public boolean updateFluidHeightAndDoFluidPushing(final TagKey<Fluid> fluid, final double flowScale) {
|
||||
if (this.touchingUnloadedChunk()) {
|
||||
@@ -5138,7 +5204,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -5143,7 +5209,7 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
}
|
||||
|
||||
public float maxUpStep() {
|
||||
@@ -2120,7 +2120,7 @@ index 57e669eeb2a05805b8ed81311344bc27292608f3..46938755cfd291bb2e4711a0651eacd7
|
||||
}
|
||||
|
||||
public void onExplosionHit(@Nullable Entity entity) {
|
||||
@@ -5391,4 +5457,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -5396,4 +5462,44 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return ((ServerLevel) this.level()).isPositionEntityTicking(this.blockPosition());
|
||||
}
|
||||
// Paper end - Expose entity id counter
|
||||
@@ -2179,7 +2179,7 @@ index 15daba9062d54a5bdf335c3645a3227ccb5a8e06..1842cbe25cc0f9be937caf0a78e915bd
|
||||
public static final Predicate<Entity> PLAYER_AFFECTS_SPAWNING = (entity) -> {
|
||||
return !entity.isSpectator() && entity.isAlive() && entity instanceof Player player && player.affectsSpawning;
|
||||
diff --git a/net/minecraft/world/entity/EntityType.java b/net/minecraft/world/entity/EntityType.java
|
||||
index 9dc5a7e9fdb83d98c3554fea064b06f022da4496..22d3dd6ba240dd8d9cedc01e43e58fef1953de1d 100644
|
||||
index 388689c44cf63ade939e271d490051c9b3fe8034..e65b1818c49e1b7d04d5bcc912804c821f00bdbc 100644
|
||||
--- a/net/minecraft/world/entity/EntityType.java
|
||||
+++ b/net/minecraft/world/entity/EntityType.java
|
||||
@@ -1106,6 +1106,16 @@ public class EntityType<T extends Entity> implements FeatureElement, EntityTypeT
|
||||
@@ -8281,10 +8281,10 @@ index 7afdccf04e2239b0654e8f1ce7b7e22c39d84f44..20f4c879e46fdd0ed0515dbbb91f6411
|
||||
|
||||
@Override
|
||||
diff --git a/net/minecraft/world/entity/item/PrimedTnt.java b/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
index f8a81f0b34aca0205123a8cb00078338ae1d7756..224f8b62809c0de33c182fceae1c41b14f4506fe 100644
|
||||
index 17d54d38dcec39eefeb989cd576cc640a36e82f5..ef070f8a9ab3a4676e2141f7c0bc20a000d0cc3a 100644
|
||||
--- a/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
+++ b/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
@@ -253,4 +253,32 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
@@ -238,4 +238,32 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
return !this.level().paperConfig().fixes.preventTntFromMovingInWater && super.isPushedByFluid();
|
||||
}
|
||||
// Paper end - Option to prevent TNT from moving in water
|
||||
@@ -13022,15 +13022,15 @@ index 2419c1db39c9ffbc54352c7fa5e0ac1ef813c13a..3b68e1a73da3e70f459cdc31e8447bce
|
||||
protected void defineSynchedData(SynchedEntityData.Builder builder) {
|
||||
builder.define(DATA_DANGEROUS, false);
|
||||
diff --git a/net/minecraft/world/entity/raid/Raider.java b/net/minecraft/world/entity/raid/Raider.java
|
||||
index df0753c89b7c613f2abac9c50ce7f897ba280803..3baba21d106ab09ae476238f2636169c371f43cf 100644
|
||||
index a495789b2d21fa9a24d5dca4ecfa196ddce49466..2254493c889b8967011c09dc448ba375d82e2035 100644
|
||||
--- a/net/minecraft/world/entity/raid/Raider.java
|
||||
+++ b/net/minecraft/world/entity/raid/Raider.java
|
||||
@@ -401,7 +401,7 @@ public abstract class Raider extends PatrollingMonster {
|
||||
}
|
||||
|
||||
private boolean cannotPickUpBanner() {
|
||||
- if (!getServerLevel(this.mob).getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_MOBGRIEFING) || !this.mob.canPickUpLoot()) return false; // Paper - respect game and entity rules for picking up items
|
||||
+ if (!getServerLevel(this.mob).getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_MOBGRIEFING, this.mob.level().purpurConfig.pillagerMobGriefingOverride) || !this.mob.canPickUpLoot()) return false; // Paper - respect game and entity rules for picking up items // Purpur - Add mobGriefing override to everything affected
|
||||
- if (!getServerLevel(this.mob).getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_MOBGRIEFING)) return true; // Paper - respect game and entity rules for picking up items
|
||||
+ if (!getServerLevel(this.mob).getGameRules().getBoolean(net.minecraft.world.level.GameRules.RULE_MOBGRIEFING, this.mob.level().purpurConfig.pillagerMobGriefingOverride)) return true; // Paper - respect game and entity rules for picking up items // Purpur - Add mobGriefing override to everything affected
|
||||
if (!this.mob.hasActiveRaid()) {
|
||||
return true;
|
||||
} else if (this.mob.getCurrentRaid().isOver()) {
|
||||
@@ -13280,7 +13280,7 @@ index 793e4528755fa5688efbad75418188e693ad0157..20f702c8266eb54a8835861188eb937f
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/world/inventory/AbstractContainerMenu.java b/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
index 813417a09b4acc7d57e80a53d970767e230d75b1..c4721eb0efe34f5e313bc890b4e960144eca4fe1 100644
|
||||
index f4548edae77eb86e54ba499acbb20613fd60d7bd..1f601781643945920c7522b9c6100d0a37ad535d 100644
|
||||
--- a/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
+++ b/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
@@ -65,6 +65,7 @@ public abstract class AbstractContainerMenu {
|
||||
@@ -14699,28 +14699,10 @@ index ec32d77447dd250857a2af1d8cc3e6e233aa3e6e..345d4b80bd4383e0fb66d744d87bc8ef
|
||||
double d2 = nearestPlayer.distanceToSqr(d, y, d1);
|
||||
if (level.isLoadedAndInBounds(mutableBlockPos) && isRightDistanceToPlayerAndSpawnPoint(level, chunk, mutableBlockPos, d2)) { // Paper - don't load chunks for mob spawn
|
||||
diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java
|
||||
index 93ac791a028f7da821db448c503532acb4a5490e..6c02b986e328ead2040666d619fdb5d397d9b686 100644
|
||||
index fa4695b7ee56724b4d47ce4da0a5aeb8b5467db4..1669c21534a453c9cf16b992df7a6bf276dea887 100644
|
||||
--- a/net/minecraft/world/level/ServerExplosion.java
|
||||
+++ b/net/minecraft/world/level/ServerExplosion.java
|
||||
@@ -314,7 +314,7 @@ public class ServerExplosion implements Explosion {
|
||||
) {
|
||||
this.level = level;
|
||||
this.source = source;
|
||||
- this.radius = (float) Math.max(radius, 0.0); // CraftBukkit - clamp bad values
|
||||
+ this.radius = (float) (level == null || level.purpurConfig.explosionClampRadius ? Math.max(radius, 0.0) : radius); // CraftBukkit - clamp bad values // Purpur - Config to remove explosion radius clamp
|
||||
this.center = center;
|
||||
this.fire = fire;
|
||||
this.blockInteraction = blockInteraction;
|
||||
@@ -636,7 +636,7 @@ public class ServerExplosion implements Explosion {
|
||||
|
||||
public void explode() {
|
||||
// CraftBukkit start
|
||||
- if (this.radius < 0.1F) {
|
||||
+ if ((this.level == null || this.level.purpurConfig.explosionClampRadius) && this.radius < 0.1F) { // Purpur - Config to remove explosion radius clamp
|
||||
return;
|
||||
}
|
||||
// CraftBukkit end
|
||||
@@ -648,6 +648,23 @@ public class ServerExplosion implements Explosion {
|
||||
@@ -646,6 +646,23 @@ public class ServerExplosion implements Explosion {
|
||||
this.directMappedBlockCache = new ca.spottedleaf.moonrise.patches.collisions.ExplosionBlockCache[BLOCK_EXPLOSION_CACHE_WIDTH * BLOCK_EXPLOSION_CACHE_WIDTH * BLOCK_EXPLOSION_CACHE_WIDTH];
|
||||
this.mutablePos = new BlockPos.MutableBlockPos();
|
||||
// Paper end - collision optimisations
|
||||
@@ -17453,10 +17435,10 @@ index 0000000000000000000000000000000000000000..ed777b003140486fd5d8d1db7af77030
|
||||
+}
|
||||
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
new file mode 100644
|
||||
index 0000000000000000000000000000000000000000..611847bd7576bb77fdfb734ddb2e3412f3831041
|
||||
index 0000000000000000000000000000000000000000..a03e166b490952534e8050654c1afa975795f731
|
||||
--- /dev/null
|
||||
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -0,0 +1,3619 @@
|
||||
@@ -0,0 +1,3614 @@
|
||||
+package org.purpurmc.purpur;
|
||||
+
|
||||
+import java.util.ArrayList;
|
||||
@@ -17716,11 +17698,6 @@ index 0000000000000000000000000000000000000000..611847bd7576bb77fdfb734ddb2e3412
|
||||
+ infinityWorksWithoutArrows = getBoolean("gameplay-mechanics.infinity-bow.works-without-arrows", infinityWorksWithoutArrows);
|
||||
+ }
|
||||
+
|
||||
+ public boolean explosionClampRadius = true;
|
||||
+ private void explosionSettings() {
|
||||
+ explosionClampRadius = getBoolean("gameplay-mechanics.clamp-explosion-radius", explosionClampRadius);
|
||||
+ }
|
||||
+
|
||||
+ public List<Item> itemImmuneToCactus = new ArrayList<>();
|
||||
+ public List<Item> itemImmuneToExplosion = new ArrayList<>();
|
||||
+ public List<Item> itemImmuneToFire = new ArrayList<>();
|
||||
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix Pufferfish and Purpur patches
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index b72834526c4ebbe24c975aa4b21f55f1986a773e..1109b12657e4f098b18e2a3cea18ddeed67bc224 100644
|
||||
index db1f0031a6ae6ba1b9ea265043b87817e2c746f8..1aab4d41054f8e780e6c0ccdb96affee19068311 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -277,7 +277,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -26,7 +26,7 @@ index b72834526c4ebbe24c975aa4b21f55f1986a773e..1109b12657e4f098b18e2a3cea18ddee
|
||||
public boolean lagging = false; // Purpur - Lagging threshold
|
||||
protected boolean upnp = false; // Purpur - UPnP Port Forwarding
|
||||
|
||||
@@ -1241,9 +1241,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1242,9 +1242,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
tps15.add(currentTps, diff);
|
||||
|
||||
// Backwards compat with bad plugins
|
||||
@@ -42,7 +42,7 @@ index b72834526c4ebbe24c975aa4b21f55f1986a773e..1109b12657e4f098b18e2a3cea18ddee
|
||||
lagging = recentTps[0] < org.purpurmc.purpur.PurpurConfig.laggingThreshold; // Purpur - Lagging threshold
|
||||
tickSection = currentTime;
|
||||
}
|
||||
@@ -1271,7 +1274,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1272,7 +1275,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.mayHaveDelayedTasks = true;
|
||||
this.delayedTasksMaxNextTickTimeNanos = Math.max(Util.getNanos() + l, this.nextTickTimeNanos);
|
||||
// Purpur start - Configurable TPS Catchup
|
||||
@@ -78,7 +78,7 @@ index 5031e4e9b59a1e013152f788b20c58646b30770f..1aaa94a2800687faa4d86698a4e1ad72
|
||||
this.disconnectAsync(Component.literal("Book too large!"), org.bukkit.event.player.PlayerKickEvent.Cause.ILLEGAL_ACTION); // Paper - kick event cause // Paper - add proper async disconnect
|
||||
return;
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 46938755cfd291bb2e4711a0651eacd7a4721aa0..305181410e025d857608c866592bcc44e3654f31 100644
|
||||
index d8209037e988bc7a68f634a6650930bd1082c4d1..a2a4ad515a4ef0fa24948d0f47c5bd78ec7e6555 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -543,23 +543,36 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -306,10 +306,10 @@ index ef960ee83adbb5e3ebfa44cd2457b23718045f61..e53c18efb573dea39a3d45f3cdb827d7
|
||||
this.setDeltaMovement(0, this.getDeltaMovement().y, 0);
|
||||
}
|
||||
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 611847bd7576bb77fdfb734ddb2e3412f3831041..7137c05ac03580143c4a4d74881231800bd552f8 100644
|
||||
index a03e166b490952534e8050654c1afa975795f731..88a2ad8e3b30cb9f447eb4001d33c7799339b6a0 100644
|
||||
--- a/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -2458,6 +2458,13 @@ public class PurpurWorldConfig {
|
||||
@@ -2453,6 +2453,13 @@ public class PurpurWorldConfig {
|
||||
piglinMobGriefingOverride = getBooleanOrDefault("mobs.piglin.mob-griefing-override", piglinMobGriefingOverride);
|
||||
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);
|
||||
piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
|
||||
|
||||
@@ -7,10 +7,10 @@ Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 1109b12657e4f098b18e2a3cea18ddeed67bc224..8da49dd5d56128df4fd3c3c5a4731be2eb5eb094 100644
|
||||
index 1aab4d41054f8e780e6c0ccdb96affee19068311..586ba2d9c4ad684a4a7875c49cab048f949322ab 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1840,7 +1840,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1841,7 +1841,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
@DontObfuscate
|
||||
public String getServerModName() {
|
||||
|
||||
@@ -59,10 +59,10 @@ index 62b9d9486c15a1ec6527f786df4e9fc483390bcb..5384bbc6bb3dbe5481f9d8cb10282551
|
||||
int i = buffer.readableBytes();
|
||||
if (i >= 0 && i <= maxSize) {
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 8da49dd5d56128df4fd3c3c5a4731be2eb5eb094..5f85127436732b3165ce6e5baea8bc6999eee176 100644
|
||||
index 586ba2d9c4ad684a4a7875c49cab048f949322ab..3a1822e0f37c86dfad56ae06c14fffb960ff99ec 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1738,6 +1738,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1739,6 +1739,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
GameTestTicker.SINGLETON.tick();
|
||||
}
|
||||
|
||||
|
||||
@@ -92,10 +92,10 @@ index b305ba9bab617bf4e52d0e6ddf160bacc5751a94..bbaf1a29f86a9bfc13795249d545b6f7
|
||||
if (players.size() >= resultLimit) {
|
||||
return players;
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 5f85127436732b3165ce6e5baea8bc6999eee176..1635de2b25a4162036522615424d9e845def6258 100644
|
||||
index 3a1822e0f37c86dfad56ae06c14fffb960ff99ec..32c934a489df7a06892265c6d762e88c3716a5c6 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1641,7 +1641,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1642,7 +1642,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
private ServerStatus.Players buildPlayerStatus() {
|
||||
|
||||
@@ -83,10 +83,10 @@ index f58c48d9de85fda3d13079f3e56b31af75b3c725..cc349403ceb9b094362e706f4e5b200a
|
||||
}
|
||||
|
||||
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index 7137c05ac03580143c4a4d74881231800bd552f8..c432874257451b62fde4284526a647736fa3bcd0 100644
|
||||
index 88a2ad8e3b30cb9f447eb4001d33c7799339b6a0..b3dd4862b9fa220f4aeabc3598169852f8b12482 100644
|
||||
--- a/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1625,6 +1625,7 @@ public class PurpurWorldConfig {
|
||||
@@ -1620,6 +1620,7 @@ public class PurpurWorldConfig {
|
||||
public boolean drownedTakeDamageFromWater = false;
|
||||
public boolean drownedBreakDoors = false;
|
||||
public boolean drownedAlwaysDropExp = false;
|
||||
@@ -94,7 +94,7 @@ index 7137c05ac03580143c4a4d74881231800bd552f8..c432874257451b62fde4284526a64773
|
||||
private void drownedSettings() {
|
||||
drownedRidable = getBoolean("mobs.drowned.ridable", drownedRidable);
|
||||
drownedRidableInWater = getBoolean("mobs.drowned.ridable-in-water", drownedRidableInWater);
|
||||
@@ -1643,6 +1644,7 @@ public class PurpurWorldConfig {
|
||||
@@ -1638,6 +1639,7 @@ public class PurpurWorldConfig {
|
||||
drownedTakeDamageFromWater = getBoolean("mobs.drowned.takes-damage-from-water", drownedTakeDamageFromWater);
|
||||
drownedBreakDoors = getBoolean("mobs.drowned.can-break-doors", drownedBreakDoors);
|
||||
drownedAlwaysDropExp = getBoolean("mobs.drowned.always-drop-exp", drownedAlwaysDropExp);
|
||||
@@ -102,7 +102,7 @@ index 7137c05ac03580143c4a4d74881231800bd552f8..c432874257451b62fde4284526a64773
|
||||
}
|
||||
|
||||
public boolean elderGuardianRidable = false;
|
||||
@@ -2060,6 +2062,7 @@ public class PurpurWorldConfig {
|
||||
@@ -2055,6 +2057,7 @@ public class PurpurWorldConfig {
|
||||
public boolean huskJockeyTryExistingChickens = true;
|
||||
public boolean huskTakeDamageFromWater = false;
|
||||
public boolean huskAlwaysDropExp = false;
|
||||
@@ -110,7 +110,7 @@ index 7137c05ac03580143c4a4d74881231800bd552f8..c432874257451b62fde4284526a64773
|
||||
private void huskSettings() {
|
||||
huskRidable = getBoolean("mobs.husk.ridable", huskRidable);
|
||||
huskRidableInWater = getBoolean("mobs.husk.ridable-in-water", huskRidableInWater);
|
||||
@@ -2077,6 +2080,7 @@ public class PurpurWorldConfig {
|
||||
@@ -2072,6 +2075,7 @@ public class PurpurWorldConfig {
|
||||
huskJockeyTryExistingChickens = getBoolean("mobs.husk.jockey.try-existing-chickens", huskJockeyTryExistingChickens);
|
||||
huskTakeDamageFromWater = getBoolean("mobs.husk.takes-damage-from-water", huskTakeDamageFromWater);
|
||||
huskAlwaysDropExp = getBoolean("mobs.husk.always-drop-exp", huskAlwaysDropExp);
|
||||
@@ -118,7 +118,7 @@ index 7137c05ac03580143c4a4d74881231800bd552f8..c432874257451b62fde4284526a64773
|
||||
}
|
||||
|
||||
public boolean illusionerRidable = false;
|
||||
@@ -3447,6 +3451,7 @@ public class PurpurWorldConfig {
|
||||
@@ -3442,6 +3446,7 @@ public class PurpurWorldConfig {
|
||||
public boolean zombieTakeDamageFromWater = false;
|
||||
public boolean zombieAlwaysDropExp = false;
|
||||
public double zombieHeadVisibilityPercent = 0.5D;
|
||||
@@ -126,7 +126,7 @@ index 7137c05ac03580143c4a4d74881231800bd552f8..c432874257451b62fde4284526a64773
|
||||
private void zombieSettings() {
|
||||
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
|
||||
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
|
||||
@@ -3472,6 +3477,7 @@ public class PurpurWorldConfig {
|
||||
@@ -3467,6 +3472,7 @@ public class PurpurWorldConfig {
|
||||
zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater);
|
||||
zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp);
|
||||
zombieHeadVisibilityPercent = getDouble("mobs.zombie.head-visibility-percent", zombieHeadVisibilityPercent);
|
||||
@@ -134,7 +134,7 @@ index 7137c05ac03580143c4a4d74881231800bd552f8..c432874257451b62fde4284526a64773
|
||||
}
|
||||
|
||||
public boolean zombieHorseRidable = false;
|
||||
@@ -3521,6 +3527,7 @@ public class PurpurWorldConfig {
|
||||
@@ -3516,6 +3522,7 @@ public class PurpurWorldConfig {
|
||||
public int zombieVillagerCuringTimeMax = 6000;
|
||||
public boolean zombieVillagerCureEnabled = true;
|
||||
public boolean zombieVillagerAlwaysDropExp = false;
|
||||
@@ -142,7 +142,7 @@ index 7137c05ac03580143c4a4d74881231800bd552f8..c432874257451b62fde4284526a64773
|
||||
private void zombieVillagerSettings() {
|
||||
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
|
||||
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
|
||||
@@ -3541,6 +3548,7 @@ public class PurpurWorldConfig {
|
||||
@@ -3536,6 +3543,7 @@ public class PurpurWorldConfig {
|
||||
zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax);
|
||||
zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled);
|
||||
zombieVillagerAlwaysDropExp = getBoolean("mobs.zombie_villager.always-drop-exp", zombieVillagerAlwaysDropExp);
|
||||
@@ -150,7 +150,7 @@ index 7137c05ac03580143c4a4d74881231800bd552f8..c432874257451b62fde4284526a64773
|
||||
}
|
||||
|
||||
public boolean zombifiedPiglinRidable = false;
|
||||
@@ -3555,6 +3563,7 @@ public class PurpurWorldConfig {
|
||||
@@ -3550,6 +3558,7 @@ public class PurpurWorldConfig {
|
||||
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = false;
|
||||
public boolean zombifiedPiglinTakeDamageFromWater = false;
|
||||
public boolean zombifiedPiglinAlwaysDropExp = false;
|
||||
@@ -158,7 +158,7 @@ index 7137c05ac03580143c4a4d74881231800bd552f8..c432874257451b62fde4284526a64773
|
||||
private void zombifiedPiglinSettings() {
|
||||
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
|
||||
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
|
||||
@@ -3576,6 +3585,7 @@ public class PurpurWorldConfig {
|
||||
@@ -3571,6 +3580,7 @@ public class PurpurWorldConfig {
|
||||
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
|
||||
zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater);
|
||||
zombifiedPiglinAlwaysDropExp = getBoolean("mobs.zombified_piglin.always-drop-exp", zombifiedPiglinAlwaysDropExp);
|
||||
|
||||
@@ -263,10 +263,10 @@ index ed777b003140486fd5d8d1db7af770301e30bec9..31450de492fbfdd83608ae668072bebd
|
||||
org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27);
|
||||
enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows);
|
||||
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
index c432874257451b62fde4284526a647736fa3bcd0..d427575e389b7c249799d71aa953e8419530a9ce 100644
|
||||
index b3dd4862b9fa220f4aeabc3598169852f8b12482..a6370d8b7bb6e07c7e41beb78b1778351b41cde1 100644
|
||||
--- a/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java
|
||||
@@ -1189,12 +1189,20 @@ public class PurpurWorldConfig {
|
||||
@@ -1184,12 +1184,20 @@ public class PurpurWorldConfig {
|
||||
public boolean allayControllable = true;
|
||||
public double allayMaxHealth = 20.0D;
|
||||
public double allayScale = 1.0D;
|
||||
@@ -287,7 +287,7 @@ index c432874257451b62fde4284526a647736fa3bcd0..d427575e389b7c249799d71aa953e841
|
||||
}
|
||||
|
||||
public boolean armadilloRidable = false;
|
||||
@@ -1349,6 +1357,10 @@ public class PurpurWorldConfig {
|
||||
@@ -1344,6 +1352,10 @@ public class PurpurWorldConfig {
|
||||
public double camelMovementSpeedMin = 0.09D;
|
||||
public double camelMovementSpeedMax = 0.09D;
|
||||
public int camelBreedingTicks = 6000;
|
||||
@@ -298,7 +298,7 @@ index c432874257451b62fde4284526a647736fa3bcd0..d427575e389b7c249799d71aa953e841
|
||||
private void camelSettings() {
|
||||
camelRidableInWater = getBoolean("mobs.camel.ridable-in-water", camelRidableInWater);
|
||||
camelMaxHealthMin = getDouble("mobs.camel.attributes.max_health.min", camelMaxHealthMin);
|
||||
@@ -1358,6 +1370,10 @@ public class PurpurWorldConfig {
|
||||
@@ -1353,6 +1365,10 @@ public class PurpurWorldConfig {
|
||||
camelMovementSpeedMin = getDouble("mobs.camel.attributes.movement_speed.min", camelMovementSpeedMin);
|
||||
camelMovementSpeedMax = getDouble("mobs.camel.attributes.movement_speed.max", camelMovementSpeedMax);
|
||||
camelBreedingTicks = getInt("mobs.camel.breeding-delay-ticks", camelBreedingTicks);
|
||||
@@ -309,7 +309,7 @@ index c432874257451b62fde4284526a647736fa3bcd0..d427575e389b7c249799d71aa953e841
|
||||
}
|
||||
|
||||
public boolean catRidable = false;
|
||||
@@ -1504,12 +1520,20 @@ public class PurpurWorldConfig {
|
||||
@@ -1499,12 +1515,20 @@ public class PurpurWorldConfig {
|
||||
public boolean creakingControllable = true;
|
||||
public double creakingMaxHealth = 1.0D;
|
||||
public double creakingScale = 1.0D;
|
||||
@@ -330,7 +330,7 @@ index c432874257451b62fde4284526a647736fa3bcd0..d427575e389b7c249799d71aa953e841
|
||||
}
|
||||
|
||||
public boolean creeperRidable = false;
|
||||
@@ -1841,12 +1865,22 @@ public class PurpurWorldConfig {
|
||||
@@ -1836,12 +1860,22 @@ public class PurpurWorldConfig {
|
||||
public boolean frogControllable = true;
|
||||
public float frogRidableJumpHeight = 0.65F;
|
||||
public int frogBreedingTicks = 6000;
|
||||
@@ -353,7 +353,7 @@ index c432874257451b62fde4284526a647736fa3bcd0..d427575e389b7c249799d71aa953e841
|
||||
}
|
||||
|
||||
public boolean ghastRidable = false;
|
||||
@@ -2941,6 +2975,10 @@ public class PurpurWorldConfig {
|
||||
@@ -2936,6 +2970,10 @@ public class PurpurWorldConfig {
|
||||
public double snifferMaxHealth = 14.0D;
|
||||
public double snifferScale = 1.0D;
|
||||
public int snifferBreedingTicks = 6000;
|
||||
@@ -364,7 +364,7 @@ index c432874257451b62fde4284526a647736fa3bcd0..d427575e389b7c249799d71aa953e841
|
||||
private void snifferSettings() {
|
||||
snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable);
|
||||
snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater);
|
||||
@@ -2948,6 +2986,10 @@ public class PurpurWorldConfig {
|
||||
@@ -2943,6 +2981,10 @@ public class PurpurWorldConfig {
|
||||
snifferMaxHealth = getDouble("mobs.sniffer.attributes.max_health", snifferMaxHealth);
|
||||
snifferScale = Mth.clamp(getDouble("mobs.sniffer.attributes.scale", snifferScale), 0.0625D, 16.0D);
|
||||
snifferBreedingTicks = getInt("mobs.sniffer.breeding-delay-ticks", snifferBreedingTicks);
|
||||
@@ -375,7 +375,7 @@ index c432874257451b62fde4284526a647736fa3bcd0..d427575e389b7c249799d71aa953e841
|
||||
}
|
||||
|
||||
public boolean squidRidable = false;
|
||||
@@ -3049,10 +3091,20 @@ public class PurpurWorldConfig {
|
||||
@@ -3044,10 +3086,20 @@ public class PurpurWorldConfig {
|
||||
public boolean tadpoleRidable = false;
|
||||
public boolean tadpoleRidableInWater = true;
|
||||
public boolean tadpoleControllable = true;
|
||||
@@ -396,7 +396,7 @@ index c432874257451b62fde4284526a647736fa3bcd0..d427575e389b7c249799d71aa953e841
|
||||
}
|
||||
|
||||
public boolean traderLlamaRidable = false;
|
||||
@@ -3286,10 +3338,20 @@ public class PurpurWorldConfig {
|
||||
@@ -3281,10 +3333,20 @@ public class PurpurWorldConfig {
|
||||
public boolean wardenRidable = false;
|
||||
public boolean wardenRidableInWater = true;
|
||||
public boolean wardenControllable = true;
|
||||
|
||||
@@ -13,7 +13,7 @@ To avoid the hefty ArrayDeque's size() call, we check if we *really* need to exe
|
||||
Most entities won't have any scheduled tasks, so this is a nice performance bonus. These optimizations, however, wouldn't work in a Folia environment, but because in SparklyPaper executeTick is always executed on the main thread, it ain't an issue for us (yay).
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 1635de2b25a4162036522615424d9e845def6258..5cb1f2246a590d4420b73538e7c4a9f4083a11ab 100644
|
||||
index 32c934a489df7a06892265c6d762e88c3716a5c6..a5e90f57ffd86f75f80629a6be97d4eb7c2a9190 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -290,6 +290,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -24,7 +24,7 @@ index 1635de2b25a4162036522615424d9e845def6258..5cb1f2246a590d4420b73538e7c4a9f4
|
||||
|
||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
||||
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
|
||||
@@ -1665,6 +1666,22 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1666,6 +1667,22 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
|
||||
// Paper start - Folia scheduler API
|
||||
((io.papermc.paper.threadedregions.scheduler.FoliaGlobalRegionScheduler) org.bukkit.Bukkit.getGlobalRegionScheduler()).tick();
|
||||
@@ -47,7 +47,7 @@ index 1635de2b25a4162036522615424d9e845def6258..5cb1f2246a590d4420b73538e7c4a9f4
|
||||
getAllLevels().forEach(level -> {
|
||||
for (final net.minecraft.world.entity.Entity entity : level.getEntities().getAll()) {
|
||||
if (entity.isRemoved()) {
|
||||
@@ -1676,6 +1693,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1677,6 +1694,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
@@ -7,10 +7,10 @@ AFK command & command cooldown
|
||||
AFK title message
|
||||
|
||||
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
|
||||
index 24a88a87474f003684d3ea3fa22e59b1a036f7c2..db5318350988ad23f01a5a43d59090768a682fea 100644
|
||||
index 40db0b3d92bcaf4362da33720a0c4ec5451ed886..a1f1e03a8ff5eb49ecfad5dda0dbd4bc35cd53df 100644
|
||||
--- a/net/minecraft/commands/Commands.java
|
||||
+++ b/net/minecraft/commands/Commands.java
|
||||
@@ -276,6 +276,7 @@ public class Commands {
|
||||
@@ -277,6 +277,7 @@ public class Commands {
|
||||
StopCommand.register(this.dispatcher);
|
||||
TransferCommand.register(this.dispatcher);
|
||||
WhitelistCommand.register(this.dispatcher);
|
||||
@@ -19,7 +19,7 @@ index 24a88a87474f003684d3ea3fa22e59b1a036f7c2..db5318350988ad23f01a5a43d5909076
|
||||
org.purpurmc.purpur.command.DemoCommand.register(this.dispatcher); // Purpur - Add demo command
|
||||
org.purpurmc.purpur.command.PingCommand.register(this.dispatcher); // Purpur - Add ping command
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index 4210089d6ba271ef9d68e18699b1122f07e1946a..93e6eb5f160a58351f97683f57c763e418786d1c 100644
|
||||
index 8d1571f3db4e7f6c4309b8a46ed0359ecdee85a5..ed62bb4dc142f122997e7db8ef07bdf805b49f28 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -2426,6 +2426,10 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -152,7 +152,7 @@ index 8e0e119b41ca1e49d7e3f7874c5fb3c2b434e737..8f9547083eb64a5ab93407725a8f4afc
|
||||
synchronized (this.lastSeenMessages) {
|
||||
Optional var10000;
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 80cb09f072735e59611476c9b4641f49bfef17f5..d7bf448b7665c8776ad28310c0bf2443811ffce3 100644
|
||||
index f0c66fce913af9433d53572a3dd3fc31d512346b..84914c3245de053ba07b105e44f9d838fa3efc4c 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -676,6 +676,7 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Virtual thread for chat executor
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 5cb1f2246a590d4420b73538e7c4a9f4083a11ab..385762df2014af0a643fb955d39871b818dde4ef 100644
|
||||
index a5e90f57ffd86f75f80629a6be97d4eb7c2a9190..993f303a90a7698f0e62b7c39469aa5bff0725d1 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -2665,7 +2665,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -2666,7 +2666,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
public final java.util.concurrent.ExecutorService chatExecutor = java.util.concurrent.Executors.newCachedThreadPool(
|
||||
|
||||
@@ -91,10 +91,10 @@ index a491be4250de3199c3e1aa9e5482b568692bd2f5..5db038df25a1b5bf2f7395464250dc0b
|
||||
|
||||
public record Favicon(byte[] iconBytes) {
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 69880a8d52f60ac3a5e5cf1ccf0654f26d456812..5af545d4ad93bcd2a9dce7035d750bb19da0f3b2 100644
|
||||
index 87fc8861948b50361ec04c5a23406d3abdec6eac..77f11179836636424927843f5f10c3fd23d2b2d4 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -616,6 +616,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -614,6 +614,7 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
|
||||
@Override
|
||||
public boolean enforceSecureProfile() {
|
||||
@@ -138,7 +138,7 @@ index 682dd82394ee6e9ad22d5592b2c6e41f5990644e..742ce07b527449f047bf162aadecdc2c
|
||||
if (packet == null || this.processedDisconnect) { // Spigot
|
||||
return;
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index d7bf448b7665c8776ad28310c0bf2443811ffce3..04d9501f5496f8557d289c04a818dfc0f91c0d2c 100644
|
||||
index 84914c3245de053ba07b105e44f9d838fa3efc4c..e4543611016a648314459144e43565300153f0fe 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -1534,7 +1534,7 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Don't save primed tnt entity
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/entity/item/PrimedTnt.java b/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
index 9a00aead39e194de076ee651d2f75b29673cad1e..36e3937c9e09852937c94c268c877a15337835c5 100644
|
||||
index ef070f8a9ab3a4676e2141f7c0bc20a000d0cc3a..1acfc005260628cc70ebf063acc92fb2904d7794 100644
|
||||
--- a/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
+++ b/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
@@ -281,4 +281,11 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
@@ -266,4 +266,11 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
return super.interact(player, hand);
|
||||
}
|
||||
// Purpur end - Shears can defuse TNT
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Configurable unknown command message
|
||||
|
||||
|
||||
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
|
||||
index db5318350988ad23f01a5a43d59090768a682fea..b30c69be528458792798724a1c6f7205785537bd 100644
|
||||
index a1f1e03a8ff5eb49ecfad5dda0dbd4bc35cd53df..cc1c2152c6949d1130b55de31ef22f15f717c7a5 100644
|
||||
--- a/net/minecraft/commands/Commands.java
|
||||
+++ b/net/minecraft/commands/Commands.java
|
||||
@@ -438,31 +438,8 @@ public class Commands {
|
||||
@@ -403,31 +403,8 @@ public class Commands {
|
||||
// Paper start - Add UnknownCommandEvent
|
||||
final net.kyori.adventure.text.TextComponent.Builder builder = net.kyori.adventure.text.Component.text();
|
||||
// source.sendFailure(ComponentUtils.fromMessage(var7.getRawMessage()));
|
||||
@@ -18,7 +18,7 @@ index db5318350988ad23f01a5a43d59090768a682fea..b30c69be528458792798724a1c6f7205
|
||||
- int min = Math.min(var7.getInput().length(), var7.getCursor());
|
||||
- MutableComponent mutableComponent = Component.empty()
|
||||
- .withStyle(ChatFormatting.GRAY)
|
||||
- .withStyle(style -> style.withClickEvent(new ClickEvent.SuggestCommand("/" + label))); // CraftBukkit // Paper
|
||||
- .withStyle(style -> style.withClickEvent(new ClickEvent.SuggestCommand("/" + command)));
|
||||
- if (min > 10) {
|
||||
- mutableComponent.append(CommonComponents.ELLIPSIS);
|
||||
- }
|
||||
@@ -37,22 +37,22 @@ index db5318350988ad23f01a5a43d59090768a682fea..b30c69be528458792798724a1c6f7205
|
||||
- .append(io.papermc.paper.adventure.PaperAdventure.asAdventure(mutableComponent));
|
||||
- }
|
||||
- org.bukkit.event.command.UnknownCommandEvent event = new org.bukkit.event.command.UnknownCommandEvent(source.getBukkitSender(), command, org.spigotmc.SpigotConfig.unknownCommandMessage.isEmpty() ? null : builder.build());
|
||||
+ org.bukkit.event.command.UnknownCommandEvent event = new org.bukkit.event.command.UnknownCommandEvent(source.getBukkitSender(), command, getUnknownCommandMessage(builder, var7, label)); // Leaf - Configurable unknown command message
|
||||
+ org.bukkit.event.command.UnknownCommandEvent event = new org.bukkit.event.command.UnknownCommandEvent(source.getBukkitSender(), command, getUnknownCommandMessage(builder, var7, command)); // Leaf - Configurable unknown command message
|
||||
org.bukkit.Bukkit.getServer().getPluginManager().callEvent(event);
|
||||
if (event.message() != null) {
|
||||
source.sendFailure(io.papermc.paper.adventure.PaperAdventure.asVanilla(event.message()), false);
|
||||
@@ -696,6 +673,92 @@ public class Commands {
|
||||
@@ -661,6 +638,92 @@ public class Commands {
|
||||
};
|
||||
}
|
||||
|
||||
+ // Leaf start - Configurable unknown command message
|
||||
+ private static net.kyori.adventure.text.Component getUnknownCommandMessage(
|
||||
+ net.kyori.adventure.text.TextComponent.Builder builder, CommandSyntaxException commandSyntaxException, String label
|
||||
+ net.kyori.adventure.text.TextComponent.Builder builder, CommandSyntaxException commandSyntaxException, String command
|
||||
+ ) {
|
||||
+ String rawMessage = org.dreeam.leaf.config.modules.misc.UnknownCommandMessage.unknownCommandMessage;
|
||||
+
|
||||
+ if ("default".equals(rawMessage)) {
|
||||
+ return getVanillaUnknownCommandMessage(builder, commandSyntaxException, label);
|
||||
+ return getVanillaUnknownCommandMessage(builder, commandSyntaxException, command);
|
||||
+ }
|
||||
+
|
||||
+ net.kyori.adventure.text.Component messageComponent = null;
|
||||
@@ -71,7 +71,7 @@ index db5318350988ad23f01a5a43d59090768a682fea..b30c69be528458792798724a1c6f7205
|
||||
+ final net.kyori.adventure.text.Component context = net.kyori.adventure.text.Component.translatable("command.context.here")
|
||||
+ .color(net.kyori.adventure.text.format.NamedTextColor.RED)
|
||||
+ .decorate(net.kyori.adventure.text.format.TextDecoration.ITALIC);
|
||||
+ final net.kyori.adventure.text.event.ClickEvent event = net.kyori.adventure.text.event.ClickEvent.suggestCommand("/" + label);
|
||||
+ final net.kyori.adventure.text.event.ClickEvent event = net.kyori.adventure.text.event.ClickEvent.suggestCommand("/" + command);
|
||||
+
|
||||
+ detail.color(net.kyori.adventure.text.format.NamedTextColor.GRAY);
|
||||
+
|
||||
@@ -100,7 +100,7 @@ index db5318350988ad23f01a5a43d59090768a682fea..b30c69be528458792798724a1c6f7205
|
||||
+ }
|
||||
+
|
||||
+ private static net.kyori.adventure.text.Component getVanillaUnknownCommandMessage(
|
||||
+ net.kyori.adventure.text.TextComponent.Builder builder, CommandSyntaxException var7, String label
|
||||
+ net.kyori.adventure.text.TextComponent.Builder builder, CommandSyntaxException var7, String command
|
||||
+ ) {
|
||||
+ builder.color(net.kyori.adventure.text.format.NamedTextColor.RED).append(io.papermc.paper.command.brigadier.MessageComponentSerializer.message().deserialize(var7.getRawMessage()));
|
||||
+
|
||||
@@ -108,7 +108,7 @@ index db5318350988ad23f01a5a43d59090768a682fea..b30c69be528458792798724a1c6f7205
|
||||
+ int min = Math.min(var7.getInput().length(), var7.getCursor());
|
||||
+ MutableComponent mutableComponent = Component.empty()
|
||||
+ .withStyle(ChatFormatting.GRAY)
|
||||
+ .withStyle(style -> style.withClickEvent(new ClickEvent.SuggestCommand("/" + label))); // CraftBukkit // Paper
|
||||
+ .withStyle(style -> style.withClickEvent(new ClickEvent.SuggestCommand("/" + command)));
|
||||
+ if (min > 10) {
|
||||
+ mutableComponent.append(CommonComponents.ELLIPSIS);
|
||||
+ }
|
||||
|
||||
@@ -46,10 +46,10 @@ index 1b8193587814225c2ef2c5d9e667436eb50ff6c5..4200d22606c6a3dbdf282792a4007a51
|
||||
{
|
||||
for (int i = 0; i < this.directByChunk.length; ++i) {
|
||||
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java b/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||
index f3bac0906d8a1c5dea7b0dee13c5cd6fdbbcae49..673703726979562e01eea6add6942c24fd09a205 100644
|
||||
index bdc1200ef5317fdaf58973bf580b0a672aee800f..0bca3843e8568b37cda6ae312bdf4f423a0891a9 100644
|
||||
--- a/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||
@@ -340,7 +340,7 @@ public final class RegionizedPlayerChunkLoader {
|
||||
@@ -344,7 +344,7 @@ public final class RegionizedPlayerChunkLoader {
|
||||
private boolean canGenerateChunks = true;
|
||||
|
||||
private final ArrayDeque<ChunkHolderManager.TicketOperation<?, ?>> delayedTicketOps = new ArrayDeque<>();
|
||||
@@ -631,29 +631,6 @@ index 24710041ccbc70e5506d8d89ae34f0141977f209..05de8a77b389691dd6986f36b4cb8cc0
|
||||
AttributeInstance attributeInstance = this.instances.get(attribute);
|
||||
if (attributeInstance == null) {
|
||||
return null;
|
||||
diff --git a/net/minecraft/world/entity/item/PrimedTnt.java b/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
index 2a7f5f1801d22ca7b06ff9701588451c7f406515..7e517e9ae59c5d32268fae1cade7febe8b2325dc 100644
|
||||
--- a/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
+++ b/net/minecraft/world/entity/item/PrimedTnt.java
|
||||
@@ -144,12 +144,14 @@ public class PrimedTnt extends Entity implements TraceableEntity {
|
||||
net.minecraft.network.protocol.game.ClientboundSetEntityMotionPacket velocityPacket = new net.minecraft.network.protocol.game.ClientboundSetEntityMotionPacket(this);
|
||||
net.minecraft.network.protocol.game.ClientboundTeleportEntityPacket positionPacket = net.minecraft.network.protocol.game.ClientboundTeleportEntityPacket.teleport(this.getId(), net.minecraft.world.entity.PositionMoveRotation.of(this), java.util.Set.of(), this.onGround);
|
||||
|
||||
- ete.seenBy.stream()
|
||||
- .filter(viewer -> (viewer.getPlayer().getX() - this.getX()) * (viewer.getPlayer().getY() - this.getY()) * (viewer.getPlayer().getZ() - this.getZ()) < 16 * 16)
|
||||
- .forEach(viewer -> {
|
||||
+ // Leaf start - Multithreaded tracker
|
||||
+ for (var viewer : ete.seenBy()) {
|
||||
+ if ((viewer.getPlayer().getX() - this.getX()) * (viewer.getPlayer().getY() - this.getY()) * (viewer.getPlayer().getZ() - this.getZ()) < 16 * 16) {
|
||||
viewer.send(velocityPacket);
|
||||
viewer.send(positionPacket);
|
||||
- });
|
||||
+ }
|
||||
+ }
|
||||
+ // Leaf end - Multithreaded tracker
|
||||
}
|
||||
}
|
||||
// Paper end - Option to prevent TNT from moving in water
|
||||
diff --git a/net/minecraft/world/entity/vehicle/NewMinecartBehavior.java b/net/minecraft/world/entity/vehicle/NewMinecartBehavior.java
|
||||
index 325ec57df2885f5e81b8a6b61e3a9fed9484b30f..abc5c097861d0decf49d0d3970ab48f1cf8b1cf1 100644
|
||||
--- a/net/minecraft/world/entity/vehicle/NewMinecartBehavior.java
|
||||
|
||||
@@ -8,7 +8,7 @@ avoids multiple casting in Entity#distanceTo, using Math#sqrt directly instead o
|
||||
these methods more able to be inlined by the JIT compiler.
|
||||
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 083d078f569aebbed1ab586ec99709e7c38e13b6..504aaa8fe43092442c3426c96d41dacb03371578 100644
|
||||
index 89f76c1f87719b84578ec322625eeadaa2397838..754fc507479f4b0bb4b270dfc18d45632d31cf46 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -2260,31 +2260,6 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -43,7 +43,7 @@ index 083d078f569aebbed1ab586ec99709e7c38e13b6..504aaa8fe43092442c3426c96d41dacb
|
||||
public void playerTouch(Player player) {
|
||||
}
|
||||
|
||||
@@ -5510,4 +5485,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -5515,4 +5490,34 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
return false;
|
||||
}
|
||||
// Purpur end - Ridables
|
||||
|
||||
@@ -7,10 +7,10 @@ Original license: AGPL-3.0
|
||||
Original project: https://github.com/snackbag/TT20
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 385762df2014af0a643fb955d39871b818dde4ef..b66bec748d87151eafe8a055c3b659477c042092 100644
|
||||
index 993f303a90a7698f0e62b7c39469aa5bff0725d1..65f19d6b9b2a3edb8f24eca988c9f3dae7c1d6df 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1541,6 +1541,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1542,6 +1542,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
|
||||
this.server.spark.tickStart(); // Paper - spark
|
||||
new com.destroystokyo.paper.event.server.ServerTickStartEvent(this.tickCount+1).callEvent(); // Paper - Server Tick Events
|
||||
|
||||
@@ -31,10 +31,10 @@ index 4200d22606c6a3dbdf282792a4007a51df66963b..4b258f048c73107d0d050a9aa4b4a397
|
||||
|
||||
public ReferenceList<ServerPlayer> getPlayersByChunk(final int chunkX, final int chunkZ, final NearbyMapType type) {
|
||||
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/ChunkHolderManager.java b/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/ChunkHolderManager.java
|
||||
index f473999938840562b1007a789600342e5796a123..ea4010df54dbd17cdae22d671ea1e4bd7b685b3e 100644
|
||||
index 6ce4a98e4d3b633e3c87944c23b6b3f0ff58f159..0f5966932c4211922eccac09ab164fcb69dad582 100644
|
||||
--- a/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/ChunkHolderManager.java
|
||||
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/ChunkHolderManager.java
|
||||
@@ -540,7 +540,7 @@ public final class ChunkHolderManager {
|
||||
@@ -542,7 +542,7 @@ public final class ChunkHolderManager {
|
||||
|
||||
public <T> boolean addTicketAtLevel(final TicketType type, final ChunkPos chunkPos, final int level,
|
||||
final T identifier) {
|
||||
@@ -43,7 +43,7 @@ index f473999938840562b1007a789600342e5796a123..ea4010df54dbd17cdae22d671ea1e4bd
|
||||
}
|
||||
|
||||
public <T> boolean addTicketAtLevel(final TicketType type, final int chunkX, final int chunkZ, final int level,
|
||||
@@ -687,7 +687,7 @@ public final class ChunkHolderManager {
|
||||
@@ -689,7 +689,7 @@ public final class ChunkHolderManager {
|
||||
}
|
||||
|
||||
public <T> boolean removeTicketAtLevel(final TicketType type, final ChunkPos chunkPos, final int level, final T identifier) {
|
||||
@@ -52,7 +52,7 @@ index f473999938840562b1007a789600342e5796a123..ea4010df54dbd17cdae22d671ea1e4bd
|
||||
}
|
||||
|
||||
public <T> boolean removeTicketAtLevel(final TicketType type, final int chunkX, final int chunkZ, final int level, final T identifier) {
|
||||
@@ -1309,7 +1309,7 @@ public final class ChunkHolderManager {
|
||||
@@ -1330,7 +1330,7 @@ public final class ChunkHolderManager {
|
||||
}
|
||||
|
||||
public static <T> TicketOperation<T, T> addOp(final ChunkPos chunk, final TicketType type, final int ticketLevel, final T identifier) {
|
||||
@@ -61,7 +61,7 @@ index f473999938840562b1007a789600342e5796a123..ea4010df54dbd17cdae22d671ea1e4bd
|
||||
}
|
||||
|
||||
public static <T> TicketOperation<T, T> addOp(final int chunkX, final int chunkZ, final TicketType type, final int ticketLevel, final T identifier) {
|
||||
@@ -1321,7 +1321,7 @@ public final class ChunkHolderManager {
|
||||
@@ -1342,7 +1342,7 @@ public final class ChunkHolderManager {
|
||||
}
|
||||
|
||||
public static <T> TicketOperation<T, T> removeOp(final ChunkPos chunk, final TicketType type, final int ticketLevel, final T identifier) {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Async chunk send
|
||||
|
||||
|
||||
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java b/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||
index 32608df3da169159c070f37cb55407f4f6187744..3a78e7512772fd3f7cf8f221e3a72474def14bea 100644
|
||||
index 0bca3843e8568b37cda6ae312bdf4f423a0891a9..71561ac77e32d7f971c343ad83a268c076ce668a 100644
|
||||
--- a/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||
@@ -436,7 +436,15 @@ public final class RegionizedPlayerChunkLoader {
|
||||
@@ -440,7 +440,15 @@ public final class RegionizedPlayerChunkLoader {
|
||||
// Note: drop isAlive() check so that chunks properly unload client-side when the player dies
|
||||
((ChunkSystemChunkHolder)((ChunkSystemServerLevel)this.world).moonrise$getChunkTaskScheduler().chunkHolderManager
|
||||
.getChunkHolder(chunkX, chunkZ).vanillaChunkHolder).moonrise$removeReceivedChunk(this.player);
|
||||
@@ -26,7 +26,7 @@ index 32608df3da169159c070f37cb55407f4f6187744..3a78e7512772fd3f7cf8f221e3a72474
|
||||
if (io.papermc.paper.event.packet.PlayerChunkUnloadEvent.getHandlerList().getRegisteredListeners().length > 0) {
|
||||
new io.papermc.paper.event.packet.PlayerChunkUnloadEvent(player.getBukkitEntity().getWorld().getChunkAt(new ChunkPos(chunkX, chunkZ).longKey), player.getBukkitEntity()).callEvent();
|
||||
diff --git a/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java b/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
|
||||
index 526c117e0d53ad527eb610c79cdc46ec16b18c0c..9151e580b4840fddab04e487d723130a5a769a1a 100644
|
||||
index 9f6d7c5dc0e591488a8a3763d8a1f1b3671d5299..6123afd9c27f1f9a954b173413e61bfb276b0f0a 100644
|
||||
--- a/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
|
||||
+++ b/net/minecraft/network/protocol/game/ClientboundLevelChunkPacketData.java
|
||||
@@ -75,6 +75,45 @@ public class ClientboundLevelChunkPacketData {
|
||||
@@ -98,7 +98,7 @@ index 8578d1f78ddd1bb75f3230f04bfaa35af9f5f822..4f54c4c8e49c1e0352ab2c5c23277b41
|
||||
private ClientboundLevelChunkWithLightPacket(RegistryFriendlyByteBuf buffer) {
|
||||
this.x = buffer.readInt();
|
||||
diff --git a/net/minecraft/server/network/PlayerChunkSender.java b/net/minecraft/server/network/PlayerChunkSender.java
|
||||
index 14878690a88fd4de3e2c127086607e6c819c636c..69581890ab34af20f9c608678f378ec9fe3ec775 100644
|
||||
index 0376a10ee0544b13e8fd629a7b13f78811e57a30..638d622992b8bee993c48c170bba8ab9f0f534e6 100644
|
||||
--- a/net/minecraft/server/network/PlayerChunkSender.java
|
||||
+++ b/net/minecraft/server/network/PlayerChunkSender.java
|
||||
@@ -64,13 +64,29 @@ public class PlayerChunkSender {
|
||||
|
||||
@@ -6,19 +6,19 @@ Subject: [PATCH] SparklyPaper: Parallel world ticking
|
||||
Original project: https://github.com/SparklyPower/SparklyPaper
|
||||
|
||||
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/ChunkHolderManager.java b/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/ChunkHolderManager.java
|
||||
index ea4010df54dbd17cdae22d671ea1e4bd7b685b3e..8d53cb917e9f623a67aba066c6a21f278f1f0967 100644
|
||||
index 0f5966932c4211922eccac09ab164fcb69dad582..36ce2be30478d734d8326eeeb004ba7dc61e0642 100644
|
||||
--- a/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/ChunkHolderManager.java
|
||||
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/scheduling/ChunkHolderManager.java
|
||||
@@ -1116,7 +1116,7 @@ public final class ChunkHolderManager {
|
||||
@@ -1142,7 +1142,7 @@ public final class ChunkHolderManager {
|
||||
if (changedFullStatus.isEmpty()) {
|
||||
return;
|
||||
}
|
||||
- if (!TickThread.isTickThread()) {
|
||||
+ if (org.dreeam.leaf.config.modules.async.SparklyPaperParallelWorldTicking.enabled && !TickThread.isTickThreadFor(world) || !TickThread.isTickThread()) { // SparklyPaper - parallel world ticking // Leaf - SparklyPaper - parallel world ticking mod (make configurable)
|
||||
this.taskScheduler.scheduleChunkTask(() -> {
|
||||
final ArrayDeque<NewChunkHolder> pendingFullLoadUpdate = ChunkHolderManager.this.pendingFullLoadUpdate;
|
||||
for (int i = 0, len = changedFullStatus.size(); i < len; ++i) {
|
||||
@@ -1142,7 +1142,12 @@ public final class ChunkHolderManager {
|
||||
// These will be handled on the next ServerChunkCache$MainThreadExecutor#pollTask, as it runs the distance manager update
|
||||
// which will invoke processTicketUpdates
|
||||
this.offThreadPendingFullLoadUpdate.addAll(changedFullStatus);
|
||||
@@ -1163,7 +1163,12 @@ public final class ChunkHolderManager {
|
||||
|
||||
// note: never call while inside the chunk system, this will absolutely break everything
|
||||
public void processUnloads() {
|
||||
@@ -32,15 +32,15 @@ index ea4010df54dbd17cdae22d671ea1e4bd7b685b3e..8d53cb917e9f623a67aba066c6a21f27
|
||||
|
||||
if (BLOCK_TICKET_UPDATES.get() == Boolean.TRUE) {
|
||||
throw new IllegalStateException("Cannot unload chunks recursively");
|
||||
@@ -1424,7 +1429,7 @@ public final class ChunkHolderManager {
|
||||
|
||||
List<NewChunkHolder> changedFullStatus = null;
|
||||
|
||||
@@ -1429,7 +1434,7 @@ public final class ChunkHolderManager {
|
||||
if (BLOCK_TICKET_UPDATES.get() == Boolean.TRUE) {
|
||||
throw new IllegalStateException("Cannot update ticket level while unloading chunks or updating entity manager");
|
||||
}
|
||||
- final boolean isTickThread = TickThread.isTickThread();
|
||||
+ final boolean isTickThread = org.dreeam.leaf.config.modules.async.SparklyPaperParallelWorldTicking.enabled && TickThread.isTickThreadFor(world) || TickThread.isTickThread(); // SparklyPaper - parallel world ticking // Leaf - SparklyPaper - parallel world ticking mod (make configurable)
|
||||
|
||||
boolean ret = false;
|
||||
final boolean canProcessFullUpdates = processFullUpdates & isTickThread;
|
||||
if (!PlatformHooks.get().allowAsyncTicketUpdates() && isTickThread) {
|
||||
TickThread.ensureTickThread("Cannot asynchronously process ticket updates");
|
||||
diff --git a/io/papermc/paper/redstone/RedstoneWireTurbo.java b/io/papermc/paper/redstone/RedstoneWireTurbo.java
|
||||
index ff747a1ecdf3c888bca0d69de4f85dcd810b6139..b288d57d9f7bd0ccf1877cf9920bd67288ff22f7 100644
|
||||
--- a/io/papermc/paper/redstone/RedstoneWireTurbo.java
|
||||
@@ -80,7 +80,7 @@ index 582e012222123e5001c34153f2ee1ab1d08935fd..c0bce2293d07ca58cc5bc9e036ab8dca
|
||||
List<org.bukkit.block.BlockState> states = new java.util.ArrayList<>(level.capturedBlockStates.values());
|
||||
level.capturedBlockStates.clear();
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index b66bec748d87151eafe8a055c3b659477c042092..212fe44eee637695555af510ea7c6800a52e6842 100644
|
||||
index 65f19d6b9b2a3edb8f24eca988c9f3dae7c1d6df..940aad1282c48dfeaa906d1c9abfc269fbe05bd7 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -291,6 +291,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -141,7 +141,7 @@ index b66bec748d87151eafe8a055c3b659477c042092..212fe44eee637695555af510ea7c6800
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -917,6 +930,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -918,6 +931,12 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
serverLevel.save(null, flush, serverLevel.noSave && !forced, close); // Paper - add close param
|
||||
@@ -154,7 +154,7 @@ index b66bec748d87151eafe8a055c3b659477c042092..212fe44eee637695555af510ea7c6800
|
||||
flag = true;
|
||||
}
|
||||
|
||||
@@ -1662,6 +1681,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1663,6 +1682,18 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
}
|
||||
|
||||
@@ -173,7 +173,7 @@ index b66bec748d87151eafe8a055c3b659477c042092..212fe44eee637695555af510ea7c6800
|
||||
protected void tickChildren(BooleanSupplier hasTimeLeft) {
|
||||
this.getPlayerList().getPlayers().forEach(serverPlayer1 -> serverPlayer1.connection.suspendFlushing());
|
||||
this.server.getScheduler().mainThreadHeartbeat(); // CraftBukkit
|
||||
@@ -1728,28 +1759,50 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1729,28 +1760,50 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
this.isIteratingOverLevels = true; // Paper - Throw exception on world create while being ticked
|
||||
@@ -242,7 +242,7 @@ index b66bec748d87151eafe8a055c3b659477c042092..212fe44eee637695555af510ea7c6800
|
||||
this.isIteratingOverLevels = false; // Paper - Throw exception on world create while being ticked
|
||||
|
||||
this.tickConnection();
|
||||
@@ -1829,6 +1882,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1830,6 +1883,8 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
Map<ResourceKey<Level>, ServerLevel> oldLevels = this.levels;
|
||||
Map<ResourceKey<Level>, ServerLevel> newLevels = Maps.newLinkedHashMap(oldLevels);
|
||||
newLevels.remove(level.dimension());
|
||||
@@ -379,7 +379,7 @@ index 4bf87ebb49880b8e09203a48fce6371398281561..27bbe0c43dd9b7f8bf932a6b4825ce2c
|
||||
} else if (this.visible.remove(advancementHolder)) {
|
||||
idOutput.add(advancementHolder.id());
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 5af545d4ad93bcd2a9dce7035d750bb19da0f3b2..50630dabe4220b8ac810a0395d70360879fdeabc 100644
|
||||
index 77f11179836636424927843f5f10c3fd23d2b2d4..9b8d119116b0c3a51d3fe2ff7efb33cc39627cc4 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -198,6 +198,12 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -396,7 +396,7 @@ index 5af545d4ad93bcd2a9dce7035d750bb19da0f3b2..50630dabe4220b8ac810a0395d703608
|
||||
|
||||
// Gale start - Pufferfish - SIMD support
|
||||
diff --git a/net/minecraft/server/level/ServerChunkCache.java b/net/minecraft/server/level/ServerChunkCache.java
|
||||
index eaaa66c4d86d4ebda0acf8f1dbe8ecb55aa28285..12cf6dc9bac109a4feeeeede5f3762b20ea582bb 100644
|
||||
index 8f41326fda8c5f9f6926038508be6c6529b051bc..46e171ca454253c32e22c0c18587e9a7ba19f331 100644
|
||||
--- a/net/minecraft/server/level/ServerChunkCache.java
|
||||
+++ b/net/minecraft/server/level/ServerChunkCache.java
|
||||
@@ -175,7 +175,7 @@ public class ServerChunkCache extends ChunkSource implements ca.spottedleaf.moon
|
||||
@@ -731,7 +731,7 @@ index 3cd9b0df617715d0b3e70a6096e52bb5d22ab426..f1002643589f67adce26667b1750a129
|
||||
serverPlayer.connection = player.connection;
|
||||
serverPlayer.restoreFrom(player, keepInventory);
|
||||
diff --git a/net/minecraft/world/entity/Entity.java b/net/minecraft/world/entity/Entity.java
|
||||
index 2e5d4b8fc6a0ec6692eac63bce13b3f32d3f3e76..0e0d87f2c45ac485af326adfec5a1779f06c6d6c 100644
|
||||
index 8d7e7dc019ff40f60006f3b2677c29251d7cecc5..71b4d54814c815bc9e8fc6be820260180d0aa208 100644
|
||||
--- a/net/minecraft/world/entity/Entity.java
|
||||
+++ b/net/minecraft/world/entity/Entity.java
|
||||
@@ -3510,15 +3510,40 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
|
||||
@@ -972,7 +972,7 @@ index 2258736e6f9f52efe5bd353b8949a7a0b9a4fdb8..aa71eca6cd69cfa79b84cb181c25c4be
|
||||
} else {
|
||||
Entity entity = owner.teleport(
|
||||
diff --git a/net/minecraft/world/inventory/AbstractContainerMenu.java b/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
index c4721eb0efe34f5e313bc890b4e960144eca4fe1..9dd3187fd968ab95e9d55b4c8cc74e782cc0f241 100644
|
||||
index 1f601781643945920c7522b9c6100d0a37ad535d..f32148322f56f766108c6958124731a885c3bbc7 100644
|
||||
--- a/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
+++ b/net/minecraft/world/inventory/AbstractContainerMenu.java
|
||||
@@ -96,8 +96,14 @@ public abstract class AbstractContainerMenu {
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] SparklyPaper: Track each world MSPT
|
||||
Original project: https://github.com/SparklyPower/SparklyPaper
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 212fe44eee637695555af510ea7c6800a52e6842..eb3f6e638147c46e0cdb04d9c4bd08b11cff7347 100644
|
||||
index 940aad1282c48dfeaa906d1c9abfc269fbe05bd7..50da03adea9b496ef3622ee163daf169fd045c2d 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1684,7 +1684,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1685,7 +1685,16 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
// Leaf start - SparklyPaper - parallel world ticking mod (move level ticking logic out for branch convergence)
|
||||
private void tickLevel(ServerLevel serverLevel, BooleanSupplier hasTimeLeft) {
|
||||
try {
|
||||
|
||||
@@ -106,7 +106,7 @@ index fee4a7452178c274eb835d758b718d8e874d79d0..9a2539e1fe2cee30066634ef47a991fa
|
||||
final EntityCollectionBySection byType = this.entitiesByType.get(entity.getType());
|
||||
byType.removeEntity(entity, sectionIndex);
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index eb3f6e638147c46e0cdb04d9c4bd08b11cff7347..2d327688bf48cf2477f60dd2573fa5136a077427 100644
|
||||
index 50da03adea9b496ef3622ee163daf169fd045c2d..440427d23747474a400487d372d079694caa1c18 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -292,6 +292,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -118,7 +118,7 @@ index eb3f6e638147c46e0cdb04d9c4bd08b11cff7347..2d327688bf48cf2477f60dd2573fa513
|
||||
public static <S extends MinecraftServer> S spin(Function<Thread, S> threadFunction) {
|
||||
ca.spottedleaf.dataconverter.minecraft.datatypes.MCTypeRegistry.init(); // Paper - rewrite data converter system
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 50630dabe4220b8ac810a0395d70360879fdeabc..2e03020a67c7f59a3c554ab720fba831ed13ec82 100644
|
||||
index 9b8d119116b0c3a51d3fe2ff7efb33cc39627cc4..436e73086678e4afbf94f1b7bca9b0c74266f762 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -204,6 +204,11 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -1002,7 +1002,7 @@ index 6463c3c9b08d6058f2843c225b08a40fc30a960b..126bd98bc5980a2f1177bd7c74918b86
|
||||
@Override
|
||||
public boolean canContinueToUse() {
|
||||
diff --git a/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java b/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java
|
||||
index f15da598cb1d7872fafb8b173e5134b9667c9a9f..13b7129774a098c66990266e03877302f5cea0fe 100644
|
||||
index f15da598cb1d7872fafb8b173e5134b9667c9a9f..d84b7b797e526670ddbabecc3ff773e589489f7e 100644
|
||||
--- a/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java
|
||||
+++ b/net/minecraft/world/entity/ai/goal/MoveToBlockGoal.java
|
||||
@@ -41,14 +41,73 @@ public abstract class MoveToBlockGoal extends Goal {
|
||||
@@ -1013,7 +1013,7 @@ index f15da598cb1d7872fafb8b173e5134b9667c9a9f..13b7129774a098c66990266e03877302
|
||||
+ protected boolean poll() {
|
||||
+ if (!(this.mob.getGoalCtx().result() instanceof BlockPos blockPos1)) return false;
|
||||
+ if (!this.mob.level().hasChunkAt(blockPos1)
|
||||
+ || !this.mob.isWithinRestriction(blockPos1)
|
||||
+ || !this.mob.isWithinHome(blockPos1)
|
||||
+ || !this.isValidTarget(this.mob.level(), blockPos1)) {
|
||||
+ return false;
|
||||
+ }
|
||||
@@ -1043,9 +1043,9 @@ index f15da598cb1d7872fafb8b173e5134b9667c9a9f..13b7129774a098c66990266e03877302
|
||||
+ final int searchRange = this.searchRange;
|
||||
+ final int verticalSearchRange = this.verticalSearchRange;
|
||||
+ final BlockPos blockPos = mob.blockPosition();
|
||||
+ final float restrictRadius = mob.getRestrictRadius();
|
||||
+ final BlockPos restrictCenter = mob.getRestrictCenter();
|
||||
+ ctx.wake = () -> findNearestBlockAsync(ty, toRemove, mob, serverLevel, verticalSearchStart, searchRange, verticalSearchRange, blockPos, restrictRadius, restrictCenter);
|
||||
+ final float homeRadius = mob.getHomeRadius();
|
||||
+ final BlockPos homePos = mob.getHomePosition();
|
||||
+ ctx.wake = () -> findNearestBlockAsync(ty, toRemove, mob, serverLevel, verticalSearchStart, searchRange, verticalSearchRange, blockPos, homeRadius, homePos);
|
||||
+ return false;
|
||||
+ }
|
||||
+
|
||||
@@ -1094,8 +1094,8 @@ index f15da598cb1d7872fafb8b173e5134b9667c9a9f..13b7129774a098c66990266e03877302
|
||||
+ final int searchRange,
|
||||
+ final int verticalSearchRange,
|
||||
+ final BlockPos blockPos,
|
||||
+ final float restrictRadius,
|
||||
+ final BlockPos restrictCenter
|
||||
+ final float homeRadius,
|
||||
+ final BlockPos homePos
|
||||
+ ) {
|
||||
+ BlockPos.MutableBlockPos mutableBlockPos = new BlockPos.MutableBlockPos();
|
||||
+ for (int i2 = verticalSearchStart; i2 <= verticalSearchRange; i2 = i2 > 0 ? -i2 : 1 - i2) {
|
||||
@@ -1104,7 +1104,7 @@ index f15da598cb1d7872fafb8b173e5134b9667c9a9f..13b7129774a098c66990266e03877302
|
||||
+ for (int i5 = i4 < i3 && i4 > -i3 ? i3 : 0; i5 <= i3; i5 = i5 > 0 ? -i5 : 1 - i5) {
|
||||
+ mutableBlockPos.setWithOffset(blockPos, i4, i2 - 1, i5);
|
||||
+ if (!serverLevel.hasChunkAt(mutableBlockPos)) continue;
|
||||
+ if (isWithinRestriction(restrictRadius, restrictCenter, mutableBlockPos)
|
||||
+ if (isWithinHome(homeRadius, homePos, mutableBlockPos)
|
||||
+ && isValidTargetAsync(ty, toRemove, mob, serverLevel, mutableBlockPos)) {
|
||||
+ return mutableBlockPos.immutable();
|
||||
+ }
|
||||
@@ -1115,8 +1115,8 @@ index f15da598cb1d7872fafb8b173e5134b9667c9a9f..13b7129774a098c66990266e03877302
|
||||
+ return null;
|
||||
+ }
|
||||
+
|
||||
+ private static boolean isWithinRestriction(float restrictRadius, BlockPos restrictCenter, BlockPos pos) {
|
||||
+ return restrictRadius == -1.0F || restrictCenter.distSqr(pos) < restrictRadius * restrictRadius;
|
||||
+ private static boolean isWithinHome(float homeRadius, BlockPos homePos, BlockPos pos) {
|
||||
+ return homeRadius == -1.0F || homePos.distSqr(pos) < homeRadius * homeRadius;
|
||||
+ }
|
||||
+ // Leaf end - Async target finding
|
||||
+
|
||||
|
||||
@@ -15,19 +15,19 @@ The delay is currently set to 2 seconds, however, we may want to adjust this bef
|
||||
fixes Paper#9581
|
||||
|
||||
diff --git a/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java b/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||
index 5b778b8366d99a8b03b4367d44ffabade2b58ebe..ef416d38f3ca57826c46e7401804630e46771146 100644
|
||||
index 71561ac77e32d7f971c343ad83a268c076ce668a..380aaa64a3e35e8b47165859e5107cbee333dc24 100644
|
||||
--- a/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||
+++ b/ca/spottedleaf/moonrise/patches/chunk_system/player/RegionizedPlayerChunkLoader.java
|
||||
@@ -48,6 +48,7 @@ public final class RegionizedPlayerChunkLoader {
|
||||
|
||||
public static final TicketType PLAYER_TICKET = ChunkSystemTicketType.create("chunk_system:player_ticket", Long::compareTo);
|
||||
public static final TicketType PLAYER_TICKET_DELAYED = ChunkSystemTicketType.create("chunk_system:player_ticket_delayed", Long::compareTo, 5L * 20L);
|
||||
public static final TicketType PLAYER_TICKET_DELAYED = ChunkSystemTicketType.create("chunk_system:player_ticket_delayed", Long::compareTo, 1L);
|
||||
+ public static final TicketType PLAYER_JOIN = ChunkSystemTicketType.create("chunk_system:player_join", (a, b) -> 0, 5 * 20); // Paper - Add ticket on player join to avoid chunk load-unload-load cycle
|
||||
|
||||
public static final int GENERATED_TICKET_LEVEL = ChunkHolderManager.FULL_LOADED_TICKET_LEVEL;
|
||||
public static final int LOADED_TICKET_LEVEL = ChunkTaskScheduler.getTicketLevel(ChunkStatus.EMPTY);
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index 42822499ad559bce6734a16056d6e04cef318569..cea9507d183920c3a7f5e96f7dafebe4c9e33a19 100644
|
||||
index f1002643589f67adce26667b1750a1296c1fb67d..1a03bf5184b1b85d4cea97dc73795e8725bf2613 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -435,6 +435,13 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -22,10 +22,10 @@ index 56fd1ed7ccaf96e7eedea60fbdbf7f934939d563..d2f522ea6d0a209496848af073c9af1c
|
||||
}
|
||||
|
||||
diff --git a/net/minecraft/server/MinecraftServer.java b/net/minecraft/server/MinecraftServer.java
|
||||
index 2d327688bf48cf2477f60dd2573fa5136a077427..e7cf3a1d5a8954ce7e1dd181deb5d0ba562a8eb1 100644
|
||||
index 440427d23747474a400487d372d079694caa1c18..7be848b2058bddc13a20b44a1853f4aec0eb4769 100644
|
||||
--- a/net/minecraft/server/MinecraftServer.java
|
||||
+++ b/net/minecraft/server/MinecraftServer.java
|
||||
@@ -1822,6 +1822,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
@@ -1823,6 +1823,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||
}
|
||||
|
||||
org.leavesmc.leaves.protocol.core.LeavesProtocolManager.handleTick(tickCount); // Leaves - protocol
|
||||
@@ -34,7 +34,7 @@ index 2d327688bf48cf2477f60dd2573fa5136a077427..e7cf3a1d5a8954ce7e1dd181deb5d0ba
|
||||
for (int i = 0; i < this.tickables.size(); i++) {
|
||||
this.tickables.get(i).run();
|
||||
diff --git a/net/minecraft/server/level/ServerPlayer.java b/net/minecraft/server/level/ServerPlayer.java
|
||||
index f1d9fdda9a1d6c0374585fc60ad9354af36efa13..aef01105b827cc5959cc0d6611baf85bee311e5b 100644
|
||||
index e5d302609638cbe29d7f379abab612650f9ff010..e1695c06fe9a2ca8ad9050993c36201b36af6649 100644
|
||||
--- a/net/minecraft/server/level/ServerPlayer.java
|
||||
+++ b/net/minecraft/server/level/ServerPlayer.java
|
||||
@@ -810,6 +810,7 @@ public class ServerPlayer extends Player implements ca.spottedleaf.moonrise.patc
|
||||
@@ -59,7 +59,7 @@ index 742ce07b527449f047bf162aadecdc2c4da9b3ba..87121e0366c6c1ca58bbc7cf09b94ae9
|
||||
final byte[] data = discardedPayload.data();
|
||||
try {
|
||||
diff --git a/net/minecraft/server/players/PlayerList.java b/net/minecraft/server/players/PlayerList.java
|
||||
index cea9507d183920c3a7f5e96f7dafebe4c9e33a19..1edb1904113aae08b8ab85e19d51429d0f02cd49 100644
|
||||
index 1a03bf5184b1b85d4cea97dc73795e8725bf2613..58e1b90132898e30aa15ed08c76b53165473999a 100644
|
||||
--- a/net/minecraft/server/players/PlayerList.java
|
||||
+++ b/net/minecraft/server/players/PlayerList.java
|
||||
@@ -690,6 +690,7 @@ public abstract class PlayerList {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Optimize getScaledTrackingDistance
|
||||
|
||||
|
||||
diff --git a/net/minecraft/server/dedicated/DedicatedServer.java b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
index 2e03020a67c7f59a3c554ab720fba831ed13ec82..d0429f38e3074560cb698b91b0d76967d1c2da20 100644
|
||||
index 436e73086678e4afbf94f1b7bca9b0c74266f762..168fc4fea371dfe9ea1ffca3c9f290ba3547f0b9 100644
|
||||
--- a/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
+++ b/net/minecraft/server/dedicated/DedicatedServer.java
|
||||
@@ -786,7 +786,13 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
@@ -783,7 +783,13 @@ public class DedicatedServer extends MinecraftServer implements ServerInterface
|
||||
|
||||
@Override
|
||||
public int getScaledTrackingDistance(int trackingDistance) {
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Add BlockExplosionHitEvent
|
||||
|
||||
|
||||
diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java
|
||||
index 6c02b986e328ead2040666d619fdb5d397d9b686..a4460f98830eba9cbd695b52f98d07fe0631a4a5 100644
|
||||
index 1669c21534a453c9cf16b992df7a6bf276dea887..1039cf820ecac54e290dc5dfe7f714bf2b9d2bdd 100644
|
||||
--- a/net/minecraft/world/level/ServerExplosion.java
|
||||
+++ b/net/minecraft/world/level/ServerExplosion.java
|
||||
@@ -612,9 +612,13 @@ public class ServerExplosion implements Explosion {
|
||||
@@ -615,9 +615,13 @@ public class ServerExplosion implements Explosion {
|
||||
}
|
||||
// CraftBukkit end
|
||||
|
||||
|
||||
@@ -17,10 +17,10 @@ index dbf31389f0e9796c80afbffddf6a20cbaf184e6e..f1b456bf96e4764fd202f5575bbfa586
|
||||
public static final StringRepresentable.EnumCodec<EquipmentSlot> CODEC = StringRepresentable.fromEnum(() -> VALUES_ARRAY);
|
||||
// Gale end - JettPack - reduce array allocations
|
||||
diff --git a/net/minecraft/world/level/ServerExplosion.java b/net/minecraft/world/level/ServerExplosion.java
|
||||
index a4460f98830eba9cbd695b52f98d07fe0631a4a5..9b2f0af96085f52ab8e31bdc1de1ae7435c2128d 100644
|
||||
index 1039cf820ecac54e290dc5dfe7f714bf2b9d2bdd..7426a7f4bf17277b0355185b58973140dab3c7b9 100644
|
||||
--- a/net/minecraft/world/level/ServerExplosion.java
|
||||
+++ b/net/minecraft/world/level/ServerExplosion.java
|
||||
@@ -529,7 +529,7 @@ public class ServerExplosion implements Explosion {
|
||||
@@ -532,7 +532,7 @@ public class ServerExplosion implements Explosion {
|
||||
double d4 = (1.0 - d) * f1 * knockbackMultiplier;
|
||||
double d5;
|
||||
if (entity instanceof LivingEntity livingEntity) {
|
||||
@@ -29,7 +29,7 @@ index a4460f98830eba9cbd695b52f98d07fe0631a4a5..9b2f0af96085f52ab8e31bdc1de1ae74
|
||||
} else {
|
||||
d5 = d4;
|
||||
}
|
||||
@@ -558,6 +558,49 @@ public class ServerExplosion implements Explosion {
|
||||
@@ -561,6 +561,49 @@ public class ServerExplosion implements Explosion {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Fix crash during parsing unknown command message
|
||||
Use direct impl for unknown commands message parse to prevent crash
|
||||
|
||||
diff --git a/net/minecraft/commands/Commands.java b/net/minecraft/commands/Commands.java
|
||||
index b30c69be528458792798724a1c6f7205785537bd..a6cd207eb10c7fd166fafb52d310c15e4019a981 100644
|
||||
index cc1c2152c6949d1130b55de31ef22f15f717c7a5..eed14e622b6a34ec55d9a6ce2efc2a2d149e650c 100644
|
||||
--- a/net/minecraft/commands/Commands.java
|
||||
+++ b/net/minecraft/commands/Commands.java
|
||||
@@ -687,7 +687,7 @@ public class Commands {
|
||||
@@ -652,7 +652,7 @@ public class Commands {
|
||||
net.kyori.adventure.text.Component detailComponent = null;
|
||||
|
||||
if (rawMessage.contains("<message>")) {
|
||||
@@ -18,9 +18,9 @@ index b30c69be528458792798724a1c6f7205785537bd..a6cd207eb10c7fd166fafb52d310c15e
|
||||
}
|
||||
|
||||
final String input = commandSyntaxException.getInput();
|
||||
@@ -730,7 +730,7 @@ public class Commands {
|
||||
@@ -695,7 +695,7 @@ public class Commands {
|
||||
private static net.kyori.adventure.text.Component getVanillaUnknownCommandMessage(
|
||||
net.kyori.adventure.text.TextComponent.Builder builder, CommandSyntaxException var7, String label
|
||||
net.kyori.adventure.text.TextComponent.Builder builder, CommandSyntaxException var7, String command
|
||||
) {
|
||||
- builder.color(net.kyori.adventure.text.format.NamedTextColor.RED).append(io.papermc.paper.command.brigadier.MessageComponentSerializer.message().deserialize(var7.getRawMessage()));
|
||||
+ builder.color(net.kyori.adventure.text.format.NamedTextColor.RED).append(io.papermc.paper.adventure.PaperAdventure.asAdventure(ComponentUtils.fromMessage(var7.getRawMessage()))); // Leaf - Fix crash during parsing unknown command message
|
||||
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] do not log invalid flatten text component parse
|
||||
|
||||
|
||||
diff --git a/ca/spottedleaf/dataconverter/minecraft/versions/V4290.java b/ca/spottedleaf/dataconverter/minecraft/versions/V4290.java
|
||||
index ca9e3667b420f54f42b358068c102fe0cae4102d..88901f4783a85cc764bb2db20aed69f96b2bc8c3 100644
|
||||
index d5dfa9a64e2d3f9a37a5bdde60b92ed93bd89aed..83155bf0befab0207a4b756b19527d071037a870 100644
|
||||
--- a/ca/spottedleaf/dataconverter/minecraft/versions/V4290.java
|
||||
+++ b/ca/spottedleaf/dataconverter/minecraft/versions/V4290.java
|
||||
@@ -189,7 +189,7 @@ public final class V4290 {
|
||||
@@ -254,7 +254,7 @@ public final class V4290 {
|
||||
return ret;
|
||||
}
|
||||
} catch (final JsonParseException ex) {
|
||||
|
||||
@@ -144,10 +144,10 @@ index 05339a176083af667c16f77d76dc1878dafce3f0..9ca55cba185b9de566f911b08d671bee
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 1da86b25e3b89c79d4f3920c8d2ef10ee2757f65..c92adb939892e1054f7b2d24070f43e6104dda2b 100644
|
||||
index 03dfcb4665d0279c825a74f3f999c92fe2bd22cb..bcdd1581ed564e8002f8120ab2efa38871c40ba7 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -1073,6 +1073,7 @@ public final class CraftServer implements Server {
|
||||
@@ -1045,6 +1045,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);
|
||||
@@ -155,7 +155,7 @@ index 1da86b25e3b89c79d4f3920c8d2ef10ee2757f65..c92adb939892e1054f7b2d24070f43e6
|
||||
for (ServerLevel world : this.console.getAllLevels()) {
|
||||
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
||||
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
||||
@@ -2967,6 +2968,14 @@ public final class CraftServer implements Server {
|
||||
@@ -2944,6 +2945,14 @@ public final class CraftServer implements Server {
|
||||
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
||||
}
|
||||
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Purpur Server Paper Changes
|
||||
Original license: MIT
|
||||
Original project: https://github.com/PurpurMC/Purpur
|
||||
|
||||
Commit: 469a4de5ce87dcf6461e067d29a88507231f4a6b
|
||||
Commit: afcdf9bb72f88eb18266f5efd8c135904d82fd3d
|
||||
|
||||
Patches listed below are removed in this patch, They exists in Gale or Leaf:
|
||||
* "Rebrand.patch"
|
||||
@@ -127,7 +127,7 @@ index 0000000000000000000000000000000000000000..15a226e3854d731f7724025ea3459c8a
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
||||
index 9e32cbb2664f9e162b384050ea7f166702ba0029..0976a7289d424a81ca73c1e89f339431ec1b26ff 100644
|
||||
index 94bf04bb1c646ec5ba1d42f4b7b3e6c200707beb..3e41a308cf92b841b5375250d1380d16af3d0309 100644
|
||||
--- a/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
||||
+++ b/src/main/java/com/destroystokyo/paper/entity/ai/MobGoalHelper.java
|
||||
@@ -142,6 +142,10 @@ public class MobGoalHelper {
|
||||
@@ -486,10 +486,10 @@ index 54ab8a0b502a2665027f293e6ddebf6c0a2af215..f967560da343867fdc1c380a42874b07
|
||||
+ // Purpur end - OfflinePlayer API
|
||||
}
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index c92adb939892e1054f7b2d24070f43e6104dda2b..23bd30ad769507e3eeb4e397e57a2c0ac01f8b7a 100644
|
||||
index bcdd1581ed564e8002f8120ab2efa38871c40ba7..b66a7e4da7fd3fe22fef65a201705dcfe876f88e 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -429,6 +429,20 @@ public final class CraftServer implements Server {
|
||||
@@ -428,6 +428,20 @@ public final class CraftServer implements Server {
|
||||
this.paperPluginManager = new io.papermc.paper.plugin.manager.PaperPluginManagerImpl(this, this.commandMap, pluginManager);
|
||||
this.pluginManager.paperPluginManager = this.paperPluginManager;
|
||||
// Paper end
|
||||
@@ -510,7 +510,7 @@ index c92adb939892e1054f7b2d24070f43e6104dda2b..23bd30ad769507e3eeb4e397e57a2c0a
|
||||
|
||||
CraftRegistry.setMinecraftRegistry(console.registryAccess());
|
||||
|
||||
@@ -1074,6 +1088,7 @@ public final class CraftServer implements Server {
|
||||
@@ -1046,6 +1060,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);
|
||||
this.console.galeConfigurations.reloadConfigs(this.console); // Gale - Gale configuration
|
||||
@@ -518,7 +518,7 @@ index c92adb939892e1054f7b2d24070f43e6104dda2b..23bd30ad769507e3eeb4e397e57a2c0a
|
||||
for (ServerLevel world : this.console.getAllLevels()) {
|
||||
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
||||
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
||||
@@ -1089,6 +1104,7 @@ public final class CraftServer implements Server {
|
||||
@@ -1061,6 +1076,7 @@ public final class CraftServer implements Server {
|
||||
}
|
||||
}
|
||||
world.spigotConfig.init(); // Spigot
|
||||
@@ -526,7 +526,7 @@ index c92adb939892e1054f7b2d24070f43e6104dda2b..23bd30ad769507e3eeb4e397e57a2c0a
|
||||
}
|
||||
|
||||
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
||||
@@ -1106,6 +1122,7 @@ public final class CraftServer implements Server {
|
||||
@@ -1078,6 +1094,7 @@ public final class CraftServer implements Server {
|
||||
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
||||
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
||||
this.spark.registerCommandBeforePlugins(this); // Paper - spark
|
||||
@@ -534,7 +534,7 @@ index c92adb939892e1054f7b2d24070f43e6104dda2b..23bd30ad769507e3eeb4e397e57a2c0a
|
||||
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||
|
||||
@@ -1605,6 +1622,60 @@ public final class CraftServer implements Server {
|
||||
@@ -1577,6 +1594,60 @@ public final class CraftServer implements Server {
|
||||
return true;
|
||||
}
|
||||
|
||||
@@ -595,7 +595,7 @@ index c92adb939892e1054f7b2d24070f43e6104dda2b..23bd30ad769507e3eeb4e397e57a2c0a
|
||||
@Override
|
||||
public List<Recipe> getRecipesFor(ItemStack result) {
|
||||
Preconditions.checkArgument(result != null, "ItemStack cannot be null");
|
||||
@@ -2976,6 +3047,18 @@ public final class CraftServer implements Server {
|
||||
@@ -2953,6 +3024,18 @@ public final class CraftServer implements Server {
|
||||
}
|
||||
// Gale end - Gale configuration - API
|
||||
|
||||
@@ -614,7 +614,7 @@ index c92adb939892e1054f7b2d24070f43e6104dda2b..23bd30ad769507e3eeb4e397e57a2c0a
|
||||
@Override
|
||||
public void restart() {
|
||||
CraftServer.this.restart();
|
||||
@@ -3215,4 +3298,18 @@ public final class CraftServer implements Server {
|
||||
@@ -3192,4 +3275,18 @@ public final class CraftServer implements Server {
|
||||
public void allowPausing(final Plugin plugin, final boolean value) {
|
||||
this.console.addPluginAllowingSleep(plugin.getName(), value);
|
||||
}
|
||||
|
||||
@@ -31,10 +31,10 @@ You should have received a copy of the GNU General Public License
|
||||
along with this program. If not, see <http://www.gnu.org/licenses/>.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 23bd30ad769507e3eeb4e397e57a2c0ac01f8b7a..889687ee9bcea490e8a7ee29d0a1f81011cd4a34 100644
|
||||
index b66a7e4da7fd3fe22fef65a201705dcfe876f88e..db4bbabf5f6c24a32fb96f0ce5e642adb468c805 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -1184,6 +1184,13 @@ public final class CraftServer implements Server {
|
||||
@@ -1156,6 +1156,13 @@ public final class CraftServer implements Server {
|
||||
plugin.getPluginMeta().getDisplayName(),
|
||||
"This plugin is not properly shutting down its async tasks when it is being shut down. This task may throw errors during the final shutdown logs and might not complete before process dies."
|
||||
));
|
||||
|
||||
@@ -1,36 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Martijn Muijsers <martijnmuijsers@live.nl>
|
||||
Date: Wed, 23 Nov 2022 23:32:51 +0100
|
||||
Subject: [PATCH] Optimize entity coordinate key
|
||||
|
||||
License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
Gale - https://galemc.org
|
||||
|
||||
This patch is based on the following patch:
|
||||
"Optimize entity coordinate key"
|
||||
By: Kevin Raneri <kevin.raneri@gmail.com>
|
||||
As part of: Pufferfish (https://github.com/pufferfish-gg/Pufferfish)
|
||||
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
|
||||
* Pufferfish description *
|
||||
|
||||
When executing getCoordinateKey for entities (a hotpath), the JVM is
|
||||
required to repeatedly cast doubles to longs. The performance impact of
|
||||
this depends on the CPU architecture, but generally switching between
|
||||
FPU and ALU incurs a significant performance hit. The casted/rounded
|
||||
data is already available in the blockPosition struct, so we use that
|
||||
instead of re-doing the casting.
|
||||
|
||||
diff --git a/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java b/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java
|
||||
index 31b92bd48828cbea25b44a9f0f96886347aa1ae6..036c1a287db04c0191e5f84b027ea68d31447cbc 100644
|
||||
--- a/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java
|
||||
+++ b/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java
|
||||
@@ -16,7 +16,7 @@ public final class CoordinateUtils {
|
||||
}
|
||||
|
||||
public static long getChunkKey(final Entity entity) {
|
||||
- return ((Mth.lfloor(entity.getZ()) >> 4) << 32) | ((Mth.lfloor(entity.getX()) >> 4) & 0xFFFFFFFFL);
|
||||
+ return ((long) (entity.blockPosition.getZ() >> 4) << 32) | ((entity.blockPosition.getX() >> 4) & 0xFFFFFFFFL); // Gale - Pufferfish - optimize entity coordinate key - eliminate double->long cast in hotpath
|
||||
}
|
||||
|
||||
public static long getChunkKey(final ChunkPos pos) {
|
||||
@@ -98,7 +98,7 @@ index db92261a6cb3758391108361096417c61bc82cdc..1a14fddb36ca3c14d243304db629d0c5
|
||||
|
||||
public SortedList(final E[] elements, final Comparator<? super E> comparator) {
|
||||
diff --git a/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java b/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java
|
||||
index 84fab94f38e8ee51f2c82fc8c3ddffe2a24d7148..6d1d05caa7c3b6a43770aa185070317a89c1bd74 100644
|
||||
index af480008adc07c63344d625101d1bf42fab96b5d..8c9609b95cf27b6316c48a554b2c508aa527b964 100644
|
||||
--- a/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java
|
||||
+++ b/src/main/java/io/papermc/paper/command/brigadier/PaperCommands.java
|
||||
@@ -178,7 +178,7 @@ public class PaperCommands implements Commands, PaperRegistrar<LifecycleEventOwn
|
||||
@@ -13,7 +13,7 @@ As part of: MultiPaper (https://github.com/MultiPaper/MultiPaper)
|
||||
Licensed under: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 889687ee9bcea490e8a7ee29d0a1f81011cd4a34..616eeec8a0d075064727a69a08341d853a3f5482 100644
|
||||
index db4bbabf5f6c24a32fb96f0ce5e642adb468c805..3c671beafb9b0dafbf3ef9583244118462c4cab3 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -287,6 +287,7 @@ public final class CraftServer implements Server {
|
||||
@@ -24,7 +24,7 @@ index 889687ee9bcea490e8a7ee29d0a1f81011cd4a34..616eeec8a0d075064727a69a08341d85
|
||||
private YamlConfiguration configuration;
|
||||
private YamlConfiguration commandsConfiguration;
|
||||
private final Yaml yaml = new Yaml(new SafeConstructor(new LoaderOptions()));
|
||||
@@ -1512,6 +1513,7 @@ public final class CraftServer implements Server {
|
||||
@@ -1484,6 +1485,7 @@ public final class CraftServer implements Server {
|
||||
this.getLogger().log(Level.SEVERE, null, ex);
|
||||
}
|
||||
|
||||
@@ -32,7 +32,7 @@ index 889687ee9bcea490e8a7ee29d0a1f81011cd4a34..616eeec8a0d075064727a69a08341d85
|
||||
this.worlds.remove(world.getName().toLowerCase(Locale.ROOT));
|
||||
this.console.removeLevel(handle);
|
||||
return true;
|
||||
@@ -1530,12 +1532,7 @@ public final class CraftServer implements Server {
|
||||
@@ -1502,12 +1504,7 @@ public final class CraftServer implements Server {
|
||||
|
||||
@Override
|
||||
public World getWorld(UUID uid) {
|
||||
@@ -46,7 +46,7 @@ index 889687ee9bcea490e8a7ee29d0a1f81011cd4a34..616eeec8a0d075064727a69a08341d85
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -1551,6 +1548,7 @@ public final class CraftServer implements Server {
|
||||
@@ -1523,6 +1520,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;
|
||||
}
|
||||
@@ -7,10 +7,10 @@ License: GPL-3.0 (https://www.gnu.org/licenses/gpl-3.0.html)
|
||||
Gale - https://galemc.org
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 616eeec8a0d075064727a69a08341d853a3f5482..8876ab2bb2f01b89caab2951de09c7b989a985fb 100644
|
||||
index 3c671beafb9b0dafbf3ef9583244118462c4cab3..c01a6fa34b150b617da2a8094eaa51a92f37a49a 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -3102,6 +3102,23 @@ public final class CraftServer implements Server {
|
||||
@@ -3079,6 +3079,23 @@ public final class CraftServer implements Server {
|
||||
};
|
||||
}
|
||||
|
||||
@@ -58,10 +58,10 @@ index 12b327eea95e0de9e9c39b7d039badee8ec46508..6178f0212214a2a075cea60c758dca79
|
||||
}
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 8876ab2bb2f01b89caab2951de09c7b989a985fb..d2fb5f28293bffe72fd312b76a8317350924028f 100644
|
||||
index c01a6fa34b150b617da2a8094eaa51a92f37a49a..98c1159814baf02a136161813aab9f315c2c3148 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -3102,7 +3102,26 @@ public final class CraftServer implements Server {
|
||||
@@ -3079,7 +3079,26 @@ public final class CraftServer implements Server {
|
||||
};
|
||||
}
|
||||
|
||||
@@ -23,10 +23,10 @@ The above copyright notice and this permission notice shall be included in all c
|
||||
THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER DEALINGS IN THE SOFTWARE.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index d2fb5f28293bffe72fd312b76a8317350924028f..fd956a7c81e4b7407f70dee6a65f973d43f747b2 100644
|
||||
index 98c1159814baf02a136161813aab9f315c2c3148..e7d9035c54ef8224f9cca52eb23c5d02ec952c73 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -3353,4 +3353,21 @@ public final class CraftServer implements Server {
|
||||
@@ -3330,4 +3330,21 @@ public final class CraftServer implements Server {
|
||||
return getServer().lagging;
|
||||
}
|
||||
// Purpur end - Lagging threshold
|
||||
@@ -12,10 +12,10 @@ Original project: https://github.com/LeavesMC/Leaves
|
||||
Commit: 9d32c5bd3df7c76055aff886ed9efda02e45a45a
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index fd956a7c81e4b7407f70dee6a65f973d43f747b2..d877dbabb4e0ee1b167c9f56669ecd5b629b6146 100644
|
||||
index e7d9035c54ef8224f9cca52eb23c5d02ec952c73..4ea1ceac80bd4676bb2c59bc4219903850cc7213 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -512,6 +512,7 @@ public final class CraftServer implements Server {
|
||||
@@ -511,6 +511,7 @@ public final class CraftServer implements Server {
|
||||
this.potionBrewer = new io.papermc.paper.potion.PaperPotionBrewer(console); // Paper - custom potion mixes
|
||||
datapackManager = new io.papermc.paper.datapack.PaperDatapackManager(console.getPackRepository()); // Paper
|
||||
this.spark = new io.papermc.paper.SparksFly(this); // Paper - spark
|
||||
@@ -23,7 +23,7 @@ index fd956a7c81e4b7407f70dee6a65f973d43f747b2..d877dbabb4e0ee1b167c9f56669ecd5b
|
||||
}
|
||||
|
||||
public boolean getCommandBlockOverride(String command) {
|
||||
@@ -1126,6 +1127,7 @@ public final class CraftServer implements Server {
|
||||
@@ -1098,6 +1099,7 @@ public final class CraftServer implements Server {
|
||||
org.purpurmc.purpur.PurpurConfig.registerCommands(); // Purpur - Purpur config files
|
||||
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||
@@ -27,10 +27,10 @@ index 4c003acccdd2dd17918b15316001e52e7670123e..780f3a48152fef6a06dc67bf7fbd1965
|
||||
HandlerList handlers = event.getHandlers();
|
||||
RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index d877dbabb4e0ee1b167c9f56669ecd5b629b6146..2ea89dd5693e111367bc4c085bf30e9ddb0256a2 100644
|
||||
index 4ea1ceac80bd4676bb2c59bc4219903850cc7213..745f3915afdf22fbbc816bd2be30c274e306ee1d 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -317,6 +317,7 @@ public final class CraftServer implements Server {
|
||||
@@ -316,6 +316,7 @@ public final class CraftServer implements Server {
|
||||
private final io.papermc.paper.potion.PaperPotionBrewer potionBrewer;
|
||||
public final io.papermc.paper.SparksFly spark;
|
||||
private final ServerConfiguration serverConfig = new PaperServerConfiguration();
|
||||
@@ -38,7 +38,7 @@ index d877dbabb4e0ee1b167c9f56669ecd5b629b6146..2ea89dd5693e111367bc4c085bf30e9d
|
||||
|
||||
// Paper start - Folia region threading API
|
||||
private final io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler regionizedScheduler = new io.papermc.paper.threadedregions.scheduler.FallbackRegionScheduler();
|
||||
@@ -411,7 +412,7 @@ public final class CraftServer implements Server {
|
||||
@@ -410,7 +411,7 @@ public final class CraftServer implements Server {
|
||||
public CraftServer(DedicatedServer console, PlayerList playerList) {
|
||||
this.console = console;
|
||||
this.playerList = (DedicatedPlayerList) playerList;
|
||||
@@ -47,7 +47,7 @@ index d877dbabb4e0ee1b167c9f56669ecd5b629b6146..2ea89dd5693e111367bc4c085bf30e9d
|
||||
@Override
|
||||
public CraftPlayer apply(ServerPlayer player) {
|
||||
return player.getBukkitEntity();
|
||||
@@ -3372,4 +3373,11 @@ public final class CraftServer implements Server {
|
||||
@@ -3349,4 +3350,11 @@ public final class CraftServer implements Server {
|
||||
return MinecraftServer.lastTickOversleepTime;
|
||||
}
|
||||
// Gale end - YAPFA - last tick time - API
|
||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Including 5s in getTPS()
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 2ea89dd5693e111367bc4c085bf30e9ddb0256a2..126eb60f9713b5f525942e5e9743b65b0a3f1507 100644
|
||||
index 745f3915afdf22fbbc816bd2be30c274e306ee1d..079fcde7b0eb47838f4ccf256ed5adb6ffbca95a 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -3098,6 +3098,8 @@ public final class CraftServer implements Server {
|
||||
@@ -3075,6 +3075,8 @@ public final class CraftServer implements Server {
|
||||
|
||||
@Override
|
||||
public double[] getTPS() {
|
||||
@@ -34,10 +34,10 @@ index 400e632208d133a3f49fc7f14bceb48a1026769b..8c4e5b0c81d90a0eeee4ab9e5882b137
|
||||
|
||||
@Override
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 126eb60f9713b5f525942e5e9743b65b0a3f1507..717084d0ca60ff8bd3fa04083cad69f754b38340 100644
|
||||
index 079fcde7b0eb47838f4ccf256ed5adb6ffbca95a..01b44f84f53ccf6aebd31bb940f0d7c7aa296b32 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -1383,7 +1383,11 @@ public final class CraftServer implements Server {
|
||||
@@ -1355,7 +1355,11 @@ public final class CraftServer implements Server {
|
||||
registryAccess = levelDataAndDimensions.dimensions().dimensionsRegistryAccess();
|
||||
} else {
|
||||
LevelSettings levelSettings;
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Replace world map with optimized collection
|
||||
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index 717084d0ca60ff8bd3fa04083cad69f754b38340..b71edea2c1126bc558f2a803cdf4dd46677a16fc 100644
|
||||
index 01b44f84f53ccf6aebd31bb940f0d7c7aa296b32..d25b0c36e8bafabc7a1a16d01eef9d69567f2c91 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -286,7 +286,7 @@ public final class CraftServer implements Server {
|
||||
@@ -20,7 +20,7 @@ index a4d5c65edc1db59f3486ce5d3757cc306211a54b..b00a82816784ea2f6422ca98c1f11597
|
||||
|
||||
// Paper start
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||
index 2338e7c115037430cefae26a571ded71f77983c4..321280d7c9c3c828cbf2eb19d2fd196a1f84d4c3 100644
|
||||
index 63f6b5d00b401fe670fd237e53dd2073d042535b..eb51cfce4069035664d2d1e3d30ab681e917dee6 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||
@@ -185,7 +185,7 @@ public final class CraftBlockStates {
|
||||
@@ -8,10 +8,10 @@ replacing ArrayList with Fastutil ObjectArrayList
|
||||
brings about 40% performance improvement in benchmark.
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
index b71edea2c1126bc558f2a803cdf4dd46677a16fc..20542041202bf7589f0246ae172c6801b335b75c 100644
|
||||
index d25b0c36e8bafabc7a1a16d01eef9d69567f2c91..55fd02cf61c38b8d0caaed40a3cd49412b03901c 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||
@@ -979,7 +979,7 @@ public final class CraftServer implements Server {
|
||||
@@ -977,7 +977,7 @@ public final class CraftServer implements Server {
|
||||
|
||||
@Override
|
||||
public List<World> getWorlds() {
|
||||
@@ -9,10 +9,10 @@ This patch didn't cahce SectionPos or BlockPos to chunkKey, since it needs to co
|
||||
TODO: Cache block pos and section pos, whether need?
|
||||
|
||||
diff --git a/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java b/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java
|
||||
index 036c1a287db04c0191e5f84b027ea68d31447cbc..3cda726b5ef7419da512889d3edd1fb6935e6a54 100644
|
||||
index bb5b9c9cb0c73edce1dbe3758ee2db0fcc8f4e40..7e3ec4b74406e040ae79d63845fc57bfa3d78a80 100644
|
||||
--- a/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java
|
||||
+++ b/src/main/java/ca/spottedleaf/moonrise/common/util/CoordinateUtils.java
|
||||
@@ -20,7 +20,7 @@ public final class CoordinateUtils {
|
||||
@@ -21,7 +21,7 @@ public final class CoordinateUtils {
|
||||
}
|
||||
|
||||
public static long getChunkKey(final ChunkPos pos) {
|
||||
@@ -1508,7 +1508,7 @@ index 196835bdf95ba0e149b2977e9ef41698971f501f..eb7e63d4549e672ff1206055d2d75439
|
||||
net.minecraft.world.item.ItemStack nms = org.bukkit.craftbukkit.inventory.CraftItemStack.asNMSCopy(item);
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||
index 4124d16267c58133c8053b61e056b056f3a28f31..83729e65520996b020386487caca9bf854322a8b 100644
|
||||
index eb51cfce4069035664d2d1e3d30ab681e917dee6..aea45592a3e870b9474e64317c329c55ffbebfdb 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlockStates.java
|
||||
@@ -195,14 +195,14 @@ public final class CraftBlockStates {
|
||||
@@ -31,10 +31,10 @@ vain. Throttling spawn attempts in suspected spawnproof chunks improves
|
||||
performance without noticeably advantaging or disadvantaging the mob farm.
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||
index 9511f978f6c7da506f67928f5a5a92ecf28e5930..6c298304f842612d0e063b578f274eed04b32960 100644
|
||||
index 8e65586182bd586c95b8c4873fab6d6ff5975243..ed687b0ab589fd2ddb8bf77f42ba42cf8b1c2ea7 100644
|
||||
--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||
+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||
@@ -182,6 +182,17 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||
@@ -183,6 +183,17 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||
@MergeMap
|
||||
public Reference2IntMap<MobCategory> ticksPerSpawn = Util.make(new Reference2IntOpenHashMap<>(NaturalSpawner.SPAWNING_CATEGORIES.length), map -> Arrays.stream(NaturalSpawner.SPAWNING_CATEGORIES).forEach(mobCategory -> map.put(mobCategory, -1)));
|
||||
|
||||
@@ -6,7 +6,7 @@ Subject: [PATCH] Paw optimization
|
||||
Some random optimizations
|
||||
|
||||
diff --git a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
|
||||
index 6ea7d087acd3c53b7a50849b18ee9bf6d01d0e7c..2ebe60d55deead635aa8ae6c611de6c097e2f9bc 100644
|
||||
index ae9c9a96ac070f629564fba867749df173fd4f85..461b7ae34a4448cac0f9ca315b25ed9e7564f0b8 100644
|
||||
--- a/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
|
||||
+++ b/src/main/java/org/bukkit/craftbukkit/block/data/CraftBlockData.java
|
||||
@@ -244,13 +244,37 @@ public class CraftBlockData implements BlockData {
|
||||
@@ -1,19 +0,0 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
|
||||
Date: Thu, 19 Jun 2025 07:37:19 +0800
|
||||
Subject: [PATCH] Update spigot mapping to compat spigot reobf mapping plugins
|
||||
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/util/MappingEnvironment.java b/src/main/java/io/papermc/paper/util/MappingEnvironment.java
|
||||
index d22e477e3b1cebb3ffc5b96261b8d4fb4ef5b240..b9d5ee2f72993f1a9d65a55988f512b6e9c5f1d8 100644
|
||||
--- a/src/main/java/io/papermc/paper/util/MappingEnvironment.java
|
||||
+++ b/src/main/java/io/papermc/paper/util/MappingEnvironment.java
|
||||
@@ -11,7 +11,7 @@ import org.checkerframework.framework.qual.DefaultQualifier;
|
||||
@DefaultQualifier(NonNull.class)
|
||||
public final class MappingEnvironment {
|
||||
public static final boolean DISABLE_PLUGIN_REMAPPING = Boolean.getBoolean("paper.disablePluginRemapping");
|
||||
- public static final String LEGACY_CB_VERSION = "v1_21_R4";
|
||||
+ public static final String LEGACY_CB_VERSION = "v1_21_R5"; // Leaf - Update spigot mapping to compat spigot reobf mapping plugins
|
||||
private static final @Nullable String MAPPINGS_HASH = readMappingsHash();
|
||||
private static final boolean REOBF = checkReobf();
|
||||
|
||||
Reference in New Issue
Block a user