Files
discordeno/src/helpers/members/kick_member.ts
T
Skillz4Killz 3d39b3878a change: ids to use bigint instead of string (#892)
* p1 of bigints change

* shtuff fixes and bits

* Commit from GitHub Actions (Lint)

* finish bigint structs

* typings fixes

* Commit from GitHub Actions (Lint)

* more fixes

* Commit from GitHub Actions (Lint)

* more fixes

* Commit from GitHub Actions (Lint)

* blame wolf

* Commit from GitHub Actions (Lint)

* foxed

* Commit from GitHub Actions (Lint)

* fix unit tests

* Commit from GitHub Actions (Lint)

* change: guildUpdate guild ID can't change

* delete server has been renamed to delete guild

* fixes

Co-authored-by: Skillz4Killz <Skillz4Killz@users.noreply.github.com>
Co-authored-by: ITOH <72305210+itohatweb@users.noreply.github.com>
2021-05-03 18:05:18 +01:00

32 lines
935 B
TypeScript

import { botId } from "../../bot.ts";
import { rest } from "../../rest/rest.ts";
import { Errors } from "../../types/misc/errors.ts";
import { endpoints } from "../../util/constants.ts";
import {
highestRole,
requireBotGuildPermissions,
} from "../../util/permissions.ts";
/** Kick a member from the server */
export async function kick(guildId: bigint, memberId: bigint, reason?: string) {
const botsHighestRole = await highestRole(guildId, botId);
const membersHighestRole = await highestRole(guildId, memberId);
if (
botsHighestRole && membersHighestRole &&
botsHighestRole.position <= membersHighestRole.position
) {
throw new Error(Errors.BOTS_HIGHEST_ROLE_TOO_LOW);
}
await requireBotGuildPermissions(guildId, ["KICK_MEMBERS"]);
return await rest.runMethod<undefined>(
"delete",
endpoints.GUILD_MEMBER(guildId, memberId),
{ reason },
);
}
// aliases
export { kick as kickMember };