Keyboard Shortcuts

IntermediateInteractive

Adds custom keyboard shortcuts to your plugin. Shows how to handle keyboard input and create hotkeys.

10 min read

What It Does

Adds custom keyboard shortcuts to your plugin. Shows how to handle keyboard input and create hotkeys.

Source Code

java
1package com.example;
2
3import net.runelite.client.input.KeyListener;
4import net.runelite.client.input.KeyManager;
5import net.runelite.client.plugins.Plugin;
6import net.runelite.client.plugins.PluginDescriptor;
7import javax.inject.Inject;
8import java.awt.event.KeyEvent;
9
10@PluginDescriptor(
11    name = "Keyboard Shortcuts",
12    description = "Custom keyboard shortcuts"
13)
14public class KeyboardShortcutsPlugin extends Plugin {
15    @Inject
16    private KeyManager keyManager;
17
18    private final KeyListener keyListener = new KeyListener() {
19        @Override
20        public void keyTyped(KeyEvent e) {
21        }
22
23        @Override
24        public void keyPressed(KeyEvent e) {
25            if (e.getKeyCode() == KeyEvent.VK_F1) {
26                System.out.println("F1 pressed!");
27                // Do something
28            } else if (e.getKeyCode() == KeyEvent.VK_F2) {
29                System.out.println("F2 pressed!");
30                // Do something else
31            }
32        }
33
34        @Override
35        public void keyReleased(KeyEvent e) {
36        }
37    };
38
39    @Override
40    protected void startUp() {
41        keyManager.registerKeyListener(keyListener);
42    }
43
44    @Override
45    protected void shutDown() {
46        keyManager.unregisterKeyListener(keyListener);
47    }
48}

Code Annotations

Line 18

Create a KeyListener to handle keyboard input

Line 26

Check which key was pressed

Line 35

Register the listener when plugin starts

API Classes Used

Key Concepts

  • Create a KeyListener to handle keyboard input
  • Check which key was pressed
  • Register the listener when plugin starts

Next Steps

  • Learn about KeyManager API
  • Add configurable key bindings
  • Handle modifier keys (Ctrl, Shift, Alt)