コンテキストなしで現在のチャネルにメッセージを送信しますか?| discord.pyの書き換え

xupaii

ボットのレベリングシステムのセットアップを開始し、レベルアップに関するメッセージの実装を試みています。ただし、作成している関数はコマンドではないため、コンテキストを渡すことができないと思います。これが問題の原因です。

より良い解決策がないため、expをチェックしてレベルと一致する関数にそれをチャックしました-何が起こるかは、ユーザーのレベルのコピーが作成され、後で更新されたものと比較されてレベルアップが発生したかどうかを確認します。これは機能しますが、私の唯一の問題は「レベルアップ」メッセージを送信できないことです。

async def levelcheck(user):
    global userlvl
    global userlvlc

    channel = discord.Object(id="")
    # copying the userlevel BEFORE update
    try:
        userlvlc = userlvl
    except NameError as e:
        print(e)

    with open('userexp.json', 'r') as fp:
        userexp = json.load(fp)

    # finding out level based on exp 
    for x in range(0,len(levelcaps)):
        if userexp[str(user)] <= levelcaps[x]:
            userlvl = x
            try:
                if userlvlc < userlvl:
                    await ctx.send('You levelled up --> {}'.format(userlvl))
            except NameError as e:
                print(e)
            #
            return userlvl

はっきりとわかるように、これはきれいなコマンドではありませんが、確かに機能します。私はチャネルIDを取得しようとすることから始めましたが、コンテキストを使用して現在のチャネルを取得する方法がわからないことに気づきました。コンテキストなし現在のチャネルにメッセージを送信する方法はありますか、それともメソッドを再考する必要がありますか?

Reedinationer

あなたがユーザーIDを持っているので、私はこの解決策を提案します。

user_to_level_up = bot.fetch_user(user) # since your user variable is an ID
dm_channel = user_to_level_up.dm_channel
if dm_channel is None:
    await user_to_level_up.create_dm()
    dm_channel = user_to_level_up.dm_channel
await dm_channel.send("You've leveled up! You are now level {}".format(userlvl))

注:これはテストされていませんが、リンクはそれを機能させるための情報を提供する必要があります!

これは、サーバーに投稿するのではなく、個人的なメッセージを送信するだけです。サーバーに投稿するには、ボットも含まれているユーザーがいるサーバーを相互参照する必要があるように思われますが、それは私には大変な作業のように思えますXD

この記事はインターネットから収集されたものであり、転載の際にはソースを示してください。

侵害の場合は、連絡してください[email protected]

編集
0

コメントを追加

0

関連記事

分類Dev

ページネーション-Discord.pyの書き換え

分類Dev

Discord.pyの書き換えに失敗しました

分類Dev

discord.pyの書き換え| 著者のメッセージを待つ方法は?

分類Dev

ユーザーのリストがメッセージdiscord.pyの書き換えに反応したかどうかを確認します

分類Dev

ユーザーからのメッセージなしで Discord チャンネルにメッセージを送信する

分類Dev

discord.pyで、作成したばかりのチャンネルでメッセージを送信する方法は?

分類Dev

権限の上書きをどのように使用しますか?Discord.py書き換え

分類Dev

Discord Musicボットを複数のサーバーで動作させますか?Discord.py(書き換え)

分類Dev

数時間後のループのバグDiscord.pyの書き換え(python)

分類Dev

discord.pyの書き換えでサーバーIDを取得する

分類Dev

Discord.pyの書き換えにget_user_infoを使用する方法

分類Dev

discord.py(書き換え)コマンドの使用能力を単一のチャネルに絞り込むにはどうすればよいですか?

分類Dev

discord.py(書き換え)特定のチャンネルにコマンドを作成するにはどうすればよいですか?

分類Dev

discord.pyの書き換え| 著者メッセージの取得に関する問題

分類Dev

Discord.pyすべてのコマンドの収集リストを書き換えます

分類Dev

著者が音声チャネルにいない場合、discord.pyはメッセージを送信します

分類Dev

ロールの特定の権限を変更し、discord.pyを書き換えます

分類Dev

Discord.pyカスタムエラーを書き換える

分類Dev

python Discord.pyは、テキストチャネル内のすべてのメッセージを削除します

分類Dev

Discordボットが特定のチャネルで送信した以前のメッセージを削除するにはどうすればよいですか?

分類Dev

音声チャネルのメンバーのリストを取得するために使用するdiscord.pydiscordボットコードを新しいdiscord.pyバージョンに変換するにはどうすればよいですか?

分類Dev

最初のテキストチャネルdiscord.pyでウェルカムメッセージを送信する方法

分類Dev

discord.pyの書き換えでどのように役割を割り当てますか?

分類Dev

discord.pyの書き換え| コマンドのインスタンスを1つだけ許可する

分類Dev

チャネルを削除しようとするとDiscord.pyが書き換えられ、「。delete()」コマンドでエラーが発生します

分類Dev

discord.jsはチャネルの問題ごとにメッセージを送信します

分類Dev

discord.pyを使用して特定のチャネルにメッセージを送信する

分類Dev

Discord Py、IDを介して任意のチャネルでメッセージを送信する

分類Dev

discord.pyを使用してシステムメッセージチャネルでグリーティングメッセージを送信するにはどうすればよいですか?

Related 関連記事

  1. 1

    ページネーション-Discord.pyの書き換え

  2. 2

    Discord.pyの書き換えに失敗しました

  3. 3

    discord.pyの書き換え| 著者のメッセージを待つ方法は?

  4. 4

    ユーザーのリストがメッセージdiscord.pyの書き換えに反応したかどうかを確認します

  5. 5

    ユーザーからのメッセージなしで Discord チャンネルにメッセージを送信する

  6. 6

    discord.pyで、作成したばかりのチャンネルでメッセージを送信する方法は?

  7. 7

    権限の上書きをどのように使用しますか?Discord.py書き換え

  8. 8

    Discord Musicボットを複数のサーバーで動作させますか?Discord.py(書き換え)

  9. 9

    数時間後のループのバグDiscord.pyの書き換え(python)

  10. 10

    discord.pyの書き換えでサーバーIDを取得する

  11. 11

    Discord.pyの書き換えにget_user_infoを使用する方法

  12. 12

    discord.py(書き換え)コマンドの使用能力を単一のチャネルに絞り込むにはどうすればよいですか?

  13. 13

    discord.py(書き換え)特定のチャンネルにコマンドを作成するにはどうすればよいですか?

  14. 14

    discord.pyの書き換え| 著者メッセージの取得に関する問題

  15. 15

    Discord.pyすべてのコマンドの収集リストを書き換えます

  16. 16

    著者が音声チャネルにいない場合、discord.pyはメッセージを送信します

  17. 17

    ロールの特定の権限を変更し、discord.pyを書き換えます

  18. 18

    Discord.pyカスタムエラーを書き換える

  19. 19

    python Discord.pyは、テキストチャネル内のすべてのメッセージを削除します

  20. 20

    Discordボットが特定のチャネルで送信した以前のメッセージを削除するにはどうすればよいですか?

  21. 21

    音声チャネルのメンバーのリストを取得するために使用するdiscord.pydiscordボットコードを新しいdiscord.pyバージョンに変換するにはどうすればよいですか?

  22. 22

    最初のテキストチャネルdiscord.pyでウェルカムメッセージを送信する方法

  23. 23

    discord.pyの書き換えでどのように役割を割り当てますか?

  24. 24

    discord.pyの書き換え| コマンドのインスタンスを1つだけ許可する

  25. 25

    チャネルを削除しようとするとDiscord.pyが書き換えられ、「。delete()」コマンドでエラーが発生します

  26. 26

    discord.jsはチャネルの問題ごとにメッセージを送信します

  27. 27

    discord.pyを使用して特定のチャネルにメッセージを送信する

  28. 28

    Discord Py、IDを介して任意のチャネルでメッセージを送信する

  29. 29

    discord.pyを使用してシステムメッセージチャネルでグリーティングメッセージを送信するにはどうすればよいですか?

ホットタグ

アーカイブ