[英]Get permissions with @client.event on_message (Discord.py)
[英]@client.event not triggered (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)完成運行后讓第二部分自行執行。
裝飾器@client.event 用於諸如 on_startup 之類的事情,它在每次啟動機器人時觸發該函數,或者在每次向機器人所在的任何公會發送消息時觸發該函數的 on_message。
你想要的是更換線
@client.event
和@client.command()
- 就像 MrSpaar 說的
這意味着每次有人發送消息時都會觸發該功能!kick @{member}
在確定如何執行最后一部分( await kick(ctx) )后,我最終解決了這個問題
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.