mirror of
https://github.com/ZeppelinBot/Zeppelin.git
synced 2025-05-25 18:25:03 +00:00
53 lines
1.2 KiB
TypeScript
53 lines
1.2 KiB
TypeScript
import { ChannelType } from "discord-api-types/v9";
|
|
import { CategoryChannel, Channel } from "discord.js";
|
|
import { ChannelTypes } from "discord.js/typings/enums";
|
|
import { ChannelTypeStrings } from "src/types";
|
|
import { isDmChannel } from "./isDmChannel";
|
|
import { isGuildChannel } from "./isGuildChannel";
|
|
import { isThreadChannel } from "./isThreadChannel";
|
|
|
|
type ResolvedChannelIds = {
|
|
category: string | null;
|
|
channel: string | null;
|
|
thread: string | null;
|
|
};
|
|
|
|
export function resolveChannelIds(channel: Channel): ResolvedChannelIds {
|
|
if (isDmChannel(channel)) {
|
|
return {
|
|
category: null,
|
|
channel: channel.id,
|
|
thread: null,
|
|
};
|
|
}
|
|
|
|
if (isThreadChannel(channel)) {
|
|
return {
|
|
category: channel.parent?.parentId || null,
|
|
channel: channel.parentId,
|
|
thread: channel.id,
|
|
};
|
|
}
|
|
|
|
if (channel instanceof CategoryChannel) {
|
|
return {
|
|
category: channel.id,
|
|
channel: null,
|
|
thread: null,
|
|
};
|
|
}
|
|
|
|
if (isGuildChannel(channel)) {
|
|
return {
|
|
category: channel.parentId,
|
|
channel: channel.id,
|
|
thread: null,
|
|
};
|
|
}
|
|
|
|
return {
|
|
category: null,
|
|
channel: channel.id,
|
|
thread: null,
|
|
};
|
|
}
|