mirror of
https://github.com/SilenceLurker/ST-Amily2-Chat-Optimisation.git
synced 2026-06-06 12:25:51 +00:00
95 lines
2.8 KiB
JavaScript
95 lines
2.8 KiB
JavaScript
|
||
import { createDrawer } from "./ui/drawer.js";
|
||
import { registerSlashCommands } from "./core/commands.js";
|
||
import { onMessageReceived, onChatChanged } from "./core/events.js";
|
||
import { eventSource, event_types } from '/script.js';
|
||
|
||
|
||
function loadPluginStyles() {
|
||
const styleId = "amily2-styles";
|
||
if (document.getElementById(styleId)) return;
|
||
|
||
const extensionName = "ST-Amily2-Chat-Optimisation";
|
||
const stylePath = `scripts/extensions/third-party/${extensionName}/assets/style.css?v=${Date.now()}`;
|
||
|
||
const link = document.createElement("link");
|
||
link.id = styleId;
|
||
link.rel = "stylesheet";
|
||
link.type = "text/css";
|
||
link.href = stylePath;
|
||
document.head.appendChild(link);
|
||
}
|
||
|
||
window.addEventListener("error", (event) => {
|
||
const stackTrace = event.error?.stack || "";
|
||
|
||
if (stackTrace.includes("ST-Amily2-Chat-Optimisation")) {
|
||
console.error("[Amily2-全局卫队] 捕获到严重错误:", event.error);
|
||
toastr.error(
|
||
`Amily2插件错误: ${event.error?.message || "未知错误"}`,
|
||
"严重错误",
|
||
{ timeOut: 10000 },
|
||
);
|
||
}
|
||
});
|
||
|
||
window.addEventListener("error", (event) => {
|
||
const stackTrace = event.error?.stack || "";
|
||
|
||
if (stackTrace.includes("ST-Amily2-Chat-Optimisation")) {
|
||
console.error("[Amily2-全局错误]", event.error);
|
||
try {
|
||
toastr.error(
|
||
`Amily2插件错误: ${event.error?.message || "未知错误"}`,
|
||
"严重错误",
|
||
{ timeOut: 10000 },
|
||
);
|
||
} catch (err) {
|
||
|
||
console.error("无法显示错误提示", err);
|
||
}
|
||
}
|
||
});
|
||
|
||
jQuery(async () => {
|
||
|
||
let attempts = 0;
|
||
const maxAttempts = 100;
|
||
const checkInterval = 100;
|
||
const targetSelector = "#sys-settings-button";
|
||
|
||
const deploymentInterval = setInterval(async () => {
|
||
if ($(targetSelector).length > 0) {
|
||
clearInterval(deploymentInterval);
|
||
console.log(
|
||
`[Amily2号] 目标邻居(${targetSelector})已定位,开始建造府邸...`
|
||
);
|
||
|
||
|
||
loadPluginStyles();
|
||
|
||
|
||
await registerSlashCommands();
|
||
|
||
createDrawer();
|
||
|
||
if (!window.amily2EventsRegistered) {
|
||
eventSource.on(event_types.MESSAGE_RECEIVED, onMessageReceived);
|
||
eventSource.on(event_types.IMPERSONATE_READY, onMessageReceived);
|
||
eventSource.on(event_types.CHAT_CHANGED, onChatChanged);
|
||
window.amily2EventsRegistered = true;
|
||
}
|
||
|
||
console.log("【Amily2号】帝国秩序已建立。恭迎陛下检阅!");
|
||
} else {
|
||
attempts++;
|
||
if (attempts >= maxAttempts) {
|
||
clearInterval(deploymentInterval);
|
||
console.error(
|
||
`[Amily2号] 部署失败:等待 ${targetSelector} 超时。帝国号角未能吹响。`
|
||
);
|
||
toastr.error("Amily2号UI部署失败。", "部署错误");
|
||
}
|
||
}
|
||
}, checkInterval);
|
||
}); |