我需要检查用户是否具有预定义的角色,如果具有该角色,则将其删除。如果没有,那么发送一条消息,说明一些事情。
let user = message.guild.member(message.mentions.users.first() || message.guild.members.get(args[0]));
let muterole = message.guild.roles.find(x => x.name === "Muted");
if (user.roles.has(muterole)) user.removeRole(muterole);
if (!use
我一直在尝试做一个简单的命令,给在聊天中说话的人一个角色,假设他们说了一个不好的词,它会给message.author一个哑巴角色。
client.on("message", (message) => {
let member = message.guild.members.get(author.id);
var array = fs.readFileSync('./pings.txt').toString().split("\n");
if (array.includes(message.content)) {
mem
Context:我正在制造一个不和谐的机器人,而静音命令提供了一个持续时间说明符,用于再次解除用户的静音(这是通过为用户分配一个角色来实现的,该角色消除了用户发送消息的能力)。
Idea 1:我可以做一个循环,每隔30秒检查一次,查看哪些静音已经过期,并取消它们。
Idea 2:每次处理静音,我都可以await asyncio.sleep(however long),然后取消它。
我想问--哪个更习惯,更重要的是,哪个更有效率?第一种方法的优点是它只运行一条协同线,而最后一条则为每一种情况生成一个新的协同线(我真的不知道这可能是多少,但假设最多有10种并发情况)。然而,对于我来说,最后一种方法
我想检查用户是否满足命令列出的任何权限。例如,如果所需的权限是Administrator或Manage_Webhooks,并且用户只满足其中一个权限,则将运行该命令。
下面是一些代码
if (message.member.guild.me.hasPermission("MANAGE_WEBHOOKS", "ADMINISTRATOR"))
return message.channel.send("I don't have the permissions to make webhooks, please contact an admin or
我正在尝试创建一个静音命令,该命令将删除所有角色并添加静音角色,静音时间过后,它将返回所有角色并接受静音角色。当我试图承担(或返回)所有角色时,它接下来会写到:
(node:3720) UnhandledPromiseRejectionWarning: TypeError: Supplied parameter was neither a Role nor a Snowflake.
它在使用静音命令后接受角色(并给出一个muterole):
rmember.addRole(muterole.id) && rmember.removeRole(takenroles);
并且在mu
我对Discordpy的调节命令还不太熟悉,我想知道为什么这段代码不能工作,因为我在尝试运行它的时候没有遇到任何错误。根据单位的不同,它会让用户暂时静音一段时间,如果没有创建静音角色,就会创建一个静音角色。
@commands.command()
async def mute(self , ctx, user : discord.Member, duration = 0,*, unit = None):
guild = ctx.guild
for role in guild.roles:
if role.name ==&
因此,在一个普通的静音命令中,例如,bot正在得到一个更新,静音命令在其最后一点永远不会解除用户的静音!因此,我创建了一个数据库,并将当前静音的user_id和日期时间存储为最终解除静音时间,还存储了公会的id。
例如,当我启动更新时,静音将保存到数据库中,以便稍后从on_ready事件中提取。然后我拉出值,然后做discord.utils.sleep_until(dateime #aka the final unmute time),当它完成时,解除用户的静音。
这里的问题是:如何获得存储在数据库中的公会id,并从数据库中删除公会中的静音角色(因为服务器--也就是"ctx“不再是一件
我正在发出一个静音命令,我想检查作者的角色是否高于上述用户的角色。
这就是我试过的
let mentionedrole = message.mentions.roles.first();
let authorrole = message.author.roles
if(mentionedrole.position > authorrole.position) {
message.channel.send(`You don't have access to mute this user. ${message.author}`)
我希望bot能够识别@Community,@Admin,@Moderator角色何时被标记,或者是单个角色,或者是多个角色被标记在同一条消息中,然后向频道发送一条提到用户名的消息。
我可以让机器人在使用以下代码进行标记时识别它:
if client.user.mentioned_in(message) and message.mention_everyone is False:
await message.delete()
在我的一生中,我想不出如何去看其他角色是否被标记。
我试过了
if message.role_mentions.name('Admin'):
我试着将每个人都设为静音,除了某个vc中的某个角色,我可以将整个vc设为静音,但我不太清楚如何取消某个特定角色的静音。
if (message.member.roles.cache.has('727646416834396171') || message.member.roles.cache.has('727646559675614325')) {
if (message.member.voice.channel) {
let channel = message.guild.channels.cache.get(messa
我正在处理基于索赔的身份验证,而且它运行得很好。现在我想添加角色自动化。我有用户的角色声明(如。“行政”)
当调用IsInRole()方法时,会进行检查,以查看当前用户是否具有该角色。在支持索赔的应用程序中,角色由应该在令牌中可用的角色声明类型表示。角色声明类型使用以下URI表示:
//Include all claims
//claims is List<Claim> with all claims
var id = new ClaimsIdentity(claims, "Cookies");
Request.GetOwinContext().Auth