【发布时间】:2021-01-01 11:19:51
【问题描述】:
标题几乎说明了一切,当用户说出已修复bannedWords 中包含的内容时,我正在尝试添加角色“警告 1”或“警告 2”。我见过人们使用await bot.add_roles() 和await add_roles(),但两者都返回错误。他们分别给出AttributeError 和NameError。我错过了导入还是我做错了什么?
好的,所以我找到了第一个问题的答案,但现在收到 discord.errors.NotFound: 404 Not Found (error code: 10011): Unknown Role 错误。
Discord 在使用 await message.author.add_roles(message.author,role,reason='Reason: Used \'%s\' in \'%s\ , on %s/%s/%s (day,month,year) at %s' % (word, str(message.channel),day,month,year,time)) 时尝试添加角色 message.author 删除第二个 message.author 解决了这个问题,所以应该是:
await message.author.add_roles(role,reason='Reason: Used \'%s\' in \'%s\ , on %s/%s/%s (day,month,year) at %s' % (word, str(message.channel),day,month,year,time))
属性错误:
Traceback (most recent call last):
File "C:\Users\Me\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 312, in _run_event
await coro(*args, **kwargs)
File "C:\Users\Me\Desktop\Productive\Programming Projects\Python 3\Other\MyBot\bot.py", line 41, in on_message
await bot.add_roles(message.author,role,reason='Reason: Used \'%s\' in \'%s\ , on %s/%s/%s (day,month,year) at %s' % (word, str(message.channel),day,month,year,time))
AttributeError: 'Client' object has no attribute 'add_roles'
名称错误:
Ignoring exception in on_message
Traceback (most recent call last):
File "C:\Users\Me\AppData\Local\Programs\Python\Python36\lib\site-packages\discord\client.py", line 312, in _run_event
await coro(*args, **kwargs)
File "C:\Users\Me\Desktop\Productive\Programming Projects\Python 3\Other\MyBot\bot.py", line 41, in on_message
await add_roles(message.author,role,reason='Reason: Used \'%s\' in \'%s\ , on %s/%s/%s (day,month,year) at %s' % (word, str(message.channel),day,month,year,time))
NameError: name 'add_roles' is not defined
所有相关代码
import discord;from discord.utils import get
from datetime import datetime
bot=discord.Client()
@bot.event
async def on_ready():
print('Logged in')
print('Username: %s' % (bot.user.name))
print('Userid: %s' % (bot.user.id))
@bot.event
async def on_message(message):
if message.author.id == bot.user.id:
return
# delete messages with banned words
bannedWords=['chink','dyke','fag','ook','molest','nig','rape','retard','spic','zipperhead','tranny']
if str(message.channel)!='no-rules-lol':
for word in bannedWords:
if word in message.content.lower():
await message.channel.send('{0.author.mention}, you have used a word that is black-listed please read <#754763230169006210> to get a full list of black-listed words'.format(message))
await message.delete()
#guild=bot.get_guild(id=754064902611796008)
#role=discord.utils.get(guild.roles,name='Warning 1')
#member=guild.get_member(message.author.id)
# get the time the warning was applied.
currentTime,_=str(datetime.now()).split('.')
date,time=currentTime.split(' ')
year,month,day=date.split('-')
print('message = ' + str(message))
role=get(message.guild.roles,name="Warning 1")
await message.author.add_roles(message.author,role,reason='Reason: Used \'%s\' in \'%s\ , on %s/%s/%s (day,month,year) at %s' % (word, str(message.channel),day,month,year,time))
bot.run(Token)
【问题讨论】:
标签: python discord python-3.6 discord.py-rewrite