Stack Overflow на русском Asked on February 18, 2021
Помогите разобраться. Бот должен выдавать роль, когда получит сообщение с необходимым текстом, к примеру, "Группа С118". В итоге не выдает никаких ошибок синтаксиса и тп, просто молчит.
import discord
from discord.ext import commands
from discord.ext.commands import Bot
from discord.utils import get
@Bot.event
async def on_message(msg):
member = utils.get(message.guild.members, id=payload.user_id)
if "text in message" in msg.content:
role = discord.utils.get(member.guild.roles, id = "")
await Bot.add_roles(member, role)
Bot.run("TOKEN")
У вас не правильное построение кода.
Метод on_member_join() - событие и используется так:
@Bot.event
async def on_member_join(member):
await bot.process_commands(message)#также надо добавить это, подробнее смотрите ниже.
print(f'На сервере новый пользователь {member.mention}')
process_commands() - это надо что бы бот выдел команди(пример /help, если этого не будет он не ответит на команду)
Метод on_message() - тоже событие и используется так:
@Bot.event
async def on_message(message):
if message.content == 'Hello':
await message.channel.send(f'Hello {message.member.mention}')
И так, если вы хотите что бы выдавалась роль когда пользователь заходит на сервер то надо так:
@Bot.event
async def on_member_join(member):
role = discord.utils.get(member.guild.roles, id = "")
await member.add_roles(role)
А если по определенному слове:
@Bot.event
async def on_message(message):
await bot.process_commands(message)
if message.content == 'Роль':
role = discord.utils.get(member.guild.roles, id = "")
await message.member.add_roles(role)
Correct answer by xZartsust on February 18, 2021
Get help from others!
Recent Answers
Recent Questions
© 2024 TransWikia.com. All rights reserved. Sites we Love: PCI Database, UKBizDB, Menu Kuliner, Sharing RPP