mirror of
https://github.com/discordeno/discordeno.git
synced 2026-06-16 11:28:15 +00:00
fix edit role bug
This commit is contained in:
@@ -30,7 +30,7 @@ import { urlToBase64 } from "../utils/utils.ts";
|
|||||||
import { Intents } from "../types/options.ts";
|
import { Intents } from "../types/options.ts";
|
||||||
import { identifyPayload } from "../module/client.ts";
|
import { identifyPayload } from "../module/client.ts";
|
||||||
import { requestAllMembers } from "../module/shardingManager.ts";
|
import { requestAllMembers } from "../module/shardingManager.ts";
|
||||||
import { botHasPermission } from "../utils/permissions.ts";
|
import { botHasPermission, calculateBits } from "../utils/permissions.ts";
|
||||||
import { RequestManager } from "../module/requestManager.ts";
|
import { RequestManager } from "../module/requestManager.ts";
|
||||||
import { endpoints } from "../constants/discord.ts";
|
import { endpoints } from "../constants/discord.ts";
|
||||||
import { Errors } from "../types/errors.ts";
|
import { Errors } from "../types/errors.ts";
|
||||||
@@ -321,7 +321,12 @@ export function editRole(
|
|||||||
) {
|
) {
|
||||||
throw new Error(Errors.MISSING_MANAGE_ROLES);
|
throw new Error(Errors.MISSING_MANAGE_ROLES);
|
||||||
}
|
}
|
||||||
return RequestManager.patch(endpoints.GUILD_ROLE(guildID, id), options);
|
return RequestManager.patch(endpoints.GUILD_ROLE(guildID, id), {
|
||||||
|
...options,
|
||||||
|
permissions: options.permissions
|
||||||
|
? calculateBits(options.permissions)
|
||||||
|
: undefined,
|
||||||
|
});
|
||||||
}
|
}
|
||||||
|
|
||||||
/** Delete a guild role. Requires the MANAGE_ROLES permission. */
|
/** Delete a guild role. Requires the MANAGE_ROLES permission. */
|
||||||
|
|||||||
@@ -180,6 +180,7 @@ export async function hasChannelPermissions(
|
|||||||
return botHasPermission(guild.id, permissions);
|
return botHasPermission(guild.id, permissions);
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** This function converts a bitwise string to permission strings */
|
||||||
export function calculatePermissions(permissionBits: bigint) {
|
export function calculatePermissions(permissionBits: bigint) {
|
||||||
return Object.keys(Permissions).filter((perm) => {
|
return Object.keys(Permissions).filter((perm) => {
|
||||||
if (typeof perm !== "number") return false;
|
if (typeof perm !== "number") return false;
|
||||||
@@ -187,6 +188,14 @@ export function calculatePermissions(permissionBits: bigint) {
|
|||||||
}) as Permission[];
|
}) as Permission[];
|
||||||
}
|
}
|
||||||
|
|
||||||
|
/** This function converts an array of permissions into the bitwise string. */
|
||||||
|
export function calculateBits(permissions: Permission[]) {
|
||||||
|
return permissions.reduce(
|
||||||
|
(bits, perm) => bits |= BigInt(Permissions[perm]),
|
||||||
|
BigInt(0),
|
||||||
|
).toString();
|
||||||
|
}
|
||||||
|
|
||||||
export async function highestRole(guildID: string, memberID: string) {
|
export async function highestRole(guildID: string, memberID: string) {
|
||||||
const guild = await cacheHandlers.get("guilds", guildID);
|
const guild = await cacheHandlers.get("guilds", guildID);
|
||||||
if (!guild) return;
|
if (!guild) return;
|
||||||
|
|||||||
Reference in New Issue
Block a user