見出し画像

指定チャンネルのみでのコマンド実行法、指定チャンネルへの出力

今回は指定チャンネルから指定チャンネルへ結果を出力するためのプログラミングを紹介します!

チャンネルIDを取得しないといけないので、ユーザー設定からテーマを開き、開発者モードをONにしておきましょう

ONにしたらチャンネル右クリックするとIDをコピーできます!

早速やってきましょう!

#抽選チャンネルID (動作させるサーバによって変更してください)
lot_channel_id = "********" #ここにコマンドを送るチャンネルID
lot_result_channel_id = "********" #ここに結果を出力するチャンネルID

@client.event
async def on_message(message):
    if message.content.startswith("こんにちは"): #こんにちはから始まるメッセージ
        #指定したチャンネルとメッセージを送ったチャンネルが同じIDなら実行
        if message.channel.id == lot_channel_id:
            lot_result_channel = [channel for channel in client.get_all_channels() if channel.id == lot_result_channel_id][0] 
            await client.send_message(lot_result_channel, "Good afternoon")
        else:
            await client.send_message(message.channel, "ここではコマンドは実施できません") #指定したIDじゃない場合実行される

このコードの解説します!

lot_result_channel = [channel for channel in client.get_all_channels() if channel.id == lot_result_channel_id][0] 

サーバー内のすべてのチャンネルを取得して指定したチャンネルIDと一致していることを書いています
それに出力先のIDが代入されています

試してみましょう!

イイ感じですね!
次は指定したチャンネル以外の場合では

こんな感じになりますよー!

今回はこの辺で ^^) _旦~~

この記事が気に入ったらサポートをしてみませんか?