remove the duplicate raw System.out.println spawn-egg dumps during startup
validate configured spawn-egg material names before storing them
ignore unsupported or non-spawn-egg materials instead of inserting null values
remove ARMADILLO_SPAWN_EGG, BOGGED_SPAWN_EGG, and BREEZE_SPAWN_EGG from the bundled defaults because they do not exist in Minecraft/Purpur 1.19.4
Root cause
The default configuration included three materials introduced after Minecraft 1.19.4. Material.getMaterial(...) returned null for them, and the loader added those nulls to the list. The list was then printed once in Configuration.load() and again in MobLimiter.onEnable(), producing the duplicate startup log lines.
Impact
MobLimiter now starts cleanly on Purpur 1.19.4 without the duplicate material-list output or null entries. Existing custom configs containing unsupported material names are handled safely and receive a targeted warning identifying the invalid entry.
Validation
reviewed against the repository's declared purpur-api:1.19.4-R0.1-SNAPSHOT target
confirmed all three unsupported defaults are removed
confirmed no null material is added to spawnEggs
confirmed both raw console list dumps are removed
A local Gradle build could not be run in this environment because outbound repository access and the GitHub CLI are unavailable; the changes were made and reviewed through the connected GitHub API.
## What changed
- remove the duplicate raw `System.out.println` spawn-egg dumps during startup
- validate configured spawn-egg material names before storing them
- ignore unsupported or non-spawn-egg materials instead of inserting `null` values
- remove `ARMADILLO_SPAWN_EGG`, `BOGGED_SPAWN_EGG`, and `BREEZE_SPAWN_EGG` from the bundled defaults because they do not exist in Minecraft/Purpur 1.19.4
## Root cause
The default configuration included three materials introduced after Minecraft 1.19.4. `Material.getMaterial(...)` returned `null` for them, and the loader added those nulls to the list. The list was then printed once in `Configuration.load()` and again in `MobLimiter.onEnable()`, producing the duplicate startup log lines.
## Impact
MobLimiter now starts cleanly on Purpur 1.19.4 without the duplicate material-list output or null entries. Existing custom configs containing unsupported material names are handled safely and receive a targeted warning identifying the invalid entry.
## Validation
- reviewed against the repository's declared `purpur-api:1.19.4-R0.1-SNAPSHOT` target
- confirmed all three unsupported defaults are removed
- confirmed no null material is added to `spawnEggs`
- confirmed both raw console list dumps are removed
A local Gradle build could not be run in this environment because outbound repository access and the GitHub CLI are unavailable; the changes were made and reviewed through the connected GitHub API.
Blocking a user prevents them from interacting with repositories, such as opening or commenting on pull requests or issues. Learn more about blocking a user.
What changed
System.out.printlnspawn-egg dumps during startupnullvaluesARMADILLO_SPAWN_EGG,BOGGED_SPAWN_EGG, andBREEZE_SPAWN_EGGfrom the bundled defaults because they do not exist in Minecraft/Purpur 1.19.4Root cause
The default configuration included three materials introduced after Minecraft 1.19.4.
Material.getMaterial(...)returnednullfor them, and the loader added those nulls to the list. The list was then printed once inConfiguration.load()and again inMobLimiter.onEnable(), producing the duplicate startup log lines.Impact
MobLimiter now starts cleanly on Purpur 1.19.4 without the duplicate material-list output or null entries. Existing custom configs containing unsupported material names are handled safely and receive a targeted warning identifying the invalid entry.
Validation
purpur-api:1.19.4-R0.1-SNAPSHOTtargetspawnEggsA local Gradle build could not be run in this environment because outbound repository access and the GitHub CLI are unavailable; the changes were made and reviewed through the connected GitHub API.