mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-01 08:20:08 +00:00
* fix: check new types idea * fix: type errors * fix: new style * fix: more cleanup * fix: more cleanup * fix: cleanup audit logs * fix: cleanup stickers * fix: cleanup integrations * fix: more cleanup * fix: organize into 1 place * fix: few errors * fix: some broken import fixes * fix: quite a lot of fixes across the board * fix: more fixes for broken imports * fix: more fixes for broken imports * fix: handler imports * fix: all remaining import errors * fix: more errors needing fixes * fix: clearing up transformers * fix: few moer types * fix: more cleanup of extra types * fix: fmt * fix: cleanup discordeno file * Nuke Base Types (#2102) * fix: cleanup snake stuff * convert camelCase to snake_case (#2103) * fix: add camelize * fix: finalize remaining errors * fix: imports in test Co-authored-by: LTS20050703 <87189679+lts20050703@users.noreply.github.com>
66 lines
2.7 KiB
TypeScript
66 lines
2.7 KiB
TypeScript
import type { Bot } from "../../bot.ts";
|
|
|
|
/**
|
|
* Updates the bot's voice state
|
|
* Caveats:
|
|
* - `channel_id` must currently point to a stage channel.
|
|
* - Bot must already have joined `channel_id`.
|
|
* - You must have the `MUTE_MEMBERS` permission. But can always suppress yourself.
|
|
* - You must have the `REQUEST_TO_SPEAK` permission to request to speak. You can always clear your own request to speak.
|
|
* - You are able to set `request_to_speak_timestamp` to any present or future time.
|
|
* - When suppressed, the user will have their `request_to_speak_timestamp` removed.
|
|
*/
|
|
export async function updateBotVoiceState(bot: Bot, guildId: bigint, options: UpdateSelfVoiceState) {
|
|
await bot.rest.runMethod(bot.rest, "patch", bot.constants.endpoints.UPDATE_VOICE_STATE(guildId), {
|
|
channel_id: options.channelId,
|
|
suppress: options.suppress,
|
|
request_to_speak_timestamp: options.requestToSpeakTimestamp
|
|
? new Date(options.requestToSpeakTimestamp).toISOString()
|
|
: options.requestToSpeakTimestamp,
|
|
});
|
|
}
|
|
|
|
/**
|
|
* Updates the a user's voice state
|
|
* Caveats:
|
|
* - `channel_id` must currently point to a stage channel.
|
|
* - User must already have joined `channel_id`.
|
|
* - You must have the `MUTE_MEMBERS` permission. But can always suppress yourself.
|
|
* - When unsuppressed, non-bot users will have their `request_to_speak_timestamp` set to the current time. Bot users will not.
|
|
* - You must have the `REQUEST_TO_SPEAK` permission to request to speak. You can always clear your own request to speak.
|
|
* - You are able to set `request_to_speak_timestamp` to any present or future time.
|
|
* - When suppressed, the user will have their `request_to_speak_timestamp` removed.
|
|
*/
|
|
export async function updateUserVoiceState(bot: Bot, guildId: bigint, options: UpdateOthersVoiceState) {
|
|
await bot.rest.runMethod(
|
|
bot.rest,
|
|
"patch",
|
|
bot.constants.endpoints.UPDATE_VOICE_STATE(guildId, options.userId),
|
|
{
|
|
channel_id: options.channelId,
|
|
suppress: options.suppress,
|
|
user_id: options.userId,
|
|
},
|
|
);
|
|
}
|
|
|
|
/** https://discord.com/developers/docs/resources/guild#update-current-user-voice-state */
|
|
export interface UpdateSelfVoiceState {
|
|
/** The id of the channel the user is currently in */
|
|
channelId: bigint;
|
|
/** Toggles the user's suppress state */
|
|
suppress?: boolean;
|
|
/** Sets the user's request to speak */
|
|
requestToSpeakTimestamp?: number | null;
|
|
}
|
|
|
|
/** https://discord.com/developers/docs/resources/guild#update-user-voice-state */
|
|
export interface UpdateOthersVoiceState {
|
|
/** The id of the channel the user is currently in */
|
|
channelId: bigint;
|
|
/** Toggles the user's suppress state */
|
|
suppress?: boolean;
|
|
/** The user id to target */
|
|
userId: bigint;
|
|
}
|