Files
Magic-Garden-Bot/extension/content_loader.js
2025-12-09 23:49:52 +00:00

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.');
})();