Я искал везде, и люди просто говорят мне использовать документацию, и это не помогает, я уже определил on_message (сообщение), поэтому я не могу использовать параметр member, и я хочу, чтобы люди были установлены до определенной роли, когда они говорят ключевое слово
вот что я получил, но это не работает:
if message.content.lower() == "!changeadmin"
role = discord.utils.get(server.roles, name="Administrator")
await client.add_roles(member, role)
Я всегда возвращаюсь с
Ignoring exception in on_message
Traceback (most recent call last):
File "C:\Users\josep\AppData\Local\Programs\Python\Python36-32\lib\site-
packages\discord\client.py", line 307, in _run_event
yield from getattr(self, event)(*args, **kwargs)
File "C:\Users\josep\OneDrive\Documents\New folder\New folder\mybot1.py",
line 58, in on_message
role = discord.utils.get(server.roles, name="admin")
AttributeError: 'str' object has no attribute 'roles'
EDIT:
Это мой полный код (исключая токен внизу):
import discord
from discord.ext.commands import Bot
from discord.ext import commands
import asyncio
import time
import random
import ctx
Client = discord.Client()
client = commands.Bot(command_prefix = "!")
chat_filter = ["CUNT", "NIGGER", "NIGGA", "FUCK", "BITCH", "DICK", "WANKER"]
bypass_list = ["227007454775476224"]
possible_responses = [
'That is a resounding no',
'It is not looking likely',
'Too hard to tell',
'It is quit possible',
'Definitely',
]
server = '242547220765868033'
roles = ['442351132615114772']
@client.event
async def on_ready():
print("Bot is online and connected to Discord")
bot = commands.Bot(command_prefix='!', description='A bot that greets the user back.')
@client.event
async def on_message(message):
contents = message.content.split(" ") #contents is a list type
for word in contents:
if word.upper() in chat_filter:
if not message.author.id in bypass_list:
try:
await client.delete_message(message)
await client.send_message(channel.message, "**Hey!** You're not allowed to use that word here!")
except discord.errors.NotFound:
return
if message.content.upper().startswith('!PING'):
userID = message.author.id
await client.send_message((discord.Object(id='442333293539622913')), "<@%s> Pong!" % (userID))
if message.content.upper().startswith('!SAY'):
if message.author.id == "227007454775476224" or message.author.id == "399959323591180288":
args = message.content.split(" ")
await client.send_message(message.channel, "%s" % (" ".join(args[1:])))
else:
await client.send_message(message.channel, "Sorry only the bot owner has permission to use this command")
if message.content.lower() == "cookie":
await client.send_message(message.channel, ":cookie:") #responds with Cookie emoji when someone says "cookie"
if message.content.lower() == "!website":
await client.send_message(message.channel, "habbo.com")
if message.content.upper().startswith('!EIGHTBALL'):
await client.send_message(message.channel, random.choice(possible_responses))
if message.content.lower() == '!changeadmin':
role = discord.utils.get(server.roles, name="admin")
await client.add_roles(member, role)