Live Event Processing
Subscribes to Discord message events and evaluates commands as messages arrive.
A configurable Windows application that converts live Discord commands into keyboard and mouse input for PC games.
Community-controlled game experiences often require technical setup, hard-coded commands, or custom changes for every game. I wanted to create a desktop application that would let the person running the experience configure it without rebuilding the software.
The result is a multi-screen Windows Forms application that connects to a Discord bot, listens for live messages, evaluates configured commands, and converts valid commands into keyboard or mouse input.
Subscribes to Discord message events and evaluates commands as messages arrive.
Lets users rename commands, map them to keyboard or mouse input, and retain settings between sessions.
Applies user-controlled execution frequency so chat activity can be tuned to the game experience.
Translates validated commands into virtual key codes and simulated keyboard or mouse actions.
Includes a dedicated first-run configuration flow, validation, and clear error states.
Separates startup, main menu, command configuration, token setup, and recovery states into focused screens.
Discord.Net supplies incoming message events.
Messages are filtered and matched against configured commands.
Persistent mappings and execution frequency determine the action.
The command becomes keyboard or mouse input for the active game.
I chose event-driven processing so the application could respond to Discord messages when they arrived instead of repeatedly polling.
I separated user configuration from command behavior so names and key mappings could change without rebuilding the application. The help output is generated from current settings, keeping the visible command list synchronized with the configured behavior.
Usability features—including persistent settings, safeguards against accidental scroll changes, clear token-error handling, an emergency stop, and consistent navigation—make the application reliable and easy for others to use.
The full repository remains private while credentials, fixed paths, and token storage are modernized.
The next version would separate Discord communication, command processing, configuration, and input simulation into dedicated services. I would also replace blocking delays with asynchronous execution, move registration into a data driven command map, add structured logging and automated tests, store secrets securely, and remove fixed local paths.