v0.5.3 — Fix resource swapper, add Husky, remove uuid
Fix three Electron 12→42 protocol migration bugs in the resource swapper: register protocol on the app session instead of default, generate valid URLs from Windows paths, and prevent non-swapped krunker.io requests from being cancelled. Swapper now rescans on page refresh to pick up file changes. Add Husky pre-commit hook to run ESLint. Remove unused uuid dependency. Update README with lint script, husky, and swapper improvements. Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com>
This commit is contained in:
@@ -28,6 +28,7 @@ npm run dev # Builds in dev mode + launches Electron
|
||||
| `npm run dist:linux` | Build + package for Linux (AppImage + deb) |
|
||||
| `npm run dist:all` | Build + package for all platforms |
|
||||
| `npm run clean` | Remove `dist/` and `out/` directories |
|
||||
| `npm run lint` | Run ESLint (typescript-eslint) on `src/` |
|
||||
|
||||
## Architecture
|
||||
|
||||
@@ -138,7 +139,7 @@ src/
|
||||
platform.ts OS detection, Chromium GPU/performance flags (per-platform)
|
||||
config.ts electron-store schema, defaults, DEFAULT_KEYBINDS
|
||||
client-ui.ts Injected CSS for settings panel, keybind dialog, matchmaker popup
|
||||
swapper.ts Resource swapper — local asset overrides via custom protocol
|
||||
swapper.ts Resource swapper — local asset overrides via session-aware custom protocol
|
||||
userscripts.ts Userscript manager — filesystem scanning, tracker.json, preferences
|
||||
discord-rpc.ts Discord Rich Presence via raw IPC socket
|
||||
logger.ts File logging with daily rotation and 7-day retention
|
||||
@@ -159,7 +160,7 @@ Two Vite configs build independent targets:
|
||||
| Config | Target | Output | Notes |
|
||||
|--------|--------|--------|-------|
|
||||
| `vite.main.config.ts` | Main process | `dist/main/index.js` (CJS) | Externalizes `electron`, `electron-store`, and Node builtins. Targets Node 20. |
|
||||
| `vite.preload.config.ts` | Preload script | `dist/preload/index.js` (CJS) | Externalizes `electron` and `uuid`. Targets Node 20. |
|
||||
| `vite.preload.config.ts` | Preload script | `dist/preload/index.js` (CJS) | Externalizes `electron`. Targets Node 20. |
|
||||
|
||||
### Custom Electron Binary
|
||||
|
||||
@@ -214,7 +215,7 @@ Common flags always applied: `disable-backgrounding-occluded-windows`, `ignore-g
|
||||
### Core Client
|
||||
- Unlimited FPS via custom-patched Electron 42 build
|
||||
- Ad blocking (network-level URL filter + CSS hiding)
|
||||
- Resource swapper (replace game textures, sounds, models with local files)
|
||||
- Resource swapper (replace game textures, sounds, models with local files — rescans on page refresh)
|
||||
- Custom matchmaker (filter lobbies by region, gamemode, player count, remaining time)
|
||||
- Userscript system (Tampermonkey-style metadata, custom per-script settings, instant toggle via unload)
|
||||
- Chat translator (real-time translation via Google Translate API with language tags)
|
||||
@@ -267,8 +268,9 @@ At uncapped frame rates (600+ FPS), Krunker's CSS animations (e.g. death screen
|
||||
- **TypeScript** 5.7 — Type-safe source code
|
||||
- **Vite** 6 — Fast bundler (2 build targets: main + preload)
|
||||
- **electron-store** 8 — JSON config persistence (CJS)
|
||||
- **uuid** 9 — Unique ID generation
|
||||
- **electron-builder** 26 — Cross-platform packaging (NSIS, portable, AppImage, deb)
|
||||
- **ESLint** 10 + **typescript-eslint** — Linting with recommended rules
|
||||
- **Husky** 9 — Git hooks (pre-commit lint)
|
||||
|
||||
## Project Structure
|
||||
|
||||
@@ -284,6 +286,7 @@ Krunker-Civilian-Client/
|
||||
build/ Build resources (icons, .desktop file)
|
||||
scripts/ Build scripts (Electron patched binary download)
|
||||
electron-build/ Custom Electron build instructions and patches
|
||||
eslint.config.mjs
|
||||
vite.main.config.ts
|
||||
vite.preload.config.ts
|
||||
electron-builder.yml
|
||||
|
||||
Reference in New Issue
Block a user