Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
28 commits
Select commit Hold shift + click to select a range
6ef49ee
refactor: rewrite FAWE's configuration as immutable records
MattBDev Oct 16, 2026
4adf724
refactor: rewrite FAWE's configuration as immutable records
MattBDev Oct 16, 2026
ae76c69
Remove unnecessary comment
MattBDev Oct 21, 2026
5a281ad
Merge remote-tracking branch 'origin/refactor/v3/settings-records' in…
MattBDev Oct 22, 2026
5202e80
Update @since annotation in Comment.java
MattBDev Oct 23, 2026
186fe0d
Merge remote-tracking branch 'origin/refactor/v3/settings-records' in…
MattBDev Oct 24, 2026
56cc5df
Add getPath method to IFawe interface and implement in FaweBukkit
MattBDev Oct 24, 2026
2603106
Removing unused fields in config, updated comments, addressed feedback
MattBDev Oct 24, 2026
8e0b15e
Removes redundant Paper check for dynamic chunk rendering
MattBDev Oct 24, 2026
2373188
Change the comment for per player schematics.
MattBDev Oct 25, 2026
f0dc553
Refactor Option interface to remove generic type and update comments …
MattBDev Oct 25, 2026
1db13e4
Update comment in ConfigYaml to clarify writing speeds
MattBDev Oct 25, 2026
a1fe448
fix: keep settings on a broken reload, don't save the ZSTD clamp, mig…
MattBDev Oct 25, 2026
54a924a
refactor: update terminology from 'option' to 'setting' for clarity i…
MattBDev Oct 25, 2026
6eb5c85
Merge remote-tracking branch 'origin/fix/v3/worldedit-config-loading'…
MattBDev Oct 26, 2026
8d73edd
fix: separate pathOf errors for lambdas and group settings, drop plat…
MattBDev Oct 26, 2026
1beb189
Merge branch 'fix/v3/worldedit-config-loading' into refactor/v3/setti…
MattBDev Oct 27, 2026
8c03e90
refactor: drop anvil-queue-mode and trim SettingsTest to justified tests
MattBDev Oct 27, 2026
0b9f06d
refactor: build namespaced disallowed blocks with a stream
MattBDev Oct 27, 2026
8a74978
Fix typo in config.yml comments
MattBDev Oct 28, 2026
40482c8
Fix config comment spelling
Copilot Oct 28, 2026
2ae59eb
Fix allow-legacy comment wording
Copilot Oct 28, 2026
ece1646
Apply remaining changes
Copilot Nov 1, 2026
21a4b1e
Write config files with SnakeYAML
MattBDev Nov 6, 2026
e170b8c
Drop volatile from the ProtocolSupport flag
MattBDev Nov 6, 2026
9ab76e9
Refactor file path handling to use Path API for improved clarity and …
MattBDev Nov 6, 2026
726faf5
Use MutableCallSite for settings hot path
Copilot Nov 8, 2026
e1fe75d
Fix migration of schematic limits into groups with dots in their name
MattBDev Nov 8, 2026
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
Original file line number Diff line number Diff line change
Expand Up @@ -629,7 +629,7 @@ protected <T extends Future<T>> T internalCall(
entityRemoves.remove(uuid);
}
}
if (Settings.settings().EXPERIMENTAL.REMOVE_ENTITY_FROM_WORLD_ON_CHUNK_FAIL) {
if (Settings.settings().experimental().removeEntityFromWorldOnChunkFail()) {
for (UUID uuid : entityRemoves) {
Entity entity = nmsWorld.getEntities().get(uuid);
if (entity != null) {
Expand Down Expand Up @@ -763,7 +763,7 @@ protected <T extends Future<T>> T internalCall(
// send to player
if (!set
.getSideEffectSet()
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().LIGHTING.DELAY_PACKET_SENDING || finalMask == 0 && biomes != null) {
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().lighting().delayPacketSending() || finalMask == 0 && biomes != null) {
this.send();
}
if (finalizer != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChun
@SuppressWarnings("deprecation")
@Override
public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) {
boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS;
boolean tickFluid = Settings.settings().experimental().allowTickFluids();
// The PostProcessor shouldn't be added, but just in case
if (!tickFluid) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ protected void invokeRelight(
* Also, if chunk packets are sent delayed, we need to do that here
*/
protected void postProcessChunks(Set<ChunkPos> coords) {
boolean delay = Settings.settings().LIGHTING.DELAY_PACKET_SENDING;
boolean delay = Settings.settings().lighting().delayPacketSending();
for (ChunkPos pos : coords) {
int x = pos.x;
int z = pos.z;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -621,7 +621,7 @@ protected <T extends Future<T>> T internalCall(
entityRemoves.remove(uuid);
}
}
if (Settings.settings().EXPERIMENTAL.REMOVE_ENTITY_FROM_WORLD_ON_CHUNK_FAIL) {
if (Settings.settings().experimental().removeEntityFromWorldOnChunkFail()) {
for (UUID uuid : entityRemoves) {
Entity entity = nmsWorld.getEntities().get(uuid);
if (entity != null) {
Expand Down Expand Up @@ -751,7 +751,7 @@ protected <T extends Future<T>> T internalCall(
// send to player
if (!set
.getSideEffectSet()
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().LIGHTING.DELAY_PACKET_SENDING || finalMask == 0 && biomes != null) {
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().lighting().delayPacketSending() || finalMask == 0 && biomes != null) {
this.send();
}
if (finalizer != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChun
@SuppressWarnings("deprecation")
@Override
public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) {
boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS;
boolean tickFluid = Settings.settings().experimental().allowTickFluids();
// The PostProcessor shouldn't be added, but just in case
if (!tickFluid) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ protected void invokeRelight(
* Also, if chunk packets are sent delayed, we need to do that here
*/
protected void postProcessChunks(Set<ChunkPos> coords) {
boolean delay = Settings.settings().LIGHTING.DELAY_PACKET_SENDING;
boolean delay = Settings.settings().lighting().delayPacketSending();
for (ChunkPos pos : coords) {
int x = pos.x;
int z = pos.z;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -618,7 +618,7 @@ protected <T extends Future<T>> T internalCall(
entityRemoves.remove(uuid);
}
}
if (Settings.settings().EXPERIMENTAL.REMOVE_ENTITY_FROM_WORLD_ON_CHUNK_FAIL) {
if (Settings.settings().experimental().removeEntityFromWorldOnChunkFail()) {
for (UUID uuid : entityRemoves) {
Entity entity = nmsWorld.getEntities().get(uuid);
if (entity != null) {
Expand Down Expand Up @@ -746,7 +746,7 @@ protected <T extends Future<T>> T internalCall(
// send to player
if (!set
.getSideEffectSet()
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().LIGHTING.DELAY_PACKET_SENDING || finalMask == 0 && biomes != null) {
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().lighting().delayPacketSending() || finalMask == 0 && biomes != null) {
this.send();
}
if (finalizer != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChun
@SuppressWarnings("deprecation")
@Override
public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) {
boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS;
boolean tickFluid = Settings.settings().experimental().allowTickFluids();
// The PostProcessor shouldn't be added, but just in case
if (!tickFluid) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -66,7 +66,7 @@ protected void invokeRelight(
* Also, if chunk packets are sent delayed, we need to do that here
*/
protected void postProcessChunks(Set<ChunkPos> coords) {
boolean delay = Settings.settings().LIGHTING.DELAY_PACKET_SENDING;
boolean delay = Settings.settings().lighting().delayPacketSending();
for (ChunkPos pos : coords) {
int x = pos.x;
int z = pos.z;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -618,7 +618,7 @@ protected <T extends Future<T>> T internalCall(
entityRemoves.remove(uuid);
}
}
if (Settings.settings().EXPERIMENTAL.REMOVE_ENTITY_FROM_WORLD_ON_CHUNK_FAIL) {
if (Settings.settings().experimental().removeEntityFromWorldOnChunkFail()) {
for (UUID uuid : entityRemoves) {
Entity entity = nmsWorld.getEntities().get(uuid);
if (entity != null) {
Expand Down Expand Up @@ -745,7 +745,7 @@ protected <T extends Future<T>> T internalCall(
// send to player
if (!set
.getSideEffectSet()
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().LIGHTING.DELAY_PACKET_SENDING || finalMask == 0 && biomes != null) {
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().lighting().delayPacketSending() || finalMask == 0 && biomes != null) {
this.send();
}
if (finalizer != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChun
@SuppressWarnings("deprecation")
@Override
public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) {
boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS;
boolean tickFluid = Settings.settings().experimental().allowTickFluids();
// The PostProcessor shouldn't be added, but just in case
if (!tickFluid) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ protected void invokeRelight(
* Also, if chunk packets are sent delayed, we need to do that here
*/
protected void postProcessChunks(Set<ChunkPos> coords) {
boolean delay = Settings.settings().LIGHTING.DELAY_PACKET_SENDING;
boolean delay = Settings.settings().lighting().delayPacketSending();
for (ChunkPos pos : coords) {
int x = pos.x;
int z = pos.z;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -622,7 +622,7 @@ protected <T extends Future<T>> T internalCall(
entityRemoves.remove(uuid);
}
}
if (Settings.settings().EXPERIMENTAL.REMOVE_ENTITY_FROM_WORLD_ON_CHUNK_FAIL) {
if (Settings.settings().experimental().removeEntityFromWorldOnChunkFail()) {
for (UUID uuid : entityRemoves) {
Entity entity = nmsWorld.getEntities().get(uuid);
if (entity != null) {
Expand Down Expand Up @@ -753,7 +753,7 @@ protected <T extends Future<T>> T internalCall(
// send to player
if (!set
.getSideEffectSet()
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().LIGHTING.DELAY_PACKET_SENDING || finalMask == 0 && biomes != null) {
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().lighting().delayPacketSending() || finalMask == 0 && biomes != null) {
this.send();
}
if (finalizer != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChun
@SuppressWarnings("deprecation")
@Override
public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) {
boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS;
boolean tickFluid = Settings.settings().experimental().allowTickFluids();
// The PostProcessor shouldn't be added, but just in case
if (!tickFluid) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ protected void invokeRelight(
* Also, if chunk packets are sent delayed, we need to do that here
*/
protected void postProcessChunks(Set<ChunkPos> coords) {
boolean delay = Settings.settings().LIGHTING.DELAY_PACKET_SENDING;
boolean delay = Settings.settings().lighting().delayPacketSending();
for (ChunkPos pos : coords) {
int x = pos.x;
int z = pos.z;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -625,7 +625,7 @@ protected <T extends Future<T>> T internalCall(
entityRemoves.remove(uuid);
}
}
if (Settings.settings().EXPERIMENTAL.REMOVE_ENTITY_FROM_WORLD_ON_CHUNK_FAIL) {
if (Settings.settings().experimental().removeEntityFromWorldOnChunkFail()) {
for (UUID uuid : entityRemoves) {
Entity entity = nmsWorld.getEntities().get(uuid);
if (entity != null) {
Expand Down Expand Up @@ -758,7 +758,7 @@ protected <T extends Future<T>> T internalCall(
// send to player
if (!set
.getSideEffectSet()
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().LIGHTING.DELAY_PACKET_SENDING || finalMask == 0 && biomes != null) {
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().lighting().delayPacketSending() || finalMask == 0 && biomes != null) {
this.send();
}
if (finalizer != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChun
@SuppressWarnings("deprecation")
@Override
public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) {
boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS;
boolean tickFluid = Settings.settings().experimental().allowTickFluids();
// The PostProcessor shouldn't be added, but just in case
if (!tickFluid) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ protected void invokeRelight(
* Also, if chunk packets are sent delayed, we need to do that here
*/
protected void postProcessChunks(Set<ChunkPos> coords) {
boolean delay = Settings.settings().LIGHTING.DELAY_PACKET_SENDING;
boolean delay = Settings.settings().lighting().delayPacketSending();
for (ChunkPos pos : coords) {
int x = pos.x;
int z = pos.z;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -621,7 +621,7 @@ protected <T extends Future<T>> T internalCall(
entityRemoves.remove(uuid);
}
}
if (Settings.settings().EXPERIMENTAL.REMOVE_ENTITY_FROM_WORLD_ON_CHUNK_FAIL) {
if (Settings.settings().experimental().removeEntityFromWorldOnChunkFail()) {
for (UUID uuid : entityRemoves) {
Entity entity = nmsWorld.getEntities().get(uuid);
if (entity != null) {
Expand Down Expand Up @@ -751,7 +751,7 @@ protected <T extends Future<T>> T internalCall(
// send to player
if (!set
.getSideEffectSet()
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().LIGHTING.DELAY_PACKET_SENDING || finalMask == 0 && biomes != null) {
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().lighting().delayPacketSending() || finalMask == 0 && biomes != null) {
this.send();
}
if (finalizer != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -29,7 +29,7 @@ public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChun
@SuppressWarnings("deprecation")
@Override
public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) {
boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS;
boolean tickFluid = Settings.settings().experimental().allowTickFluids();
// The PostProcessor shouldn't be added, but just in case
if (!tickFluid) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ protected void invokeRelight(
* Also, if chunk packets are sent delayed, we need to do that here
*/
protected void postProcessChunks(Set<ChunkPos> coords) {
boolean delay = Settings.settings().LIGHTING.DELAY_PACKET_SENDING;
boolean delay = Settings.settings().lighting().delayPacketSending();
for (ChunkPos pos : coords) {
int x = pos.x();
int z = pos.z();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,7 @@ protected <T extends Future<T>> T internalCall(
entityRemoves.remove(uuid);
}
}
if (Settings.settings().EXPERIMENTAL.REMOVE_ENTITY_FROM_WORLD_ON_CHUNK_FAIL) {
if (Settings.settings().experimental().removeEntityFromWorldOnChunkFail()) {
for (UUID uuid : entityRemoves) {
Entity entity = nmsWorld.getEntities().get(uuid);
if (entity != null) {
Expand Down Expand Up @@ -756,7 +756,7 @@ protected <T extends Future<T>> T internalCall(
// send to player
if (!set
.getSideEffectSet()
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().LIGHTING.DELAY_PACKET_SENDING || finalMask == 0 && biomes != null) {
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().lighting().delayPacketSending() || finalMask == 0 && biomes != null) {
this.send();
}
if (finalizer != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChun
@SuppressWarnings("deprecation")
@Override
public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) {
boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS;
boolean tickFluid = Settings.settings().experimental().allowTickFluids();
// The PostProcessor shouldn't be added, but just in case
if (!tickFluid) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ protected void invokeRelight(
* Also, if chunk packets are sent delayed, we need to do that here
*/
protected void postProcessChunks(Set<ChunkPos> coords) {
boolean delay = Settings.settings().LIGHTING.DELAY_PACKET_SENDING;
boolean delay = Settings.settings().lighting().delayPacketSending();
for (ChunkPos pos : coords) {
int x = pos.x();
int z = pos.z();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -623,7 +623,7 @@ protected <T extends Future<T>> T internalCall(
entityRemoves.remove(uuid);
}
}
if (Settings.settings().EXPERIMENTAL.REMOVE_ENTITY_FROM_WORLD_ON_CHUNK_FAIL) {
if (Settings.settings().experimental().removeEntityFromWorldOnChunkFail()) {
for (UUID uuid : entityRemoves) {
Entity entity = nmsWorld.getEntities().get(uuid);
if (entity != null) {
Expand Down Expand Up @@ -756,7 +756,7 @@ protected <T extends Future<T>> T internalCall(
// send to player
if (!set
.getSideEffectSet()
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().LIGHTING.DELAY_PACKET_SENDING || finalMask == 0 && biomes != null) {
.shouldApply(SideEffect.LIGHTING) || !Settings.settings().lighting().delayPacketSending() || finalMask == 0 && biomes != null) {
this.send();
}
if (finalizer != null) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -28,7 +28,7 @@ public IChunkSet processSet(final IChunk chunk, final IChunkGet get, final IChun
@SuppressWarnings("deprecation")
@Override
public void postProcess(final IChunk chunk, final IChunkGet iChunkGet, final IChunkSet iChunkSet) {
boolean tickFluid = Settings.settings().EXPERIMENTAL.ALLOW_TICK_FLUIDS;
boolean tickFluid = Settings.settings().experimental().allowTickFluids();
// The PostProcessor shouldn't be added, but just in case
if (!tickFluid) {
return;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -67,7 +67,7 @@ protected void invokeRelight(
* Also, if chunk packets are sent delayed, we need to do that here
*/
protected void postProcessChunks(Set<ChunkPos> coords) {
boolean delay = Settings.settings().LIGHTING.DELAY_PACKET_SENDING;
boolean delay = Settings.settings().lighting().delayPacketSending();
for (ChunkPos pos : coords) {
int x = pos.x();
int z = pos.z();
Expand Down
Loading
Loading