@client.event 未触发 (discord.py)

时间:2021-07-26 16:12:40

标签: python discord discord.py

from keepawake import keepawake
import os
import requests
import discord
from discord import Webhook, RequestsWebhookAdapter, File
import time
from discord.ext import commands

webhook = Webhook.partial(863030277597036574,os.environ['WTOKEN'],\
 adapter=RequestsWebhookAdapter())
 

client = commands.Bot(command_prefix="!")





votecount = 0
vote = None

@client.command()

async def votekick(ctx, member : discord.Member, *, reason="inconnue"):
 emojis = ['✅', '❌']
 adminBug = client.get_channel(863158034292801577)
 message = await ctx.send("voulez vous kick "+str(member)[:-5]+"?" f"                        raison du vote: {reason}")
 
 for emoji in emojis:
     await message.add_reaction(emoji)
 
 
 @client.event   
 async def on_reaction_add(reaction, user):
    emoji = reaction.emoji
    if user.bot:
        return
    if emoji == "?":
        fixed_channel = client.get_channel(863158034292801577)
        await fixed_channel.send("!!!!!!!!!!!!!!!!!!!!!!!!!!!!!")
    elif emoji == "✅":
        vote = True
    elif emoji == "❌":
        vote = False
    else:
     return

@client.event  
async def kick(ctx):
   print(vote)
   if vote == True :  
     if reason == None: 
       reason = "raison inconnue"
     message = f"Tu a été banni(e) de {ctx.guild.name} pour {reason}"
     await member.send(message)
     await member.kick(reason=reason)
     await ctx.send(f"{member} a été éjecté du serveur!")
   else:
     await ctx.send(f"{member} ne sera pas kick.") 

我正在尝试制作一个不和谐的机器人,通过投票来禁止或踢人,但代码的第二部分没有做任何事情(比如打印“投票”),但第一部分正在工作。 我对discord.py了解不多,所以我不知道如何在第一部分(on_reaction_add)运行完成后让第二部分自行执行。

2 个答案:

答案 0 :(得分:0)

装饰器@client.event 用于诸如 on_startup 之类的事情,它在每次启动机器人时触发该函数,或者在每次向机器人所在的任何公会发送消息时触发该函数的 on_message。

你要的是换行

<块引用>

@client.event@client.command() - 就像 MrSpaar 说的

这意味着每次有人发送消息!kick @{member}

时都会触发该功能

答案 1 :(得分:0)

在确定如何执行最后一部分( await kick(ctx) )后,我终于解决了这个问题