python 如何在www.example.com中编辑消息discord.py

zzlelutf  于 2023-01-16  发布在  Python
关注(0)|答案(8)|浏览(164)

我想让我的机器人编辑消息,如果它检测到一个关键字,我不知道如何编辑消息虽然。
我已经看过了文档,但似乎无法理解,我使用的是www.example.com和python 3.6。discord.py with python 3.6.
这是密码:

@bot.event
async def on_message(message):
    if 'test' in message.content:
        await edit(message, "testtest")

这是错误:

File "testthing.py", line 67, in on_message
    await edit(message, "test")
 NameError: name 'edit' is not defined

我想机器人编辑一个消息"testtest",如果消息中包含单词测试,但我只是得到一个错误。

mbskvtky

mbskvtky1#

您可以使用Message.edit协同程序。参数必须作为关键字参数contentembeddelete_after传递。您只能编辑已发送的消息。

await message.edit(content="newcontent")
7kqas0il

7kqas0il2#

这里有一个对我有效的解决方案。

@client.command()
async def test(ctx):
  message = await ctx.send("hello")
  await asyncio.sleep(1)
  await message.edit(content="newcontent")
bxfogqkk

bxfogqkk3#

你是不是这样做的:

from discord import edit

或者这个:

from discord import *

在使用message.edit函数之前?
如果是您安装的,则问题可能出在您的www.example.com版本上。discord.py version. Try this:

print(discord.__version__)
falq053o

falq053o4#

如果您希望更新www.example.com中的回复discord.py,则必须用途:

@tree.command(name = 'foobar', description = 'Send the word foo and update it to say bar')
async def self(interaction: discord.Interaction):
    await interaction.response.send_message(f'foo', ephemeral = True)
    time.sleep(1)
    await interaction.edit_original_response(content=f'bar')
wvmv3b1j

wvmv3b1j5#

将原始消息赋给一个变量,用.edit(content='content')引用该变量。
(You需要“content=“)。

@bot.command()
async def test(ctx):
    msg = await ctx.send('test')
    await msg.edit(content='this message has been edited')
pu3pd22g

pu3pd22g6#

@bot.event
async def on_message(message):
  if message.content == 'test':
    messages=await message.channel.send("CONTENT")
    await asyncio.sleep(INT)
    await messages.edit(content="NEW CONTENT")
nfzehxib

nfzehxib7#

请尝试将def添加到代码中,如下所示:

@bot.event
async def on_message(message):
    if 'test' in message.content:
        await edit(message, "edited !")
gdrx4gfi

gdrx4gfi8#

我是这么做的:

@bot.event
async def on_message(message):
  if message.content == 'test':
    await message.channel.send('Hello World!')
    await message.edit(content='testtest')

我不知道这是否对你有用,但试试看。

相关问题