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

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

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

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

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

codebreak

codebreak;とは、Gitホスティングサービスの1つで、エンジニアのコラボレーションを支援しています。 gitBREAK、cafeTERIA、viewPORT、jobBOARDという機能があり、より良いソリューション、プロダクトの開発を目的としています。

Q&A

0回答

381閲覧

discord.pyコードのどこが間違っているか分からない...

ameminn

総合スコア17

Discord

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

Visual Studio

Microsoft Visual StudioはMicrosoftによる統合開発環境(IDE)です。多種多様なプログラミング言語に対応しています。

Python

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

codebreak

codebreak;とは、Gitホスティングサービスの1つで、エンジニアのコラボレーションを支援しています。 gitBREAK、cafeTERIA、viewPORT、jobBOARDという機能があり、より良いソリューション、プロダクトの開発を目的としています。

0グッド

2クリップ

投稿2020/02/29 03:43

編集2020/03/01 01:21

前提・実現したいこと

コマンドを実行した際に新しいチャンネルと新しい役職を作りチャンネルの権限設定を同時に行うを書きました。

発生している問題・エラーメッセージ

コードを実行した際にこのようになります。 チャンネルを一つだけ作成したいのですが3つ作られてしまう 実際には #チャンネルをさくせいしました。 @roleを作成しました。 権限設定を行いました。 と返してほしいのですがね

イメージ説明

該当のソースコード

py

1@client.event 2async def on_message(message): 3 if message.content.startswith('/open'): 4 category_id = xxxxxxxxxxxxxxxxxxx 5 category = message.guild.get_channel(category_id) 6 cmd_search = str(message.content) 7 ch_name = cmd_search[6:] 8 new_channel = await category.create_text_channel(name= ch_name) 9 reply = f'{new_channel.mention} を作成しました' 10 await message.channel.send(reply) 11 guild = message.guild 12 role = await guild.create_role(name=ch_name) 13 await new_channel.set_permissions(role,read_messages=True,send_messages=True) 14 reply2 = f'{role.mention} を作成しました' 15 await message.channel.send(reply2) 16 await message.channel.send('権限設定を行いました')

試したこと

サイトをあちこち回りました
が何をすればいいのか全く...

ですが/ping を実行すると/pongが返ってくるようにするコードを書き実行したところ
1回のみの反応でした。
多重ログインではないです

補足情報

pythonV3.8.1 ブランチrewrite

###書き直したコード(追加あり)

py

1global ch_flag 2ch_flag = True 3@client.event 4async def on_message(message): 5 if message.content.startswith('/open') and ch_flag == True: 6 ch_flag = False 7 category_id = xxxxxxxxxxxxxxxxx 8 category = message.guild.get_channel(category_id) 9 cmd_search = str(message.content) 10 ch_name = cmd_search[6:] 11 new_channel = await category.create_text_channel(name= ch_name) 12 reply = f'{new_channel.mention} を作成しました' 13 await message.channel.send(reply) 14 guild = message.guild 15 role = await guild.create_role(name=ch_name) 16 await new_channel.set_permissions(role,read_messages=True,send_messages=True) 17 reply2 = f'{role.mention} を作成しました' 18 await message.channel.send(reply2) 19 await message.channel.send('権限設定を行いました') 20 await asyncio.sleep(0.2) 21 ch_flag = True 22 category_id_2 = xxxxxxxxxxxxxxxxxxxxxxxx 23 category_2 = message.guild.get_channel(category_id_2) 24 new_channel_2 = await category_2.create_text_channel(name = ch_name + '用') 25 if message.content == "/ping": 26 await message.channel.send("pong!") 27 if message.author.bot: 28 return``` 29 30です

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

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

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

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

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

mistn

2020/02/29 06:13

画像見えませんよ。 それと「サイトをあちこち回りました」じゃ何を試したのか全く分かりません。試したコードと結果を追記してください。
ameminn

2020/03/01 01:22

修正と追記しました 申し訳ないです
mistn

2020/03/01 05:16

プログラムを複数実行していませんか? それと質問にあるコードを動かしてみましたがエラーが出てチャンネルは作成されないようです。 実行しているコードと編集しているコードが一致しているかも確認してみてください。
ameminn

2020/03/01 06:03

ありがとうございます!
Kinoko_2k

2021/03/20 12:01

errorはないんですか?
guest

あなたの回答

tips

太字

斜体

打ち消し線

見出し

引用テキストの挿入

コードの挿入

リンクの挿入

リストの挿入

番号リストの挿入

表の挿入

水平線の挿入

プレビュー

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

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

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

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

ただいまの回答率
85.48%

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

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

質問する

関連した質問