fix : no startup sync
This commit is contained in:
+5
-18
@@ -1,5 +1,4 @@
|
||||
import {
|
||||
ChannelType,
|
||||
Client,
|
||||
Events,
|
||||
GatewayIntentBits,
|
||||
@@ -144,10 +143,10 @@ async function drain(): Promise<void> {
|
||||
}
|
||||
}
|
||||
|
||||
function enqueue(version: string, source: "history" | "message"): void {
|
||||
function enqueue(version: string): void {
|
||||
if (!pendingVersion || compareLunarisVersions(version, pendingVersion) > 0) {
|
||||
pendingVersion = version;
|
||||
log("version_queued", { version, source });
|
||||
log("version_queued", { version, source: "message" });
|
||||
}
|
||||
if (!runner) {
|
||||
runner = drain().finally(() => {
|
||||
@@ -156,13 +155,13 @@ function enqueue(version: string, source: "history" | "message"): void {
|
||||
}
|
||||
}
|
||||
|
||||
function handleMessage(message: Message, source: "history" | "message"): void {
|
||||
function handleMessage(message: Message): void {
|
||||
if (message.channelId !== channelId || message.author.id === client.user?.id) return;
|
||||
const change = parseLunarisVersionChange(messageText(message));
|
||||
if (change) enqueue(change.targetVersion, source);
|
||||
if (change) enqueue(change.targetVersion);
|
||||
}
|
||||
|
||||
client.on(Events.MessageCreate, (message) => handleMessage(message, "message"));
|
||||
client.on(Events.MessageCreate, handleMessage);
|
||||
client.on(Events.Error, (cause) => log("discord_error", { error: cause.message }));
|
||||
client.on(Events.Warn, (message) => log("discord_warning", { message }));
|
||||
|
||||
@@ -186,18 +185,6 @@ try {
|
||||
if (!shutdown.signal.aborted) {
|
||||
log("discord_ready", { userId: client.user?.id, channelId });
|
||||
await notify("worker ready", { userId: client.user?.id, channelId });
|
||||
|
||||
const channel = await client.channels.fetch(channelId);
|
||||
if (
|
||||
!channel ||
|
||||
(channel.type !== ChannelType.GuildText &&
|
||||
channel.type !== ChannelType.GuildAnnouncement)
|
||||
) {
|
||||
throw new Error("DISCORD_CHANNEL_ID must identify a guild text channel.");
|
||||
}
|
||||
const messages = await channel.messages.fetch({ limit: 25 });
|
||||
for (const message of messages.values()) handleMessage(message, "history");
|
||||
|
||||
await stopped;
|
||||
}
|
||||
} finally {
|
||||
|
||||
Reference in New Issue
Block a user