embed 执行后删除命令

时间:2021-02-05 18:44:17

标签: discord.py

我正在尝试执行下面示例的嵌入时,删除来自用户的 ?ra1 消息。感谢您的帮助。

@client.command()
async def ra1(ctx):

    embed = discord.Embed(
        colour=discord.Colour.blue(),
        title="RIDEALONG 1 REQUEST",
        description=str(ctx.author.mention) + " IS REQUESTING THEIR FIRST RIDEALONG IN SERVER !"
    )
    embed.add_field(name="For CDTOs", value="Please message the user to accept their RA request. Please delete their message once the ridealong has been completed.", inline=False)
    embed.timestamp = datetime.utcnow()
    await ctx.send(embed=embed, delete_after=7200)

3 个答案:

答案 0 :(得分:1)

Context 具有您可以删除的属性 message

await ctx.message.delete()

答案 1 :(得分:1)

您可以使用 await ctx.message.delete() 删除触发命令的消息。

@client.command()
async def ra1(ctx):

    embed = discord.Embed(
        colour=discord.Colour.blue(),
        title="RIDEALONG 1 REQUEST",
        description=str(ctx.author.mention) + " IS REQUESTING THEIR FIRST RIDEALONG IN SERVER !"
    )
    embed.add_field(name="For CDTOs", value="Please message the user to accept their RA request. Please delete their message once the ridealong has been completed.", inline=False)
    embed.timestamp = datetime.utcnow()
    await ctx.send(embed=embed, delete_after=7200)
    await ctx.message.delete()

参考文献

答案 2 :(得分:1)

这很简单,只要使用 // Widget for searching through a string list. class SearchNameWidget extends StatefulWidget { SearchNameWidget({Key key}) : super(key: key); @override _SearchNameState createState() => _SearchNameState(); } class _SearchNameState extends State<SearchNameWidget> { // All names List<String> allNames = [ 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten' ]; // searched names List<String> searchedNames = [ 'one', 'two', 'three', 'four', 'five', 'six', 'seven', 'eight', 'nine', 'ten' ]; // changes the filtered name based on search text and sets state. void _searchChanged(String searchText) { if (searchText != null && searchText.isNotEmpty) { setState(() { searchedNames = List.from(allNames.where((name) => name.contains(searchText))); }); } else { setState(() { searchedNames = List.from(allNames); }); } } @override Widget build(BuildContext context) { return Scaffold( appBar: AppBar( title: Text('Demos'), ), body: Column( children: [ TextField( // calls the _searchChanged on textChange onChanged: (search) => _searchChanged(search), ), Expanded( child: ListView.builder( itemCount: searchedNames.length, itemBuilder: (context, index) => Container( padding: EdgeInsets.all(5), child: Text(searchedNames[index]), ), ), ), ], ), ); } }

在您的代码中实现:

await ctx.message.delete()