Compare commits
8 Commits
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
47979cce0c | ||
|
|
5ee903fe44 | ||
|
|
66ca590e7d | ||
|
|
7303dafc78 | ||
|
|
7bbd7429a5 | ||
|
|
319347ed32 | ||
|
|
61f2cb81f4 | ||
|
|
9cd3a602bc |
4
.github/workflows/build.yml
vendored
4
.github/workflows/build.yml
vendored
@@ -1,8 +1,8 @@
|
||||
name: Generate Jars
|
||||
on: [ push, pull_request ]
|
||||
env:
|
||||
version: '1.19.4'
|
||||
branch: ver/1.19.4
|
||||
version: '1.20.1'
|
||||
branch: ver/1.20.1
|
||||
jobs:
|
||||
paperclip:
|
||||
runs-on: ubuntu-latest
|
||||
|
||||
15
README.md
15
README.md
@@ -1,4 +1,3 @@
|
||||
|
||||
<div align="center">
|
||||
<img src="https://github.com/kugge/Kaiiju/blob/ver/1.19.3/logo.png?" width="32%" height="32%"/>
|
||||
<h1>Kaiiju</h1>
|
||||
@@ -17,16 +16,12 @@
|
||||
- **Auto update**: Automatic upstream updates.
|
||||
|
||||
### Notable
|
||||
- **Optimize Hopper**: Enable/Disable Paper "Optimize Hopper" patch that break a lot of redstone farms.
|
||||
- **Entity throttling & removal**: Tweak entity tick frequency & max entity per region.
|
||||
- **Sand duplication**: Toggle sand duplication on Folia.
|
||||
- **Technical Minecraft**: Enable Vanilla exploits such as sand duping, RNG manipulation...
|
||||
|
||||
### Configuration
|
||||
|
||||
```yaml
|
||||
verbose: false
|
||||
region-format:
|
||||
debug: false
|
||||
network:
|
||||
send-null-entity-packets: true
|
||||
alternate-keepalive: false
|
||||
@@ -41,12 +36,16 @@ world-settings:
|
||||
compression-level: 1
|
||||
crash-on-broken-symlink: true
|
||||
gameplay:
|
||||
shulker-box-drop-contents-when-destroyed: true
|
||||
fix-void-trading: true
|
||||
optimize-hoppers: true
|
||||
tick-when-empty: true
|
||||
break-redstone-on-top-of-trap-doors-early: true
|
||||
config-version: 1
|
||||
fix-tripwire-state-inconsistency: true
|
||||
safe-teleportation: true
|
||||
sand-duplication: false
|
||||
optimization:
|
||||
shulker-box-drop-contents-when-destroyed: true
|
||||
enable-entity-throttling: false
|
||||
```
|
||||
Documentation: [Kaiiju Wiki](https://github.com/KaiijuMC/Kaiiju/wiki/Configuration)
|
||||
|
||||
|
||||
18
patches/server/0008-Optimization-Configuration.patch
Normal file
18
patches/server/0008-Optimization-Configuration.patch
Normal file
@@ -0,0 +1,18 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: kugge <sofiane.djerbi38@gmail.com>
|
||||
Date: Wed, 21 Jun 2023 17:26:24 +0200
|
||||
Subject: [PATCH] Optimization Configuration
|
||||
|
||||
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index a6e7af5f4148e067660e9f5beeacde3a59a1de9c..6bd14857e0b0ef233f17f1a6e3e0fb313d59f641 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -143,4 +143,7 @@ public class KaiijuWorldConfig {
|
||||
regionFormatLinearCompressionLevel = 1;
|
||||
}
|
||||
}
|
||||
+
|
||||
+ private void optimizationSettings() {
|
||||
+ }
|
||||
}
|
||||
@@ -17,12 +17,12 @@ index b42a3466f145a92608c8746fd4beb529b4a60b01..6d0e1edfb7d3c020f70f6a194f16e836
|
||||
+ }
|
||||
}
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index a6e7af5f4148e067660e9f5beeacde3a59a1de9c..6a700b5b15da394f42461b59f85eb8918c2121ad 100644
|
||||
index 6bd14857e0b0ef233f17f1a6e3e0fb313d59f641..05f9c01131e78927d88f1170c3eda4adf25ac8ba 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -143,4 +143,7 @@ public class KaiijuWorldConfig {
|
||||
regionFormatLinearCompressionLevel = 1;
|
||||
}
|
||||
@@ -146,4 +146,7 @@ public class KaiijuWorldConfig {
|
||||
|
||||
private void optimizationSettings() {
|
||||
}
|
||||
+
|
||||
+ private void gameplaySettings() {
|
||||
@@ -7,19 +7,20 @@ Don't drop shulker contents when shulker items are destroyed (by cactus,
|
||||
lava..)
|
||||
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index 6a700b5b15da394f42461b59f85eb8918c2121ad..c3347922439153bb4377d322fc3da2d16255d885 100644
|
||||
index 05f9c01131e78927d88f1170c3eda4adf25ac8ba..55dcbb48450b24f80e0a04bedeb54f64e94ebb9e 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -144,6 +144,9 @@ public class KaiijuWorldConfig {
|
||||
@@ -144,7 +144,10 @@ public class KaiijuWorldConfig {
|
||||
}
|
||||
}
|
||||
|
||||
+ public boolean shulkerBoxDropContentsWhenDestroyed = true;
|
||||
+
|
||||
private void gameplaySettings() {
|
||||
+ shulkerBoxDropContentsWhenDestroyed = getBoolean("gameplay.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
private void optimizationSettings() {
|
||||
+ shulkerBoxDropContentsWhenDestroyed = getBoolean("optimization.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
}
|
||||
}
|
||||
|
||||
private void gameplaySettings() {
|
||||
diff --git a/src/main/java/net/minecraft/world/item/BlockItem.java b/src/main/java/net/minecraft/world/item/BlockItem.java
|
||||
index ebee8de2ed831755b6fd154f6cc77ac993839bb9..ce5faefe3b67087509833800f0472f14131f2011 100644
|
||||
--- a/src/main/java/net/minecraft/world/item/BlockItem.java
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Crash on broken symlink
|
||||
|
||||
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index c3347922439153bb4377d322fc3da2d16255d885..6f785078ca5123eb06913f95183475584116ebf5 100644
|
||||
index 55dcbb48450b24f80e0a04bedeb54f64e94ebb9e..f3f824d0ab1a2a72825c40b67192386479a0b34c 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -127,6 +127,7 @@ public class KaiijuWorldConfig {
|
||||
@@ -64,7 +64,7 @@ index 61c6bc2859235874aefac71e9e55162f0a89f29f..24bd63c596c9f61f1e89ec5b001b7cb7
|
||||
// Paper start
|
||||
this.dataRegionManager = new io.papermc.paper.chunk.SingleThreadChunkRegionManager(this.level, 2, (1.0 / 3.0), 1, 6, "Data", DataRegionData::new, DataRegionSectionData::new);
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 19fb8ca8a6f699ce596103070db726fcb427865e..44c6d7484a87523e635492053b326f819b8f71c5 100644
|
||||
index 4774d3f357d62b0818b4713f8085d05be09eaa5c..1bbd8b475cdc57fb15ca05ffe122220a5539da10 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -426,8 +426,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -8,22 +8,21 @@ You should set chunk-unloads to 0s in paper config file to enable void
|
||||
trading. Or use Kaiivoid plugin.
|
||||
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index 6f785078ca5123eb06913f95183475584116ebf5..a2eaa6d58ff7cbb88716d26996d2842cddfee560 100644
|
||||
index f3f824d0ab1a2a72825c40b67192386479a0b34c..95ed6cb7b94797187d1011cab344e187b39d9193 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -147,8 +147,10 @@ public class KaiijuWorldConfig {
|
||||
@@ -152,6 +152,9 @@ public class KaiijuWorldConfig {
|
||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("optimization.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
}
|
||||
|
||||
public boolean shulkerBoxDropContentsWhenDestroyed = true;
|
||||
+ public boolean fixVoidTrading = true;
|
||||
|
||||
+
|
||||
private void gameplaySettings() {
|
||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("gameplay.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
+ fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 44c6d7484a87523e635492053b326f819b8f71c5..6f9ae8348f250d27931910de3a387922e24c7757 100644
|
||||
index 1bbd8b475cdc57fb15ca05ffe122220a5539da10..7f39e36037d55278d15399196459e51b885c5d1e 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -2838,7 +2838,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -6,23 +6,22 @@ Subject: [PATCH] Toggle optimize hoppers
|
||||
Paper optimize hoppers patch break a lot of technical redstone farms because of piston updates. (Example: twiti888 wood farm)
|
||||
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index a2eaa6d58ff7cbb88716d26996d2842cddfee560..01f194cfbd6f0e371f410c94aaecf1595acb22d8 100644
|
||||
index 95ed6cb7b94797187d1011cab344e187b39d9193..72bcf8e35593bb54079b6cbd9238acdcd43c3e46 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -148,9 +148,11 @@ public class KaiijuWorldConfig {
|
||||
@@ -153,8 +153,10 @@ public class KaiijuWorldConfig {
|
||||
}
|
||||
|
||||
public boolean shulkerBoxDropContentsWhenDestroyed = true;
|
||||
public boolean fixVoidTrading = true;
|
||||
+ public boolean optimizeHoppers = true;
|
||||
|
||||
private void gameplaySettings() {
|
||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("gameplay.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
||||
+ optimizeHoppers = getBoolean("gameplay.optimize-hoppers", optimizeHoppers);
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
||||
index 0134370081182260d578ee1d8a16d544c03b6a0d..555d86f0a9132c2292470c60f263e59082f0c26e 100644
|
||||
index 4825a74ce4893dafdb70ae1badf3d2e1930d01a1..762b763f271c3208b4f8a7e346897207ec5beb6c 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
||||
@@ -401,49 +401,51 @@ public class HopperBlockEntity extends RandomizableContainerBlockEntity implemen
|
||||
@@ -5,24 +5,23 @@ Subject: [PATCH] Toggle tick level when empty
|
||||
|
||||
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index 01f194cfbd6f0e371f410c94aaecf1595acb22d8..657a56a8cfa134943f8503e413b4eaf592a83854 100644
|
||||
index 72bcf8e35593bb54079b6cbd9238acdcd43c3e46..9802039d34eb1717b712c9041fd9f602fccae236 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -149,10 +149,12 @@ public class KaiijuWorldConfig {
|
||||
public boolean shulkerBoxDropContentsWhenDestroyed = true;
|
||||
@@ -154,9 +154,11 @@ public class KaiijuWorldConfig {
|
||||
|
||||
public boolean fixVoidTrading = true;
|
||||
public boolean optimizeHoppers = true;
|
||||
+ public boolean tickWhenEmpty = true;
|
||||
|
||||
private void gameplaySettings() {
|
||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("gameplay.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
||||
optimizeHoppers = getBoolean("gameplay.optimize-hoppers", optimizeHoppers);
|
||||
+ tickWhenEmpty = getBoolean("gameplay.tick-when-empty", tickWhenEmpty);
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index 15087f575427ecdeee105060575fb6b6741f4586..a4d9c586f096a885b33840e8c1a7406821afb4df 100644
|
||||
index 7f39e36037d55278d15399196459e51b885c5d1e..66509fa23bfcde70abd3917eb774cf48d5d6da93 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -798,7 +798,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -6,17 +6,16 @@ Subject: [PATCH] Toggle break redstone on top of trap doors early
|
||||
That patch break vanilla mechanics such as portal slicing.
|
||||
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index 657a56a8cfa134943f8503e413b4eaf592a83854..ab56f61e9f77f743caabbd49d1e028e8ce296355 100644
|
||||
index 9802039d34eb1717b712c9041fd9f602fccae236..3355935bbf8059d8a539dcefb84e3c0785314ce2 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -150,11 +150,13 @@ public class KaiijuWorldConfig {
|
||||
@@ -155,10 +155,12 @@ public class KaiijuWorldConfig {
|
||||
public boolean fixVoidTrading = true;
|
||||
public boolean optimizeHoppers = true;
|
||||
public boolean tickWhenEmpty = true;
|
||||
+ public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
||||
|
||||
private void gameplaySettings() {
|
||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("gameplay.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
||||
optimizeHoppers = getBoolean("gameplay.optimize-hoppers", optimizeHoppers);
|
||||
tickWhenEmpty = getBoolean("gameplay.tick-when-empty", tickWhenEmpty);
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Fix off thread spider addEffect
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/monster/Spider.java b/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
index 0c36bb47bd7040f1544817810e1c87157cdaff96..089c7bc00b8b4354d795cd864dc2c310bcf6de86 100644
|
||||
index 05432184077752b1d0cb764a5e39ed875748b2d6..74a68ae68e3c774a63d0a5478dfcda6e7894a514 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/monster/Spider.java
|
||||
@@ -180,7 +180,9 @@ public class Spider extends Monster {
|
||||
@@ -20,7 +20,7 @@ index 9fb33b35b4d6842ca8597f77a4116e3983ebfbcb..51a49fc98147eef7bb50e7a2c71e0e8e
|
||||
}
|
||||
}
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
index e8c2d4f647b01dfaebccd5a2fa330594bbbcb74f..532cb2aab7617319ffa0606b75b62f2414eabdb3 100644
|
||||
index deaf4b65b6c9f3dbab6578c25fb78ca84507f70b..cdf669fc1065632033fab4154f0113474b984152 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||
@@ -566,6 +566,11 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Kick player instead of crashing
|
||||
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/chunk/system/RegionizedPlayerChunkLoader.java b/src/main/java/io/papermc/paper/chunk/system/RegionizedPlayerChunkLoader.java
|
||||
index 5788fc92976c7704bb48dde91b5c9d403abc5cf0..9e7a93c862c8c237a706258b3a3b3d00ddec47e8 100644
|
||||
index 7b664f32868028758d0c6ee1eaa82efcd83661d2..8b325c764df7003f8e6984a85267cd78fc7672ed 100644
|
||||
--- a/src/main/java/io/papermc/paper/chunk/system/RegionizedPlayerChunkLoader.java
|
||||
+++ b/src/main/java/io/papermc/paper/chunk/system/RegionizedPlayerChunkLoader.java
|
||||
@@ -485,7 +485,12 @@ public class RegionizedPlayerChunkLoader {
|
||||
@@ -6,18 +6,17 @@ Subject: [PATCH] Toggle fix TripWire state inconsistency
|
||||
This allow string duplication
|
||||
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index ab56f61e9f77f743caabbd49d1e028e8ce296355..c344ceee85cd7fe3d8e68df49e7e57db497a5c4b 100644
|
||||
index 3355935bbf8059d8a539dcefb84e3c0785314ce2..5c87df0fd68e4971201836b6301d526378271af5 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -151,6 +151,7 @@ public class KaiijuWorldConfig {
|
||||
@@ -156,11 +156,13 @@ public class KaiijuWorldConfig {
|
||||
public boolean optimizeHoppers = true;
|
||||
public boolean tickWhenEmpty = true;
|
||||
public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
||||
+ public boolean fixTripWireStateInconsistency = true;
|
||||
|
||||
private void gameplaySettings() {
|
||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("gameplay.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
@@ -158,5 +159,6 @@ public class KaiijuWorldConfig {
|
||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
||||
optimizeHoppers = getBoolean("gameplay.optimize-hoppers", optimizeHoppers);
|
||||
tickWhenEmpty = getBoolean("gameplay.tick-when-empty", tickWhenEmpty);
|
||||
breakRedstoneOnTopOfTrapDoorsEarly = getBoolean("gameplay.break-redstone-on-top-of-trap-doors-early", breakRedstoneOnTopOfTrapDoorsEarly);
|
||||
@@ -5,7 +5,7 @@ Subject: [PATCH] Entity ticking throttling & removal to prevent lag.
|
||||
|
||||
|
||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||
index e611fb1c25b8287b334c078f93d0fa2f32f5cb39..8340143a97c93c651c1ae424d3969729694ae981 100644
|
||||
index 1615346024037f2abe0fcfcfc5ea7713505bebca..d24f5fdc6a8c34774933a5cd8bfed8571299bd35 100644
|
||||
--- a/build.gradle.kts
|
||||
+++ b/build.gradle.kts
|
||||
@@ -17,6 +17,7 @@ dependencies {
|
||||
@@ -252,24 +252,21 @@ index 0000000000000000000000000000000000000000..eb690efacf083e4ff3e321578b12c534
|
||||
+ }
|
||||
+}
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index c344ceee85cd7fe3d8e68df49e7e57db497a5c4b..2cc57d5a759ac3edcd2c3724f7f7b022b3e42f0f 100644
|
||||
index 5c87df0fd68e4971201836b6301d526378271af5..ecae04b0cc317b154b29ca80a7246dc19e5d67ba 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -152,6 +152,7 @@ public class KaiijuWorldConfig {
|
||||
public boolean tickWhenEmpty = true;
|
||||
public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
||||
public boolean fixTripWireStateInconsistency = true;
|
||||
@@ -147,9 +147,11 @@ public class KaiijuWorldConfig {
|
||||
}
|
||||
|
||||
public boolean shulkerBoxDropContentsWhenDestroyed = true;
|
||||
+ public boolean enableEntityThrottling = false;
|
||||
|
||||
private void gameplaySettings() {
|
||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("gameplay.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
@@ -160,5 +161,6 @@ public class KaiijuWorldConfig {
|
||||
tickWhenEmpty = getBoolean("gameplay.tick-when-empty", tickWhenEmpty);
|
||||
breakRedstoneOnTopOfTrapDoorsEarly = getBoolean("gameplay.break-redstone-on-top-of-trap-doors-early", breakRedstoneOnTopOfTrapDoorsEarly);
|
||||
fixTripWireStateInconsistency = getBoolean("gameplay.fix-tripwire-state-inconsistency", fixTripWireStateInconsistency);
|
||||
+ enableEntityThrottling = getBoolean("gameplay.enable-entity-throttling", enableEntityThrottling);
|
||||
private void optimizationSettings() {
|
||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("optimization.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
+ enableEntityThrottling = getBoolean("optimization.enable-entity-throttling", enableEntityThrottling);
|
||||
}
|
||||
}
|
||||
|
||||
public boolean fixVoidTrading = true;
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/command/KaiijuCommand.java b/src/main/java/dev/kaiijumc/kaiiju/command/KaiijuCommand.java
|
||||
index 6fac162e0ec057af9f3336314d5663554cef0490..efecc7e132c67577577c99bfcf98e2b4ddae14ab 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/command/KaiijuCommand.java
|
||||
@@ -320,7 +317,7 @@ index 991e4c19763a34a6fead88363e007c2d11aad836..24a2d3f496727790f63cb66a2534d442
|
||||
dev.kaiijumc.kaiiju.KaiijuConfig.registerCommands();
|
||||
// Kaiiju end
|
||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
index a4d9c586f096a885b33840e8c1a7406821afb4df..240cb8ebc611cae345f6f4a9d22ab8796f28d591 100644
|
||||
index 66509fa23bfcde70abd3917eb774cf48d5d6da93..8fd9e3cee5a671ef8425311371cde57449ef1d8e 100644
|
||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
+++ b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||
@@ -822,6 +822,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||
@@ -5,21 +5,21 @@ Subject: [PATCH] Toggle safe teleportation
|
||||
|
||||
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index 2cc57d5a759ac3edcd2c3724f7f7b022b3e42f0f..915ac0ab2fc4ee2cdeeaac821a28ed861f9e6c12 100644
|
||||
index ecae04b0cc317b154b29ca80a7246dc19e5d67ba..68074cc41c1e4cd06f2562d44947b63722d5af50 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -153,6 +153,7 @@ public class KaiijuWorldConfig {
|
||||
@@ -159,6 +159,7 @@ public class KaiijuWorldConfig {
|
||||
public boolean tickWhenEmpty = true;
|
||||
public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
||||
public boolean fixTripWireStateInconsistency = true;
|
||||
public boolean enableEntityThrottling = false;
|
||||
+ public boolean safeTeleporting = true;
|
||||
|
||||
private void gameplaySettings() {
|
||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("gameplay.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
@@ -162,5 +163,6 @@ public class KaiijuWorldConfig {
|
||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
||||
@@ -166,5 +167,6 @@ public class KaiijuWorldConfig {
|
||||
tickWhenEmpty = getBoolean("gameplay.tick-when-empty", tickWhenEmpty);
|
||||
breakRedstoneOnTopOfTrapDoorsEarly = getBoolean("gameplay.break-redstone-on-top-of-trap-doors-early", breakRedstoneOnTopOfTrapDoorsEarly);
|
||||
fixTripWireStateInconsistency = getBoolean("gameplay.fix-tripwire-state-inconsistency", fixTripWireStateInconsistency);
|
||||
enableEntityThrottling = getBoolean("gameplay.enable-entity-throttling", enableEntityThrottling);
|
||||
+ safeTeleporting = getBoolean("gameplay.safe-teleportation", safeTeleporting);
|
||||
}
|
||||
}
|
||||
@@ -5,20 +5,20 @@ Subject: [PATCH] Toggle sand duplication
|
||||
|
||||
|
||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
index 915ac0ab2fc4ee2cdeeaac821a28ed861f9e6c12..91749e471488233dd4f2515b1ff51331dea90f53 100644
|
||||
index 68074cc41c1e4cd06f2562d44947b63722d5af50..be32a516c1ee0f95790b8a96c465045ca4355c76 100644
|
||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||
@@ -154,6 +154,7 @@ public class KaiijuWorldConfig {
|
||||
@@ -160,6 +160,7 @@ public class KaiijuWorldConfig {
|
||||
public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
||||
public boolean fixTripWireStateInconsistency = true;
|
||||
public boolean enableEntityThrottling = false;
|
||||
public boolean safeTeleporting = true;
|
||||
+ public boolean sandDuplication = false;
|
||||
|
||||
private void gameplaySettings() {
|
||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("gameplay.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||
@@ -164,5 +165,6 @@ public class KaiijuWorldConfig {
|
||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
||||
@@ -168,5 +169,6 @@ public class KaiijuWorldConfig {
|
||||
breakRedstoneOnTopOfTrapDoorsEarly = getBoolean("gameplay.break-redstone-on-top-of-trap-doors-early", breakRedstoneOnTopOfTrapDoorsEarly);
|
||||
fixTripWireStateInconsistency = getBoolean("gameplay.fix-tripwire-state-inconsistency", fixTripWireStateInconsistency);
|
||||
enableEntityThrottling = getBoolean("gameplay.enable-entity-throttling", enableEntityThrottling);
|
||||
safeTeleporting = getBoolean("gameplay.safe-teleportation", safeTeleporting);
|
||||
+ sandDuplication = getBoolean("gameplay.sand-duplication", sandDuplication);
|
||||
}
|
||||
@@ -0,0 +1,22 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Xymb <xymb@endcrystal.me>
|
||||
Date: Sat, 17 Jun 2023 19:52:29 +0300
|
||||
Subject: [PATCH] Swap distanceToSqr and EntitySelector
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java
|
||||
index b1a6a66ed02706c1adc36dcedfa415f5a24a25a0..bed6f316f4186895fd2e72ff114c4db1e0f53cf1 100644
|
||||
--- a/src/main/java/net/minecraft/world/level/EntityGetter.java
|
||||
+++ b/src/main/java/net/minecraft/world/level/EntityGetter.java
|
||||
@@ -147,9 +147,10 @@ public interface EntityGetter {
|
||||
// Paper start
|
||||
default boolean hasNearbyAlivePlayerThatAffectsSpawning(double x, double y, double z, double range) {
|
||||
for (Player player : this.getLocalPlayers()) { // Folia - region threading
|
||||
- if (EntitySelector.PLAYER_AFFECTS_SPAWNING.test(player)) { // combines NO_SPECTATORS and LIVING_ENTITY_STILL_ALIVE with an "affects spawning" check
|
||||
+ if (true || EntitySelector.PLAYER_AFFECTS_SPAWNING.test(player)) { // combines NO_SPECTATORS and LIVING_ENTITY_STILL_ALIVE with an "affects spawning" check // Kaiiju - Move this down
|
||||
double distanceSqr = player.distanceToSqr(x, y, z);
|
||||
if (range < 0.0D || distanceSqr < range * range) {
|
||||
+ if (EntitySelector.PLAYER_AFFECTS_SPAWNING.test(player)) // Kaiiju
|
||||
return true;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,34 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: Xymb <xymb@endcrystal.me>
|
||||
Date: Sat, 17 Jun 2023 21:03:04 +0300
|
||||
Subject: [PATCH] Use Math.floor instead of fastfloor
|
||||
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/util/MCUtil.java b/src/main/java/io/papermc/paper/util/MCUtil.java
|
||||
index 38441121cf7cdc1d64ef9fc17ae76dc16fbf96f2..3f76e1bc0c08775353d22b7d928536aba9c8ad1d 100644
|
||||
--- a/src/main/java/io/papermc/paper/util/MCUtil.java
|
||||
+++ b/src/main/java/io/papermc/paper/util/MCUtil.java
|
||||
@@ -164,13 +164,19 @@ public final class MCUtil {
|
||||
}
|
||||
|
||||
public static int fastFloor(double x) {
|
||||
- int truncated = (int)x;
|
||||
- return x < (double)truncated ? truncated - 1 : truncated;
|
||||
+ // Kaiiju start - Use Math.floor instead of fastfloor
|
||||
+ return (int)Math.floor(x); // Kaiiju
|
||||
+ //int truncated = (int)x;
|
||||
+ //return x < (double)truncated ? truncated - 1 : truncated;
|
||||
+ // Kaiiju end
|
||||
}
|
||||
|
||||
public static int fastFloor(float x) {
|
||||
- int truncated = (int)x;
|
||||
- return x < (double)truncated ? truncated - 1 : truncated;
|
||||
+ // Kaiiju start - Use Math.floor instead of fastfloor
|
||||
+ return (int)Math.floor(x); // Kaiiju
|
||||
+ //int truncated = (int)x;
|
||||
+ //return x < (double)truncated ? truncated - 1 : truncated;
|
||||
+ // Kaiiju end
|
||||
}
|
||||
|
||||
public static float normalizeYaw(float f) {
|
||||
@@ -0,0 +1,27 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com>
|
||||
Date: Sun, 18 Jun 2023 18:10:19 +0300
|
||||
Subject: [PATCH] Allow user to enable moving into unloaded chunks
|
||||
|
||||
|
||||
diff --git a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||
index a00201eca053ef69b8d903fdb9538444baf85465..bb9f088e3b7b90ab38d794433fc5d30d39e12c76 100644
|
||||
--- a/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||
+++ b/src/main/java/io/papermc/paper/configuration/WorldConfiguration.java
|
||||
@@ -415,14 +415,14 @@ public class WorldConfiguration extends ConfigurationPart {
|
||||
public class Chunks extends Post {
|
||||
@Override
|
||||
public void postProcess() {
|
||||
- this.preventMovingIntoUnloadedChunks = true;
|
||||
+ //this.preventMovingIntoUnloadedChunks = true; // Kaiiju - Don't
|
||||
}
|
||||
// Folia end - region threading - force prevent moving into unloaded chunks
|
||||
|
||||
public AutosavePeriod autoSaveInterval = AutosavePeriod.def();
|
||||
public int maxAutoSaveChunksPerTick = 24;
|
||||
public int fixedChunkInhabitedTime = -1;
|
||||
- public boolean preventMovingIntoUnloadedChunks = false;
|
||||
+ public boolean preventMovingIntoUnloadedChunks = true; // Kaiiju - True not False
|
||||
public Duration delayChunkUnloadsBy = Duration.of("10s");
|
||||
public Reference2IntMap<EntityType<?>> entityPerChunkSaveLimit = Util.make(new Reference2IntOpenHashMap<>(BuiltInRegistries.ENTITY_TYPE.size()), map -> {
|
||||
map.defaultReturnValue(-1);
|
||||
20
patches/server/0030-Don-t-pathfind-outside-region.patch
Normal file
20
patches/server/0030-Don-t-pathfind-outside-region.patch
Normal file
@@ -0,0 +1,20 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com>
|
||||
Date: Mon, 19 Jun 2023 01:49:00 +0300
|
||||
Subject: [PATCH] Don't pathfind outside region
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/ai/behavior/MoveToTargetSink.java b/src/main/java/net/minecraft/world/entity/ai/behavior/MoveToTargetSink.java
|
||||
index 1ab77f3518d1df30f66ae44d7d4fa69e5b32d93a..98bf17441da3169d49de55fe89d79ebe250a2b7e 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/ai/behavior/MoveToTargetSink.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/ai/behavior/MoveToTargetSink.java
|
||||
@@ -107,7 +107,9 @@ public class MoveToTargetSink extends Behavior<Mob> {
|
||||
|
||||
private boolean tryComputePath(Mob entity, WalkTarget walkTarget, long time) {
|
||||
BlockPos blockPos = walkTarget.getTarget().currentBlockPosition();
|
||||
+ if (io.papermc.paper.util.TickThread.isTickThreadFor((ServerLevel) entity.level(), blockPos)) // Kaiiju - Don't pathfind outside region
|
||||
this.path = entity.getNavigation().createPath(blockPos, 0);
|
||||
+ else this.path = null; // Kaiiju - Don't pathfind outside region
|
||||
this.speedModifier = walkTarget.getSpeedModifier();
|
||||
Brain<?> brain = entity.getBrain();
|
||||
if (this.reachedTarget(entity, walkTarget)) {
|
||||
@@ -0,0 +1,32 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com>
|
||||
Date: Mon, 19 Jun 2023 21:30:19 +0300
|
||||
Subject: [PATCH] Don't spam recipe changes on update
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/server/PlayerAdvancements.java b/src/main/java/net/minecraft/server/PlayerAdvancements.java
|
||||
index acc49f66bf34e2507d0ee6fec0a56b11bfc68f46..6c705189b84542db584039763821b222df03e5d1 100644
|
||||
--- a/src/main/java/net/minecraft/server/PlayerAdvancements.java
|
||||
+++ b/src/main/java/net/minecraft/server/PlayerAdvancements.java
|
||||
@@ -147,7 +147,7 @@ public class PlayerAdvancements {
|
||||
if (advancement == null) {
|
||||
// CraftBukkit start
|
||||
if (entry.getKey().getNamespace().equals("minecraft")) {
|
||||
- PlayerAdvancements.LOGGER.warn("Ignored advancement '{}' in progress file {} - it doesn't exist anymore?", entry.getKey(), this.playerSavePath);
|
||||
+ //PlayerAdvancements.LOGGER.warn("Ignored advancement '{}' in progress file {} - it doesn't exist anymore?", entry.getKey(), this.playerSavePath); // Kaiiju - We already know, don't spam.
|
||||
}
|
||||
// CraftBukkit end
|
||||
} else {
|
||||
diff --git a/src/main/java/net/minecraft/stats/ServerRecipeBook.java b/src/main/java/net/minecraft/stats/ServerRecipeBook.java
|
||||
index ea29e07a105f3ba6a878bdccf36e7eaf66280280..8bbb5feea4190344fd6b3a3ae9f1c3cae578b9a6 100644
|
||||
--- a/src/main/java/net/minecraft/stats/ServerRecipeBook.java
|
||||
+++ b/src/main/java/net/minecraft/stats/ServerRecipeBook.java
|
||||
@@ -125,7 +125,7 @@ public class ServerRecipeBook extends RecipeBook {
|
||||
Optional<? extends Recipe<?>> optional = recipeManager.byKey(minecraftkey);
|
||||
|
||||
if (!optional.isPresent()) {
|
||||
- ServerRecipeBook.LOGGER.error("Tried to load unrecognized recipe: {} removed now.", minecraftkey);
|
||||
+ //ServerRecipeBook.LOGGER.error("Tried to load unrecognized recipe: {} removed now.", minecraftkey); // Kaiiju - We already know, don't spam.
|
||||
} else {
|
||||
handler.accept((Recipe) optional.get());
|
||||
}
|
||||
18
patches/server/0032-Fix-visual-respawn-issue.patch
Normal file
18
patches/server/0032-Fix-visual-respawn-issue.patch
Normal file
@@ -0,0 +1,18 @@
|
||||
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||
From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com>
|
||||
Date: Wed, 21 Jun 2023 04:15:44 +0300
|
||||
Subject: [PATCH] Fix visual respawn issue
|
||||
|
||||
|
||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
index 10c7f5c6fc0e5cb8aafbe125dd68635a37b7b1b9..6f589e7e4bbed0b2fa87403c86f18d36672cf1d0 100644
|
||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||
@@ -633,6 +633,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||
++this.deathTime;
|
||||
if (this.deathTime >= 20 && !this.level().isClientSide() && !this.isRemoved() && !this.broadcastedDeath) { // Folia - region threading
|
||||
this.level().broadcastEntityEvent(this, (byte) 60);
|
||||
+ this.broadcastedDeath = true; // Kaiiju - Fix respawn issue / Visual bug
|
||||
if (!(this instanceof ServerPlayer)) this.remove(Entity.RemovalReason.KILLED); // Folia - region threading - don't remove, we want the tick scheduler to be running
|
||||
if ((this instanceof ServerPlayer)) this.unRide(); // Folia - region threading - unmount player when dead
|
||||
}
|
||||
Reference in New Issue
Block a user