PMR Client là ứng dụng desktop được xây dựng bằng Electron, đóng vai trò là ứng dụng đồng hành cho tiện ích PMR PUBG Mortar dựa trên web. Ứng dụng cung cấp các tích hợp native cần thiết cho những tính năng không thể chạy được trong trình duyệt web thông thường, chẳng hạn như tương tác ở mức hệ thống và nhận dạng phần cứng.
- Giao diện dựa trên Web: Tải trực tiếp giao diện người dùng PMR từ máy chủ từ xa, mang lại trải nghiệm liền mạch.
- Nhận dạng Phần cứng: Tạo ra một Client ID duy nhất dựa trên các thành phần phần cứng (CPU, bo mạch chủ, địa chỉ MAC) để nhận dạng người dùng.
- Tương tác Hệ thống bằng Java: Sử dụng trợ giúp Java bên ngoài (
mouse-event.jar) để tương tác với hệ thống, hỗ trợ chức năng nâng cao cho máy tính mortar. - Auto-Updater: Tự động cập nhật ứng dụng client lên phiên bản mới nhất bằng
electron-updater. - Giao tiếp Liên tiến trình: Triển khai cầu nối an toàn bằng
contextBridgecủa Electron, cho phép giao diện web giao tiếp với ứng dụng desktop native. - Kiểm tra Điều kiện tiên quyết: Kiểm tra phiên bản Java yêu cầu (24 trở lên) đã được cài đặt trước khi khởi chạy ứng dụng chính.
Ứng dụng được thiết kế như một lớp vỏ Electron bao bọc ứng dụng web từ xa.
- Khởi tạo: Khi khởi động, client kiểm tra môi trường chạy Java cần thiết, sau đó tạo dấu vân tay phần cứng duy nhất (
clientID). - Tải Tài nguyên: Đảm bảo thư viện Java cần thiết (
mouse-event.jar) nằm trong thư mục tạm của hệ thống; nếu thiếu sẽ tự động tải từ máy chủ web. - Cửa sổ Chính: Tạo cửa sổ trình duyệt và tải giao diện web từ
API_URL, truyền tham sốclientIDqua query string để xác thực và nhận dạng. - Giao tiếp Cầu nối: Tập lệnh
preload.jsđưa đối tượngbridgevào trang web. Giao diện web có thể gửi lệnh an toàn đến quy trình chính Electron để thực hiện các hành động native (mở liên kết, chạy script…). Quy trình chính cũng có thể gửi dữ liệu ngược lại (ví dụ: thông báo từ tiến trình Java). - Tính năng Mortar: Khi được kích hoạt từ giao diện, client khởi chạy
mouse-event.jarnhư một tiến trình con. Ứng dụng Java này đọc thông tin hệ thống (như chiều cao màn hình) và gửi dữ liệu về Electron, sau đó chuyển tiếp đến giao diện web để hỗ trợ tính toán trong game.
Phần này dành cho lập trình viên muốn đóng góp hoặc build dự án từ mã nguồn.
- Node.js
- npm (hoặc trình quản lý gói tương thích)
- Java Development Kit (JDK) phiên bản 24 trở lên
git clone https://github.com/mwarevn/pmr-client.git
cd pmr-client
npm installChạy ở chế độ phát triển (có hot-reloading):
npm startBuild file cài đặt cho Windows (NSIS installer):
npm run buildFile thực thi (PMR.exe) sẽ nằm trong thư mục dist.
index.js: Điểm vào chính của ứng dụng Electron. Quản lý vòng đời ứng dụng, tạo cửa sổ và tự động cập nhật./web-bridge: Chứa các module xử lý giao tiếp giữa nội dung web và quy trình chính Electron.mortar-tab.js: Quản lý tiến trình Java cho tính năng mortar.macro-tab.js: Xử lý logic tính năng macro (gửi ID thiết bị…).common.js: Các hàm cầu nối chung (mở liên kết ngoài…).webBridge.js: Tổng hợp và khởi tạo tất cả module cầu nối.
utils.js: Các hàm tiện ích (tải file, chạy lệnh PowerShell, tạo dấu vân tay phần cứng…).preload.js: Tiêm đối tượngbridgevào renderer process để giao tiếp an toàn từ web sang main process.constants.js: Lưu các hằng số toàn cục (chủ yếu là URL giao diện web).StateManager.js: Lớp singleton quản lý trạng thái toàn cục của ứng dụng.