diff --git a/src/main/java/net/silentclient/client/Client.java b/src/main/java/net/silentclient/client/Client.java index 548005c..1d0a4d1 100644 --- a/src/main/java/net/silentclient/client/Client.java +++ b/src/main/java/net/silentclient/client/Client.java @@ -190,11 +190,6 @@ public class Client { if(acc != null) { Client.getInstance().setAccount(acc.getAccount()); } - if(OSUtil.isWindows()) { - logger.info("STARTING > raw-mouse-input"); - Minecraft.getMinecraft().mouseHelper = new RawMouseHelper(); - RawInputHandler.init(); - } logger.info("STARTING > settings-manager"); settingsManager = new SettingsManager(); logger.info("STARTING > mod-instances"); @@ -235,6 +230,12 @@ public class Client { } logger.info("STARTING > config-manager"); configManager = new ConfigManager(); + if(OSUtil.isWindows()) { + logger.info("STARTING > raw-mouse-input"); + Minecraft.getMinecraft().mouseHelper = new RawMouseHelper(); + RawInputHandler.init(); + RawInputHandler.toggleRawInput(Client.getInstance().getSettingsManager().getSettingByClass(GeneralMod.class, "Raw Mouse Input").getValBoolean()); + } logger.info("STARTING > texture-manager"); this.textureManager = new SCTextureManager(Minecraft.getMinecraft().getResourceManager()); logger.info("STARTING > font-renderer"); diff --git a/src/main/java/net/silentclient/client/mods/Mod.java b/src/main/java/net/silentclient/client/mods/Mod.java index daa4ba9..a6a33fa 100644 --- a/src/main/java/net/silentclient/client/mods/Mod.java +++ b/src/main/java/net/silentclient/client/mods/Mod.java @@ -75,7 +75,7 @@ public class Mod implements IMod { mc.renderGlobal.loadRenderers(); } if(setting.getName() == "Raw Mouse Input") { - RawInputHandler.toggleRawInput(setting.getValBoolean() ? "disable" : "enable"); + RawInputHandler.toggleRawInput(setting.getValBoolean()); } if(setting.getName() == "Menu Background Blur") { if(setting.getValBoolean()) { diff --git a/src/main/java/net/silentclient/client/mods/settings/GeneralMod.java b/src/main/java/net/silentclient/client/mods/settings/GeneralMod.java index 4d5a1f1..3c3a495 100644 --- a/src/main/java/net/silentclient/client/mods/settings/GeneralMod.java +++ b/src/main/java/net/silentclient/client/mods/settings/GeneralMod.java @@ -48,7 +48,7 @@ public class GeneralMod extends Mod { public void onChangeSettingValue(Setting setting) { switch(setting.getName()) { case "Raw Mouse Input": - RawInputHandler.toggleRawInput(setting.getValBoolean() ? "enable" : "disable"); + RawInputHandler.toggleRawInput(setting.getValBoolean()); break; case "Menu Background Blur": if(setting.getValBoolean()) { diff --git a/src/main/java/net/silentclient/client/utils/RawInputHandler.java b/src/main/java/net/silentclient/client/utils/RawInputHandler.java index d04a777..e1bc887 100644 --- a/src/main/java/net/silentclient/client/utils/RawInputHandler.java +++ b/src/main/java/net/silentclient/client/utils/RawInputHandler.java @@ -4,9 +4,7 @@ import net.java.games.input.Controller; import net.java.games.input.ControllerEnvironment; import net.java.games.input.Mouse; import net.minecraft.client.Minecraft; -import net.minecraft.client.entity.EntityPlayerSP; import net.minecraft.util.MouseHelper; -import net.silentclient.client.Client; public class RawInputHandler { public static Controller[] controllers; @@ -16,7 +14,6 @@ public class RawInputHandler { public static void init() { controllers = ControllerEnvironment.getDefaultEnvironment().getControllers(); - startThread(); } public static void getMouse() { @@ -30,49 +27,37 @@ public class RawInputHandler { } } - public static void toggleRawInput(String mode) { - EntityPlayerSP player = Minecraft.getMinecraft().thePlayer; - float saveYaw = player.rotationYaw; - float savePitch = player.rotationPitch; - - if (Minecraft.getMinecraft().mouseHelper instanceof RawMouseHelper && mode == "disable") { - Client.logger.info("[SC]: Disabling Raw Mouse Input"); - Minecraft.getMinecraft().mouseHelper = new MouseHelper(); - Minecraft.getMinecraft().mouseHelper.grabMouseCursor(); - } else { - Client.logger.info("[SC]: Enabling Raw Mouse Input"); + public static void toggleRawInput(boolean enable) { + if(enable) { Minecraft.getMinecraft().mouseHelper = new RawMouseHelper(); - Minecraft.getMinecraft().mouseHelper.grabMouseCursor(); + controllers = ControllerEnvironment.getDefaultEnvironment().getControllers(); + + Thread inputThread = new Thread(() -> { + while (true) { + RawInputHandler.getMouse(); + if (mouse != null) { + mouse.poll(); + + dx += (int) mouse.getX().getPollData(); + dy += (int) mouse.getY().getPollData(); + } else { + RawInputHandler.rescan(); + } + try { + Thread.sleep(1); + } catch (InterruptedException e) { + e.printStackTrace(); + } + } + }); + inputThread.setName("inputThread"); + inputThread.start(); + } else { + Minecraft.getMinecraft().mouseHelper = new MouseHelper(); } - player.rotationYaw = saveYaw; - player.rotationPitch = savePitch; } public static void rescan() { RawInputHandler.getMouse(); } - - public static void startThread() { - Thread inputThread = new Thread(() -> { - while(true){ - if (mouse != null && Minecraft.getMinecraft().currentScreen == null) { - mouse.poll(); - dx += (int)mouse.getX().getPollData(); - dy += (int)mouse.getY().getPollData(); - } else if (mouse != null) { - mouse.poll(); - } else { - getMouse(); - } - - try { - Thread.sleep(1); - } catch(InterruptedException e) { - e.printStackTrace(); - } - } - }); - inputThread.setName("inputThread"); - inputThread.start(); - } } diff --git a/src/main/java/net/silentclient/client/utils/RawMouseHelper.java b/src/main/java/net/silentclient/client/utils/RawMouseHelper.java index 784ed68..81b6dcf 100644 --- a/src/main/java/net/silentclient/client/utils/RawMouseHelper.java +++ b/src/main/java/net/silentclient/client/utils/RawMouseHelper.java @@ -1,7 +1,5 @@ package net.silentclient.client.utils; -import org.lwjgl.input.Mouse; - import net.minecraft.util.MouseHelper; public class RawMouseHelper extends MouseHelper { @@ -13,14 +11,4 @@ public class RawMouseHelper extends MouseHelper { this.deltaY = -RawInputHandler.dy; RawInputHandler.dy = 0; } - @Override - public void grabMouseCursor() - { - if (Boolean.parseBoolean(System.getProperty("fml.noGrab","false"))) return; - Mouse.setGrabbed(true); - this.deltaX = 0; - RawInputHandler.dx = 0; - this.deltaY = 0; - RawInputHandler.dy = 0; - } }