Compare commits

...

17 Commits

Author SHA1 Message Date
83e1fe4058 update folia upstream 2e7bc0721af95196c85500c7bb136aeea0bc12ce
All checks were successful
Java CI-CD with Gradle / build (push) Successful in 18m3s
2024-11-19 08:08:30 +00:00
25386e9085 update upstream folia 88e0907cadf2358e1d3e06222c0a97722ca4ce12
All checks were successful
Java CI-CD with Gradle / build (push) Successful in 15m6s
2024-09-03 15:29:18 +08:00
c1aaac3395 update folia upstream 11e6f61697
All checks were successful
Java CI-CD with Gradle / build (push) Successful in 16m55s
2024-08-29 13:16:15 +08:00
db1bc015e2 update upstream folia
All checks were successful
Java CI-CD with Gradle / build (push) Successful in 20m38s
2024-08-18 12:32:47 +08:00
7cebc29f20 expand gradle.properties jvm ram usage
All checks were successful
Java CI-CD with Gradle / build (push) Successful in 13m49s
2024-08-15 17:35:10 +08:00
041ae7d4c7 update upstream folia
Some checks failed
Java CI-CD with Gradle / build (push) Failing after 34m6s
2024-08-15 16:51:15 +08:00
b96da5a186 update 1.21.1
All checks were successful
Java CI-CD with Gradle / build (push) Successful in 14m28s
2024-08-10 18:28:34 +08:00
75ed34d568 modify goal finding logic
All checks were successful
Java CI-CD with Gradle / build (push) Successful in 11m57s
2024-08-10 13:15:45 +08:00
6850d61143 Limit mob pathfinding update to 20 tick per
All checks were successful
Java CI-CD with Gradle / build (push) Successful in 17m7s
2024-08-08 16:53:44 +08:00
ac16e80a35 remove chunk location display (too much to check) 2024-08-08 14:11:31 +08:00
60b3dafd31 Modify tps command to show more details 2024-08-07 17:47:48 +08:00
f21dc6f29a update ci-cd
All checks were successful
Java CI-CD with Gradle / build (push) Successful in 43m29s
2024-08-05 16:50:42 +08:00
2861d62fdf add proxy
Some checks failed
Java CI-CD with Gradle / build (push) Failing after 25m22s
2024-08-05 16:13:16 +08:00
744363cbd4 update ci-cd
Some checks failed
Java CI-CD with Gradle / build (push) Failing after 2m48s
2024-08-05 16:05:59 +08:00
4f6607f072 add mojang map 2024-08-04 01:50:46 +08:00
f7aca31c63 update README.md 2024-08-04 01:03:49 +08:00
3db514b481 update README.md 2024-08-04 01:02:16 +08:00
9 changed files with 185 additions and 41 deletions

View File

@ -23,12 +23,18 @@ jobs:
run: |
git config --global user.email "actions@gitea.com"
git config --global user.name "actions"
echo "proxy is ${{ vars.DEERCLOUD_PROXY }}"
export https_proxy=${{ vars.DEERCLOUD_PROXY }}
- name: "Apply Patches"
run: ./gradlew applyPatches
- name: "Build Mojmap"
run: ./gradlew createReobfPaperclipJar
run: ./gradlew createMojmapPaperclipJar
- name: "Copy jar to staging"
run: mkdir staging && cp build/libs/*.jar staging
run: mkdir staging && cp build/libs/DeerFolia-paperclip-*.jar staging/
- name: "Rename file to DeerFolia-{git tag name}.jar"
run: |
GIT_TAG=$(git describe --tags --abbrev=0)
mv staging/*.jar staging/DeerFolia-$GIT_TAG.jar
- name: "Setup go for release script"
run: |
wget --no-check-certificate https://studygolang.com/dl/golang/go1.22.0.linux-amd64.tar.gz
@ -38,7 +44,7 @@ jobs:
- name: "Release"
uses: https://ssl.lunadeer.cn:14446/zhangyuheng/release-action@main
with:
note: " - 建议下载 `DeerFolia-paperclip-xxx.jar` 前缀的版本。"
note: ""
files: |-
staging/*.jar
api_key: '${{secrets.RELEASE_TOKEN}}'

View File

@ -18,9 +18,9 @@ DeerFolia 是一个基于 [Folia](https://papermc.io/software/folia) 的 Minecra
## 此分支特性
- ~~还原了 [虚空交易](https://ssl.lunadeer.cn:14446/zhangyuheng/DeerFolia/src/branch/master/patches/server/0002-Allow-void-trading.patch)~~(疑似已被Mojiang官方修复);
- 还原了 [刷沙机制](https://ssl.lunadeer.cn:14446/zhangyuheng/DeerFolia/src/branch/master/patches/server/0003-Sand-duplication.patch)(虽然Paper已支持刷沙但由于folia的特性paper的刷沙开关是无效的);
- 还原了 [刷线机制](https://ssl.lunadeer.cn:14446/zhangyuheng/DeerFolia/src/branch/master/patches/server/0004-Allow-tripwire-duplication.patch)Paper已支持刷线,此分支补丁为强制开启此特性);
- ~~还原了 [虚空交易](https://ssl.lunadeer.cn:14446/zhangyuheng/DeerFolia/src/branch/master/patches/server/0002-Allow-void-trading.patch)~~(疑似已被 mojang 官方修复);
- 还原了 [刷沙机制](https://ssl.lunadeer.cn:14446/zhangyuheng/DeerFolia/src/branch/master/patches/server/0003-Sand-duplication.patch)(虽然 paper 已支持刷沙,但由于 folia 的特性paper 的刷沙开关在 folia 是无效的);
- 还原了 [刷线机制](https://ssl.lunadeer.cn:14446/zhangyuheng/DeerFolia/src/branch/master/patches/server/0004-Allow-tripwire-duplication.patch)paper 已支持刷线,此分支补丁为强制开启此特性);
## 如何自行编译

View File

@ -20,6 +20,7 @@ val paperMavenPublicUrl = "https://repo.papermc.io/repository/maven-public/"
repositories {
mavenCentral()
mavenLocal()
maven(paperMavenPublicUrl) {
content {
onlyForConfigurations(configurations.paperclip.name)
@ -28,7 +29,7 @@ repositories {
}
dependencies {
remapper("net.fabricmc:tiny-remapper:0.10.2:fat")
remapper("net.fabricmc:tiny-remapper:0.10.3:fat")
decompiler("org.vineflower:vineflower:1.10.1")
paperclip("io.papermc:paperclip:3.0.3")
}

View File

@ -1,9 +1,11 @@
group = cn.lunadeer
version = 1.21-R0.1-SNAPSHOT
mcVersion = 1.21
version = 1.21.1-R0.1-SNAPSHOT
mcVersion = 1.21.1
foliaRef = 2b8c8798972a8393914027c45e544dd997375807
foliaRef = 2e7bc0721af95196c85500c7bb136aeea0bc12ce
org.gradle.caching=true
org.gradle.parallel=true
org.gradle.vfs.watch=false
org.gradle.vfs.watch=false
org.gradle.daemon=true
org.gradle.jvmargs=-Xmx2560m

View File

@ -0,0 +1,41 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: zhangyuheng <zhangyuheng@lunadeer.cn>
Date: Thu, 8 Aug 2024 15:51:22 +0800
Subject: [PATCH] Limit mob pathfinding update
diff --git a/src/main/java/net/minecraft/world/entity/Mob.java b/src/main/java/net/minecraft/world/entity/Mob.java
index 741ba5f0834ab5f0b0ffdeb91a9ff8cfaf922792..0141caf62b0e06676696c01a1956d4cf3564a4a4 100644
--- a/src/main/java/net/minecraft/world/entity/Mob.java
+++ b/src/main/java/net/minecraft/world/entity/Mob.java
@@ -924,6 +924,8 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
}
}
+ private int lastPathfindingTick = 0; // DeerFolia - limit pathfinding updates
+
@Override
protected final void serverAiStep() {
++this.noActionTime;
@@ -943,6 +945,10 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
gameprofilerfiller.pop();
int i = this.tickCount + this.getId();
+ // DeerFolia start - limit pathfinding updates
+ int pathfindingTickLimit = 20; // todo - make this configurable maybe?
+ if (this.tickCount > this.lastPathfindingTick + pathfindingTickLimit) {
+ // DeerFolia end
if (i % 2 != 0 && this.tickCount > 1) {
gameprofilerfiller.push("targetSelector");
this.targetSelector.tickRunningGoals(false);
@@ -958,6 +964,10 @@ public abstract class Mob extends LivingEntity implements EquipmentUser, Leashab
this.goalSelector.tick();
gameprofilerfiller.pop();
}
+ // DeerFolia - limit pathfinding updates
+ this.lastPathfindingTick = this.tickCount;
+ }
+ // DeerFolia end
gameprofilerfiller.push("navigation");
this.navigation.tick();

View File

@ -5,7 +5,7 @@ Subject: [PATCH] Rebranding
diff --git a/build.gradle.kts b/build.gradle.kts
index f0a90d13a17160cd363d54d494add4f6433b4758..e4c5df72efcdd81ffe7dd0344f7f1c20ae62acc1 100644
index c2f2ba1df68e9823c56287f1bea23fb6d6a781a2..9b7e53036ffd5f2dc2c581e3b657644b25327b5a 100644
--- a/build.gradle.kts
+++ b/build.gradle.kts
@@ -13,7 +13,7 @@ configurations.named(log4jPlugins.compileClasspathConfigurationName) {
@ -17,7 +17,7 @@ index f0a90d13a17160cd363d54d494add4f6433b4758..e4c5df72efcdd81ffe7dd0344f7f1c20
// Paper start
implementation("org.jline:jline-terminal-jansi:3.21.0")
implementation("net.minecrell:terminalconsoleappender:1.3.0")
@@ -84,14 +84,14 @@ tasks.jar {
@@ -85,14 +85,14 @@ tasks.jar {
val gitBranch = git("rev-parse", "--abbrev-ref", "HEAD").getText().trim() // Paper
attributes(
"Main-Class" to "org.bukkit.craftbukkit.Main",
@ -106,10 +106,10 @@ index 29bd788ae8bc61c1e62a4f84b9e259931a7041ce..133d9974c5db973029750a08cac50665
private static Component getUpdateStatusMessage(final String repo, final ServerBuildInfo build) {
diff --git a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
index c5d5648f4ca603ef2b1df723b58f9caf4dd3c722..d5c8b196c1282eecd74ce046242700b57cfde140 100644
index 6ee39b534b8d992655bc0cef3c299d12cbae0034..8fd162b6441ca1a6ee779d898ee854dc5b1343c5 100644
--- a/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
+++ b/src/main/java/com/destroystokyo/paper/console/PaperConsole.java
@@ -17,7 +17,7 @@ public final class PaperConsole extends SimpleTerminalConsole {
@@ -20,7 +20,7 @@ public final class PaperConsole extends SimpleTerminalConsole {
@Override
protected LineReader buildReader(LineReaderBuilder builder) {
builder
@ -205,7 +205,7 @@ index e9b6ca3aa25e140467ae866d572483050ea3fa0e..4b84eb8ceb719bb6b4dc281b32c5b67b
if (stream != null) {
diff --git a/src/main/java/org/spigotmc/WatchdogThread.java b/src/main/java/org/spigotmc/WatchdogThread.java
index f7a4fee9bb25ff256dc2e5ea26bfbceca6a49167..e071112059905fc1898fd3435dce49ff7f8ff244 100644
index 64e0acf28fc241b16a7bc8d3807062fd7758ed7f..3eb75a0fbe82e6f5efc774149e3f965cc5b6b250 100644
--- a/src/main/java/org/spigotmc/WatchdogThread.java
+++ b/src/main/java/org/spigotmc/WatchdogThread.java
@@ -96,7 +96,7 @@ public class WatchdogThread extends ca.spottedleaf.moonrise.common.util.TickThre

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Allow void trading
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
index 0166d6bd686d68ffdcc42e908b0d1aa41a3bffdf..8da76a7383e080c54d4af6905c0732298f03847f 100644
index 90d78ddf8518c0df307cdaa8b7cfb5549491c6e5..2a3a8d9f5176ba444f401e8ac505cb7ee7d59234 100644
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
@@ -2813,10 +2813,11 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
@@ -2815,10 +2815,11 @@ public class ServerLevel extends Level implements WorldGenLevel, ca.spottedleaf.
// Spigot end
// Spigot Start
if (entity.getBukkitEntity() instanceof org.bukkit.inventory.InventoryHolder && (!(entity instanceof ServerPlayer) || entity.getRemovalReason() != Entity.RemovalReason.KILLED)) { // SPIGOT-6876: closeInventory clears death message

View File

@ -5,10 +5,10 @@ Subject: [PATCH] Allow sand duplication
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
index 7a102b4e90fbc09b8653e5b566299efe24a04cf6..4d5fcff9bb860542502f7d15a86cd14dc9cca5fa 100644
index 2ccc358daae43dcebf03db64526f17fbd9df23f8..7356ecda5b9b416ac23e65193462ae4355b4386d 100644
--- a/src/main/java/net/minecraft/world/entity/Entity.java
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
@@ -4186,13 +4186,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -4188,13 +4188,18 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
targetPos, 16, // load 16 blocks to be safe from block physics
ca.spottedleaf.concurrentutil.executor.standard.PrioritisedExecutor.Priority.HIGH,
(chunks) -> {
@ -29,7 +29,7 @@ index 7a102b4e90fbc09b8653e5b566299efe24a04cf6..4d5fcff9bb860542502f7d15a86cd14d
DimensionTransition.PLAY_PORTAL_SOUND.then(DimensionTransition.PLACE_PORTAL_TICKET),
org.bukkit.event.player.PlayerTeleportEvent.TeleportCause.END_PORTAL
)
@@ -4389,6 +4394,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -4391,6 +4396,11 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
if (!this.canPortalAsync(destination, takePassengers)) {
return false;
}
@ -41,7 +41,7 @@ index 7a102b4e90fbc09b8653e5b566299efe24a04cf6..4d5fcff9bb860542502f7d15a86cd14d
Vec3 initialPosition = this.position();
ChunkPos initialPositionChunk = new ChunkPos(
@@ -4453,9 +4463,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
@@ -4455,9 +4465,14 @@ public abstract class Entity implements SyncedDataHolder, Nameable, EntityAccess
info.postDimensionTransition().onTransition(teleported);
}
@ -71,22 +71,3 @@ index 5d6b1a63a2a213f8a4e81c5e574847007a82007b..6512ac412ad48196e5decc47ccbf01c7
protected static final EntityDataAccessor<BlockPos> DATA_START_POS = SynchedEntityData.defineId(FallingBlockEntity.class, EntityDataSerializers.BLOCK_POS);
public boolean autoExpire = true; // Paper - Expand FallingBlock API
diff --git a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
index 58e15d7a5f7997a7aec9edaa5d211807b2b1ef6b..6d769f57242c2454cc19255197db70b9a9cf68ca 100644
--- a/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
+++ b/src/main/java/net/minecraft/world/level/block/EndPortalBlock.java
@@ -70,6 +70,14 @@ public class EndPortalBlock extends BaseEntityBlock implements Portal {
world.getCraftServer().getPluginManager().callEvent(event);
if (event.isCancelled()) return; // Paper - make cancellable
// CraftBukkit end
+
+ // DeerFolia start - Sand duplication
+ if (!(entity instanceof net.minecraft.world.entity.player.Player)) {
+ entity.endPortalLogicAsync(pos);
+ return;
+ }
+ // DeerFolia end - Sand duplication
+
if (!world.isClientSide && world.dimension() == Level.END && entity instanceof ServerPlayer) {
ServerPlayer entityplayer = (ServerPlayer) entity;

View File

@ -0,0 +1,113 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: zhangyuheng <zhangyuheng@lunadeer.cn>
Date: Wed, 7 Aug 2024 17:29:43 +0800
Subject: [PATCH] Modify tps command to show more details
diff --git a/src/main/java/io/papermc/paper/threadedregions/TickRegions.java b/src/main/java/io/papermc/paper/threadedregions/TickRegions.java
index b1c07e582dbf0a203cf734fdbcd8387a422af3a6..44d0d1bae314fba86d2d8ba36241bc77a9c2b21f 100644
--- a/src/main/java/io/papermc/paper/threadedregions/TickRegions.java
+++ b/src/main/java/io/papermc/paper/threadedregions/TickRegions.java
@@ -2,6 +2,7 @@ package io.papermc.paper.threadedregions;
import ca.spottedleaf.concurrentutil.scheduler.SchedulerThreadPool;
import ca.spottedleaf.concurrentutil.util.TimeUtil;
+import ca.spottedleaf.moonrise.common.list.ReferenceList;
import ca.spottedleaf.moonrise.patches.chunk_system.scheduling.ChunkHolderManager;
import com.mojang.logging.LogUtils;
import io.papermc.paper.configuration.GlobalConfiguration;
@@ -11,9 +12,14 @@ import it.unimi.dsi.fastutil.objects.Reference2ReferenceMap;
import it.unimi.dsi.fastutil.objects.Reference2ReferenceOpenHashMap;
import it.unimi.dsi.fastutil.objects.ReferenceOpenHashSet;
import net.minecraft.server.MinecraftServer;
+import net.minecraft.server.level.ServerChunkCache;
import net.minecraft.server.level.ServerLevel;
+import net.minecraft.server.level.ServerPlayer;
import org.slf4j.Logger;
+
+import java.util.ArrayList;
import java.util.Iterator;
+import java.util.List;
import java.util.concurrent.TimeUnit;
import java.util.concurrent.atomic.AtomicInteger;
import java.util.concurrent.atomic.AtomicLong;
@@ -134,6 +140,8 @@ public final class TickRegions implements ThreadedRegionizer.RegionCallbacks<Tic
private final AtomicInteger entityCount = new AtomicInteger();
private final AtomicInteger playerCount = new AtomicInteger();
private final AtomicInteger chunkCount = new AtomicInteger();
+ private final List<ServerPlayer> localPlayers = new ArrayList<>();
+ private ReferenceList<ServerChunkCache.ChunkAndHolder> chunks;
public int getEntityCount() {
return this.entityCount.get();
@@ -147,10 +155,31 @@ public final class TickRegions implements ThreadedRegionizer.RegionCallbacks<Tic
return this.chunkCount.get();
}
+ public String getLocalPlayers() {
+ final StringBuilder sb = new StringBuilder();
+ for (final ServerPlayer player : this.localPlayers) {
+ sb.append(player.getName().getString()).append(", ");
+ }
+ return sb.toString();
+ }
+
+ public String getTickingChunks() {
+ final StringBuilder sb = new StringBuilder();
+ for (final ServerChunkCache.ChunkAndHolder chunk : this.chunks) {
+ sb.append("[").append(chunk.chunk().getPos().x).append(", ").append(chunk.chunk().getPos().z).append("], ");
+ }
+ return sb.toString();
+ }
+
void updateFrom(final RegionizedWorldData data) {
this.entityCount.setRelease(data == null ? 0 : data.getEntityCount());
this.playerCount.setRelease(data == null ? 0 : data.getPlayerCount());
this.chunkCount.setRelease(data == null ? 0 : data.getChunkCount());
+ this.localPlayers.clear();
+ if (data != null) {
+ this.localPlayers.addAll(data.getLocalPlayers());
+ }
+ this.chunks = data == null ? null : data.getTickingChunks();
}
static void updateCurrentRegion() {
diff --git a/src/main/java/io/papermc/paper/threadedregions/commands/CommandServerHealth.java b/src/main/java/io/papermc/paper/threadedregions/commands/CommandServerHealth.java
index 012d3a7da7fe483393a0888c823bd2e78f5c3908..6a06726c28695c0e639f0517274078d3c673fbcf 100644
--- a/src/main/java/io/papermc/paper/threadedregions/commands/CommandServerHealth.java
+++ b/src/main/java/io/papermc/paper/threadedregions/commands/CommandServerHealth.java
@@ -73,7 +73,9 @@ public final class CommandServerHealth extends Command {
.append(Component.text("Chunks: ", PRIMARY))
.append(Component.text(NO_DECIMAL_PLACES.get().format((long)stats.getChunkCount()), INFORMATION))
.append(Component.text(" Players: ", PRIMARY))
- .append(Component.text(NO_DECIMAL_PLACES.get().format((long)stats.getPlayerCount()), INFORMATION))
+ .append(Component.text(NO_DECIMAL_PLACES.get().format((long)stats.getPlayerCount()), INFORMATION)
+ .hoverEvent(HoverEvent.showText(Component.text("Players: " + stats.getLocalPlayers(), SECONDARY)))
+ )
.append(Component.text(" Entities: ", PRIMARY))
.append(Component.text(NO_DECIMAL_PLACES.get().format((long)stats.getEntityCount()) + (newline ? "\n" : ""), INFORMATION))
.build();
@@ -247,7 +249,10 @@ public final class CommandServerHealth extends Command {
final Component line = Component.text()
.append(Component.text(" - ", LIST, TextDecoration.BOLD))
.append(Component.text("Region around block ", PRIMARY))
- .append(Component.text(location, INFORMATION))
+ .append(Component.text(location, INFORMATION)
+ .clickEvent(ClickEvent.clickEvent(ClickEvent.Action.RUN_COMMAND, "/minecraft:execute as @s in " + world.getWorld().getKey().toString() + " run tp " + centerBlockX + ".5 " + yLoc + " " + centerBlockZ + ".5"))
+ .hoverEvent(HoverEvent.hoverEvent(HoverEvent.Action.SHOW_TEXT, Component.text("Click to teleport to " + location, SECONDARY)))
+ )
.append(Component.text(":\n", PRIMARY))
.append(Component.text(" ", PRIMARY))
@@ -260,10 +265,7 @@ public final class CommandServerHealth extends Command {
.append(Component.text(" ", PRIMARY))
.append(formatRegionStats(region.getData().getRegionStats(), (i + 1) != len))
- .build()
-
- .clickEvent(ClickEvent.clickEvent(ClickEvent.Action.RUN_COMMAND, "/minecraft:execute as @s in " + world.getWorld().getKey().toString() + " run tp " + centerBlockX + ".5 " + yLoc + " " + centerBlockZ + ".5"))
- .hoverEvent(HoverEvent.hoverEvent(HoverEvent.Action.SHOW_TEXT, Component.text("Click to teleport to " + location, SECONDARY)));
+ .build();
lowestRegionsBuilder.append(line);
}