修复可能为null的方法调用

This commit is contained in:
17146 2024-05-14 20:42:33 +08:00
parent 7ef3f2c605
commit 14bb0ac8a8

View file

@ -166,8 +166,12 @@ public class TargetModVariables {
} }
public static MapVariables get(LevelAccessor world) { public static MapVariables get(LevelAccessor world) {
if (world instanceof ServerLevelAccessor serverLevelAcc) if (world instanceof ServerLevelAccessor serverLevelAcc) {
return serverLevelAcc.getLevel().getServer().getLevel(Level.OVERWORLD).getDataStorage().computeIfAbsent(MapVariables::load, MapVariables::new, DATA_NAME); var level = serverLevelAcc.getLevel().getServer().getLevel(Level.OVERWORLD);
if (level != null) {
return level.getDataStorage().computeIfAbsent(MapVariables::load, MapVariables::new, DATA_NAME);
}
}
return clientSide; return clientSide;
} }
@ -358,10 +362,16 @@ public class TargetModVariables {
NetworkEvent.Context context = contextSupplier.get(); NetworkEvent.Context context = contextSupplier.get();
context.enqueueWork(() -> { context.enqueueWork(() -> {
context.setPacketHandled(true); context.setPacketHandled(true);
if (context.getDirection().getReceptionSide().isServer() || Minecraft.getInstance().player == null) if (context.getDirection().getReceptionSide().isServer() || Minecraft.getInstance().player == null) {
return; return;
}
PlayerVariables variables = Minecraft.getInstance().player.level().getEntity(message.target).getCapability(PLAYER_VARIABLES_CAPABILITY, null).orElse(new PlayerVariables()); var entity = Minecraft.getInstance().player.level().getEntity(message.target);
if (entity == null) {
return;
}
PlayerVariables variables = entity.getCapability(PLAYER_VARIABLES_CAPABILITY, null).orElse(new PlayerVariables());
variables.zoom = message.data.zoom; variables.zoom = message.data.zoom;
variables.zooming = message.data.zooming; variables.zooming = message.data.zooming;
variables.recoil = message.data.recoil; variables.recoil = message.data.recoil;