9
0
mirror of https://github.com/Winds-Studio/Leaf.git synced 2025-12-30 20:39:21 +00:00

Update input sanitization for purpur config

This commit is contained in:
Dreeam
2025-05-26 18:24:50 +08:00
parent 3e50c4fa8c
commit ccefbcfa8d
40 changed files with 38 additions and 18 deletions

View File

@@ -322,3 +322,21 @@ index a33641dd6e0839fd1b557d8583fe8bb929fcc1cb..d5ef2ec5e15b6d250aafb0b8282b350c
} else if (maxProjectileChunkLoadsConfig.perProjectile.resetMovementAfterReachLimit) {
this.setDeltaMovement(0, this.getDeltaMovement().y, 0);
}
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
index b3fca75c66b16e35f6841c3b7df9103d68f1308e..2f2bd44723d3051ff7009f531f79471197705552 100644
--- a/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -2355,6 +2355,13 @@ public class PurpurWorldConfig {
piglinBypassMobGriefing = getBoolean("mobs.piglin.bypass-mob-griefing", piglinBypassMobGriefing);
piglinTakeDamageFromWater = getBoolean("mobs.piglin.takes-damage-from-water", piglinTakeDamageFromWater);
piglinPortalSpawnModifier = getInt("mobs.piglin.portal-spawn-modifier", piglinPortalSpawnModifier);
+ // Leaf start - Fix Pufferfish and Purpur patches - better input sanitization
+ if (piglinPortalSpawnModifier < 1) {
+ piglinPortalSpawnModifier = 1;
+ log(Level.WARNING, "mobs.piglin.portal-spawn-modifier is set to below minimum allowed value of 1");
+ log(Level.WARNING, "Using value of 1 to prevent issues");
+ }
+ // Leaf end - Fix Pufferfish and Purpur patches - better input sanitization
piglinAlwaysDropExp = getBoolean("mobs.piglin.always-drop-exp", piglinAlwaysDropExp);
piglinHeadVisibilityPercent = getDouble("mobs.piglin.head-visibility-percent", piglinHeadVisibilityPercent);
piglinIgnoresArmorWithGoldTrim = getBoolean("mobs.piglin.ignores-armor-with-gold-trim", piglinIgnoresArmorWithGoldTrim);

View File

@@ -50,7 +50,7 @@ index 7af71c777dca26cd94b1807a2a77ea0d30e92976..e64f9308fc848c0f22d8dbd6e544b786
.add(Attributes.ARMOR, 2.0)
.add(Attributes.SPAWN_REINFORCEMENTS_CHANCE);
diff --git a/net/minecraft/world/entity/monster/ZombieVillager.java b/net/minecraft/world/entity/monster/ZombieVillager.java
index 1ca0514732916d325c4a76d73120aaf613c3f780..970f6bdb0d0c15f7d814926472daec689beb82f4 100644
index aa5c02b5c949c80a96c1dd60fd3de8e2261fe797..cb0e000c5b8636296c7d7474d0947c75f41b6058 100644
--- a/net/minecraft/world/entity/monster/ZombieVillager.java
+++ b/net/minecraft/world/entity/monster/ZombieVillager.java
@@ -99,6 +99,7 @@ public class ZombieVillager extends Zombie implements VillagerDataHolder {
@@ -83,7 +83,7 @@ index fddbbffafea275dad187b7908386cf4c05c86743..89a67db9bbdb31661fa4f71f1270198b
}
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
index b3fca75c66b16e35f6841c3b7df9103d68f1308e..ae06918ebfa3bbd914ebdebb8107ec447643ef22 100644
index 2f2bd44723d3051ff7009f531f79471197705552..1d8b791c041139df7f24339849adf058936f8b57 100644
--- a/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1570,6 +1570,7 @@ public class PurpurWorldConfig {
@@ -118,7 +118,7 @@ index b3fca75c66b16e35f6841c3b7df9103d68f1308e..ae06918ebfa3bbd914ebdebb8107ec44
}
public boolean illusionerRidable = false;
@@ -3297,6 +3301,7 @@ public class PurpurWorldConfig {
@@ -3304,6 +3308,7 @@ public class PurpurWorldConfig {
public boolean zombieTakeDamageFromWater = false;
public boolean zombieAlwaysDropExp = false;
public double zombieHeadVisibilityPercent = 0.5D;
@@ -126,7 +126,7 @@ index b3fca75c66b16e35f6841c3b7df9103d68f1308e..ae06918ebfa3bbd914ebdebb8107ec44
private void zombieSettings() {
zombieRidable = getBoolean("mobs.zombie.ridable", zombieRidable);
zombieRidableInWater = getBoolean("mobs.zombie.ridable-in-water", zombieRidableInWater);
@@ -3317,6 +3322,7 @@ public class PurpurWorldConfig {
@@ -3324,6 +3329,7 @@ public class PurpurWorldConfig {
zombieTakeDamageFromWater = getBoolean("mobs.zombie.takes-damage-from-water", zombieTakeDamageFromWater);
zombieAlwaysDropExp = getBoolean("mobs.zombie.always-drop-exp", zombieAlwaysDropExp);
zombieHeadVisibilityPercent = getDouble("mobs.zombie.head-visibility-percent", zombieHeadVisibilityPercent);
@@ -134,7 +134,7 @@ index b3fca75c66b16e35f6841c3b7df9103d68f1308e..ae06918ebfa3bbd914ebdebb8107ec44
}
public boolean zombieHorseRidable = false;
@@ -3366,6 +3372,7 @@ public class PurpurWorldConfig {
@@ -3373,6 +3379,7 @@ public class PurpurWorldConfig {
public int zombieVillagerCuringTimeMax = 6000;
public boolean zombieVillagerCureEnabled = true;
public boolean zombieVillagerAlwaysDropExp = false;
@@ -142,7 +142,7 @@ index b3fca75c66b16e35f6841c3b7df9103d68f1308e..ae06918ebfa3bbd914ebdebb8107ec44
private void zombieVillagerSettings() {
zombieVillagerRidable = getBoolean("mobs.zombie_villager.ridable", zombieVillagerRidable);
zombieVillagerRidableInWater = getBoolean("mobs.zombie_villager.ridable-in-water", zombieVillagerRidableInWater);
@@ -3386,6 +3393,7 @@ public class PurpurWorldConfig {
@@ -3393,6 +3400,7 @@ public class PurpurWorldConfig {
zombieVillagerCuringTimeMax = getInt("mobs.zombie_villager.curing_time.max", zombieVillagerCuringTimeMax);
zombieVillagerCureEnabled = getBoolean("mobs.zombie_villager.cure.enabled", zombieVillagerCureEnabled);
zombieVillagerAlwaysDropExp = getBoolean("mobs.zombie_villager.always-drop-exp", zombieVillagerAlwaysDropExp);
@@ -150,7 +150,7 @@ index b3fca75c66b16e35f6841c3b7df9103d68f1308e..ae06918ebfa3bbd914ebdebb8107ec44
}
public boolean zombifiedPiglinRidable = false;
@@ -3400,6 +3408,7 @@ public class PurpurWorldConfig {
@@ -3407,6 +3415,7 @@ public class PurpurWorldConfig {
public boolean zombifiedPiglinCountAsPlayerKillWhenAngry = true;
public boolean zombifiedPiglinTakeDamageFromWater = false;
public boolean zombifiedPiglinAlwaysDropExp = false;
@@ -158,7 +158,7 @@ index b3fca75c66b16e35f6841c3b7df9103d68f1308e..ae06918ebfa3bbd914ebdebb8107ec44
private void zombifiedPiglinSettings() {
zombifiedPiglinRidable = getBoolean("mobs.zombified_piglin.ridable", zombifiedPiglinRidable);
zombifiedPiglinRidableInWater = getBoolean("mobs.zombified_piglin.ridable-in-water", zombifiedPiglinRidableInWater);
@@ -3418,6 +3427,7 @@ public class PurpurWorldConfig {
@@ -3425,6 +3434,7 @@ public class PurpurWorldConfig {
zombifiedPiglinCountAsPlayerKillWhenAngry = getBoolean("mobs.zombified_piglin.count-as-player-kill-when-angry", zombifiedPiglinCountAsPlayerKillWhenAngry);
zombifiedPiglinTakeDamageFromWater = getBoolean("mobs.zombified_piglin.takes-damage-from-water", zombifiedPiglinTakeDamageFromWater);
zombifiedPiglinAlwaysDropExp = getBoolean("mobs.zombified_piglin.always-drop-exp", zombifiedPiglinAlwaysDropExp);

View File

@@ -263,7 +263,7 @@ index 1cc5c37ee9aab6b9eb45881dddc03715bd4153b7..c0cde1461c0e3ec63bf77cc5056f8c63
org.bukkit.event.inventory.InventoryType.ENDER_CHEST.setDefaultSize(enderChestSixRows ? 54 : 27);
enderChestPermissionRows = getBoolean("settings.blocks.ender_chest.use-permissions-for-rows", enderChestPermissionRows);
diff --git a/org/purpurmc/purpur/PurpurWorldConfig.java b/org/purpurmc/purpur/PurpurWorldConfig.java
index ae06918ebfa3bbd914ebdebb8107ec447643ef22..793d2fd30edcf4c21445eabdab8d6813e460e469 100644
index 1d8b791c041139df7f24339849adf058936f8b57..246a911915fee61e8fd459f13155740200019abc 100644
--- a/org/purpurmc/purpur/PurpurWorldConfig.java
+++ b/org/purpurmc/purpur/PurpurWorldConfig.java
@@ -1139,12 +1139,20 @@ public class PurpurWorldConfig {
@@ -353,7 +353,7 @@ index ae06918ebfa3bbd914ebdebb8107ec447643ef22..793d2fd30edcf4c21445eabdab8d6813
}
public boolean ghastRidable = false;
@@ -2801,6 +2835,10 @@ public class PurpurWorldConfig {
@@ -2808,6 +2842,10 @@ public class PurpurWorldConfig {
public double snifferMaxHealth = 14.0D;
public double snifferScale = 1.0D;
public int snifferBreedingTicks = 6000;
@@ -364,7 +364,7 @@ index ae06918ebfa3bbd914ebdebb8107ec447643ef22..793d2fd30edcf4c21445eabdab8d6813
private void snifferSettings() {
snifferRidable = getBoolean("mobs.sniffer.ridable", snifferRidable);
snifferRidableInWater = getBoolean("mobs.sniffer.ridable-in-water", snifferRidableInWater);
@@ -2808,6 +2846,10 @@ public class PurpurWorldConfig {
@@ -2815,6 +2853,10 @@ public class PurpurWorldConfig {
snifferMaxHealth = getDouble("mobs.sniffer.attributes.max_health", snifferMaxHealth);
snifferScale = Mth.clamp(getDouble("mobs.sniffer.attributes.scale", snifferScale), 0.0625D, 16.0D);
snifferBreedingTicks = getInt("mobs.sniffer.breeding-delay-ticks", snifferBreedingTicks);
@@ -375,7 +375,7 @@ index ae06918ebfa3bbd914ebdebb8107ec447643ef22..793d2fd30edcf4c21445eabdab8d6813
}
public boolean squidRidable = false;
@@ -2909,10 +2951,20 @@ public class PurpurWorldConfig {
@@ -2916,10 +2958,20 @@ public class PurpurWorldConfig {
public boolean tadpoleRidable = false;
public boolean tadpoleRidableInWater = true;
public boolean tadpoleControllable = true;
@@ -396,7 +396,7 @@ index ae06918ebfa3bbd914ebdebb8107ec447643ef22..793d2fd30edcf4c21445eabdab8d6813
}
public boolean traderLlamaRidable = false;
@@ -3141,10 +3193,20 @@ public class PurpurWorldConfig {
@@ -3148,10 +3200,20 @@ public class PurpurWorldConfig {
public boolean wardenRidable = false;
public boolean wardenRidableInWater = true;
public boolean wardenControllable = true;

View File

@@ -1,21 +0,0 @@
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
From: Dreeam <61569423+Dreeam-qwq@users.noreply.github.com>
Date: Wed, 31 Jul 2024 22:05:21 +0800
Subject: [PATCH] Leaf Bootstrap
org.bukkit.craftbukkit.Main#main -> LeafBootstrap -> PaperBootstrap -> ...
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index ecb0fcd1f3b3f3d7751eded3cdf0977c1889c9ed..d0becb56a9911ef4cc55ae8d7c47832f442ad52f 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -278,7 +278,8 @@ public class Main {
System.setProperty("jdk.console", "java.base"); // Paper - revert default console provider back to java.base so we can have our own jline
//System.out.println("Loading libraries, please wait...");
//net.minecraft.server.Main.main(options);
- io.papermc.paper.PaperBootstrap.boot(options);
+ //io.papermc.paper.PaperBootstrap.boot(options); // Leaf - Leaf Boostrap - diff on change
+ org.dreeam.leaf.LeafBootstrap.boot(options); // Leaf - Leaf Boostrap
} catch (Throwable t) {
t.printStackTrace();
}

View File

@@ -761,7 +761,7 @@ index a92e0877669a92851c6d7f83de75ffb087c8e651..daede6da974beb5ff19877caa5e6f8b3
public Collection<GeneratedStructure> getStructures(int x, int z) {
return this.getStructures(x, z, struct -> true);
diff --git a/src/main/java/org/bukkit/craftbukkit/Main.java b/src/main/java/org/bukkit/craftbukkit/Main.java
index 70d093f71cca569d9da3ae82e738f8f3069f405e..7120ff469b0a0b638a4051b92f00f97da75edae0 100644
index bf5343b0847e9f57ffbc7f33714ae6ca62f14332..2e1b7f613de8876095ef39bb0341a3f9520c8d5d 100644
--- a/src/main/java/org/bukkit/craftbukkit/Main.java
+++ b/src/main/java/org/bukkit/craftbukkit/Main.java
@@ -176,6 +176,13 @@ public class Main {

View File

@@ -5,7 +5,7 @@ Subject: [PATCH] Configurable unknown command message
diff --git a/src/main/java/org/spigotmc/SpigotConfig.java b/src/main/java/org/spigotmc/SpigotConfig.java
index e0d4222a99f22d7130d95cf29b034a98f2f3b76e..089dd39d428bd1e3773769f2a50cc2f3bc1b4311 100644
index d1351ed25c4de3e4989a47a793047b0614e8d0b2..0de990f5b90c3404cfbf52d3e75b3c0a3a98de14 100644
--- a/src/main/java/org/spigotmc/SpigotConfig.java
+++ b/src/main/java/org/spigotmc/SpigotConfig.java
@@ -151,7 +151,6 @@ public class SpigotConfig {

View File

@@ -41,7 +41,7 @@ index 379c2dc1853e45a96dda9b13bf28b7e08f65658a..361f4de9cdf0f7505628a2fed2a3f536
}
// Leaves start - skip photographer
diff --git a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
index edcd209798740f31cb302f36d7864a0d8ea1d561..e2444cc9e28dd432bf3351066b1408102decfa0a 100644
index edcd209798740f31cb302f36d7864a0d8ea1d561..e8b80ac3d2a54b9e855cad80c8a782007f5ea726 100644
--- a/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
+++ b/src/main/java/org/bukkit/craftbukkit/entity/CraftEntity.java
@@ -749,7 +749,7 @@ public abstract class CraftEntity implements org.bukkit.entity.Entity {

View File

@@ -7,7 +7,7 @@ Original license: MIT
Original project: https://github.com/starlis/empirecraft
diff --git a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
index 5cb69d0b822e11a99a96aef4f59986d083b079f4..973b297a22c0cc53f966582c67c3688f4b2205c7 100644
index 02e8a49d220ad99f7a5dc9786617f3759c3ca0d0..811823a1a7e24a19a7e37eb4c08efdfa19e839ed 100644
--- a/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
+++ b/src/main/java/org/bukkit/craftbukkit/block/CraftBlock.java
@@ -331,7 +331,7 @@ public class CraftBlock implements Block {

View File

@@ -9,7 +9,7 @@ Added some asynchronous structure locate methods in World,
requires async-locator to be enabled in Leaf config, or else it will fall back to sync methods.
diff --git a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
index ca60f91ef012c94174a0803eb77699ba9ecff5e1..15673166e566b2a6d5093210d99b154e69fab0ad 100644
index daede6da974beb5ff19877caa5e6f8b3ecdf9000..af33cab59932f4ec135caf94dc5828930833daf6 100644
--- a/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
+++ b/src/main/java/org/bukkit/craftbukkit/CraftWorld.java
@@ -2271,6 +2271,45 @@ public class CraftWorld extends CraftRegionAccessor implements World {