yutarou12

discord.TextChannel.last_message

TextChannel クラスの last_message プロパティから取得できます。 取得できると Message を返し、出来なかった場合は None を返します。

None が返される例としては、メッセージがキャッシュにない場合などです。

サンプルコード

以下は /last_msg というコマンドを打った時、 指定したチャンネルの最後のメッセージの内容を取得するコードです。

@client.event
async def on_message(message):

    # /last_msg チャンネル名 というコマンドで反応する
    if message.content.startswith('/last_msg'):
        channel_name = message.content.replace('/last_msg ', '')

        # 指定したチャンネルを取得する
        channel = discord.utils.get(message.guild.channels, name=channel_name)

        # 取得したチャンネルの最後のメッセージを取得する
        last_msg = await channel.fetch_message(channel.last_message_id)

        # 取得したメッセージの内容を取得する
        last_msg_content = last_msg.content
        # 取得できなかった時は None が返されます

        # チャンネルに送信
        await message.channel.send(f'**{channel}**に送られた最後のメッセージ : {last_msg_content}')

参考リンク

comments powered by Disqus