Выдается ошибка и бот не может выдать роль в Discord Python
По задумке он должен с шансом 30% выдавать роль - раб, а с шансом 70% выдавать роль - Рабовладелец. Также выводить это в чат и снимать роль - Свободный. И могу ли я как-нибудь записать в базу данных человека с ролью - Рабовладелец? Например [Пользователь][Баланс].
import discord, asyncio, random, os
from discord.ext import commands
from discord.utils import get
from bot_logic import *
description = '''An example bot to showcase the discord.ext.commands extension
module.
There are a number of utility commands being showcased here.'''
intents = discord.Intents.default()
intents.members = True
intents.message_content = True
bot = commands.Bot(command_prefix='%', description=description, intents=intents)
bot.remove_command("help")
t_get_slave_role = 1191424500986826773 #Роль - Рабовладелец
t_slave_role = 1191424705287168092 #Роль - раб
t_clear_role = 1191427884116623531 #Роль - Свобоный человек
@bot.event
async def on_ready():
#Если бот зашел в сеть
print(f'Бот {bot.user} (ID: {bot.user.id}), готов к работе!')
print('------')
channel = bot.get_channel(1191416150454710325) # ID Канала где игра
emb = discord.Embed(title="Немного боте о Slaves", color=(1))
emb.add_field(name="Привет! Я бот для игры 'Slaves'", value="Мой префикс для комманд - %\n Префикс это начало комманд, к примеру комманда - %help", inline=False)
await channel.send(embed=emb)
await channel.send("https://tenor.com/view/bfp-black-flag-pirates-work-get-back-to-work-back-to-work-gif-6618814053542253714")
@bot.command()
@commands.has_role(t_clear_role) #Роль - Свобоный человек
async def get_role(ctx, member: discord.Member):
#Рандомно выдаём роль
channel = bot.get_channel(1191416150454710325) # ID Канала где игра
get_slave_role = discord.utils.get(member.guild.roles, id=1191424500986826773) #Роль - Рабовладелец
slave_role = discord.utils.get(member.guild.roles, id=1191424705287168092) #Роль - раб
clear_role = discord.utils.get(member.guild.roles, id=1191427884116623531) #Роль - Свобоный человек
role_shans = random.choice(30, 30, 30, 70, 70, 70, 70, 70, 70, 70)
if role_shans == 70:
await channel.send(f'{member} - раб')
await member.add_roles(get_slave_role)
elif role_shans == 30:
await channel.send(f'{member} - Рабовладелец')
await member.add_roles(slave_role)
await member.remove_roles(clear_role)
@bot.command()
async def info(ctx):
#Инфа о боте
channel = bot.get_channel(1191416150454710325) # ID Канала где игра
emb1 = discord.Embed(title="Немного боте о Slaves", color=(1))
emb1.add_field(name="Привет! Я бот для игры 'Slaves'", value="Мой префикс для комманд - %\n Префикс это начало комманд, к примеру комманда - %help", inline=False)
await channel.send(embed=emb1)
await channel.send("https://tenor.com/view/bfp-black-flag-pirates-work-get-back-to-work-back-to-work-gif-6618814053542253714")
@bot.command()
async def help(ctx):
#Help
channel = bot.get_channel(1191416150454710325) # ID Канала где игра
emb = discord.Embed(title="Комманды Slaves", color=(1))
emb.add_field(name=" Общие команды", value="")
emb.add_field(name="%help", value="Выводит информацию о командах", inline=False)
emb.add_field(name="%info", value="Информация о боте", inline=False)
emb.add_field(name="%get_role", value="Информация о боте", inline=False)
emb.add_field(name=" Команды раба", value="")
emb.add_field(name=" Команды Рабовладельца", value="")
await channel.send(embed=emb)
bot.run("Token")
Ошибка
2024-01-02 03:45:03 ERROR discord.ext.commands.bot Ignoring exception in command get_role
Traceback (most recent call last):
File "C:\Users\AdminZ\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\bot.py", line 1350, in invoke
await ctx.command.invoke(ctx)
File "C:\Users\AdminZ\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\core.py", line 1021, in invoke
await self.prepare(ctx)
File "C:\Users\AdminZ\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\core.py", line 938, in prepare
await self._parse_arguments(ctx)
File "C:\Users\AdminZ\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\core.py", line 845, in _parse_arguments
transformed = await self.transform(ctx, param, attachments)
^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^^
File "C:\Users\AdminZ\AppData\Local\Programs\Python\Python311\Lib\site-packages\discord\ext\commands\core.py", line 697, in transform
raise MissingRequiredArgument(param)
discord.ext.commands.errors.MissingRequiredArgument: member is a required argument that is missing.