Skip to content

mwarevn/pmr-client

Repository files navigation

PMR Client

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.

Tính nă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 contextBridge củ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.

Cách Hoạt động

Ứng dụng được thiết kế như một lớp vỏ Electron bao bọc ứng dụng web từ xa.

  1. 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).
  2. 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.
  3. 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ố clientID qua query string để xác thực và nhận dạng.
  4. Giao tiếp Cầu nối: Tập lệnh preload.js đưa đối tượng bridge và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).
  5. Tính năng Mortar: Khi được kích hoạt từ giao diện, client khởi chạy mouse-event.jar như 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.

Thiết lập Phát triển

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.

Yêu cầu

  • 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

Cài đặt

git clone https://github.com/mwarevn/pmr-client.git
cd pmr-client
npm install

Chạy ứng dụng

Chạy ở chế độ phát triển (có hot-reloading):

npm start

Build ứng dụng

Build file cài đặt cho Windows (NSIS installer):

npm run build

File thực thi (PMR.exe) sẽ nằm trong thư mục dist.

Các File Quan trọng

  • 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ượng bridge và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.

About

ElectronJS App client

Resources

Stars

Watchers

Forks

Releases

No releases published

Packages

 
 
 

Contributors