Compare commits
42 Commits
build-157
...
feat/async
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
7278888017 | ||
|
|
d1a9c55403 | ||
|
|
29fabdd8f3 | ||
|
|
ae1f11a394 | ||
|
|
b45f3843c2 | ||
|
|
8e31fc9945 | ||
|
|
ccd629843c | ||
|
|
ada5265608 | ||
|
|
f508c9cd84 | ||
|
|
e6c765ef71 | ||
|
|
cb1b2a78ac | ||
|
|
ad43ef6000 | ||
|
|
eb571af123 | ||
|
|
9925aa59c7 | ||
|
|
2dc38b4f88 | ||
|
|
4401555131 | ||
|
|
6da53043d4 | ||
|
|
ea1493dd8f | ||
|
|
e18e9091fb | ||
|
|
40d552627b | ||
|
|
6b0aab7b0b | ||
|
|
3ca4adc05e | ||
|
|
5df1740ff7 | ||
|
|
5c9fc7f289 | ||
|
|
195dfd4e3a | ||
|
|
755fa2e6a4 | ||
|
|
6392fde2e4 | ||
|
|
589b5f62c3 | ||
|
|
1f0e0e1863 | ||
|
|
449d1e5653 | ||
|
|
349ae3bcce | ||
|
|
8c562b0616 | ||
|
|
6657b9cb08 | ||
|
|
3176184ca6 | ||
|
|
bc3e578199 | ||
|
|
8ead6a39e8 | ||
|
|
78ce8c44b0 | ||
|
|
570012207d | ||
|
|
3ced21898b | ||
|
|
47ffdcfec9 | ||
|
|
cb48e11a50 | ||
|
|
47979cce0c |
23
README.md
23
README.md
@@ -1,4 +1,3 @@
|
|||||||
|
|
||||||
<div align="center">
|
<div align="center">
|
||||||
<img src="https://github.com/kugge/Kaiiju/blob/ver/1.19.3/logo.png?" width="32%" height="32%"/>
|
<img src="https://github.com/kugge/Kaiiju/blob/ver/1.19.3/logo.png?" width="32%" height="32%"/>
|
||||||
<h1>Kaiiju</h1>
|
<h1>Kaiiju</h1>
|
||||||
@@ -17,19 +16,20 @@
|
|||||||
- **Auto update**: Automatic upstream updates.
|
- **Auto update**: Automatic upstream updates.
|
||||||
|
|
||||||
### Notable
|
### 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.
|
- **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
|
### Configuration
|
||||||
|
|
||||||
```yaml
|
```yaml
|
||||||
verbose: false
|
|
||||||
region-format:
|
|
||||||
debug: false
|
|
||||||
network:
|
network:
|
||||||
send-null-entity-packets: true
|
send-null-entity-packets: true
|
||||||
alternate-keepalive: false
|
alternate-keepalive: false
|
||||||
|
optimization:
|
||||||
|
disable-vanish-api: false
|
||||||
|
disable-player-stats: false
|
||||||
|
disable-arm-swing-event: false
|
||||||
|
disable-ensure-tick-thread-checks: false
|
||||||
gameplay:
|
gameplay:
|
||||||
server-mod-name: Kaiiju
|
server-mod-name: Kaiiju
|
||||||
shared-random-for-players: true
|
shared-random-for-players: true
|
||||||
@@ -40,13 +40,20 @@ world-settings:
|
|||||||
linear:
|
linear:
|
||||||
compression-level: 1
|
compression-level: 1
|
||||||
crash-on-broken-symlink: true
|
crash-on-broken-symlink: true
|
||||||
gameplay:
|
optimization:
|
||||||
shulker-box-drop-contents-when-destroyed: true
|
shulker-box-drop-contents-when-destroyed: true
|
||||||
|
enable-entity-throttling: false
|
||||||
|
disable-achievements: false
|
||||||
|
disable-creatures-spawn-events: false
|
||||||
|
disable-dolphin-swim-to-treasure: false
|
||||||
|
gameplay:
|
||||||
fix-void-trading: true
|
fix-void-trading: true
|
||||||
optimize-hoppers: true
|
optimize-hoppers: true
|
||||||
tick-when-empty: true
|
tick-when-empty: true
|
||||||
break-redstone-on-top-of-trap-doors-early: true
|
break-redstone-on-top-of-trap-doors-early: true
|
||||||
config-version: 1
|
fix-tripwire-state-inconsistency: true
|
||||||
|
safe-teleportation: true
|
||||||
|
sand-duplication: false
|
||||||
```
|
```
|
||||||
Documentation: [Kaiiju Wiki](https://github.com/KaiijuMC/Kaiiju/wiki/Configuration)
|
Documentation: [Kaiiju Wiki](https://github.com/KaiijuMC/Kaiiju/wiki/Configuration)
|
||||||
|
|
||||||
|
|||||||
@@ -2,7 +2,7 @@ group = dev.kaiijumc.kaiiju
|
|||||||
version = 1.20.1-R0.1-SNAPSHOT
|
version = 1.20.1-R0.1-SNAPSHOT
|
||||||
mcVersion = 1.20.1
|
mcVersion = 1.20.1
|
||||||
|
|
||||||
foliaRef = 7c6e2514d2ecd9f5f7db911aab29bfe7f373eb9e
|
foliaRef = daacd4255022f3a1bf74dd3e84f751be838678ac
|
||||||
|
|
||||||
org.gradle.caching=true
|
org.gradle.caching=true
|
||||||
org.gradle.parallel=true
|
org.gradle.parallel=true
|
||||||
|
|||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Kaiiju Configuration
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
diff --git a/src/main/java/org/bukkit/Server.java b/src/main/java/org/bukkit/Server.java
|
||||||
index 1ef4cf3b19d58565e052829358eb5902f070ae02..490a70920dca1cfde4796cc2fb69fdb98942bbdc 100644
|
index 57d4789c1eb00cb376adce31ece2b6672c4a12a9..aba8170a8254558b33a5ac6635c30c5cc7e39296 100644
|
||||||
--- a/src/main/java/org/bukkit/Server.java
|
--- a/src/main/java/org/bukkit/Server.java
|
||||||
+++ b/src/main/java/org/bukkit/Server.java
|
+++ b/src/main/java/org/bukkit/Server.java
|
||||||
@@ -2007,6 +2007,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
@@ -2030,6 +2030,13 @@ public interface Server extends PluginMessageRecipient, net.kyori.adventure.audi
|
||||||
}
|
}
|
||||||
// Paper end
|
// Paper end
|
||||||
|
|
||||||
|
|||||||
19
patches/removed/0039-Fix-teleportAsync-rotation-API.patch
Normal file
19
patches/removed/0039-Fix-teleportAsync-rotation-API.patch
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: kugge <sofiane.djerbi38@gmail.com>
|
||||||
|
Date: Thu, 22 Jun 2023 20:32:58 +0200
|
||||||
|
Subject: [PATCH] Fix teleportAsync rotation API
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
|
index 76bcfda336e9cfa039d80ea3ccbebbc3d2b13f7f..24617b3994c0f148f1c17928e18aa1e1a784e6f5 100644
|
||||||
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
|
||||||
|
@@ -1329,7 +1329,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {
|
||||||
|
boolean success = nmsEntity.teleportAsync(
|
||||||
|
((CraftWorld)locationClone.getWorld()).getHandle(),
|
||||||
|
new net.minecraft.world.phys.Vec3(locationClone.getX(), locationClone.getY(), locationClone.getZ()),
|
||||||
|
- null, null, net.minecraft.world.phys.Vec3.ZERO,
|
||||||
|
+ locationClone.getYaw(), locationClone.getPitch(), net.minecraft.world.phys.Vec3.ZERO, // Kaiiju - fix teleportAsync() rotation
|
||||||
|
cause == null ? TeleportCause.UNKNOWN : cause,
|
||||||
|
Entity.TELEPORT_FLAG_LOAD_CHUNK | Entity.TELEPORT_FLAG_UNMOUNT, // preserve behavior with old API: dismount the entity so it can teleport
|
||||||
|
(Entity entityTp) -> {
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Rebranding
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index 215366d7cc3720805d2dfde0662372ecede8383c..24f16ac70f993b9645ff01473633f542e57b0fc0 100644
|
index 93f9abd2169a48a4fd32f712c68be7b49b034e83..6d1d7a99a9ab2f165970d7da33702c16d7b18fd8 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -8,7 +8,7 @@ plugins {
|
@@ -14,7 +14,7 @@ val alsoShade: Configuration by configurations.creating
|
||||||
|
|
||||||
dependencies {
|
dependencies {
|
||||||
// Folia start
|
// Folia start
|
||||||
@@ -17,7 +17,7 @@ index 215366d7cc3720805d2dfde0662372ecede8383c..24f16ac70f993b9645ff01473633f542
|
|||||||
implementation("io.papermc.paper:paper-mojangapi:1.19.3-R0.1-SNAPSHOT") {
|
implementation("io.papermc.paper:paper-mojangapi:1.19.3-R0.1-SNAPSHOT") {
|
||||||
exclude("io.papermc.paper", "paper-api")
|
exclude("io.papermc.paper", "paper-api")
|
||||||
}
|
}
|
||||||
@@ -68,7 +68,7 @@ tasks.jar {
|
@@ -76,7 +76,7 @@ tasks.jar {
|
||||||
attributes(
|
attributes(
|
||||||
"Main-Class" to "org.bukkit.craftbukkit.Main",
|
"Main-Class" to "org.bukkit.craftbukkit.Main",
|
||||||
"Implementation-Title" to "CraftBukkit",
|
"Implementation-Title" to "CraftBukkit",
|
||||||
@@ -132,7 +132,7 @@ index abe37c7c3c6f5ab73afd738ec78f06d7e4d2ed96..52fc6bb99f6024273c7438d01314b576
|
|||||||
stringbuilder.append(CrashReport.DATE_TIME_FORMATTER.format(ZonedDateTime.now()));
|
stringbuilder.append(CrashReport.DATE_TIME_FORMATTER.format(ZonedDateTime.now()));
|
||||||
stringbuilder.append("\n");
|
stringbuilder.append("\n");
|
||||||
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
diff --git a/src/main/java/net/minecraft/server/MinecraftServer.java b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
index 11ff1bc559316da426070867f045720ebd8c1962..cc1a7c4d38874ec218f7151685ae6cc00295c2e4 100644
|
index 355acd1dd3b2e9f2a086a8d95928cdebbf63d06f..7e5645d9cb64ce17f60c85619f5640c8de4b1e86 100644
|
||||||
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
--- a/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
+++ b/src/main/java/net/minecraft/server/MinecraftServer.java
|
||||||
@@ -995,7 +995,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
@@ -995,7 +995,7 @@ public abstract class MinecraftServer extends ReentrantBlockableEventLoop<TickTa
|
||||||
@@ -154,10 +154,10 @@ index 11ff1bc559316da426070867f045720ebd8c1962..cc1a7c4d38874ec218f7151685ae6cc0
|
|||||||
|
|
||||||
public SystemReport fillSystemReport(SystemReport details) {
|
public SystemReport fillSystemReport(SystemReport details) {
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 20af7484bf570d28cd9723fdbb1ec07657117367..753594551faa1bff4317386c3df927f486900dab 100644
|
index 23556931a812ed9b2dac5b4b4712961c2d9aa025..20c9e368bd4cb67591447395cf3c775e145a0ba5 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -261,7 +261,7 @@ import javax.annotation.Nullable; // Paper
|
@@ -264,7 +264,7 @@ import javax.annotation.Nullable; // Paper
|
||||||
import javax.annotation.Nonnull; // Paper
|
import javax.annotation.Nonnull; // Paper
|
||||||
|
|
||||||
public final class CraftServer implements Server {
|
public final class CraftServer implements Server {
|
||||||
@@ -167,10 +167,10 @@ index 20af7484bf570d28cd9723fdbb1ec07657117367..753594551faa1bff4317386c3df927f4
|
|||||||
private final String bukkitVersion = Versioning.getBukkitVersion();
|
private final String bukkitVersion = Versioning.getBukkitVersion();
|
||||||
private final Logger logger = Logger.getLogger("Minecraft");
|
private final Logger logger = Logger.getLogger("Minecraft");
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
index 564c72d6351721505dbffaf5af732db2dd3210ac..957ae18874710ad0e10f4210fc819fe555437c01 100644
|
index fae85d064bcea3589a69483ec6ac6c4cca73ad9a..895945b56fb75cf4ac0429b1d9263a78c2d523a1 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftLivingEntity.java
|
||||||
@@ -886,7 +886,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
@@ -920,7 +920,7 @@ public class CraftLivingEntity extends CraftEntity implements LivingEntity {
|
||||||
return EntityCategory.WATER;
|
return EntityCategory.WATER;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
|||||||
@@ -451,10 +451,10 @@ index 8cf4428d8140fd03f0ad8fa1d148a04d8caefda8..fb71843793e699b2ccfaa3b7e4c2bb7d
|
|||||||
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
this.world = new CraftWorld((ServerLevel) this, gen, biomeProvider, env);
|
||||||
|
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftServer.java b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
index 753594551faa1bff4317386c3df927f486900dab..714db83db78d5bd66d8353bf9b8c4a6b1734fce4 100644
|
index 20c9e368bd4cb67591447395cf3c775e145a0ba5..f421a150a7448362572c476fd50718f0c879e43d 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftServer.java
|
||||||
@@ -1094,6 +1094,7 @@ public final class CraftServer implements Server {
|
@@ -1097,6 +1097,7 @@ public final class CraftServer implements Server {
|
||||||
|
|
||||||
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
|
org.spigotmc.SpigotConfig.init((File) console.options.valueOf("spigot-settings")); // Spigot
|
||||||
this.console.paperConfigurations.reloadConfigs(this.console);
|
this.console.paperConfigurations.reloadConfigs(this.console);
|
||||||
@@ -462,7 +462,7 @@ index 753594551faa1bff4317386c3df927f486900dab..714db83db78d5bd66d8353bf9b8c4a6b
|
|||||||
for (ServerLevel world : this.console.getAllLevels()) {
|
for (ServerLevel world : this.console.getAllLevels()) {
|
||||||
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
// world.serverLevelData.setDifficulty(config.difficulty); // Paper - per level difficulty
|
||||||
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
world.setSpawnSettings(world.serverLevelData.getDifficulty() != Difficulty.PEACEFUL && config.spawnMonsters, config.spawnAnimals); // Paper - per level difficulty (from MinecraftServer#setDifficulty(ServerLevel, Difficulty, boolean))
|
||||||
@@ -1109,6 +1110,7 @@ public final class CraftServer implements Server {
|
@@ -1112,6 +1113,7 @@ public final class CraftServer implements Server {
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
world.spigotConfig.init(); // Spigot
|
world.spigotConfig.init(); // Spigot
|
||||||
@@ -470,7 +470,7 @@ index 753594551faa1bff4317386c3df927f486900dab..714db83db78d5bd66d8353bf9b8c4a6b
|
|||||||
}
|
}
|
||||||
|
|
||||||
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
Plugin[] pluginClone = pluginManager.getPlugins().clone(); // Paper
|
||||||
@@ -1124,6 +1126,7 @@ public final class CraftServer implements Server {
|
@@ -1127,6 +1129,7 @@ public final class CraftServer implements Server {
|
||||||
this.reloadData();
|
this.reloadData();
|
||||||
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
org.spigotmc.SpigotConfig.registerCommands(); // Spigot
|
||||||
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
io.papermc.paper.command.PaperCommands.registerCommands(this.console); // Paper
|
||||||
@@ -478,7 +478,7 @@ index 753594551faa1bff4317386c3df927f486900dab..714db83db78d5bd66d8353bf9b8c4a6b
|
|||||||
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
this.overrideAllCommandBlockCommands = this.commandsConfiguration.getStringList("command-block-overrides").contains("*");
|
||||||
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
this.ignoreVanillaPermissions = this.commandsConfiguration.getBoolean("ignore-vanilla-permissions");
|
||||||
|
|
||||||
@@ -2893,6 +2896,13 @@ public final class CraftServer implements Server {
|
@@ -2907,6 +2910,13 @@ public final class CraftServer implements Server {
|
||||||
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
return CraftServer.this.console.paperConfigurations.createLegacyObject(CraftServer.this.console);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -493,7 +493,7 @@ index 753594551faa1bff4317386c3df927f486900dab..714db83db78d5bd66d8353bf9b8c4a6b
|
|||||||
public void restart() {
|
public void restart() {
|
||||||
org.spigotmc.RestartCommand.restart();
|
org.spigotmc.RestartCommand.restart();
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
index 717e292040ed7779eb4b6c5fa26665d3df9024e7..d8ca697663ace353e88bfabc8997b58230d3d811 100644
|
index daed278d1bcf84ee42749f24e311b22b70015d79..1f194f5324ab5efc5ae11d248dd09f875624559c 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
@@ -173,6 +173,14 @@ public class Main {
|
@@ -173,6 +173,14 @@ public class Main {
|
||||||
|
|||||||
@@ -9,10 +9,10 @@ This format saves about 50% of disk space.
|
|||||||
Documentation: https://github.com/xymb-endcrystalme/LinearRegionFileFormatTools
|
Documentation: https://github.com/xymb-endcrystalme/LinearRegionFileFormatTools
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index 6d6b1973783604369c7ff95d552c43edf149a46a..a26cc214dccab8c9422f9a45e2a5eeda374c0ead 100644
|
index 6d1d7a99a9ab2f165970d7da33702c16d7b18fd8..164678d8c7f0a0a66adc957a86849fa927b7cb73 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -13,6 +13,10 @@ dependencies {
|
@@ -19,6 +19,10 @@ dependencies {
|
||||||
exclude("io.papermc.paper", "paper-api")
|
exclude("io.papermc.paper", "paper-api")
|
||||||
}
|
}
|
||||||
// Folia end
|
// Folia end
|
||||||
@@ -540,7 +540,7 @@ index 513833c2ea23df5b079d157bc5cb89d5c9754c0b..abf5e2a06af9853b58ac9107cd6e9787
|
|||||||
long expectedChunks = (long)regionFiles.length * (32L * 32L);
|
long expectedChunks = (long)regionFiles.length * (32L * 32L);
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
index 916bfdfb13d8f8093e1908a7c35344b83d0ee0ac..61c6bc2859235874aefac71e9e55162f0a89f29f 100644
|
index 25fe439c8d1e88a86e85ac9a4761425d98ee6c4f..c4d28d887b4cc71dc713b1e3f46bc80f4484a95d 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
@@ -269,7 +269,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
@@ -269,7 +269,7 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
@@ -587,7 +587,7 @@ index 916bfdfb13d8f8093e1908a7c35344b83d0ee0ac..61c6bc2859235874aefac71e9e55162f
|
|||||||
regionFile.setStatus(chunkPos.x, chunkPos.z, ChunkSerializer.getStatus(compound));
|
regionFile.setStatus(chunkPos.x, chunkPos.z, ChunkSerializer.getStatus(compound));
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
index b126435b07572e7b8f41647a0179164b680e9e64..19fb8ca8a6f699ce596103070db726fcb427865e 100644
|
index 042ca6b3faae5249210567f2c26dff404974e1ff..7099a44a2322ab390c21e74668c8657dcc9e5e87 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/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 {
|
@@ -426,8 +426,8 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
@@ -1012,7 +1012,7 @@ index 5561b8499a0503b850974b1dc309edfb80219549..9394d191c56aab78e63fd3f283efedd6
|
|||||||
this.factory = factory;
|
this.factory = factory;
|
||||||
this.fixerUpper = dataFixer;
|
this.fixerUpper = dataFixer;
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
index 23b8dde3cd185b372d4adc97201a422cebbbe804..6012ea6d3fb6e731ff491ef134085013c2c6075c 100644
|
index 723ae4b75c84fe952377c02d42cf7a710f7047ea..1bda5bf6d69bd3b7ceda03c48760629b1366e792 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
|
||||||
@@ -561,7 +561,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
@@ -561,7 +561,7 @@ public class CraftWorld extends CraftRegionAccessor implements World {
|
||||||
|
|||||||
@@ -22,7 +22,7 @@ index ab08e11f13921163b8ff1ff51ff9e9b86d2b47c7..b42a3466f145a92608c8746fd4beb529
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
index 82ffef34b596a98faa245ba401e67add9d9ac7d0..b2ed157a17cada4887e543a23ee65642eb54637e 100644
|
index b2feaea169fa9d3977c3dfdfdf3dea9283f5d854..1ab0d3e0653028b7d93177c28c1f532d8b10b1b1 100644
|
||||||
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
@@ -263,6 +263,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -263,6 +263,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
@@ -54,7 +54,7 @@ index 82ffef34b596a98faa245ba401e67add9d9ac7d0..b2ed157a17cada4887e543a23ee65642
|
|||||||
if (this.keepAlivePending) {
|
if (this.keepAlivePending) {
|
||||||
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
|
if (!this.processedDisconnect && elapsedTime >= KEEPALIVE_LIMIT) { // check keepalive limit, don't fire if already disconnected
|
||||||
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info
|
ServerGamePacketListenerImpl.LOGGER.warn("{} was kicked due to keepalive timeout!", this.player.getScoreboardName()); // more info
|
||||||
@@ -3514,6 +3529,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
@@ -3523,6 +3538,16 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
|
public void handleKeepAlive(ServerboundKeepAlivePacket packet) {
|
||||||
|
|||||||
@@ -4,6 +4,18 @@ Date: Wed, 21 Jun 2023 17:26:24 +0200
|
|||||||
Subject: [PATCH] Optimization Configuration
|
Subject: [PATCH] Optimization Configuration
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
index b42a3466f145a92608c8746fd4beb529b4a60b01..7b56cc1275319cf07a4a25280e0ff900bdca8afa 100644
|
||||||
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
@@ -206,4 +206,7 @@ public class KaiijuConfig {
|
||||||
|
sendNullEntityPackets = getBoolean("network.send-null-entity-packets", sendNullEntityPackets);
|
||||||
|
alternateKeepAlive = getBoolean("network.alternate-keepalive", alternateKeepAlive);
|
||||||
|
}
|
||||||
|
+
|
||||||
|
+ private static void optimizationSettings() {
|
||||||
|
+ }
|
||||||
|
}
|
||||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
index a6e7af5f4148e067660e9f5beeacde3a59a1de9c..6bd14857e0b0ef233f17f1a6e3e0fb313d59f641 100644
|
index a6e7af5f4148e067660e9f5beeacde3a59a1de9c..6bd14857e0b0ef233f17f1a6e3e0fb313d59f641 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
|
|||||||
@@ -5,12 +5,12 @@ Subject: [PATCH] Gameplay Configuration
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
index b42a3466f145a92608c8746fd4beb529b4a60b01..6d0e1edfb7d3c020f70f6a194f16e836b462c4de 100644
|
index 7b56cc1275319cf07a4a25280e0ff900bdca8afa..fdc4cdbf34ed10f6523dceac7c1931d3ca4eb522 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
@@ -206,4 +206,7 @@ public class KaiijuConfig {
|
@@ -209,4 +209,7 @@ public class KaiijuConfig {
|
||||||
sendNullEntityPackets = getBoolean("network.send-null-entity-packets", sendNullEntityPackets);
|
|
||||||
alternateKeepAlive = getBoolean("network.alternate-keepalive", alternateKeepAlive);
|
private static void optimizationSettings() {
|
||||||
}
|
}
|
||||||
+
|
+
|
||||||
+ private static void gameplaySettings() {
|
+ private static void gameplaySettings() {
|
||||||
|
|||||||
@@ -5,11 +5,11 @@ Subject: [PATCH] Server mod name
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
index 6d0e1edfb7d3c020f70f6a194f16e836b462c4de..9fb33b35b4d6842ca8597f77a4116e3983ebfbcb 100644
|
index fdc4cdbf34ed10f6523dceac7c1931d3ca4eb522..e1f50adfa216320bc53b460d11666064cb58c969 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
@@ -207,6 +207,9 @@ public class KaiijuConfig {
|
@@ -210,6 +210,9 @@ public class KaiijuConfig {
|
||||||
alternateKeepAlive = getBoolean("network.alternate-keepalive", alternateKeepAlive);
|
private static void optimizationSettings() {
|
||||||
}
|
}
|
||||||
|
|
||||||
+ public static String serverModName = "Kaiiju";
|
+ public static String serverModName = "Kaiiju";
|
||||||
|
|||||||
@@ -6,20 +6,21 @@ Subject: [PATCH] Toggle optimize hoppers
|
|||||||
Paper optimize hoppers patch break a lot of technical redstone farms because of piston updates. (Example: twiti888 wood farm)
|
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
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
index 95ed6cb7b94797187d1011cab344e187b39d9193..72bcf8e35593bb54079b6cbd9238acdcd43c3e46 100644
|
index 95ed6cb7b94797187d1011cab344e187b39d9193..6d7356cc07da58b1cef8d8963e790251d765de2c 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
@@ -153,8 +153,10 @@ public class KaiijuWorldConfig {
|
@@ -147,9 +147,11 @@ public class KaiijuWorldConfig {
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean shulkerBoxDropContentsWhenDestroyed = true;
|
||||||
|
+ public boolean optimizeHoppers = true;
|
||||||
|
|
||||||
|
private void optimizationSettings() {
|
||||||
|
shulkerBoxDropContentsWhenDestroyed = getBoolean("optimization.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||||
|
+ optimizeHoppers = getBoolean("optimization.optimize-hoppers", optimizeHoppers);
|
||||||
}
|
}
|
||||||
|
|
||||||
public boolean fixVoidTrading = true;
|
public boolean fixVoidTrading = true;
|
||||||
+ public boolean optimizeHoppers = true;
|
|
||||||
|
|
||||||
private void gameplaySettings() {
|
|
||||||
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
|
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 4825a74ce4893dafdb70ae1badf3d2e1930d01a1..762b763f271c3208b4f8a7e346897207ec5beb6c 100644
|
index 4825a74ce4893dafdb70ae1badf3d2e1930d01a1..762b763f271c3208b4f8a7e346897207ec5beb6c 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
--- a/src/main/java/net/minecraft/world/level/block/entity/HopperBlockEntity.java
|
||||||
|
|||||||
@@ -5,21 +5,22 @@ 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
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
index 72bcf8e35593bb54079b6cbd9238acdcd43c3e46..9802039d34eb1717b712c9041fd9f602fccae236 100644
|
index 6d7356cc07da58b1cef8d8963e790251d765de2c..601b9867d839f4928ba993ee8f00df9c330a0fe3 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
@@ -154,9 +154,11 @@ public class KaiijuWorldConfig {
|
@@ -148,10 +148,12 @@ public class KaiijuWorldConfig {
|
||||||
|
|
||||||
public boolean fixVoidTrading = true;
|
public boolean shulkerBoxDropContentsWhenDestroyed = true;
|
||||||
public boolean optimizeHoppers = true;
|
public boolean optimizeHoppers = true;
|
||||||
+ public boolean tickWhenEmpty = true;
|
+ public boolean tickWhenEmpty = true;
|
||||||
|
|
||||||
private void gameplaySettings() {
|
private void optimizationSettings() {
|
||||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
shulkerBoxDropContentsWhenDestroyed = getBoolean("optimization.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||||
optimizeHoppers = getBoolean("gameplay.optimize-hoppers", optimizeHoppers);
|
optimizeHoppers = getBoolean("optimization.optimize-hoppers", optimizeHoppers);
|
||||||
+ tickWhenEmpty = getBoolean("gameplay.tick-when-empty", tickWhenEmpty);
|
+ tickWhenEmpty = getBoolean("optimization.tick-when-empty", tickWhenEmpty);
|
||||||
}
|
}
|
||||||
}
|
|
||||||
|
public boolean fixVoidTrading = true;
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
index 7f39e36037d55278d15399196459e51b885c5d1e..66509fa23bfcde70abd3917eb774cf48d5d6da93 100644
|
index 7f39e36037d55278d15399196459e51b885c5d1e..66509fa23bfcde70abd3917eb774cf48d5d6da93 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
|
|||||||
@@ -6,19 +6,17 @@ Subject: [PATCH] Toggle break redstone on top of trap doors early
|
|||||||
That patch break vanilla mechanics such as portal slicing.
|
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
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
index 9802039d34eb1717b712c9041fd9f602fccae236..3355935bbf8059d8a539dcefb84e3c0785314ce2 100644
|
index 601b9867d839f4928ba993ee8f00df9c330a0fe3..e7ee85b09aa4438868e068551280b13e84cdfdb8 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
@@ -155,10 +155,12 @@ public class KaiijuWorldConfig {
|
@@ -157,8 +157,10 @@ public class KaiijuWorldConfig {
|
||||||
|
}
|
||||||
|
|
||||||
public boolean fixVoidTrading = true;
|
public boolean fixVoidTrading = true;
|
||||||
public boolean optimizeHoppers = true;
|
|
||||||
public boolean tickWhenEmpty = true;
|
|
||||||
+ public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
+ public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
||||||
|
|
||||||
private void gameplaySettings() {
|
private void gameplaySettings() {
|
||||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
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);
|
+ breakRedstoneOnTopOfTrapDoorsEarly = getBoolean("gameplay.break-redstone-on-top-of-trap-doors-early", breakRedstoneOnTopOfTrapDoorsEarly);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -7,10 +7,10 @@ This has been benchmarked on a huge gold farm.
|
|||||||
Resulting in significative performance improvements.
|
Resulting in significative performance improvements.
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/LivingEntity.java b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
index 511ec694f3336a5d7276d171dd2345ed2ea1acac..10c7f5c6fc0e5cb8aafbe125dd68635a37b7b1b9 100644
|
index f636bdf1075fa784ce7ee25478d4d94bacb05677..2da522f89a7c44208ca1ba9139efe723a519fabc 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/LivingEntity.java
|
||||||
@@ -3663,7 +3663,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
@@ -3661,7 +3661,7 @@ public abstract class LivingEntity extends Entity implements Attackable {
|
||||||
Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ());
|
Vec3 vec3d1 = new Vec3(entity.getX(), entity.getEyeY(), entity.getZ());
|
||||||
|
|
||||||
// Paper - diff on change - used in CraftLivingEntity#hasLineOfSight(Location) and CraftWorld#lineOfSightExists
|
// Paper - diff on change - used in CraftLivingEntity#hasLineOfSight(Location) and CraftWorld#lineOfSightExists
|
||||||
|
|||||||
@@ -6,10 +6,10 @@ Subject: [PATCH] Add SIMD utilities
|
|||||||
Patch from Pufferfish
|
Patch from Pufferfish
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index f213706442537201de0d74ca8a51cc93cb9d5220..1615346024037f2abe0fcfcfc5ea7713505bebca 100644
|
index 164678d8c7f0a0a66adc957a86849fa927b7cb73..a151ca3a0803a5e653674e51e8d41a2f38b1f3df 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -60,6 +60,12 @@ dependencies {
|
@@ -68,6 +68,12 @@ dependencies {
|
||||||
}
|
}
|
||||||
|
|
||||||
val craftbukkitPackageVersion = "1_20_R1" // Paper
|
val craftbukkitPackageVersion = "1_20_R1" // Paper
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Toggle shared random for players
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
index 9fb33b35b4d6842ca8597f77a4116e3983ebfbcb..51a49fc98147eef7bb50e7a2c71e0e8ed75e3dd6 100644
|
index e1f50adfa216320bc53b460d11666064cb58c969..c934341c17caf4696065ac6c39bdfef570c62f13 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
@@ -208,8 +208,10 @@ public class KaiijuConfig {
|
@@ -211,8 +211,10 @@ public class KaiijuConfig {
|
||||||
}
|
}
|
||||||
|
|
||||||
public static String serverModName = "Kaiiju";
|
public static String serverModName = "Kaiiju";
|
||||||
@@ -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
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index deaf4b65b6c9f3dbab6578c25fb78ca84507f70b..cdf669fc1065632033fab4154f0113474b984152 100644
|
index 27b57db24587337ccdce29e492052ca419863323..fc6279a39fd5e1bd02b2d9e77f451cd9ba1baf78 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/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 {
|
@@ -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
|
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 7b664f32868028758d0c6ee1eaa82efcd83661d2..8b325c764df7003f8e6984a85267cd78fc7672ed 100644
|
index c5df121d6194a97b20dc390698991b9c72dba538..9990fccc741a139c57528f70157ae63dbe3fd8e8 100644
|
||||||
--- a/src/main/java/io/papermc/paper/chunk/system/RegionizedPlayerChunkLoader.java
|
--- a/src/main/java/io/papermc/paper/chunk/system/RegionizedPlayerChunkLoader.java
|
||||||
+++ b/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 {
|
@@ -485,7 +485,12 @@ public class RegionizedPlayerChunkLoader {
|
||||||
@@ -6,30 +6,28 @@ Subject: [PATCH] Toggle fix TripWire state inconsistency
|
|||||||
This allow string duplication
|
This allow string duplication
|
||||||
|
|
||||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
index 3355935bbf8059d8a539dcefb84e3c0785314ce2..5c87df0fd68e4971201836b6301d526378271af5 100644
|
index e7ee85b09aa4438868e068551280b13e84cdfdb8..8d7821d8b1a3615eaef1073d9dab690559b85f81 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
@@ -156,11 +156,13 @@ public class KaiijuWorldConfig {
|
@@ -158,9 +158,11 @@ public class KaiijuWorldConfig {
|
||||||
public boolean optimizeHoppers = true;
|
|
||||||
public boolean tickWhenEmpty = true;
|
public boolean fixVoidTrading = true;
|
||||||
public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
||||||
+ public boolean fixTripWireStateInconsistency = true;
|
+ public boolean fixTripWireStateInconsistency = true;
|
||||||
|
|
||||||
private void gameplaySettings() {
|
private void gameplaySettings() {
|
||||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
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);
|
breakRedstoneOnTopOfTrapDoorsEarly = getBoolean("gameplay.break-redstone-on-top-of-trap-doors-early", breakRedstoneOnTopOfTrapDoorsEarly);
|
||||||
+ fixTripWireStateInconsistency = getBoolean("gameplay.fix-tripwire-state-inconsistency", fixTripWireStateInconsistency);
|
+ fixTripWireStateInconsistency = getBoolean("gameplay.fix-tripwire-state-inconsistency", fixTripWireStateInconsistency);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
|
diff --git a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
|
||||||
index 7f60175bf671d282c11e9084670d2bb900968255..baa6d2bb3a4bec920cb8b57cb08d706929985ea9 100644
|
index cb2ff8d94308c637a498d2737f86f6af4c9c1b83..84c407dfd19924d12f1c25addbb613e607445fd9 100644
|
||||||
--- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
|
--- a/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
|
||||||
+++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
|
+++ b/src/main/java/net/minecraft/world/level/block/TripWireBlock.java
|
||||||
@@ -74,7 +74,7 @@ public class TripWireBlock extends Block {
|
@@ -78,7 +78,7 @@ public class TripWireBlock extends Block {
|
||||||
@Override
|
|
||||||
public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean moved) {
|
public void onRemove(BlockState state, Level world, BlockPos pos, BlockState newState, boolean moved) {
|
||||||
|
if (io.papermc.paper.configuration.GlobalConfiguration.get().blockUpdates.disableTripwireUpdates) return; // Paper - prevent adjacent tripwires from updating
|
||||||
if (!moved && !state.is(newState.getBlock())) {
|
if (!moved && !state.is(newState.getBlock())) {
|
||||||
- this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix state inconsistency
|
- this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), true); // Paper - fix state inconsistency
|
||||||
+ this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), world.kaiijuConfig.fixTripWireStateInconsistency); // Paper - fix state inconsistency // Kaiiju - Toggle this
|
+ this.updateSource(world, pos, (BlockState) state.setValue(TripWireBlock.POWERED, true), world.kaiijuConfig.fixTripWireStateInconsistency); // Paper - fix state inconsistency // Kaiiju - Toggle this
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Entity ticking throttling & removal to prevent lag.
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/build.gradle.kts b/build.gradle.kts
|
diff --git a/build.gradle.kts b/build.gradle.kts
|
||||||
index 1615346024037f2abe0fcfcfc5ea7713505bebca..d24f5fdc6a8c34774933a5cd8bfed8571299bd35 100644
|
index a151ca3a0803a5e653674e51e8d41a2f38b1f3df..30da22816eecfce179d365fa4de2b979438a302a 100644
|
||||||
--- a/build.gradle.kts
|
--- a/build.gradle.kts
|
||||||
+++ b/build.gradle.kts
|
+++ b/build.gradle.kts
|
||||||
@@ -17,6 +17,7 @@ dependencies {
|
@@ -23,6 +23,7 @@ dependencies {
|
||||||
implementation("com.github.luben:zstd-jni:1.5.4-1")
|
implementation("com.github.luben:zstd-jni:1.5.4-1")
|
||||||
implementation("org.lz4:lz4-java:1.8.0")
|
implementation("org.lz4:lz4-java:1.8.0")
|
||||||
// Kaiiju end
|
// Kaiiju end
|
||||||
@@ -252,17 +252,19 @@ index 0000000000000000000000000000000000000000..eb690efacf083e4ff3e321578b12c534
|
|||||||
+ }
|
+ }
|
||||||
+}
|
+}
|
||||||
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
index 5c87df0fd68e4971201836b6301d526378271af5..ecae04b0cc317b154b29ca80a7246dc19e5d67ba 100644
|
index 8d7821d8b1a3615eaef1073d9dab690559b85f81..816db23fa64aab69e3034484c00645ebd0479978 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
@@ -147,9 +147,11 @@ public class KaiijuWorldConfig {
|
@@ -149,11 +149,13 @@ public class KaiijuWorldConfig {
|
||||||
}
|
|
||||||
|
|
||||||
public boolean shulkerBoxDropContentsWhenDestroyed = true;
|
public boolean shulkerBoxDropContentsWhenDestroyed = true;
|
||||||
|
public boolean optimizeHoppers = true;
|
||||||
|
public boolean tickWhenEmpty = true;
|
||||||
+ public boolean enableEntityThrottling = false;
|
+ public boolean enableEntityThrottling = false;
|
||||||
|
|
||||||
private void optimizationSettings() {
|
private void optimizationSettings() {
|
||||||
shulkerBoxDropContentsWhenDestroyed = getBoolean("optimization.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
shulkerBoxDropContentsWhenDestroyed = getBoolean("optimization.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||||
|
optimizeHoppers = getBoolean("optimization.optimize-hoppers", optimizeHoppers);
|
||||||
|
tickWhenEmpty = getBoolean("optimization.tick-when-empty", tickWhenEmpty);
|
||||||
+ enableEntityThrottling = getBoolean("optimization.enable-entity-throttling", enableEntityThrottling);
|
+ enableEntityThrottling = getBoolean("optimization.enable-entity-throttling", enableEntityThrottling);
|
||||||
}
|
}
|
||||||
|
|
||||||
@@ -317,7 +319,7 @@ index 991e4c19763a34a6fead88363e007c2d11aad836..24a2d3f496727790f63cb66a2534d442
|
|||||||
dev.kaiijumc.kaiiju.KaiijuConfig.registerCommands();
|
dev.kaiijumc.kaiiju.KaiijuConfig.registerCommands();
|
||||||
// Kaiiju end
|
// Kaiiju end
|
||||||
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
diff --git a/src/main/java/net/minecraft/server/level/ServerLevel.java b/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
index 66509fa23bfcde70abd3917eb774cf48d5d6da93..8fd9e3cee5a671ef8425311371cde57449ef1d8e 100644
|
index 245c3e63588379f51780963ba91bc6bf0a3feda6..761019f86983daaea4fface519e052f8fb6de1cd 100644
|
||||||
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
--- a/src/main/java/net/minecraft/server/level/ServerLevel.java
|
||||||
+++ b/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 {
|
@@ -822,6 +822,7 @@ public class ServerLevel extends Level implements WorldGenLevel {
|
||||||
@@ -351,7 +353,7 @@ index 66509fa23bfcde70abd3917eb774cf48d5d6da93..8fd9e3cee5a671ef8425311371cde574
|
|||||||
timings.tickEntities.stopTiming(); // Spigot
|
timings.tickEntities.stopTiming(); // Spigot
|
||||||
gameprofilerfiller.pop();
|
gameprofilerfiller.pop();
|
||||||
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
index d8ca697663ace353e88bfabc8997b58230d3d811..c3bb81238afeafa3d59147f21c60022052142977 100644
|
index 1f194f5324ab5efc5ae11d248dd09f875624559c..641d27bdc711f5d1cdf39637f8ad032d46575216 100644
|
||||||
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
|
||||||
@@ -179,6 +179,11 @@ public class Main {
|
@@ -179,6 +179,11 @@ public class Main {
|
||||||
@@ -5,29 +5,27 @@ 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
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
index ecae04b0cc317b154b29ca80a7246dc19e5d67ba..68074cc41c1e4cd06f2562d44947b63722d5af50 100644
|
index 816db23fa64aab69e3034484c00645ebd0479978..7c6c74f95c2534624a928ccf6b0a4b9d2a5486ad 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
@@ -159,6 +159,7 @@ public class KaiijuWorldConfig {
|
@@ -161,10 +161,12 @@ public class KaiijuWorldConfig {
|
||||||
public boolean tickWhenEmpty = true;
|
public boolean fixVoidTrading = true;
|
||||||
public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
||||||
public boolean fixTripWireStateInconsistency = true;
|
public boolean fixTripWireStateInconsistency = true;
|
||||||
+ public boolean safeTeleporting = true;
|
+ public boolean safeTeleporting = true;
|
||||||
|
|
||||||
private void gameplaySettings() {
|
private void gameplaySettings() {
|
||||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
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);
|
breakRedstoneOnTopOfTrapDoorsEarly = getBoolean("gameplay.break-redstone-on-top-of-trap-doors-early", breakRedstoneOnTopOfTrapDoorsEarly);
|
||||||
fixTripWireStateInconsistency = getBoolean("gameplay.fix-tripwire-state-inconsistency", fixTripWireStateInconsistency);
|
fixTripWireStateInconsistency = getBoolean("gameplay.fix-tripwire-state-inconsistency", fixTripWireStateInconsistency);
|
||||||
+ safeTeleporting = getBoolean("gameplay.safe-teleportation", safeTeleporting);
|
+ safeTeleporting = getBoolean("gameplay.safe-teleportation", safeTeleporting);
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index cdf669fc1065632033fab4154f0113474b984152..6941b28b7b5a7ab0e9c950cfa3a5ed224438a65c 100644
|
index 0c50b516d0ff1c2812a877b57148f01861f8027f..b971f35b69a930dddcf603207f524dc95e09f0fd 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -3953,6 +3953,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -3943,6 +3943,7 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
|
|
||||||
protected boolean tryEndPortal() {
|
protected boolean tryEndPortal() {
|
||||||
io.papermc.paper.util.TickThread.ensureTickThread(this, "Cannot portal entity async");
|
io.papermc.paper.util.TickThread.ensureTickThread(this, "Cannot portal entity async");
|
||||||
@@ -5,10 +5,10 @@ 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
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
index 68074cc41c1e4cd06f2562d44947b63722d5af50..be32a516c1ee0f95790b8a96c465045ca4355c76 100644
|
index 7c6c74f95c2534624a928ccf6b0a4b9d2a5486ad..9f0095f2196133a8bcffd5306aa9ac0b99b2f8d7 100644
|
||||||
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
@@ -160,6 +160,7 @@ public class KaiijuWorldConfig {
|
@@ -162,11 +162,13 @@ public class KaiijuWorldConfig {
|
||||||
public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
public boolean breakRedstoneOnTopOfTrapDoorsEarly = true;
|
||||||
public boolean fixTripWireStateInconsistency = true;
|
public boolean fixTripWireStateInconsistency = true;
|
||||||
public boolean safeTeleporting = true;
|
public boolean safeTeleporting = true;
|
||||||
@@ -16,7 +16,6 @@ index 68074cc41c1e4cd06f2562d44947b63722d5af50..be32a516c1ee0f95790b8a96c465045c
|
|||||||
|
|
||||||
private void gameplaySettings() {
|
private void gameplaySettings() {
|
||||||
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
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);
|
breakRedstoneOnTopOfTrapDoorsEarly = getBoolean("gameplay.break-redstone-on-top-of-trap-doors-early", breakRedstoneOnTopOfTrapDoorsEarly);
|
||||||
fixTripWireStateInconsistency = getBoolean("gameplay.fix-tripwire-state-inconsistency", fixTripWireStateInconsistency);
|
fixTripWireStateInconsistency = getBoolean("gameplay.fix-tripwire-state-inconsistency", fixTripWireStateInconsistency);
|
||||||
safeTeleporting = getBoolean("gameplay.safe-teleportation", safeTeleporting);
|
safeTeleporting = getBoolean("gameplay.safe-teleportation", safeTeleporting);
|
||||||
@@ -24,10 +23,10 @@ index 68074cc41c1e4cd06f2562d44947b63722d5af50..be32a516c1ee0f95790b8a96c465045c
|
|||||||
}
|
}
|
||||||
}
|
}
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||||
index 6e35afb9e5314de69e78d819913418ab144bec52..6cff3410c2851aeb808994a4bf830a0db32a9a37 100644
|
index 34b3541603b8cca16c7d62f3981d7ce3e8be0dbe..87d08f4d5bdec0ef96c0e4a91a2f595d2b0f0026 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
--- a/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
+++ b/src/main/java/net/minecraft/world/entity/item/FallingBlockEntity.java
|
||||||
@@ -131,7 +131,7 @@ public class FallingBlockEntity extends Entity {
|
@@ -133,7 +133,7 @@ public class FallingBlockEntity extends Entity {
|
||||||
@Override
|
@Override
|
||||||
public void tick() {
|
public void tick() {
|
||||||
// Paper start - fix sand duping
|
// Paper start - fix sand duping
|
||||||
@@ -36,7 +35,7 @@ index 6e35afb9e5314de69e78d819913418ab144bec52..6cff3410c2851aeb808994a4bf830a0d
|
|||||||
return;
|
return;
|
||||||
}
|
}
|
||||||
// Paper end - fix sand duping
|
// Paper end - fix sand duping
|
||||||
@@ -148,7 +148,7 @@ public class FallingBlockEntity extends Entity {
|
@@ -150,7 +150,7 @@ public class FallingBlockEntity extends Entity {
|
||||||
this.move(MoverType.SELF, this.getDeltaMovement());
|
this.move(MoverType.SELF, this.getDeltaMovement());
|
||||||
|
|
||||||
// Paper start - fix sand duping
|
// Paper start - fix sand duping
|
||||||
@@ -5,10 +5,10 @@ Subject: [PATCH] Vanilla end portal teleportation
|
|||||||
|
|
||||||
|
|
||||||
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
index 6941b28b7b5a7ab0e9c950cfa3a5ed224438a65c..7dcba5ed8ad3cda9951c6193273261754e8ef63b 100644
|
index b971f35b69a930dddcf603207f524dc95e09f0fd..135573308662845ecc73fde1c620345e1f372538 100644
|
||||||
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
@@ -4041,10 +4041,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
@@ -4031,10 +4031,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
(chunks) -> {
|
(chunks) -> {
|
||||||
ServerLevel.makeObsidianPlatform(destination, null, targetPos);
|
ServerLevel.makeObsidianPlatform(destination, null, targetPos);
|
||||||
|
|
||||||
46
patches/server/0026-Swap-distanceToSqr-and-target-test.patch
Normal file
46
patches/server/0026-Swap-distanceToSqr-and-target-test.patch
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
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 target test
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/level/EntityGetter.java b/src/main/java/net/minecraft/world/level/EntityGetter.java
|
||||||
|
index b1a6a66ed02706c1adc36dcedfa415f5a24a25a0..97a5eca200fd606d6102e40f9b8c32c2e7652cf9 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/level/EntityGetter.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/level/EntityGetter.java
|
||||||
|
@@ -99,9 +99,9 @@ public interface EntityGetter {
|
||||||
|
Player player = null;
|
||||||
|
|
||||||
|
for(Player player2 : this.getLocalPlayers()) { // Folia - region threading
|
||||||
|
- if (targetPredicate == null || targetPredicate.test(player2)) {
|
||||||
|
+ if (true || targetPredicate == null || targetPredicate.test(player2)) { // Kaiiju - Move this down
|
||||||
|
double e = player2.distanceToSqr(x, y, z);
|
||||||
|
- if ((maxDistance < 0.0D || e < maxDistance * maxDistance) && (d == -1.0D || e < d)) {
|
||||||
|
+ if ((maxDistance < 0.0D || e < maxDistance * maxDistance) && (d == -1.0D || e < d) && (targetPredicate == null || targetPredicate.test(player2))) { // Kaiiju
|
||||||
|
d = e;
|
||||||
|
player = player2;
|
||||||
|
}
|
||||||
|
@@ -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;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
@@ -199,9 +200,9 @@ public interface EntityGetter {
|
||||||
|
T livingEntity = null;
|
||||||
|
|
||||||
|
for(T livingEntity2 : entityList) {
|
||||||
|
- if (targetPredicate.test(entity, livingEntity2)) {
|
||||||
|
+ if (true || targetPredicate.test(entity, livingEntity2)) { // Kaiiju - Move this down
|
||||||
|
double e = livingEntity2.distanceToSqr(x, y, z);
|
||||||
|
- if (d == -1.0D || e < d) {
|
||||||
|
+ if ((d == -1.0D || e < d) && targetPredicate.test(entity, livingEntity2)) { // Kaiiju
|
||||||
|
d = e;
|
||||||
|
livingEntity = livingEntity2;
|
||||||
|
}
|
||||||
@@ -1,22 +0,0 @@
|
|||||||
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;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
38
patches/server/0031-Option-to-disable-vanish-api.patch
Normal file
38
patches/server/0031-Option-to-disable-vanish-api.patch
Normal file
@@ -0,0 +1,38 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Xymb <xymb@endcrystal.me>
|
||||||
|
Date: Thu, 22 Jun 2023 00:14:47 +0200
|
||||||
|
Subject: [PATCH] Option to disable vanish api
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
index c934341c17caf4696065ac6c39bdfef570c62f13..f49510c999ce5241f26dc9ba90a6148bf31467c7 100644
|
||||||
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
@@ -207,7 +207,10 @@ public class KaiijuConfig {
|
||||||
|
alternateKeepAlive = getBoolean("network.alternate-keepalive", alternateKeepAlive);
|
||||||
|
}
|
||||||
|
|
||||||
|
+ public static boolean disableVanishApi = false;
|
||||||
|
+
|
||||||
|
private static void optimizationSettings() {
|
||||||
|
+ disableVanishApi = getBoolean("optimization.disable-vanish-api", disableVanishApi);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String serverModName = "Kaiiju";
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ChunkMap.java b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
|
index f50507ab85282d261985ce9b186581f5a7a50f79..4fb7ee801173c3f4621d7f09fcefe7c24da5f001 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ChunkMap.java
|
||||||
|
@@ -1350,7 +1350,11 @@ public class ChunkMap extends ChunkStorage implements ChunkHolder.PlayerProvider
|
||||||
|
boolean flag = d1 <= d2 && this.entity.broadcastToPlayer(player);
|
||||||
|
|
||||||
|
// CraftBukkit start - respect vanish API
|
||||||
|
- if (!io.papermc.paper.util.TickThread.isTickThreadFor(player) || !player.getBukkitEntity().canSee(this.entity.getBukkitEntity())) { // Folia - region threading
|
||||||
|
+ // Kaiiju start - don't respect vanish API >:D
|
||||||
|
+ boolean canSee = true;
|
||||||
|
+ if (!dev.kaiijumc.kaiiju.KaiijuConfig.disableVanishApi) canSee = player.getBukkitEntity().canSee(this.entity.getBukkitEntity());
|
||||||
|
+ if (!io.papermc.paper.util.TickThread.isTickThreadFor(player) || !canSee) { // Folia - region threading
|
||||||
|
+ // Kaiiju end
|
||||||
|
flag = false;
|
||||||
|
}
|
||||||
|
// CraftBukkit end
|
||||||
34
patches/server/0032-Option-to-disable-player-stats.patch
Normal file
34
patches/server/0032-Option-to-disable-player-stats.patch
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Xymb <xymb@endcrystal.me>
|
||||||
|
Date: Thu, 22 Jun 2023 00:17:57 +0200
|
||||||
|
Subject: [PATCH] Option to disable player stats
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
index f49510c999ce5241f26dc9ba90a6148bf31467c7..b23f2df433d7ebc871f4009081c28ed9054d91c7 100644
|
||||||
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
@@ -208,9 +208,11 @@ public class KaiijuConfig {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean disableVanishApi = false;
|
||||||
|
+ public static boolean disablePlayerStats = false;
|
||||||
|
|
||||||
|
private static void optimizationSettings() {
|
||||||
|
disableVanishApi = getBoolean("optimization.disable-vanish-api", disableVanishApi);
|
||||||
|
+ disablePlayerStats = getBoolean("optimization.disable-player-stats", disablePlayerStats);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String serverModName = "Kaiiju";
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
index 817f79bfca1aec161cb4635b9c7a8e21b14db7eb..bba90683202b47284208416a37724e9d54266ffa 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
@@ -2081,6 +2081,7 @@ public class ServerPlayer extends Player {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void awardStat(Stat<?> stat, int amount) {
|
||||||
|
+ if (dev.kaiijumc.kaiiju.KaiijuConfig.disablePlayerStats) return; // Kaiiju - Disable player stats
|
||||||
|
this.stats.increment(this, stat, amount);
|
||||||
|
this.level().getCraftServer().getScoreboardManager().getScoreboardScores(stat, this.getScoreboardName(), (scoreboardscore) -> { // CraftBukkit - Get our scores instead
|
||||||
|
scoreboardscore.add(amount);
|
||||||
175
patches/server/0033-Option-to-disable-achievements.patch
Normal file
175
patches/server/0033-Option-to-disable-achievements.patch
Normal file
@@ -0,0 +1,175 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Xymb <xymb@endcrystal.me>
|
||||||
|
Date: Thu, 22 Jun 2023 00:32:36 +0200
|
||||||
|
Subject: [PATCH] Option to disable achievements
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
|
index 9f0095f2196133a8bcffd5306aa9ac0b99b2f8d7..31d66bb2fcf4bb7262df2d8006e307fee92660ea 100644
|
||||||
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
|
@@ -150,12 +150,14 @@ public class KaiijuWorldConfig {
|
||||||
|
public boolean optimizeHoppers = true;
|
||||||
|
public boolean tickWhenEmpty = true;
|
||||||
|
public boolean enableEntityThrottling = false;
|
||||||
|
+ public boolean disableAchievements = false;
|
||||||
|
|
||||||
|
private void optimizationSettings() {
|
||||||
|
shulkerBoxDropContentsWhenDestroyed = getBoolean("optimization.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||||
|
optimizeHoppers = getBoolean("optimization.optimize-hoppers", optimizeHoppers);
|
||||||
|
tickWhenEmpty = getBoolean("optimization.tick-when-empty", tickWhenEmpty);
|
||||||
|
enableEntityThrottling = getBoolean("optimization.enable-entity-throttling", enableEntityThrottling);
|
||||||
|
+ disableAchievements = getBoolean("optimization.disable-achievements", disableAchievements);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean fixVoidTrading = true;
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerPlayer.java b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
index bba90683202b47284208416a37724e9d54266ffa..6bbbd7d4a409140df65f52f36e413c67ebac5561 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerPlayer.java
|
||||||
|
@@ -734,7 +734,7 @@ public class ServerPlayer extends Player {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onInsideBlock(BlockState state) {
|
||||||
|
- CriteriaTriggers.ENTER_BLOCK.trigger(this, state);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.ENTER_BLOCK.trigger(this, state); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@@ -781,9 +781,9 @@ public class ServerPlayer extends Player {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
- CriteriaTriggers.TICK.trigger(this);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.TICK.trigger(this); // Kaiiju
|
||||||
|
if (this.levitationStartPos != null) {
|
||||||
|
- CriteriaTriggers.LEVITATION.trigger(this, this.levitationStartPos, this.tickCount - this.levitationStartTime);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.LEVITATION.trigger(this, this.levitationStartPos, this.tickCount - this.levitationStartTime); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
this.trackStartFallingPosition();
|
||||||
|
@@ -858,7 +858,7 @@ public class ServerPlayer extends Player {
|
||||||
|
}
|
||||||
|
|
||||||
|
if (this.tickCount % 20 == 0) {
|
||||||
|
- CriteriaTriggers.LOCATION.trigger(this);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.LOCATION.trigger(this); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
// CraftBukkit start - initialize oldLevel, fire PlayerLevelChangeEvent, and tick client-sided world border
|
||||||
|
@@ -887,7 +887,7 @@ public class ServerPlayer extends Player {
|
||||||
|
@Override
|
||||||
|
public void resetFallDistance() {
|
||||||
|
if (this.getHealth() > 0.0F && this.startingToFallPosition != null) {
|
||||||
|
- CriteriaTriggers.FALL_FROM_HEIGHT.trigger(this, this.startingToFallPosition);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.FALL_FROM_HEIGHT.trigger(this, this.startingToFallPosition); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
this.startingToFallPosition = null;
|
||||||
|
@@ -906,7 +906,7 @@ public class ServerPlayer extends Player {
|
||||||
|
if (this.enteredLavaOnVehiclePosition == null) {
|
||||||
|
this.enteredLavaOnVehiclePosition = this.position();
|
||||||
|
} else {
|
||||||
|
- CriteriaTriggers.RIDE_ENTITY_IN_LAVA_TRIGGER.trigger(this, this.enteredLavaOnVehiclePosition);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.RIDE_ENTITY_IN_LAVA_TRIGGER.trigger(this, this.enteredLavaOnVehiclePosition); // Kaiiju
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1110,7 +1110,7 @@ public class ServerPlayer extends Player {
|
||||||
|
|
||||||
|
this.handleTeamKill(s, s1, ObjectiveCriteria.TEAM_KILL);
|
||||||
|
this.handleTeamKill(s1, s, ObjectiveCriteria.KILLED_BY_TEAM);
|
||||||
|
- CriteriaTriggers.PLAYER_KILLED_ENTITY.trigger(this, entityKilled, damageSource);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.PLAYER_KILLED_ENTITY.trigger(this, entityKilled, damageSource); // Kaiiju
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1228,7 +1228,7 @@ public class ServerPlayer extends Player {
|
||||||
|
this.wonGame = false;
|
||||||
|
|
||||||
|
this.respawn((player) -> {
|
||||||
|
- CriteriaTriggers.CHANGED_DIMENSION.trigger(player, Level.END, Level.OVERWORLD);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.CHANGED_DIMENSION.trigger(player, Level.END, Level.OVERWORLD); // Kaiiju
|
||||||
|
}, true);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -1730,14 +1730,14 @@ public class ServerPlayer extends Player {
|
||||||
|
maindimensionkey1 = resourcekey1;
|
||||||
|
}
|
||||||
|
// Paper end
|
||||||
|
- CriteriaTriggers.CHANGED_DIMENSION.trigger(this, maindimensionkey, maindimensionkey1);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.CHANGED_DIMENSION.trigger(this, maindimensionkey, maindimensionkey1); // Kaiiju
|
||||||
|
if (maindimensionkey != resourcekey || maindimensionkey1 != resourcekey1) {
|
||||||
|
- CriteriaTriggers.CHANGED_DIMENSION.trigger(this, resourcekey, resourcekey1);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.CHANGED_DIMENSION.trigger(this, resourcekey, resourcekey1); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
if (maindimensionkey == Level.NETHER && maindimensionkey1 == Level.OVERWORLD && this.enteredNetherPosition != null) {
|
||||||
|
// CraftBukkit end
|
||||||
|
- CriteriaTriggers.NETHER_TRAVEL.trigger(this, this.enteredNetherPosition);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.NETHER_TRAVEL.trigger(this, this.enteredNetherPosition); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
if (maindimensionkey1 != Level.NETHER) { // CraftBukkit
|
||||||
|
@@ -1815,7 +1815,7 @@ public class ServerPlayer extends Player {
|
||||||
|
{
|
||||||
|
Either<Player.BedSleepingProblem, Unit> either = super.startSleepInBed(blockposition, force).ifRight((unit) -> {
|
||||||
|
this.awardStat(Stats.SLEEP_IN_BED);
|
||||||
|
- CriteriaTriggers.SLEPT_IN_BED.trigger(this);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.SLEPT_IN_BED.trigger(this); // Kaiiju
|
||||||
|
});
|
||||||
|
|
||||||
|
if (!this.serverLevel().canSleepThroughNights()) {
|
||||||
|
@@ -2101,7 +2101,7 @@ public class ServerPlayer extends Player {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public void triggerRecipeCrafted(Recipe<?> recipe, List<ItemStack> ingredients) {
|
||||||
|
- CriteriaTriggers.RECIPE_CRAFTED.trigger(this, recipe.getId(), ingredients);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.RECIPE_CRAFTED.trigger(this, recipe.getId(), ingredients); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@@ -2230,14 +2230,14 @@ public class ServerPlayer extends Player {
|
||||||
|
this.levitationStartPos = this.position();
|
||||||
|
}
|
||||||
|
|
||||||
|
- CriteriaTriggers.EFFECTS_CHANGED.trigger(this, source);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.EFFECTS_CHANGED.trigger(this, source); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void onEffectUpdated(MobEffectInstance effect, boolean reapplyEffect, @Nullable Entity source) {
|
||||||
|
super.onEffectUpdated(effect, reapplyEffect, source);
|
||||||
|
this.connection.send(new ClientboundUpdateMobEffectPacket(this.getId(), effect));
|
||||||
|
- CriteriaTriggers.EFFECTS_CHANGED.trigger(this, source);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.EFFECTS_CHANGED.trigger(this, source); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@@ -2248,7 +2248,7 @@ public class ServerPlayer extends Player {
|
||||||
|
this.levitationStartPos = null;
|
||||||
|
}
|
||||||
|
|
||||||
|
- CriteriaTriggers.EFFECTS_CHANGED.trigger(this, (Entity) null);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.EFFECTS_CHANGED.trigger(this, (Entity) null); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
@@ -2808,7 +2808,7 @@ public class ServerPlayer extends Player {
|
||||||
|
|
||||||
|
@Override
|
||||||
|
protected void updateUsingItem(ItemStack stack) {
|
||||||
|
- CriteriaTriggers.USING_ITEM.trigger(this, stack);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.USING_ITEM.trigger(this, stack); // Kaiiju
|
||||||
|
super.updateUsingItem(stack);
|
||||||
|
}
|
||||||
|
|
||||||
|
@@ -2837,7 +2837,7 @@ public class ServerPlayer extends Player {
|
||||||
|
Entity entity = item.getOwner();
|
||||||
|
|
||||||
|
if (entity != null) {
|
||||||
|
- CriteriaTriggers.THROWN_ITEM_PICKED_UP_BY_PLAYER.trigger(this, item.getItem(), entity);
|
||||||
|
+ if (!this.level().kaiijuConfig.disableAchievements) CriteriaTriggers.THROWN_ITEM_PICKED_UP_BY_PLAYER.trigger(this, item.getItem(), entity); // Kaiiju
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
43
patches/server/0034-Option-to-disable-arm-swing-event.patch
Normal file
43
patches/server/0034-Option-to-disable-arm-swing-event.patch
Normal file
@@ -0,0 +1,43 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Xymb <xymb@endcrystal.me>
|
||||||
|
Date: Thu, 22 Jun 2023 00:37:27 +0200
|
||||||
|
Subject: [PATCH] Option to disable arm swing event
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
index b23f2df433d7ebc871f4009081c28ed9054d91c7..ec71f3f52cb8f7931aabd94619d2e7a24491d7ad 100644
|
||||||
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
@@ -209,10 +209,12 @@ public class KaiijuConfig {
|
||||||
|
|
||||||
|
public static boolean disableVanishApi = false;
|
||||||
|
public static boolean disablePlayerStats = false;
|
||||||
|
+ public static boolean disableArmSwingEvent = false;
|
||||||
|
|
||||||
|
private static void optimizationSettings() {
|
||||||
|
disableVanishApi = getBoolean("optimization.disable-vanish-api", disableVanishApi);
|
||||||
|
disablePlayerStats = getBoolean("optimization.disable-player-stats", disablePlayerStats);
|
||||||
|
+ disableArmSwingEvent = getBoolean("optimization.disable-arm-swing-event", disableArmSwingEvent);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String serverModName = "Kaiiju";
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
index 1ab0d3e0653028b7d93177c28c1f532d8b10b1b1..86e14f3d853d6134b7d7b3770107529de8ac2c91 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/network/ServerGamePacketListenerImpl.java
|
||||||
|
@@ -2656,6 +2656,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
|
PacketUtils.ensureRunningOnSameThread(packet, this, this.player.serverLevel());
|
||||||
|
if (this.player.isImmobile()) return; // CraftBukkit
|
||||||
|
this.player.resetLastActionTime();
|
||||||
|
+ if (!dev.kaiijumc.kaiiju.KaiijuConfig.disableArmSwingEvent) { // Kaiiju
|
||||||
|
// CraftBukkit start - Raytrace to look for 'rogue armswings'
|
||||||
|
float f1 = this.player.getXRot();
|
||||||
|
float f2 = this.player.getYRot();
|
||||||
|
@@ -2678,6 +2679,7 @@ public class ServerGamePacketListenerImpl implements ServerPlayerConnection, Tic
|
||||||
|
|
||||||
|
if (event.isCancelled()) return;
|
||||||
|
// CraftBukkit end
|
||||||
|
+ } // Kaiiju
|
||||||
|
this.player.swing(packet.getHand());
|
||||||
|
}
|
||||||
|
|
||||||
@@ -0,0 +1,63 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Xymb <xymb@endcrystal.me>
|
||||||
|
Date: Thu, 22 Jun 2023 00:47:57 +0200
|
||||||
|
Subject: [PATCH] Option to disable creatures spawn events
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
|
index 31d66bb2fcf4bb7262df2d8006e307fee92660ea..c9830912019079369268bfbf2c95de18ad598f52 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 {
|
||||||
|
public boolean tickWhenEmpty = true;
|
||||||
|
public boolean enableEntityThrottling = false;
|
||||||
|
public boolean disableAchievements = false;
|
||||||
|
+ public boolean disableCreaturesSpawnEvents = false;
|
||||||
|
|
||||||
|
private void optimizationSettings() {
|
||||||
|
shulkerBoxDropContentsWhenDestroyed = getBoolean("optimization.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||||
|
@@ -158,6 +159,7 @@ public class KaiijuWorldConfig {
|
||||||
|
tickWhenEmpty = getBoolean("optimization.tick-when-empty", tickWhenEmpty);
|
||||||
|
enableEntityThrottling = getBoolean("optimization.enable-entity-throttling", enableEntityThrottling);
|
||||||
|
disableAchievements = getBoolean("optimization.disable-achievements", disableAchievements);
|
||||||
|
+ disableCreaturesSpawnEvents = getBoolean("optimization.disable-creatures-spawn-events", disableCreaturesSpawnEvents);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean fixVoidTrading = true;
|
||||||
|
diff --git a/src/main/java/net/minecraft/server/level/ServerChunkCache.java b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
index af35fd63b090aa3d89bc60cb9cb7694b5f502681..e5dded0363b14608e834e63e678563b1423d66e7 100644
|
||||||
|
--- a/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
+++ b/src/main/java/net/minecraft/server/level/ServerChunkCache.java
|
||||||
|
@@ -486,21 +486,29 @@ public class ServerChunkCache extends ChunkSource {
|
||||||
|
chunkRange = (chunkRange > viewDistance) ? (byte)viewDistance : chunkRange;
|
||||||
|
chunkRange = (chunkRange > DistanceManager.MOB_SPAWN_RANGE) ? DistanceManager.MOB_SPAWN_RANGE : chunkRange;
|
||||||
|
|
||||||
|
- com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent event = new com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent(player.getBukkitEntity(), (byte)chunkRange);
|
||||||
|
+ // Kaiiju start - disable creatures spawn events
|
||||||
|
+ com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent event = null;
|
||||||
|
+ if (!this.level.kaiijuConfig.disableCreaturesSpawnEvents) {
|
||||||
|
+ event = new com.destroystokyo.paper.event.entity.PlayerNaturallySpawnCreaturesEvent(player.getBukkitEntity(), (byte)chunkRange);
|
||||||
|
+ // Kaiiju end
|
||||||
|
event.callEvent();
|
||||||
|
if (event.isCancelled() || event.getSpawnRadius() < 0) { // Folia - region threading
|
||||||
|
player.lastEntitySpawnRadiusSquared = -1.0; player.playerNaturallySpawnedEvent = null; // Folia - region threading
|
||||||
|
regionizedWorldData.mobSpawnMap.remove(player); // Folia - region threading
|
||||||
|
continue;
|
||||||
|
}
|
||||||
|
+ // Kaiiju start - disable creatures spawn events
|
||||||
|
+ chunkRange = Math.min(event.getSpawnRadius(), 32);
|
||||||
|
+ }
|
||||||
|
+ // Kaiiju end
|
||||||
|
|
||||||
|
- int range = Math.min(event.getSpawnRadius(), 32); // limit to max view distance
|
||||||
|
+ int range = chunkRange; // limit to max view distance // Kaiiju
|
||||||
|
int chunkX = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getX());
|
||||||
|
int chunkZ = io.papermc.paper.util.MCUtil.getChunkCoordinate(player.getZ());
|
||||||
|
|
||||||
|
regionizedWorldData.mobSpawnMap.addOrUpdate(player, chunkX, chunkZ, range); // Folia - region threading
|
||||||
|
player.lastEntitySpawnRadiusSquared = (double)((range << 4) * (range << 4)); // used in anyPlayerCloseEnoughForSpawning
|
||||||
|
- player.playerNaturallySpawnedEvent = event;
|
||||||
|
+ if (!this.level.kaiijuConfig.disableCreaturesSpawnEvents) player.playerNaturallySpawnedEvent = event; // Kaiiju
|
||||||
|
}
|
||||||
|
// Paper end - optimize isOutisdeRange
|
||||||
|
LevelData worlddata = this.level.getLevelData();
|
||||||
@@ -0,0 +1,39 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Xymb <xymb@endcrystal.me>
|
||||||
|
Date: Thu, 22 Jun 2023 00:52:00 +0200
|
||||||
|
Subject: [PATCH] Option to disable dolphin swim to treasure
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
|
index c9830912019079369268bfbf2c95de18ad598f52..e2fb7d7a7b3126d386b46442c115085d1974ac4e 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 enableEntityThrottling = false;
|
||||||
|
public boolean disableAchievements = false;
|
||||||
|
public boolean disableCreaturesSpawnEvents = false;
|
||||||
|
+ public boolean disableDolphinSwimToTreasure = false;
|
||||||
|
|
||||||
|
private void optimizationSettings() {
|
||||||
|
shulkerBoxDropContentsWhenDestroyed = getBoolean("optimization.shulker-box-drop-contents-when-destroyed", shulkerBoxDropContentsWhenDestroyed);
|
||||||
|
@@ -160,6 +161,7 @@ public class KaiijuWorldConfig {
|
||||||
|
enableEntityThrottling = getBoolean("optimization.enable-entity-throttling", enableEntityThrottling);
|
||||||
|
disableAchievements = getBoolean("optimization.disable-achievements", disableAchievements);
|
||||||
|
disableCreaturesSpawnEvents = getBoolean("optimization.disable-creatures-spawn-events", disableCreaturesSpawnEvents);
|
||||||
|
+ disableDolphinSwimToTreasure = getBoolean("optimization.disable-dolphin-swim-to-treasure", disableDolphinSwimToTreasure);
|
||||||
|
}
|
||||||
|
|
||||||
|
public boolean fixVoidTrading = true;
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
|
||||||
|
index 4ec6dc8ddcb940091956fdf014f43832db287d8d..770c3c26702d4136df6b8f891f4949f364b62a1b 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/animal/Dolphin.java
|
||||||
|
@@ -164,7 +164,7 @@ public class Dolphin extends WaterAnimal {
|
||||||
|
protected void registerGoals() {
|
||||||
|
this.goalSelector.addGoal(0, new BreathAirGoal(this));
|
||||||
|
this.goalSelector.addGoal(0, new TryFindWaterGoal(this));
|
||||||
|
- this.goalSelector.addGoal(1, new Dolphin.DolphinSwimToTreasureGoal(this));
|
||||||
|
+ if (!this.level().kaiijuConfig.disableDolphinSwimToTreasure) this.goalSelector.addGoal(1, new Dolphin.DolphinSwimToTreasureGoal(this)); // Kaiiju
|
||||||
|
this.goalSelector.addGoal(2, new Dolphin.DolphinSwimWithPlayerGoal(this, 4.0D));
|
||||||
|
this.goalSelector.addGoal(4, new RandomSwimmingGoal(this, 1.0D, 10));
|
||||||
|
this.goalSelector.addGoal(4, new RandomLookAroundGoal(this));
|
||||||
@@ -0,0 +1,84 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: Xymb <xymb@endcrystal.me>
|
||||||
|
Date: Thu, 22 Jun 2023 00:55:17 +0200
|
||||||
|
Subject: [PATCH] Option to disable ensure tick thread checks
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
index ec71f3f52cb8f7931aabd94619d2e7a24491d7ad..fa2a763e5784e7dae02c94a13751cbf746b6eee8 100644
|
||||||
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
@@ -210,11 +210,13 @@ public class KaiijuConfig {
|
||||||
|
public static boolean disableVanishApi = false;
|
||||||
|
public static boolean disablePlayerStats = false;
|
||||||
|
public static boolean disableArmSwingEvent = false;
|
||||||
|
+ public static boolean disableEnsureTickThreadChecks = false;
|
||||||
|
|
||||||
|
private static void optimizationSettings() {
|
||||||
|
disableVanishApi = getBoolean("optimization.disable-vanish-api", disableVanishApi);
|
||||||
|
disablePlayerStats = getBoolean("optimization.disable-player-stats", disablePlayerStats);
|
||||||
|
disableArmSwingEvent = getBoolean("optimization.disable-arm-swing-event", disableArmSwingEvent);
|
||||||
|
+ disableEnsureTickThreadChecks = getBoolean("optimization.disable-ensure-tick-thread-checks", disableEnsureTickThreadChecks);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static String serverModName = "Kaiiju";
|
||||||
|
diff --git a/src/main/java/io/papermc/paper/util/TickThread.java b/src/main/java/io/papermc/paper/util/TickThread.java
|
||||||
|
index cb453dd110fc37fae75257a4576512126207763e..492e6a512343001d3d772d2d8b427d2d84e89da5 100644
|
||||||
|
--- a/src/main/java/io/papermc/paper/util/TickThread.java
|
||||||
|
+++ b/src/main/java/io/papermc/paper/util/TickThread.java
|
||||||
|
@@ -46,6 +46,7 @@ public class TickThread extends Thread {
|
||||||
|
*/
|
||||||
|
@Deprecated
|
||||||
|
public static void ensureTickThread(final String reason) {
|
||||||
|
+ if (dev.kaiijumc.kaiiju.KaiijuConfig.disableEnsureTickThreadChecks) return; // Kaiiju
|
||||||
|
if (!isTickThread()) {
|
||||||
|
MinecraftServer.LOGGER.error("Thread " + Thread.currentThread().getName() + " failed main thread check: " + reason, new Throwable());
|
||||||
|
throw new IllegalStateException(reason);
|
||||||
|
@@ -53,6 +54,7 @@ public class TickThread extends Thread {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ensureTickThread(final ServerLevel world, final BlockPos pos, final String reason) {
|
||||||
|
+ if (dev.kaiijumc.kaiiju.KaiijuConfig.disableEnsureTickThreadChecks) return; // Kaiiju
|
||||||
|
if (!isTickThreadFor(world, pos)) {
|
||||||
|
MinecraftServer.LOGGER.error("Thread " + Thread.currentThread().getName() + " failed main thread check: " + reason, new Throwable());
|
||||||
|
throw new IllegalStateException(reason);
|
||||||
|
@@ -60,6 +62,7 @@ public class TickThread extends Thread {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ensureTickThread(final ServerLevel world, final ChunkPos pos, final String reason) {
|
||||||
|
+ if (dev.kaiijumc.kaiiju.KaiijuConfig.disableEnsureTickThreadChecks) return; // Kaiiju
|
||||||
|
if (!isTickThreadFor(world, pos)) {
|
||||||
|
MinecraftServer.LOGGER.error("Thread " + Thread.currentThread().getName() + " failed main thread check: " + reason, new Throwable());
|
||||||
|
throw new IllegalStateException(reason);
|
||||||
|
@@ -67,6 +70,7 @@ public class TickThread extends Thread {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ensureTickThread(final ServerLevel world, final int chunkX, final int chunkZ, final String reason) {
|
||||||
|
+ if (dev.kaiijumc.kaiiju.KaiijuConfig.disableEnsureTickThreadChecks) return; // Kaiiju
|
||||||
|
if (!isTickThreadFor(world, chunkX, chunkZ)) {
|
||||||
|
MinecraftServer.LOGGER.error("Thread " + Thread.currentThread().getName() + " failed main thread check: " + reason, new Throwable());
|
||||||
|
throw new IllegalStateException(reason);
|
||||||
|
@@ -74,6 +78,7 @@ public class TickThread extends Thread {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ensureTickThread(final Entity entity, final String reason) {
|
||||||
|
+ if (dev.kaiijumc.kaiiju.KaiijuConfig.disableEnsureTickThreadChecks) return; // Kaiiju
|
||||||
|
if (!isTickThreadFor(entity)) {
|
||||||
|
MinecraftServer.LOGGER.error("Thread " + Thread.currentThread().getName() + " failed main thread check: " + reason, new Throwable());
|
||||||
|
throw new IllegalStateException(reason);
|
||||||
|
@@ -81,6 +86,7 @@ public class TickThread extends Thread {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ensureTickThread(final ServerLevel world, final AABB aabb, final String reason) {
|
||||||
|
+ if (dev.kaiijumc.kaiiju.KaiijuConfig.disableEnsureTickThreadChecks) return; // Kaiiju
|
||||||
|
if (!isTickThreadFor(world, aabb)) {
|
||||||
|
MinecraftServer.LOGGER.error("Thread " + Thread.currentThread().getName() + " failed main thread check: " + reason, new Throwable());
|
||||||
|
throw new IllegalStateException(reason);
|
||||||
|
@@ -88,6 +94,7 @@ public class TickThread extends Thread {
|
||||||
|
}
|
||||||
|
|
||||||
|
public static void ensureTickThread(final ServerLevel world, final double blockX, final double blockZ, final String reason) {
|
||||||
|
+ if (dev.kaiijumc.kaiiju.KaiijuConfig.disableEnsureTickThreadChecks) return; // Kaiiju
|
||||||
|
if (!isTickThreadFor(world, blockX, blockZ)) {
|
||||||
|
MinecraftServer.LOGGER.error("Thread " + Thread.currentThread().getName() + " failed main thread check: " + reason, new Throwable());
|
||||||
|
throw new IllegalStateException(reason);
|
||||||
46
patches/server/0038-Don-t-kick-player-on-bad-packet.patch
Normal file
46
patches/server/0038-Don-t-kick-player-on-bad-packet.patch
Normal file
@@ -0,0 +1,46 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com>
|
||||||
|
Date: Sun, 2 Jul 2023 19:13:14 +0300
|
||||||
|
Subject: [PATCH] Don't kick player on bad packet
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
index fa2a763e5784e7dae02c94a13751cbf746b6eee8..ebfa9e1dcca5ea8272e796f0409902d92b59ee76 100644
|
||||||
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuConfig.java
|
||||||
|
@@ -201,10 +201,12 @@ public class KaiijuConfig {
|
||||||
|
|
||||||
|
public static boolean sendNullEntityPackets = true;
|
||||||
|
public static boolean alternateKeepAlive = false;
|
||||||
|
+ public static boolean kickPlayerOnBadPacket = true;
|
||||||
|
|
||||||
|
private static void networkSettings() {
|
||||||
|
sendNullEntityPackets = getBoolean("network.send-null-entity-packets", sendNullEntityPackets);
|
||||||
|
alternateKeepAlive = getBoolean("network.alternate-keepalive", alternateKeepAlive);
|
||||||
|
+ kickPlayerOnBadPacket = getBoolean("network.kick-player-on-bad-packet", kickPlayerOnBadPacket);
|
||||||
|
}
|
||||||
|
|
||||||
|
public static boolean disableVanishApi = false;
|
||||||
|
diff --git a/src/main/java/net/minecraft/network/Connection.java b/src/main/java/net/minecraft/network/Connection.java
|
||||||
|
index f6ccb6eab566b44c3460376d46df1f2cf3d7b19d..13e5aeb0c04d27408ffbc6b11582426a7f2eb0f0 100644
|
||||||
|
--- a/src/main/java/net/minecraft/network/Connection.java
|
||||||
|
+++ b/src/main/java/net/minecraft/network/Connection.java
|
||||||
|
@@ -271,12 +271,18 @@ public class Connection extends SimpleChannelInboundHandler<Packet<?>> {
|
||||||
|
ConnectionProtocol enumprotocol = this.getCurrentProtocol();
|
||||||
|
Packet<?> packet = enumprotocol == ConnectionProtocol.LOGIN ? new ClientboundLoginDisconnectPacket(ichatmutablecomponent) : new ClientboundDisconnectPacket(ichatmutablecomponent);
|
||||||
|
|
||||||
|
+ // Kaiiju start - Don't kick player on bad packet
|
||||||
|
+ if (dev.kaiijumc.kaiiju.KaiijuConfig.kickPlayerOnBadPacket
|
||||||
|
+ || throwable instanceof io.netty.channel.unix.Errors.NativeIoException) {
|
||||||
|
+ // Kaiiju end
|
||||||
|
this.send((Packet) packet, PacketSendListener.thenRun(() -> {
|
||||||
|
this.disconnect(ichatmutablecomponent);
|
||||||
|
}));
|
||||||
|
this.setReadOnly();
|
||||||
|
+ } // Kaiiju - Don't kick player on bad packet
|
||||||
|
} else {
|
||||||
|
Connection.LOGGER.debug("Double fault", throwable);
|
||||||
|
+ if (dev.kaiijumc.kaiiju.KaiijuConfig.kickPlayerOnBadPacket) // Kaiiju - Don't kick player on bad packet
|
||||||
|
this.disconnect(ichatmutablecomponent);
|
||||||
|
}
|
||||||
|
}
|
||||||
34
patches/server/0039-Skip-event-if-no-listeners.patch
Normal file
34
patches/server/0039-Skip-event-if-no-listeners.patch
Normal file
@@ -0,0 +1,34 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: foss-mc <69294560+foss-mc@users.noreply.github.com>
|
||||||
|
Date: Sat, 8 Jul 2023 01:31:10 +0300
|
||||||
|
Subject: [PATCH] Skip event if no listeners
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
||||||
|
index 7ce9ebba8ce304d1f3f21d4f15ee5f3560d7700b..d0f6d4e6ab3a7a4bd6cb8e27c90c7c7300f204a5 100644
|
||||||
|
--- a/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
||||||
|
+++ b/src/main/java/io/papermc/paper/plugin/manager/PaperEventManager.java
|
||||||
|
@@ -36,14 +36,21 @@ class PaperEventManager {
|
||||||
|
|
||||||
|
// SimplePluginManager
|
||||||
|
public void callEvent(@NotNull Event event) {
|
||||||
|
+ // Kaiiju start - Skip event of no listeners
|
||||||
|
+ HandlerList handlers = event.getHandlers();
|
||||||
|
+ RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
||||||
|
+ if (listeners.length == 0) return;
|
||||||
|
+ // Kaiiju end
|
||||||
|
if (event.isAsynchronous() && this.server.isPrimaryThread()) {
|
||||||
|
throw new IllegalStateException(event.getEventName() + " may only be triggered asynchronously.");
|
||||||
|
} else if (!event.isAsynchronous() && !this.server.isPrimaryThread() && !this.server.isStopping()) {
|
||||||
|
throw new IllegalStateException(event.getEventName() + " may only be triggered synchronously.");
|
||||||
|
}
|
||||||
|
|
||||||
|
- HandlerList handlers = event.getHandlers();
|
||||||
|
- RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
||||||
|
+ // Kaiiju start - Moved up
|
||||||
|
+ //HandlerList handlers = event.getHandlers();
|
||||||
|
+ //RegisteredListener[] listeners = handlers.getRegisteredListeners();
|
||||||
|
+ // Kaiiju end
|
||||||
|
|
||||||
|
for (RegisteredListener registration : listeners) {
|
||||||
|
if (!registration.getPlugin().isEnabled()) {
|
||||||
@@ -0,0 +1,75 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com>
|
||||||
|
Date: Sat, 8 Jul 2023 03:31:04 +0300
|
||||||
|
Subject: [PATCH] Teleport async if we cannot move entity off-main
|
||||||
|
|
||||||
|
Entities with huge velocity (100k+ velocity anarchy travel exploit) might disappear / crash the server because they travel a region each tick.
|
||||||
|
TODO: Entities with huge velocity still throw stacktraces because they are ticked in "null" regions.
|
||||||
|
|
||||||
|
diff --git a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
|
index e2fb7d7a7b3126d386b46442c115085d1974ac4e..44f5540a6a5733cf6f10f6b04fc9611ac4e53685 100644
|
||||||
|
--- a/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
|
+++ b/src/main/java/dev/kaiijumc/kaiiju/KaiijuWorldConfig.java
|
||||||
|
@@ -169,6 +169,7 @@ public class KaiijuWorldConfig {
|
||||||
|
public boolean fixTripWireStateInconsistency = true;
|
||||||
|
public boolean safeTeleporting = true;
|
||||||
|
public boolean sandDuplication = false;
|
||||||
|
+ public boolean teleportAsyncOnHighVelocity = false;
|
||||||
|
|
||||||
|
private void gameplaySettings() {
|
||||||
|
fixVoidTrading = getBoolean("gameplay.fix-void-trading", fixVoidTrading);
|
||||||
|
@@ -176,5 +177,6 @@ public class KaiijuWorldConfig {
|
||||||
|
fixTripWireStateInconsistency = getBoolean("gameplay.fix-tripwire-state-inconsistency", fixTripWireStateInconsistency);
|
||||||
|
safeTeleporting = getBoolean("gameplay.safe-teleportation", safeTeleporting);
|
||||||
|
sandDuplication = getBoolean("gameplay.sand-duplication", sandDuplication);
|
||||||
|
+ teleportAsyncOnHighVelocity = getBoolean("gameplay.teleport-async-on-high-velocity", teleportAsyncOnHighVelocity);
|
||||||
|
}
|
||||||
|
}
|
||||||
|
diff --git a/src/main/java/net/minecraft/world/entity/Entity.java b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
index 135573308662845ecc73fde1c620345e1f372538..812b2c216003b8decedef1353acab1b44d146e08 100644
|
||||||
|
--- a/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
+++ b/src/main/java/net/minecraft/world/entity/Entity.java
|
||||||
|
@@ -1126,7 +1126,20 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
+ try { // Kaiiju - Teleport async if we cannot move entity off-main
|
||||||
|
this.setPos(this.getX() + vec3d1.x, this.getY() + vec3d1.y, this.getZ() + vec3d1.z);
|
||||||
|
+ // Kaiiju start - Teleport async if we cannot move entity off-main
|
||||||
|
+ } catch (IllegalStateException e) {
|
||||||
|
+ if (this.level().kaiijuConfig.teleportAsyncOnHighVelocity)
|
||||||
|
+ this.teleportAsync((ServerLevel) this.level(), this.position().add(vec3d1),
|
||||||
|
+ this.getYRot(), this.getXRot(),
|
||||||
|
+ null, PlayerTeleportEvent.TeleportCause.UNKNOWN,
|
||||||
|
+ Entity.TELEPORT_FLAG_LOAD_CHUNK | Entity.TELEPORT_FLAG_TELEPORT_PASSENGERS,
|
||||||
|
+ null
|
||||||
|
+ );
|
||||||
|
+ else LOGGER.error("High velocity entity caused off-main setPos: ", e);
|
||||||
|
+ }
|
||||||
|
+ // Kaiiju end
|
||||||
|
}
|
||||||
|
|
||||||
|
this.level().getProfiler().pop();
|
||||||
|
@@ -3868,13 +3881,15 @@ public abstract class Entity implements Nameable, EntityAccess, CommandSource {
|
||||||
|
// check for same region
|
||||||
|
if (destination == this.level()) {
|
||||||
|
Vec3 currPos = this.position();
|
||||||
|
- if (
|
||||||
|
- destination.regioniser.getRegionAtUnsynchronised(
|
||||||
|
- io.papermc.paper.util.CoordinateUtils.getChunkX(currPos), io.papermc.paper.util.CoordinateUtils.getChunkZ(currPos)
|
||||||
|
- ) == destination.regioniser.getRegionAtUnsynchronised(
|
||||||
|
- io.papermc.paper.util.CoordinateUtils.getChunkX(pos), io.papermc.paper.util.CoordinateUtils.getChunkZ(pos)
|
||||||
|
- )
|
||||||
|
- ) {
|
||||||
|
+ // Kaiiju start - We shouldn't teleport when regions are null
|
||||||
|
+ io.papermc.paper.threadedregions.ThreadedRegionizer.ThreadedRegion<io.papermc.paper.threadedregions.TickRegions.TickRegionData,
|
||||||
|
+ io.papermc.paper.threadedregions.TickRegions.TickRegionSectionData>
|
||||||
|
+ currRegion = destination.regioniser.getRegionAtUnsynchronised(io.papermc.paper.util.CoordinateUtils.getChunkX(currPos), io.papermc.paper.util.CoordinateUtils.getChunkZ(currPos));
|
||||||
|
+ io.papermc.paper.threadedregions.ThreadedRegionizer.ThreadedRegion<io.papermc.paper.threadedregions.TickRegions.TickRegionData,
|
||||||
|
+ io.papermc.paper.threadedregions.TickRegions.TickRegionSectionData>
|
||||||
|
+ destRegion = destination.regioniser.getRegionAtUnsynchronised(io.papermc.paper.util.CoordinateUtils.getChunkX(pos), io.papermc.paper.util.CoordinateUtils.getChunkZ(pos));
|
||||||
|
+ if (currRegion == destRegion && currRegion != null) {
|
||||||
|
+ // Kaiiju end
|
||||||
|
EntityTreeNode passengerTree = this.detachPassengers();
|
||||||
|
// Note: The client does not accept position updates for controlled entities. So, we must
|
||||||
|
// perform a lot of tracker updates here to make it all work out.
|
||||||
19
patches/server/0041-Add-back-worldborder-command.patch
Normal file
19
patches/server/0041-Add-back-worldborder-command.patch
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com>
|
||||||
|
Date: Sun, 9 Jul 2023 19:17:40 +0300
|
||||||
|
Subject: [PATCH] Add back worldborder command
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
|
||||||
|
index 681cd79ce24fe5d952e987d46e2fd8df07a0f8a1..68af43ed4d667648df0e45ffc899d3e4b7b1a69d 100644
|
||||||
|
--- a/src/main/java/net/minecraft/commands/Commands.java
|
||||||
|
+++ b/src/main/java/net/minecraft/commands/Commands.java
|
||||||
|
@@ -199,7 +199,7 @@ public class Commands {
|
||||||
|
TitleCommand.register(this.dispatcher);
|
||||||
|
//TriggerCommand.register(this.dispatcher); // Folia - region threading - TODO later
|
||||||
|
WeatherCommand.register(this.dispatcher);
|
||||||
|
- //WorldBorderCommand.register(this.dispatcher); // Folia - region threading - TODO later
|
||||||
|
+ WorldBorderCommand.register(this.dispatcher); // Folia - region threading - TODO later // Kaiiju
|
||||||
|
if (JvmProfiler.INSTANCE.isAvailable()) {
|
||||||
|
JfrCommand.register(this.dispatcher);
|
||||||
|
}
|
||||||
19
patches/server/0042-Add-back-data-command.patch
Normal file
19
patches/server/0042-Add-back-data-command.patch
Normal file
@@ -0,0 +1,19 @@
|
|||||||
|
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
||||||
|
From: "Sofiane H. Djerbi" <46628754+kugge@users.noreply.github.com>
|
||||||
|
Date: Sun, 9 Jul 2023 19:18:42 +0300
|
||||||
|
Subject: [PATCH] Add back data command
|
||||||
|
|
||||||
|
|
||||||
|
diff --git a/src/main/java/net/minecraft/commands/Commands.java b/src/main/java/net/minecraft/commands/Commands.java
|
||||||
|
index 68af43ed4d667648df0e45ffc899d3e4b7b1a69d..44576310cc5b89c287b0ab7ba1a99d76b67f33dd 100644
|
||||||
|
--- a/src/main/java/net/minecraft/commands/Commands.java
|
||||||
|
+++ b/src/main/java/net/minecraft/commands/Commands.java
|
||||||
|
@@ -148,7 +148,7 @@ public class Commands {
|
||||||
|
ClearInventoryCommands.register(this.dispatcher, commandRegistryAccess);
|
||||||
|
//CloneCommands.register(this.dispatcher, commandRegistryAccess); // Folia - region threading - TODO
|
||||||
|
DamageCommand.register(this.dispatcher, commandRegistryAccess);
|
||||||
|
- //DataCommands.register(this.dispatcher); // Folia - region threading - TODO
|
||||||
|
+ DataCommands.register(this.dispatcher); // Folia - region threading - TODO // Kaiiju
|
||||||
|
//DataPackCommand.register(this.dispatcher); // Folia - region threading - TODO
|
||||||
|
//DebugCommand.register(this.dispatcher); // Folia - region threading - TODO
|
||||||
|
DefaultGameModeCommands.register(this.dispatcher);
|
||||||
1286
patches/server/0043-Async-path-processing.patch
Normal file
1286
patches/server/0043-Async-path-processing.patch
Normal file
File diff suppressed because it is too large
Load Diff
Reference in New Issue
Block a user