54 lines
1.7 KiB
JavaScript
54 lines
1.7 KiB
JavaScript
// This script runs in the "Isolated World"
|
|
// It injects the bot script into the "Main World" (Page Context)
|
|
|
|
(async function () {
|
|
console.log('[Magic Bot Extension] Initializing...');
|
|
|
|
// 2. Inject Modules
|
|
const modules = [
|
|
'modules/core.js',
|
|
'modules/socket.js',
|
|
'modules/state.js',
|
|
'modules/commands.js',
|
|
'modules/decision.js',
|
|
'modules/main.js',
|
|
|
|
// UI Modules (ES Modules required)
|
|
'modules/ui/ui_manager.js'
|
|
];
|
|
|
|
// Note: Since ui_manager.js uses ES imports (import ... from ...),
|
|
// we MUST load it as type="module".
|
|
// Also, core/socket/etc are currently "script" (globals).
|
|
// We can leave legacy modules as scripts, but the new UI manager is an ES module.
|
|
|
|
// Legacy Modules (Synchronous-ish load)
|
|
const legacyModules = [
|
|
'modules/core.js',
|
|
'modules/socket.js',
|
|
'modules/state.js',
|
|
'modules/commands.js',
|
|
'modules/decision.js',
|
|
'modules/main.js'
|
|
];
|
|
|
|
legacyModules.forEach(file => {
|
|
const s = document.createElement('script');
|
|
s.src = chrome.runtime.getURL(file);
|
|
s.onload = function () { this.remove(); };
|
|
(document.head || document.documentElement).appendChild(s);
|
|
});
|
|
|
|
// UI Manager (Module)
|
|
// Wait a brief moment for legacy modules to be defined on window?
|
|
setTimeout(() => {
|
|
const s = document.createElement('script');
|
|
s.type = 'module';
|
|
s.src = chrome.runtime.getURL('modules/ui/ui_manager.js');
|
|
s.onload = function () { this.remove(); };
|
|
(document.head || document.documentElement).appendChild(s);
|
|
}, 500);
|
|
|
|
console.log('[Magic Bot Extension] Modules injection started.');
|
|
})();
|