Я пытаюсь создать команду! Ban, которая при реализации будет запрашивать подтверждение, хочу ли я запретить или нет с конкретными смайликами в качестве реакции. Если я отреагирую на смайлики, я отправлю сообщение «Вы можете запретить» (пока) и еще одно сообщение о реакции на смайлики. ТАКЖЕ, я хочу, чтобы бот принимал реакцию только того, кто инициировал команду! Я думаю, что это в основном из-за того, что бот не может выбрать человека, который создал команду! Ban, а затем отреагировал? Я действительно не знаю, как получить это.
Пожалуйста, помогите мне! Вот мой код:
import os
import discord
from discord import guild, message
from discord.ext import commands
from dotenv import *
import logging
import random
logging.basicConfig(level=logging.INFO)
bot = commands.Bot(command_prefix="!")
load_dotenv()
TOKEN = os.getenv('DISCORD_TOKEN')
GUILD = os.getenv('GUILD_ID')
@bot.command(name="ban", help="Bans someone from the server")
@commands.has_permissions(ban_members=True)
async def ban(ctx, user: int, reason: str):
author = ctx.message.author
guild = discord.utils.get(bot.guilds, id=GUILD)
mem = bot.get_user(user)
name = mem.display_name
discrim = mem.discriminator
time = ctx.message.created_at
embed = discord.Embed(title="Banning User", description=f"Do you want to ban {name}{discrim} ({user})"
f" from the server for {reason}?")
embed.set_footer(text=time)
msg = await ctx.send(embed=embed)
await msg.add_reaction(emoji="\U0001F44E")
await msg.add_reaction(emoji="\U0001F44D")
@bot.event
async def on_reaction_add(reaction, user):
if reaction.message.author == bot:
if user == ban.author:
if reaction.emoji == "\U0001F44E":
mesg = "You can ban!"
else:
mesg = "You cannot ban!"
await reaction.message.channel.send(mesg)
bot.run(TOKEN)