full function keybinds
This commit is contained in:
parent
dc1e189d38
commit
d70d0dc0d0
8 changed files with 451 additions and 63 deletions
|
@ -7,9 +7,6 @@ import java.nio.file.Files;
|
|||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
|
||||
import org.slf4j.Logger;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
||||
import com.google.gson.Gson;
|
||||
|
||||
import me.kawaiizenbo.moonlight.module.Category;
|
||||
|
|
|
@ -4,7 +4,6 @@ import net.fabricmc.api.ModInitializer;
|
|||
|
||||
import org.slf4j.Logger;
|
||||
|
||||
import java.io.IOException;
|
||||
import java.util.HashMap;
|
||||
import java.util.Map;
|
||||
import org.slf4j.LoggerFactory;
|
||||
|
|
|
@ -48,22 +48,65 @@ public class SettingCommand extends Command
|
|||
return 0;
|
||||
}
|
||||
|
||||
// you can break this really easily and i dont feel like fixing it :3 have fun
|
||||
if (setting instanceof BooleanSetting)
|
||||
{
|
||||
((BooleanSetting)setting).value = Boolean.parseBoolean(v);
|
||||
try
|
||||
{
|
||||
((BooleanSetting)setting).value = Boolean.parseBoolean(v);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected boolean");
|
||||
return 0;
|
||||
}
|
||||
|
||||
}
|
||||
else if (setting instanceof DoubleSetting)
|
||||
{
|
||||
((DoubleSetting)setting).value = Double.parseDouble(v);
|
||||
{
|
||||
try
|
||||
{
|
||||
((DoubleSetting)setting).value = Double.parseDouble(v);
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected Double");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
if (setting instanceof StringSetting)
|
||||
else if (setting instanceof StringSetting)
|
||||
{
|
||||
((StringSetting)setting).value = v;
|
||||
try
|
||||
{
|
||||
((StringSetting)setting).value = v;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected String");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
else if (setting instanceof KeycodeSetting)
|
||||
{
|
||||
((KeycodeSetting)setting).value = Integer.parseInt(v);
|
||||
{
|
||||
try
|
||||
{
|
||||
int kv = Integer.parseInt(v);
|
||||
if (kv > 348)
|
||||
{
|
||||
ChatUtils.sendMsg(ColorUtils.red + "Keycode Value is too high, maximum is 348 (Menu)");
|
||||
return 0;
|
||||
}
|
||||
if (kv < 0)
|
||||
{
|
||||
ChatUtils.sendMsg(ColorUtils.red + "Keycode Value must be positive");
|
||||
return 0;
|
||||
}
|
||||
((KeycodeSetting)setting).value = kv;
|
||||
}
|
||||
catch (Exception e)
|
||||
{
|
||||
ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected Keycode (integer)");
|
||||
return 0;
|
||||
}
|
||||
}
|
||||
|
||||
return SINGLE_SUCCESS;
|
||||
|
|
|
@ -15,20 +15,18 @@ import net.minecraft.client.Keyboard;
|
|||
import net.minecraft.client.MinecraftClient;
|
||||
|
||||
@Mixin(Keyboard.class)
|
||||
public abstract class KeyboardMixin {
|
||||
public abstract class KeyboardMixin
|
||||
{
|
||||
@Shadow @Final private MinecraftClient client;
|
||||
|
||||
@Inject(method = "onKey", at = @At("HEAD"), cancellable = true)
|
||||
public void onKey(long window, int key, int scancode, int action, int modifiers, CallbackInfo info)
|
||||
{
|
||||
System.out.println("Keyboard event occured: " + java.awt.event.KeyEvent.getKeyText(key) + " (keycode "+key+")");
|
||||
if (key == GLFW.GLFW_KEY_RIGHT_ALT) MinecraftClient.getInstance().setScreen(ClickGUIScreen.INSTANCE);
|
||||
for (Module m : ModuleManager.INSTANCE.modules)
|
||||
{
|
||||
System.out.println("checking against module:" + m.name);
|
||||
if (key == m.keybind.value)
|
||||
if (key == m.keybind.value && action == GLFW.GLFW_PRESS)
|
||||
{
|
||||
System.out.println("yup, we gotem :3");
|
||||
m.toggle();
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,7 +1,8 @@
|
|||
package me.kawaiizenbo.moonlight.module.settings;
|
||||
|
||||
import me.kawaiizenbo.moonlight.ui.clickgui.KeybindScreen;
|
||||
import net.minecraft.client.MinecraftClient;
|
||||
import org.lwjgl.glfw.GLFW;
|
||||
|
||||
import me.kawaiizenbo.moonlight.util.KeycodeUtils;
|
||||
import net.minecraft.client.font.TextRenderer;
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.text.Text;
|
||||
|
@ -9,6 +10,7 @@ import net.minecraft.text.Text;
|
|||
public class KeycodeSetting extends Setting
|
||||
{
|
||||
public int value;
|
||||
private boolean isWaiting = false;
|
||||
|
||||
public KeycodeSetting(String name, int value)
|
||||
{
|
||||
|
@ -19,11 +21,14 @@ public class KeycodeSetting extends Setting
|
|||
@Override
|
||||
public void mouseClicked(double mouseX, double mouseY, int button)
|
||||
{
|
||||
if (isWaiting)
|
||||
{
|
||||
isWaiting = false;
|
||||
return;
|
||||
}
|
||||
if (hovered((int)mouseX, (int)mouseY) && button == 0)
|
||||
{
|
||||
KeybindScreen kbs = new KeybindScreen();
|
||||
MinecraftClient.getInstance().setScreen(kbs);
|
||||
this.value = kbs.returnedKeycode;
|
||||
isWaiting = true;
|
||||
}
|
||||
}
|
||||
|
||||
|
@ -32,9 +37,34 @@ public class KeycodeSetting extends Setting
|
|||
{
|
||||
super.render(drawContext, x, y, mouseX, mouseY, textRenderer);
|
||||
drawContext.drawTextWithShadow(textRenderer, Text.literal(name), x+2, y+8, 0xFFFFFF);
|
||||
String key = java.awt.event.KeyEvent.getKeyText(value);
|
||||
if (value == 0) key = "";
|
||||
int twidth = textRenderer.getWidth(key);
|
||||
drawContext.drawTextWithShadow(textRenderer, key, x+190-twidth, y+8, 0xFFFFFF);
|
||||
if (isWaiting)
|
||||
{
|
||||
String waiting = "Press any key.";
|
||||
int twwidth = textRenderer.getWidth(waiting);
|
||||
drawContext.drawTextWithShadow(textRenderer, waiting, x+190-twwidth, y+8, 0xFFFFFF);
|
||||
}
|
||||
else
|
||||
{
|
||||
String key = KeycodeUtils.keyTable[value];
|
||||
if (value == GLFW.GLFW_KEY_UNKNOWN) key = "";
|
||||
int twidth = textRenderer.getWidth(key);
|
||||
drawContext.drawTextWithShadow(textRenderer, key, x+190-twidth, y+8, 0xFFFFFF);
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public void keyPressed(int keyCode, int scanCode, int modifiers)
|
||||
{
|
||||
if (isWaiting)
|
||||
{
|
||||
if (keyCode == 256)
|
||||
{
|
||||
// escape was pressed, exit safely
|
||||
isWaiting = false;
|
||||
return;
|
||||
}
|
||||
value = keyCode;
|
||||
isWaiting = false;
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
|
@ -1,36 +0,0 @@
|
|||
package me.kawaiizenbo.moonlight.ui.clickgui;
|
||||
|
||||
import net.minecraft.client.gui.DrawContext;
|
||||
import net.minecraft.client.gui.screen.Screen;
|
||||
import net.minecraft.text.Text;
|
||||
|
||||
public class KeybindScreen extends Screen
|
||||
{
|
||||
public int returnedKeycode = 0;
|
||||
|
||||
public KeybindScreen()
|
||||
{
|
||||
super(Text.literal("Keybind Selector"));
|
||||
}
|
||||
|
||||
@Override
|
||||
public void render(DrawContext drawContext, int mouseX, int mouseY, float delta)
|
||||
{
|
||||
this.renderBackground(drawContext, mouseX, mouseY, delta);
|
||||
drawContext.drawCenteredTextWithShadow(textRenderer, "Press any key (may not work, use .setting instead)", width/2, height/2, 0xFFFFFFFF);
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean keyPressed(int keyCode, int scanCode, int modifiers)
|
||||
{
|
||||
returnedKeycode = keyCode;
|
||||
this.close();
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean shouldPause()
|
||||
{
|
||||
return false;
|
||||
}
|
||||
}
|
|
@ -14,7 +14,7 @@ public class SettingsScreen extends Screen
|
|||
private TextButton backButton;
|
||||
|
||||
boolean dragging = false;
|
||||
int startX, startY, x = 4, y = 4, windowWidth = 224, windowHeight = 192;
|
||||
int startX, startY, x = (ClickGUIScreen.INSTANCE.width/2)-112, y = (ClickGUIScreen.INSTANCE.height/2)-96, windowWidth = 224, windowHeight = 192;
|
||||
|
||||
public SettingsScreen(Module module)
|
||||
{
|
||||
|
|
357
src/main/java/me/kawaiizenbo/moonlight/util/KeycodeUtils.java
Normal file
357
src/main/java/me/kawaiizenbo/moonlight/util/KeycodeUtils.java
Normal file
|
@ -0,0 +1,357 @@
|
|||
package me.kawaiizenbo.moonlight.util;
|
||||
|
||||
public class KeycodeUtils
|
||||
{
|
||||
public static String[] keyTable = {
|
||||
"",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Space",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"'",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
",",
|
||||
"-",
|
||||
".",
|
||||
"/",
|
||||
"0",
|
||||
"1",
|
||||
"2",
|
||||
"3",
|
||||
"4",
|
||||
"5",
|
||||
"6",
|
||||
"7",
|
||||
"8",
|
||||
"9",
|
||||
"Unknown",
|
||||
";",
|
||||
"Unknown",
|
||||
"=",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"A",
|
||||
"B",
|
||||
"C",
|
||||
"D",
|
||||
"E",
|
||||
"F",
|
||||
"G",
|
||||
"H",
|
||||
"I",
|
||||
"J",
|
||||
"K",
|
||||
"L",
|
||||
"M",
|
||||
"N",
|
||||
"O",
|
||||
"P",
|
||||
"Q",
|
||||
"R",
|
||||
"S",
|
||||
"T",
|
||||
"U",
|
||||
"V",
|
||||
"W",
|
||||
"X",
|
||||
"Y",
|
||||
"Z",
|
||||
"[",
|
||||
"\\",
|
||||
"]",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"`",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"World 1",
|
||||
"World 2",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Escape",
|
||||
"Enter",
|
||||
"Tab",
|
||||
"Backspace",
|
||||
"Insert",
|
||||
"Delete",
|
||||
"Right",
|
||||
"Left",
|
||||
"Down",
|
||||
"Up",
|
||||
"Page Up",
|
||||
"Page Down",
|
||||
"Home",
|
||||
"End",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Caps Lock",
|
||||
"Scroll Lock",
|
||||
"Num Lock",
|
||||
"Print Screen",
|
||||
"Pause",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"F1",
|
||||
"F2",
|
||||
"F3",
|
||||
"F4",
|
||||
"F5",
|
||||
"F6",
|
||||
"F7",
|
||||
"F8",
|
||||
"F9",
|
||||
"F10",
|
||||
"F11",
|
||||
"F12",
|
||||
"F13",
|
||||
"F14",
|
||||
"F15",
|
||||
"F16",
|
||||
"F17",
|
||||
"F18",
|
||||
"F19",
|
||||
"F20",
|
||||
"F21",
|
||||
"F22",
|
||||
"F23",
|
||||
"F24",
|
||||
"F25",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Num 0",
|
||||
"Num 1",
|
||||
"Num 2",
|
||||
"Num 3",
|
||||
"Num 4",
|
||||
"Num 5",
|
||||
"Num 6",
|
||||
"Num 7",
|
||||
"Num 8",
|
||||
"Num 9",
|
||||
"Num .",
|
||||
"Num /",
|
||||
"Num *",
|
||||
"Num -",
|
||||
"Num +",
|
||||
"Num Enter",
|
||||
"Num =",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Unknown",
|
||||
"Left Shift",
|
||||
"Left Control",
|
||||
"Left Alt",
|
||||
"Left Command",
|
||||
"Right Shift",
|
||||
"Right Control",
|
||||
"Right Alt",
|
||||
"Right Command",
|
||||
"Menu",
|
||||
"Last",
|
||||
};
|
||||
}
|
Loading…
Add table
Reference in a new issue