Files
ST-Amily2-Chat-Optimisation/index.js
2025-07-07 02:07:41 +08:00

95 lines
2.8 KiB
JavaScript
Raw Blame History

This file contains ambiguous Unicode characters
This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.
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);
});