anotherkrunkerclient is a powerful and versatile Krunker client that combines the best features from various other clients into a single, fast, and streamlined package. This project is designed with flexibility in mind, enabling you to fork it and create your own customized client.
We are actively working on anotherkrunkerclient and continuously improving its features. We aim to release a stable version (v1.xx) once we have addressed all the items listed in our feature tracking issue.
- Windows 10
- Windows 11
- Linux
- MacOS (untested)
To start contributing to anotherkrunkerclient, follow these steps:
- Install the yarn package manager.
- Run
yarn install
to install the project dependencies. - Start the application by running
yarn start
.
For linting, execute yarn lint
. If you need a detailed description of the project compilation process, refer to the pipeline section.
The project's file system follows the kebab-case convention for file names. Please adhere to the outlined folder structure:
- common: Contains shared modules between the main and renderer processes.
- main: Includes the main process code.
- preload: Consists of code for the preload/renderer.
- renderer: Houses assets used in the renderer process.
- static: Contains assets for the main process.
For module aliasing in Electron, anotherkrunkerclient employs a custom solution. The package.json file includes a "_moduleAliases" field, which is used to define aliases and their respective targets.
During the gulp build process, TypeScript files are first converted to JavaScript. Afterward, a homemade module aliasing function is applied. This function searches for "require" calls, extracts the first string parameter (only works with literal strings), looks it up in "_moduleAliases", and replaces it with a relative path to the module if a match is found.
anotherkrunkerclient utilizes a pipeline inspired by VSCode, leveraging gulp and swc to compile TypeScript source code into JavaScript that is compatible with web browsers. This comprehensive pipeline takes care of all essential operations seamlessly. The compilation process is recursive and dynamic, eliminating the need for additional updates when adding or modifying files, with the exception of aliasing new paths.
To build the project, execute the command "yarn build," which triggers the build script. If you wish to minify the code, provide the "--minify" parameter or "--no-minify" to skip minification. If no parameter is provided, you will be prompted for your preference. To suppress the output of the build script, include the "--suppress-output" argument.