Skip to content

Commit 9ef05da

Browse files
committed
Improved null safety
1 parent 3d41c50 commit 9ef05da

5 files changed

Lines changed: 12 additions & 9 deletions

File tree

gradle.properties

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -9,4 +9,4 @@ yacl_version=3.8.1+1.21.11
99
modmenu_version=17.0.0-alpha.1
1010

1111
# Mod Properties
12-
mod_version=1.11.0-1.21.11
12+
mod_version=1.11.1-1.21.11

src/main/java/cameratweaks/Freecam.java

Lines changed: 7 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -13,13 +13,15 @@
1313
import net.minecraft.world.waypoints.PartialTickSupplier;
1414
import net.minecraft.world.waypoints.TrackedWaypoint;
1515
import net.minecraft.world.waypoints.Waypoint;
16+
import org.jspecify.annotations.NonNull;
17+
import org.jspecify.annotations.Nullable;
1618

1719
import static cameratweaks.Util.*;
1820

1921
@SuppressWarnings("DataFlowIssue")
2022
public class Freecam {
2123
private static final Util.Pos[] cameras = new Util.Pos[9];
22-
public static Util.LerpedPos pos;
24+
public static Util.@Nullable LerpedPos pos;
2325
public static float speed;
2426

2527
public static void enable() {
@@ -107,18 +109,18 @@ private static class FreecamWaypoint extends TrackedWaypoint {
107109
}
108110

109111
@Override
110-
public void update(TrackedWaypoint waypoint) {}
112+
public void update(@NonNull TrackedWaypoint waypoint) {}
111113
@Override
112-
public void writeContents(ByteBuf buf) {}
114+
public void writeContents(@NonNull ByteBuf buf) {}
113115

114116
@Override
115-
public double yawAngleToCamera(Level level, Camera camera, PartialTickSupplier partialTickSupplier) {
117+
public double yawAngleToCamera(@NonNull Level level, Camera camera, @NonNull PartialTickSupplier partialTickSupplier) {
116118
Vec3 vec3 = camera.position().subtract(client.getCameraEntity().position()).rotateClockwise90();
117119
return Mth.degreesDifference(camera.yaw(), (float) Mth.atan2(vec3.z(), vec3.x()) * Mth.RAD_TO_DEG);
118120
}
119121

120122
@Override
121-
public PitchDirection pitchDirectionToCamera(Level level, Projector projector, PartialTickSupplier partialTickSupplier) {
123+
public @NonNull PitchDirection pitchDirectionToCamera(@NonNull Level level, Projector projector, @NonNull PartialTickSupplier partialTickSupplier) {
122124
Vec3 vec3 = projector.projectPointToScreen(client.getCameraEntity().getEyePosition());
123125
boolean bl = vec3.z > 1.0;
124126
double d = bl ? -vec3.y : vec3.y;

src/main/java/cameratweaks/Freelook.java

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,6 @@
44

55
import static cameratweaks.Util.client;
66

7-
// spaghetti
87
public class Freelook {
98
public static State state = State.INACTIVE;
109
public static float yaw, pitch;

src/main/java/cameratweaks/ThirdPerson.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -11,14 +11,15 @@
1111
import dev.isxander.yacl3.config.v2.api.SerialEntry;
1212
import net.minecraft.client.CameraType;
1313
import net.minecraft.network.chat.Component;
14+
import org.jspecify.annotations.Nullable;
1415

1516
import java.util.ArrayList;
1617

1718
import static cameratweaks.Util.client;
1819

1920
public class ThirdPerson implements Cloneable {
2021
public static float distanceOffset = 0F;
21-
public static ThirdPerson current;
22+
public static @Nullable ThirdPerson current;
2223
public static ArrayList<ThirdPerson> pending;
2324

2425
@SerialEntry(required = false)

src/main/java/cameratweaks/mixin/CameraMixin.java

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -60,6 +60,7 @@ private void changeRotation(Camera instance, float yaw, float pitch) {
6060

6161
@Inject(method = "setup", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/Camera;getMaxZoom(F)F"), cancellable = true)
6262
private void modifyThirdperson(Level level, Entity entity, boolean bl, boolean bl2, float tickProgress, CallbackInfo ci) {
63+
if(ThirdPerson.current == null) return;
6364
ci.cancel();
6465
float f = 4.0F;
6566
if (entity instanceof LivingEntity livingEntity)
@@ -79,7 +80,7 @@ private void modifyThirdperson(Level level, Entity entity, boolean bl, boolean b
7980
@WrapOperation(method = "getNearPlane", at = @At(value = "INVOKE", target = "Lnet/minecraft/client/OptionInstance;get()Ljava/lang/Object;"))
8081
private Object getFov(OptionInstance<?> instance, Operation<Object> original) {
8182
if (ThirdPerson.current != null && ThirdPerson.current.changedFov) return ThirdPerson.current.fov;
82-
if (Keybinds.freecam.enabled()) return Freecam.pos.fov;
83+
if (Keybinds.freecam.enabled() && Freecam.pos != null) return Freecam.pos.fov;
8384
return original.call(instance);
8485
}
8586
}

0 commit comments

Comments
 (0)