From a875ae22551603fbd99b00013d597af67dcea10e Mon Sep 17 00:00:00 2001
From: chylex <contact@chylex.com>
Date: Sat, 2 Oct 2021 15:30:44 +0200
Subject: [PATCH] Unify with Forge codebase

---
 build.gradle                                                   | 1 +
 .../java/chylex/bettercontrols/gui/BetterControlsScreen.java   | 2 +-
 .../chylex/bettercontrols/input/KeyBindingWithModifier.java    | 2 +-
 .../java/chylex/bettercontrols/mixin/HookClientPlayerFOV.java  | 3 ++-
 src/main/java/chylex/bettercontrols/mixin/HookOpenScreen.java  | 1 +
 .../chylex/bettercontrols/mixin/HookPlayerFlightSpeed.java     | 1 +
 src/main/resources/bettercontrols.mixins.json                  | 2 +-
 7 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/build.gradle b/build.gradle
index 510f9c0..704480a 100644
--- a/build.gradle
+++ b/build.gradle
@@ -14,6 +14,7 @@ dependencies {
 	minecraft "com.mojang:minecraft:${project.minecraft_version}"
 	modImplementation "net.fabricmc:fabric-loader:${project.loader_version}"
 	mappings minecraft.officialMojangMappings()
+	compileOnly "com.google.code.findbugs:jsr305:3.0.2"
 }
 
 processResources {
diff --git a/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java b/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java
index 35f9edc..6d173f8 100644
--- a/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java
+++ b/src/main/java/chylex/bettercontrols/gui/BetterControlsScreen.java
@@ -20,8 +20,8 @@ import net.minecraft.client.gui.screens.Screen;
 import net.minecraft.network.chat.CommonComponents;
 import net.minecraft.network.chat.Component;
 import net.minecraft.network.chat.TextComponent;
-import org.jetbrains.annotations.Nullable;
 import org.lwjgl.glfw.GLFW;
+import javax.annotation.Nullable;
 import java.util.ArrayList;
 import java.util.Arrays;
 import java.util.List;
diff --git a/src/main/java/chylex/bettercontrols/input/KeyBindingWithModifier.java b/src/main/java/chylex/bettercontrols/input/KeyBindingWithModifier.java
index 4b2d9de..9783696 100644
--- a/src/main/java/chylex/bettercontrols/input/KeyBindingWithModifier.java
+++ b/src/main/java/chylex/bettercontrols/input/KeyBindingWithModifier.java
@@ -3,7 +3,7 @@ import com.mojang.blaze3d.platform.InputConstants.Type;
 import net.minecraft.client.KeyMapping;
 import net.minecraft.network.chat.Component;
 import net.minecraft.network.chat.TranslatableComponent;
-import org.jetbrains.annotations.Nullable;
+import javax.annotation.Nullable;
 
 public class KeyBindingWithModifier extends KeyMapping {
 	public static final String CATEGORY = "key.categories.bettercontrols";
diff --git a/src/main/java/chylex/bettercontrols/mixin/HookClientPlayerFOV.java b/src/main/java/chylex/bettercontrols/mixin/HookClientPlayerFOV.java
index 29e58f6..8f93f5f 100644
--- a/src/main/java/chylex/bettercontrols/mixin/HookClientPlayerFOV.java
+++ b/src/main/java/chylex/bettercontrols/mixin/HookClientPlayerFOV.java
@@ -9,6 +9,7 @@ import org.spongepowered.asm.mixin.injection.Redirect;
 import org.spongepowered.asm.mixin.injection.Slice;
 import static chylex.bettercontrols.util.Statics.MINECRAFT;
 
+@SuppressWarnings("MethodMayBeStatic")
 @Mixin(AbstractClientPlayer.class)
 public abstract class HookClientPlayerFOV {
 	@Redirect(
@@ -19,7 +20,7 @@ public abstract class HookClientPlayerFOV {
 			to = @At(value = "INVOKE", target = "Ljava/lang/Float;isInfinite(F)Z")
 		)
 	)
-	private boolean resetFOV(float movementSpeed) {
+	private boolean resetFOV(final float movementSpeed) {
 		final LocalPlayer player = MINECRAFT.player;
 		return (player != null && PlayerTicker.get(player).shouldResetFOV(player)) || Float.isNaN(movementSpeed);
 	}
diff --git a/src/main/java/chylex/bettercontrols/mixin/HookOpenScreen.java b/src/main/java/chylex/bettercontrols/mixin/HookOpenScreen.java
index 4f6f125..3ef4890 100644
--- a/src/main/java/chylex/bettercontrols/mixin/HookOpenScreen.java
+++ b/src/main/java/chylex/bettercontrols/mixin/HookOpenScreen.java
@@ -10,6 +10,7 @@ import org.spongepowered.asm.mixin.injection.Inject;
 import org.spongepowered.asm.mixin.injection.callback.CallbackInfo;
 import static chylex.bettercontrols.util.Statics.MINECRAFT;
 
+@SuppressWarnings("MethodMayBeStatic")
 @Mixin(value = Minecraft.class, priority = 100)
 public abstract class HookOpenScreen {
 	@Inject(method = "setScreen", at = @At("TAIL"))
diff --git a/src/main/java/chylex/bettercontrols/mixin/HookPlayerFlightSpeed.java b/src/main/java/chylex/bettercontrols/mixin/HookPlayerFlightSpeed.java
index ccd377e..8989c93 100644
--- a/src/main/java/chylex/bettercontrols/mixin/HookPlayerFlightSpeed.java
+++ b/src/main/java/chylex/bettercontrols/mixin/HookPlayerFlightSpeed.java
@@ -8,6 +8,7 @@ import org.spongepowered.asm.mixin.injection.At;
 import org.spongepowered.asm.mixin.injection.Redirect;
 import org.spongepowered.asm.mixin.injection.Slice;
 
+@SuppressWarnings("MethodMayBeStatic")
 @Mixin(Player.class)
 public abstract class HookPlayerFlightSpeed extends LivingEntity {
 	protected HookPlayerFlightSpeed(final EntityType<? extends LivingEntity> type, final Level world) {
diff --git a/src/main/resources/bettercontrols.mixins.json b/src/main/resources/bettercontrols.mixins.json
index 2403653..466efa4 100644
--- a/src/main/resources/bettercontrols.mixins.json
+++ b/src/main/resources/bettercontrols.mixins.json
@@ -3,7 +3,7 @@
   "minVersion": "0.8",
   "package": "chylex.bettercontrols.mixin",
   "compatibilityLevel": "JAVA_16",
-  "mixins": [
+  "client": [
     "AccessCameraFields",
     "AccessClientPlayerFields",
     "AccessControlsListCategory",