feat: timeout support
This commit is contained in:
parent
06877e90cc
commit
39e0dfa27f
23 changed files with 532 additions and 92 deletions
|
@ -2,7 +2,14 @@
|
|||
* @file Utility functions that are plugin-instance-specific (i.e. use PluginData)
|
||||
*/
|
||||
|
||||
import { GuildMember, Message, MessageCreateOptions, MessageMentionOptions, TextBasedChannel } from "discord.js";
|
||||
import {
|
||||
GuildMember,
|
||||
Message,
|
||||
MessageCreateOptions,
|
||||
MessageMentionOptions,
|
||||
PermissionsBitField,
|
||||
TextBasedChannel,
|
||||
} from "discord.js";
|
||||
import * as t from "io-ts";
|
||||
import {
|
||||
AnyPluginData,
|
||||
|
@ -27,10 +34,16 @@ export function canActOn(
|
|||
member1: GuildMember,
|
||||
member2: GuildMember,
|
||||
allowSameLevel = false,
|
||||
allowAdmins = false,
|
||||
) {
|
||||
if (member2.id === pluginData.client.user!.id) {
|
||||
return false;
|
||||
}
|
||||
const isOwnerOrAdmin =
|
||||
member2.id === member2.guild.ownerId || member2.permissions.has(PermissionsBitField.Flags.Administrator);
|
||||
if (isOwnerOrAdmin && !allowAdmins) {
|
||||
return false;
|
||||
}
|
||||
|
||||
const ourLevel = getMemberLevel(pluginData, member1);
|
||||
const memberLevel = getMemberLevel(pluginData, member2);
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue