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.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
|
||||||
import org.slf4j.LoggerFactory;
|
|
||||||
|
|
||||||
import com.google.gson.Gson;
|
import com.google.gson.Gson;
|
||||||
|
|
||||||
import me.kawaiizenbo.moonlight.module.Category;
|
import me.kawaiizenbo.moonlight.module.Category;
|
||||||
|
|
|
@ -4,7 +4,6 @@ import net.fabricmc.api.ModInitializer;
|
||||||
|
|
||||||
import org.slf4j.Logger;
|
import org.slf4j.Logger;
|
||||||
|
|
||||||
import java.io.IOException;
|
|
||||||
import java.util.HashMap;
|
import java.util.HashMap;
|
||||||
import java.util.Map;
|
import java.util.Map;
|
||||||
import org.slf4j.LoggerFactory;
|
import org.slf4j.LoggerFactory;
|
||||||
|
|
|
@ -48,22 +48,65 @@ public class SettingCommand extends Command
|
||||||
return 0;
|
return 0;
|
||||||
}
|
}
|
||||||
|
|
||||||
// you can break this really easily and i dont feel like fixing it :3 have fun
|
|
||||||
if (setting instanceof BooleanSetting)
|
if (setting instanceof BooleanSetting)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
((BooleanSetting)setting).value = Boolean.parseBoolean(v);
|
((BooleanSetting)setting).value = Boolean.parseBoolean(v);
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected boolean");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
|
||||||
|
}
|
||||||
else if (setting instanceof DoubleSetting)
|
else if (setting instanceof DoubleSetting)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
((DoubleSetting)setting).value = Double.parseDouble(v);
|
((DoubleSetting)setting).value = Double.parseDouble(v);
|
||||||
}
|
}
|
||||||
if (setting instanceof StringSetting)
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected Double");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else if (setting instanceof StringSetting)
|
||||||
|
{
|
||||||
|
try
|
||||||
{
|
{
|
||||||
((StringSetting)setting).value = v;
|
((StringSetting)setting).value = v;
|
||||||
}
|
}
|
||||||
|
catch (Exception e)
|
||||||
|
{
|
||||||
|
ChatUtils.sendMsg(ColorUtils.red + "Invalid Value, expected String");
|
||||||
|
return 0;
|
||||||
|
}
|
||||||
|
}
|
||||||
else if (setting instanceof KeycodeSetting)
|
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;
|
return SINGLE_SUCCESS;
|
||||||
|
|
|
@ -15,20 +15,18 @@ import net.minecraft.client.Keyboard;
|
||||||
import net.minecraft.client.MinecraftClient;
|
import net.minecraft.client.MinecraftClient;
|
||||||
|
|
||||||
@Mixin(Keyboard.class)
|
@Mixin(Keyboard.class)
|
||||||
public abstract class KeyboardMixin {
|
public abstract class KeyboardMixin
|
||||||
|
{
|
||||||
@Shadow @Final private MinecraftClient client;
|
@Shadow @Final private MinecraftClient client;
|
||||||
|
|
||||||
@Inject(method = "onKey", at = @At("HEAD"), cancellable = true)
|
@Inject(method = "onKey", at = @At("HEAD"), cancellable = true)
|
||||||
public void onKey(long window, int key, int scancode, int action, int modifiers, CallbackInfo info)
|
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);
|
if (key == GLFW.GLFW_KEY_RIGHT_ALT) MinecraftClient.getInstance().setScreen(ClickGUIScreen.INSTANCE);
|
||||||
for (Module m : ModuleManager.INSTANCE.modules)
|
for (Module m : ModuleManager.INSTANCE.modules)
|
||||||
{
|
{
|
||||||
System.out.println("checking against module:" + m.name);
|
if (key == m.keybind.value && action == GLFW.GLFW_PRESS)
|
||||||
if (key == m.keybind.value)
|
|
||||||
{
|
{
|
||||||
System.out.println("yup, we gotem :3");
|
|
||||||
m.toggle();
|
m.toggle();
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
|
@ -1,7 +1,8 @@
|
||||||
package me.kawaiizenbo.moonlight.module.settings;
|
package me.kawaiizenbo.moonlight.module.settings;
|
||||||
|
|
||||||
import me.kawaiizenbo.moonlight.ui.clickgui.KeybindScreen;
|
import org.lwjgl.glfw.GLFW;
|
||||||
import net.minecraft.client.MinecraftClient;
|
|
||||||
|
import me.kawaiizenbo.moonlight.util.KeycodeUtils;
|
||||||
import net.minecraft.client.font.TextRenderer;
|
import net.minecraft.client.font.TextRenderer;
|
||||||
import net.minecraft.client.gui.DrawContext;
|
import net.minecraft.client.gui.DrawContext;
|
||||||
import net.minecraft.text.Text;
|
import net.minecraft.text.Text;
|
||||||
|
@ -9,6 +10,7 @@ import net.minecraft.text.Text;
|
||||||
public class KeycodeSetting extends Setting
|
public class KeycodeSetting extends Setting
|
||||||
{
|
{
|
||||||
public int value;
|
public int value;
|
||||||
|
private boolean isWaiting = false;
|
||||||
|
|
||||||
public KeycodeSetting(String name, int value)
|
public KeycodeSetting(String name, int value)
|
||||||
{
|
{
|
||||||
|
@ -19,11 +21,14 @@ public class KeycodeSetting extends Setting
|
||||||
@Override
|
@Override
|
||||||
public void mouseClicked(double mouseX, double mouseY, int button)
|
public void mouseClicked(double mouseX, double mouseY, int button)
|
||||||
{
|
{
|
||||||
|
if (isWaiting)
|
||||||
|
{
|
||||||
|
isWaiting = false;
|
||||||
|
return;
|
||||||
|
}
|
||||||
if (hovered((int)mouseX, (int)mouseY) && button == 0)
|
if (hovered((int)mouseX, (int)mouseY) && button == 0)
|
||||||
{
|
{
|
||||||
KeybindScreen kbs = new KeybindScreen();
|
isWaiting = true;
|
||||||
MinecraftClient.getInstance().setScreen(kbs);
|
|
||||||
this.value = kbs.returnedKeycode;
|
|
||||||
}
|
}
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@ -32,9 +37,34 @@ public class KeycodeSetting extends Setting
|
||||||
{
|
{
|
||||||
super.render(drawContext, x, y, mouseX, mouseY, textRenderer);
|
super.render(drawContext, x, y, mouseX, mouseY, textRenderer);
|
||||||
drawContext.drawTextWithShadow(textRenderer, Text.literal(name), x+2, y+8, 0xFFFFFF);
|
drawContext.drawTextWithShadow(textRenderer, Text.literal(name), x+2, y+8, 0xFFFFFF);
|
||||||
String key = java.awt.event.KeyEvent.getKeyText(value);
|
if (isWaiting)
|
||||||
if (value == 0) key = "";
|
{
|
||||||
|
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);
|
int twidth = textRenderer.getWidth(key);
|
||||||
drawContext.drawTextWithShadow(textRenderer, key, x+190-twidth, y+8, 0xFFFFFF);
|
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;
|
private TextButton backButton;
|
||||||
|
|
||||||
boolean dragging = false;
|
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)
|
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