maybeefix/src/main/java/com/alpt/maybeefix/mixin/WorldMixin.java

27 lines
952 B
Java

package com.alpt.maybeefix.mixin;
import net.minecraft.world.World;
import net.minecraft.world.dimension.DimensionType;
import org.spongepowered.asm.mixin.Mixin;
import org.spongepowered.asm.mixin.Shadow;
import org.spongepowered.asm.mixin.injection.At;
import org.spongepowered.asm.mixin.injection.Inject;
import org.spongepowered.asm.mixin.injection.callback.CallbackInfoReturnable;
@Mixin(World.class)
public abstract class WorldMixin {
@Shadow
public abstract DimensionType getDimension();
// 尝试修复 MC-168329
// 根据 https://github.com/Lupicus/BeeFix/blob/master/src/main/resources/asm/Level.js 找到问题来源
// 不过我觉得 hook isRaining 会更香草一点
@Inject(method = "isRaining", at = @At("HEAD"), cancellable = true)
protected void notRainInTheEnd(CallbackInfoReturnable<Boolean> cir) {
if (!getDimension().hasSkyLight()) {
cir.setReturnValue(false);
}
}
}