stage channel
This commit is contained in:
parent
d63d4f4f12
commit
6293a1f940
11 changed files with 105 additions and 8 deletions
4
mod.ts
4
mod.ts
|
@ -96,7 +96,7 @@ export { Intents } from './src/utils/intents.ts'
|
|||
export * from './src/utils/permissions.ts'
|
||||
export { UserFlagsManager } from './src/utils/userFlags.ts'
|
||||
export { HarmonyEventEmitter } from './src/utils/events.ts'
|
||||
export type { EveryChannelTypes } from './src/utils/getChannelByType.ts'
|
||||
export type { EveryChannelTypes } from './src/utils/channel.ts'
|
||||
export * from './src/utils/bitfield.ts'
|
||||
export type {
|
||||
ActivityGame,
|
||||
|
@ -175,3 +175,5 @@ export type { Dict } from './src/utils/dict.ts'
|
|||
export * from './src/cache/redis.ts'
|
||||
export { ColorUtil } from './src/utils/colorutil.ts'
|
||||
export type { Colors } from './src/utils/colorutil.ts'
|
||||
export { StoreChannel } from './src/structures/guildStoreChannel.ts'
|
||||
export { StageVoiceChannel } from './src/structures/guildStageVoiceChannel.ts'
|
||||
|
|
|
@ -1,5 +1,5 @@
|
|||
import type { Gateway, GatewayEventHandler } from '../mod.ts'
|
||||
import getChannelByType from '../../utils/getChannelByType.ts'
|
||||
import getChannelByType from '../../utils/channel.ts'
|
||||
import type {
|
||||
ChannelPayload,
|
||||
GuildChannelPayload
|
||||
|
|
|
@ -57,7 +57,7 @@ import type { Presence } from '../../structures/presence.ts'
|
|||
import type {
|
||||
EveryChannelTypes,
|
||||
EveryTextChannelTypes
|
||||
} from '../../utils/getChannelByType.ts'
|
||||
} from '../../utils/channel.ts'
|
||||
import { interactionCreate } from './interactionCreate.ts'
|
||||
import type { Interaction } from '../../structures/slash.ts'
|
||||
import type { CommandContext } from '../../commands/command.ts'
|
||||
|
|
|
@ -9,7 +9,7 @@ import type {
|
|||
MessageOptions
|
||||
} from '../types/channel.ts'
|
||||
import { CHANNEL } from '../types/endpoint.ts'
|
||||
import getChannelByType from '../utils/getChannelByType.ts'
|
||||
import getChannelByType from '../utils/channel.ts'
|
||||
import { BaseManager } from './base.ts'
|
||||
|
||||
export type AllMessageOptions = MessageOptions | Embed
|
||||
|
|
|
@ -11,7 +11,7 @@ import type {
|
|||
import { OverrideType } from '../types/channel.ts'
|
||||
import { CHANNEL } from '../types/endpoint.ts'
|
||||
import type { GuildChannelPayloads, GuildChannels } from '../types/guild.ts'
|
||||
import getChannelByType from '../utils/getChannelByType.ts'
|
||||
import getChannelByType from '../utils/channel.ts'
|
||||
import { Permissions } from '../utils/permissions.ts'
|
||||
import { SnowflakeBase } from './base.ts'
|
||||
import type { Guild } from './guild.ts'
|
||||
|
|
3
src/structures/guildStageVoiceChannel.ts
Normal file
3
src/structures/guildStageVoiceChannel.ts
Normal file
|
@ -0,0 +1,3 @@
|
|||
import { VoiceChannel } from './guildVoiceChannel.ts'
|
||||
|
||||
export class StageVoiceChannel extends VoiceChannel {}
|
3
src/structures/guildStoreChannel.ts
Normal file
3
src/structures/guildStoreChannel.ts
Normal file
|
@ -0,0 +1,3 @@
|
|||
import { GuildChannel } from './channel.ts'
|
||||
|
||||
export class StoreChannel extends GuildChannel {}
|
|
@ -157,7 +157,8 @@ export enum ChannelTypes {
|
|||
GROUP_DM = 3,
|
||||
GUILD_CATEGORY = 4,
|
||||
GUILD_NEWS = 5,
|
||||
GUILD_STORE = 6
|
||||
GUILD_STORE = 6,
|
||||
GUILD_STAGE_VOICE = 13
|
||||
}
|
||||
|
||||
export interface MessagePayload {
|
||||
|
@ -336,7 +337,11 @@ export enum MessageTypes {
|
|||
USER_PREMIUM_GUILD_SUBSCRIPTION_TIER_3 = 11,
|
||||
CHANNEL_FOLLOW_ADD = 12,
|
||||
GUILD_DISCOVERY_DISQUALIFIED = 14,
|
||||
GUILD_DISCOVERY_REQUALIFIED = 15
|
||||
GUILD_DISCOVERY_REQUALIFIED = 15,
|
||||
GUILD_DISCOVERY_GRACE_PERIOD_INITIAL_WARNING = 16,
|
||||
GUILD_DISCOVERY_GRACE_PERIOD_FINAL_WARNING = 17,
|
||||
REPLY = 19,
|
||||
APPLICATION_COMMAND = 20
|
||||
}
|
||||
|
||||
export enum MessageActivityTypes {
|
||||
|
|
|
@ -32,5 +32,7 @@ export const PermissionFlags: { [key: string]: bigint } = {
|
|||
MANAGE_ROLES: 1n << 28n,
|
||||
MANAGE_WEBHOOKS: 1n << 29n,
|
||||
MANAGE_EMOJIS: 1n << 30n,
|
||||
USE_SLASH_COMMANDS: 1n << 31n
|
||||
USE_SLASH_COMMANDS: 1n << 31n,
|
||||
// Might be removed (as PR says)
|
||||
REQUEST_TO_SPEAK: 0x100000000n
|
||||
}
|
||||
|
|
|
@ -41,6 +41,7 @@ export interface VoiceStatePayload {
|
|||
self_stream?: boolean
|
||||
self_video: boolean
|
||||
suppress: boolean
|
||||
request_to_speak_timestamp: string | null
|
||||
}
|
||||
|
||||
/** Voice Region Structure */
|
||||
|
|
|
@ -23,6 +23,8 @@ import { VoiceChannel } from '../structures/guildVoiceChannel.ts'
|
|||
import { Guild } from '../structures/guild.ts'
|
||||
import { TextChannel } from '../structures/textChannel.ts'
|
||||
import { Channel, GuildChannel } from '../structures/channel.ts'
|
||||
import { StoreChannel } from '../structures/guildStoreChannel.ts'
|
||||
import { StageVoiceChannel } from '../structures/guildStageVoiceChannel.ts'
|
||||
|
||||
export type EveryTextChannelTypes =
|
||||
| TextChannel
|
||||
|
@ -80,10 +82,22 @@ const getChannelByType = (
|
|||
data as GuildTextChannelPayload,
|
||||
guild
|
||||
)
|
||||
case ChannelTypes.GUILD_STORE:
|
||||
if (guild === undefined)
|
||||
throw new Error('No Guild was provided to construct Channel')
|
||||
return new StoreChannel(client, data as GuildTextChannelPayload, guild)
|
||||
case ChannelTypes.GUILD_VOICE:
|
||||
if (guild === undefined)
|
||||
throw new Error('No Guild was provided to construct Channel')
|
||||
return new VoiceChannel(client, data as GuildVoiceChannelPayload, guild)
|
||||
case ChannelTypes.GUILD_STAGE_VOICE:
|
||||
if (guild === undefined)
|
||||
throw new Error('No Guild was provided to construct Channel')
|
||||
return new StageVoiceChannel(
|
||||
client,
|
||||
data as GuildVoiceChannelPayload,
|
||||
guild
|
||||
)
|
||||
case ChannelTypes.DM:
|
||||
return new DMChannel(client, data as DMChannelPayload)
|
||||
case ChannelTypes.GROUP_DM:
|
||||
|
@ -92,3 +106,70 @@ const getChannelByType = (
|
|||
}
|
||||
|
||||
export default getChannelByType
|
||||
|
||||
export function isTextChannel(channel: Channel): channel is TextChannel {
|
||||
return (
|
||||
channel.type === ChannelTypes.DM ||
|
||||
channel.type === ChannelTypes.GROUP_DM ||
|
||||
channel.type === ChannelTypes.GUILD_TEXT ||
|
||||
channel.type === ChannelTypes.GUILD_NEWS
|
||||
)
|
||||
}
|
||||
|
||||
export function isDMChannel(channel: Channel): channel is DMChannel {
|
||||
return channel.type === ChannelTypes.DM
|
||||
}
|
||||
|
||||
export function isGroupDMChannel(channel: Channel): channel is GroupDMChannel {
|
||||
return channel.type === ChannelTypes.GROUP_DM
|
||||
}
|
||||
|
||||
export function isGuildTextChannel(
|
||||
channel: Channel
|
||||
): channel is GuildTextChannel {
|
||||
return channel.type === ChannelTypes.GUILD_TEXT
|
||||
}
|
||||
|
||||
export function isGuildBasedTextChannel(
|
||||
channel: Channel
|
||||
): channel is GuildTextBasedChannel {
|
||||
return (
|
||||
channel.type === ChannelTypes.GUILD_TEXT ||
|
||||
channel.type === ChannelTypes.GUILD_NEWS
|
||||
)
|
||||
}
|
||||
|
||||
export function isCategoryChannel(
|
||||
channel: Channel
|
||||
): channel is CategoryChannel {
|
||||
return channel.type === ChannelTypes.GUILD_CATEGORY
|
||||
}
|
||||
|
||||
export function isNewsChannel(channel: Channel): channel is NewsChannel {
|
||||
return channel.type === ChannelTypes.GUILD_NEWS
|
||||
}
|
||||
|
||||
export function isVoiceChannel(channel: Channel): channel is VoiceChannel {
|
||||
return channel.type === ChannelTypes.GUILD_VOICE
|
||||
}
|
||||
|
||||
export function isStageVoiceChannel(
|
||||
channel: Channel
|
||||
): channel is StageVoiceChannel {
|
||||
return channel.type === ChannelTypes.GUILD_STAGE_VOICE
|
||||
}
|
||||
|
||||
export function isStoreChannel(channel: Channel): channel is StoreChannel {
|
||||
return channel.type === ChannelTypes.GUILD_STORE
|
||||
}
|
||||
|
||||
export function isGuildChannel(channel: Channel): channel is GuildChannel {
|
||||
return (
|
||||
channel.type === ChannelTypes.GUILD_CATEGORY ||
|
||||
channel.type === ChannelTypes.GUILD_NEWS ||
|
||||
channel.type === ChannelTypes.GUILD_STORE ||
|
||||
channel.type === ChannelTypes.GUILD_TEXT ||
|
||||
channel.type === ChannelTypes.GUILD_VOICE ||
|
||||
channel.type === ChannelTypes.GUILD_STAGE_VOICE
|
||||
)
|
||||
}
|
Loading…
Reference in a new issue