Listen up!
This commit is contained in:
@@ -4,18 +4,26 @@ import com.llamalad7.mixinextras.injector.wrapoperation.Operation;
|
||||
import com.llamalad7.mixinextras.injector.wrapoperation.WrapOperation;
|
||||
import it.unimi.dsi.fastutil.objects.ObjectSet;
|
||||
import net.minecraft.server.world.ChunkLevelManager;
|
||||
import net.minecraft.server.world.ChunkTicketManager;
|
||||
import org.slf4j.Logger;
|
||||
import org.spongepowered.asm.mixin.Final;
|
||||
import org.spongepowered.asm.mixin.Mixin;
|
||||
import org.spongepowered.asm.mixin.Shadow;
|
||||
import org.spongepowered.asm.mixin.injection.At;
|
||||
|
||||
@Mixin(value = ChunkLevelManager.class)
|
||||
public class ChunkTicketManagerFixMixin {
|
||||
@Shadow
|
||||
@Final
|
||||
private static Logger LOGGER;
|
||||
|
||||
@WrapOperation(method = "handleChunkLeave", at = @At(value = "INVOKE", target = "Lit/unimi/dsi/fastutil/objects/ObjectSet;remove(Ljava/lang/Object;)Z", remap = false))
|
||||
public boolean filterIfNull(ObjectSet instance, Object o, Operation<Boolean> original) {
|
||||
if (instance != null) {
|
||||
return original.call(instance, o);
|
||||
}
|
||||
|
||||
LOGGER.error("Prevented NPE in handleChunkLeave");
|
||||
|
||||
return false;//Unused
|
||||
}
|
||||
|
||||
@@ -25,6 +33,8 @@ public class ChunkTicketManagerFixMixin {
|
||||
return original.call(instance);
|
||||
}
|
||||
|
||||
LOGGER.error("Prevented NPE in handleChunkLeave");
|
||||
|
||||
return true;//Unused
|
||||
}
|
||||
}
|
||||
|
||||
+1
-1
@@ -21,7 +21,7 @@ import java.util.concurrent.Executor;
|
||||
|
||||
@Mixin(ChunkLevelManager.class)
|
||||
public class ChunkLevelManagerMixin implements ChunkLevelManagerAccessor {
|
||||
@Shadow @Final private Long2ObjectMap<ObjectSet<ServerPlayerEntity>> playersByChunkPos;
|
||||
@Shadow @Final Long2ObjectMap<ObjectSet<ServerPlayerEntity>> playersByChunkPos;
|
||||
@Shadow @Final private ChunkLevelManager.DistanceFromNearestPlayerTracker distanceFromNearestPlayerTracker;
|
||||
@Unique
|
||||
ChunkLevelManager.DistanceFromNearestPlayerTracker minionless;
|
||||
|
||||
+2
-2
@@ -1,4 +1,4 @@
|
||||
package io.github.skippyall.minions.mixins;
|
||||
package io.github.skippyall.minions.mixins.compat.universal_graves;
|
||||
|
||||
import com.llamalad7.mixinextras.sugar.Local;
|
||||
import eu.pb4.graves.grave.Grave;
|
||||
@@ -9,7 +9,7 @@ import org.spongepowered.asm.mixin.injection.At;
|
||||
import org.spongepowered.asm.mixin.injection.ModifyArg;
|
||||
|
||||
@Mixin(Grave.class)
|
||||
public class GraveCompatMixin {
|
||||
public class GraveMixin {
|
||||
@ModifyArg(method = "createBlock", at = @At(value = "INVOKE", target = "Leu/pb4/graves/grave/Grave;<init>(JLcom/mojang/authlib/GameProfile;BLnet/minecraft/util/Arm;Lnet/minecraft/util/math/BlockPos;Lnet/minecraft/util/Identifier;Leu/pb4/graves/grave/GraveType;JJILnet/minecraft/text/Text;Ljava/util/Collection;Ljava/util/Collection;ZI)V"))
|
||||
private static boolean createGrave(boolean profile, @Local(argsOnly = true) ServerPlayerEntity player) {
|
||||
if(player instanceof MinionFakePlayer) {
|
||||
Reference in New Issue
Block a user