34 Zeilen
2.1 KiB
Diff
34 Zeilen
2.1 KiB
Diff
From 0000000000000000000000000000000000000000 Mon Sep 17 00:00:00 2001
|
|
From: Nassim Jahnke <jahnke.nassim@gmail.com>
|
|
Date: Thu, 16 Dec 2021 09:40:39 +0100
|
|
Subject: [PATCH] Configurable max block light for monster spawning
|
|
|
|
|
|
diff --git a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
index 7e83580c5cd7fb834e936f96824f90a6d7f3e007..a41014ae52f668a3d788ee37ed547e12233a4e3b 100644
|
|
--- a/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
+++ b/src/main/java/com/destroystokyo/paper/PaperWorldConfig.java
|
|
@@ -1031,4 +1031,9 @@ public class PaperWorldConfig {
|
|
Integer rate = table.get(columnKey, rowKey);
|
|
return rate != null && rate > -1 ? rate : def;
|
|
}
|
|
+
|
|
+ public int maxBlockLightForMonsterSpawning = -1;
|
|
+ private void minBlockLightForMobSpawning() {
|
|
+ this.maxBlockLightForMonsterSpawning = getInt("monster-spawn-max-light-level", maxBlockLightForMonsterSpawning);
|
|
+ }
|
|
}
|
|
diff --git a/src/main/java/net/minecraft/world/entity/monster/Monster.java b/src/main/java/net/minecraft/world/entity/monster/Monster.java
|
|
index 457880c9e894a83d88505cf0b7235df919eea591..1d66588cfe94d190a34dc376b4b5bff9461a3529 100644
|
|
--- a/src/main/java/net/minecraft/world/entity/monster/Monster.java
|
|
+++ b/src/main/java/net/minecraft/world/entity/monster/Monster.java
|
|
@@ -90,7 +90,7 @@ public abstract class Monster extends PathfinderMob implements Enemy {
|
|
public static boolean isDarkEnoughToSpawn(ServerLevelAccessor world, BlockPos pos, Random random) {
|
|
if (world.getBrightness(LightLayer.SKY, pos) > random.nextInt(32)) {
|
|
return false;
|
|
- } else if (world.getBrightness(LightLayer.BLOCK, pos) > 0) {
|
|
+ } else if (world.getBrightness(LightLayer.BLOCK, pos) > (world.getLevel().paperConfig.maxBlockLightForMonsterSpawning >= 0 ? world.getLevel().paperConfig.maxBlockLightForMonsterSpawning : 0)) { // Paper - configurable max block light level
|
|
return false;
|
|
} else {
|
|
int i = world.getLevel().isThundering() ? world.getMaxLocalRawBrightness(pos, 10) : world.getMaxLocalRawBrightness(pos);
|