Skip to content

Commit 5b19ccc

Browse files
committed
Prevent lightning on sublevels
1 parent c9f08fa commit 5b19ccc

2 files changed

Lines changed: 30 additions & 0 deletions

File tree

Lines changed: 29 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,29 @@
1+
package dev.ryanhcode.sable.mixin.stop_lightning;
2+
3+
import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
4+
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
5+
import com.llamalad7.mixinextras.sugar.Local;
6+
import dev.ryanhcode.sable.api.sublevel.SubLevelContainer;
7+
import net.minecraft.server.level.ServerLevel;
8+
import net.minecraft.world.level.chunk.LevelChunk;
9+
import org.spongepowered.asm.mixin.Mixin;
10+
import org.spongepowered.asm.mixin.injection.At;
11+
12+
/**
13+
* Prevents lightning or skeleton traps from spawning inside plots to avoid inflating spawn rates
14+
*/
15+
@Mixin(ServerLevel.class)
16+
public class ServerLevelMixin {
17+
18+
@WrapOperation(method="tickChunk", at=@At(value = "INVOKE", target = "Lnet/minecraft/server/level/ServerLevel;isThundering()Z"))
19+
private boolean sable$preventLightningInPlot(final ServerLevel instance, final Operation<Boolean> original, @Local(argsOnly = true) final LevelChunk chunk) {
20+
final SubLevelContainer plotContainer = SubLevelContainer.getContainer((ServerLevel) (Object) this);
21+
assert plotContainer != null;
22+
23+
if (plotContainer.getPlot(chunk.getPos()) != null) {
24+
return false;
25+
}
26+
return original.call(instance);
27+
}
28+
29+
}

common/src/main/resources/sable.mixins.json

Lines changed: 1 addition & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -208,6 +208,7 @@
208208
"sculk_vibrations.VibrationSystemListenerMixin",
209209
"sculk_vibrations.VibrationSystemTickerMixin",
210210
"sign_interaction.SignBlockEntityMixin",
211+
"stop_lightning.ServerLevelMixin",
211212
"tracking_points.EntityMixin",
212213
"tracking_points.ServerPlayerMixin",
213214
"udp.ConnectionMixin",

0 commit comments

Comments
 (0)