如何获取discord服务器上发送的最后一条消息的内容

时间:2018-03-26 18:00:38

标签: python-3.x discord

我正在尝试设置一个不和谐机器人,它基本上重复用户在某些条件下所说的内容。为简单起见,条件在问题中无关紧要。我目前的策略是在满足条件时获取日志,然后重复它们。但是,我的代码无效。我正在使用python 3.6.4(我还没有设置重复,我只想发送最后一条消息。) 这是我的代码:

import discord

TOKEN = 'XXXXXXXX'

client = discord.Client()

@client.event
async def on_message(message):
    if message.author == client.user:
        return

    if message.content.startswith('I am'):
        msg = 'Hi {0.author.mention}'.format(message)
        await client.send_message(message.channel, msg)
    if message.content.startswith('Logs'):
        logs= logs_from(general, limit=1)
        print(logs)

@client.event
async def on_ready():
    print('Logged in as')
    print(client.user.name)
    print(client.user.id)
    print('------')

client.run(TOKEN)

问题出在

logs=logs_from(general, limit=1)

这是错误

 File "/Library/Frameworks/Python.framework/Versions/3.6/lib/python3.6/site-packages/discord/client.py", line 307, in _run_event
yield from getattr(self, event)(*args, **kwargs)
  File "dadbot.py", line 17, in on_message
    logs= logs_from(general, limit=1)
NameError: name 'logs_from' is not defined

请记住,这是我的第一个不和谐机器人,我很难在网上找到有用的信息。

1 个答案:

答案 0 :(得分:0)

永远不会定义函数logs_from,因此您会收到错误。

可能你的意思是:

logs = client.logs_from(general, limit=1)

所以,您需要来自客户端类的方法log_from