UNPKG

rock-mod

Version:

Rock-Mod is a powerful framework designed for creating and managing mods for Grand Theft Auto (GTA) games.

67 lines (66 loc) 2.06 kB
class CCMPBrowserHandle { constructor(url) { this._browser = ccmp.browsers.create(url); } get isAlive() { return this._browser !== null; } destroy() { if (!this._browser) { return; } this._browser.destroy(); this._browser = null; } execute(code) { if (!this._browser) { return; } this._browser.executeJavaScript(code); } setOrderId(orderId) { if (!this._browser) { return; } this._browser.setOrderId(orderId); } } /** * Реализация `IBrowserManager` поверх нативного CCMP browser API. * * CCMP предоставляет полноценное CEF-управление через `ccmp.browsers` — * это прямое соответствие RageMP'шному `mp.browsers`. Маппинг: * - `create(url)` → `ccmp.browsers.create(url)` → возвращает `Browser` с * числовым `id`, который мы храним для последующих `execute`/`destroy`. * - `execute(code)` → `Browser.executeJavaScript(code)`. * - `destroy()` → `Browser.destroy()`. * * Геймод-консьюмер (`BrowserService` → один логический браузер на гейм-mod) * управляет только одним инстансом одновременно, поэтому держим ссылку * на единственный созданный браузер. */ export class CCMPBrowserManager { constructor() { this._browser = null; } create(url) { this.destroy(); this._browser = this.createInstance(url); } createInstance(url) { return new CCMPBrowserHandle(url); } destroy() { if (!this._browser) { return; } this._browser.destroy(); this._browser = null; } execute(code) { if (!this._browser) { return; } this._browser.execute(code); } }