質問をすることでしか得られない、回答やアドバイスがある。

15分調べてもわからないことは、質問しよう!

新規登録して質問してみよう
ただいま回答率
85.48%
Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

Q&A

0回答

290閲覧

Discord.py コマンドでロール付与をしたいのですがやり方がわかりません。助けてほしいです。

harumaki554

総合スコア0

Discord

Discordは、ゲーマー向けのボイスチャットアプリです。チャット・通話がブラウザ上で利用可能で、個人専用サーバーも開設できます。通話中でも音楽を流したり、PC画面を共有できるなど多機能な点が特徴です。

Python 3.x

Python 3はPythonプログラミング言語の最新バージョンであり、2008年12月3日にリリースされました。

Python

Pythonは、コードの読みやすさが特徴的なプログラミング言語の1つです。 強い型付け、動的型付けに対応しており、後方互換性がないバージョン2系とバージョン3系が使用されています。 商用製品の開発にも無料で使用でき、OSだけでなく仮想環境にも対応。Unicodeによる文字列操作をサポートしているため、日本語処理も標準で可能です。

0グッド

0クリップ

投稿2022/05/16 16:24

編集2022/05/16 16:30

Discord.py コマンドでロール付与をしたいのですがやり方がわかりません。助けてほしいです。
現在こんな感じです

import

1import os 2import os; 3 4import ma as ma 5 6print(os.getcwd()) 7import subprocess 8import sys 9import random 10import asyncio 11import string 12import secrets 13import discord 14import os 15from discord.ext import commands 16import random 17from discord import Permissions 18import asyncio 19import shutil 20 21 22# 自分のBotのアクセストークンに置き換えてください 23# 読込むファイルのパスを宣言する 24file_name = "./token.txt" 25 26try: 27 file = open(file_name) 28 data = file.read() 29 print(data) 30except Exception as e: 31 print(e) 32finally: 33 file.close() 34 35 36# 接続に必要なオブジェクトを生成 37client = discord.Client() 38 39# 起動時に動作する処理 40@client.event 41async def on_ready(): 42 # 起動したらターミナルにログイン通知が表示される 43 print('----------------') 44 print('ログインしました') 45 print('----------------') 46 print('') 47 print('BOT表示名:', client.user.name) # Botの名前 48 print('BOTのID:', client.user.id) # ID 49 print('Dicord.pyのバージョン:', discord.__version__) 50 ch = client.get_channel(947469205538762812) 51 print('') 52 guild_count = len(client.guilds) 53 game = discord.Game(f'{guild_count} サーバーに導入されています') 54 await client.change_presence(activity=discord.Game(name=game)) 55 print('ログインしました {0.user}'.format(client)) 56 await ch.send("BOTが起動しました!") 57 58 59# メッセージ受信時に動作する処理 60@client.event 61async def on_message(message): 62 guild_count = len(client.guilds) 63 game = discord.Game(f'{guild_count} サーバーに導入されています') 64 await client.change_presence(activity=discord.Game(name=game)) 65 # メッセージ送信者がBotだった場合は無視する 66 67 68 69 if message.author.bot: 70 return 71 # 「/neko」と発言したら「にゃーん」が返る処理 72 if message.content == 'spb!認証': 73 74 passseta = random.randint(11111111, 9999999999) 75 passsetb = random.randint(11111111, 9999999999) 76 passsetc = random.randint(11111111, 9999999999) 77 print(passseta) 78 print(passsetb) 79 print(passsetc) 80 passlock = passseta+passsetb+passsetc 81 channel = message.channel 82 await channel.send("認証コードを30秒以内に送ってください") 83 await channel.send(str('`認証コード : `')+str(passlock)) 84 path = str('./')+str(message.guild.id)+str(message.channel.id) 85 file_name = str('./')+str(message.guild.id)+str(message.channel.id) 86 file = open(file_name, 'w') 87 file.write(str(passlock)) 88 file.close() 89 file = open(file_name) 90 file.close() 91 92 # 待っているものに該当するかを確認する関数 93 def check(m): 94 # メッセージが `おはよう` かつ メッセージを送信したチャンネルが 95 # コマンドを打ったチャンネルという条件 96 path = str('./')+str(message.guild.id)+str(message.channel.id) 97 file_name = str('./')+str(message.guild.id)+str(message.channel.id) 98 f = open(path) 99 file = open(file_name) 100 data = file.read() 101 print(data) 102 file.close() 103 file = open(file_name) 104 file.close() 105 return m.content == data and m.channel == channel 106 107 try: 108 # wait_forを用いて、イベントが発火し指定した条件を満たすまで待機する 109 msg = await client.wait_for('message', check=check, timeout=30) 110 # wait_forの1つ目のパラメータは、イベント名の on_がないもの 111 # 2つ目は、待っているものに該当するかを確認する関数 (任意) 112 # 3つ目は、タイムアウトして asyncio.TimeoutError が発生するまでの秒数 113 114 # asyncio.TimeoutError が発生したらここに飛ぶ 115 except asyncio.TimeoutError: 116 await channel.send(f'{message.author.mention}さん、認証時間切れです') 117 else: 118 # メンション付きでメッセージを送信する。 119 await channel.send(f'{msg.author.mention}さん、認証は成功しました') 120 ROLE_ID = 975753269420884048 121 ID_ROLE_WELCOME = 975753269420884048 # 付けたい役職のID 122 # channel_id から Channel オブジェクトを取得 123 role = guild.get_role(ID_ROLE_WELCOME) 124 # リアクションを付けたメンバーに役職を付与 125 await member.add_roles(role) 126 # 分かりやすいように歓迎のメッセージを送る 127 await channel.send('いらっしゃいませ!') 128 129 130# Botの起動とDiscordサーバーへの接続 131client.run(data)

気になる質問をクリップする

クリップした質問は、後からいつでもMYページで確認できます。

またクリップした質問に回答があった際、通知やメールを受け取ることができます。

バッドをするには、ログインかつ

こちらの条件を満たす必要があります。

guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

まだ回答がついていません

会員登録して回答してみよう

アカウントをお持ちの方は

15分調べてもわからないことは
teratailで質問しよう!

ただいまの回答率
85.48%

質問をまとめることで
思考を整理して素早く解決

テンプレート機能で
簡単に質問をまとめる

質問する

関連した質問