質問編集履歴

8

追記として最新のコードを掲載

2019/03/14 13:41

投稿

meoto2408
meoto2408

スコア52

test CHANGED
File without changes
test CHANGED
@@ -189,3 +189,95 @@
189
189
  discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'MyBot' object has no attribute 'change_nickname'
190
190
 
191
191
  ```
192
+
193
+
194
+
195
+ #追記4
196
+
197
+ ```python
198
+
199
+ @commands.command()
200
+
201
+ async def agree(self, ctx, mcid):
202
+
203
+ if ctx.channel.id == 499427177444409366:
204
+
205
+ if mcid == "notid":
206
+
207
+ role = discord.utils.get(ctx.guild.roles, name="m._.m(モン民)")
208
+
209
+ role1 = discord.utils.get(ctx.guild.roles, name="通知")
210
+
211
+ role2 = discord.utils.get(ctx.guild.roles, name="再認証者")
212
+
213
+ await ctx.author.add_roles(role, role1, role2)
214
+
215
+ embed = discord.Embed(title="{}さんの認証が完了しましたなの".format(ctx.author.name), description='', color=0xff0000)
216
+
217
+ embed.add_field(name="MLSBOTに関して・・・", value="当サーバーではあらゆる機能を持ったBOTがいます。\nその機能は<#499571567823421440>にて`!?help`と入力するとコマンド一覧が、\n<#546337968042803222>にて`何ができるの?`と聞いたり`何が話せるの?`と聞いたりすると機能がわかります。", inline=False)
218
+
219
+ await ctx.author.send(embed=embed)
220
+
221
+ await ctx.bot.change_nickname(nick=ctx.author_name + "#非スポンサー")
222
+
223
+ else:
224
+
225
+ role = discord.utils.get(ctx.guild.roles, name="m._.m(モン民)")
226
+
227
+ role1 = discord.utils.get(ctx.guild.roles, name="通知")
228
+
229
+ role2 = discord.utils.get(ctx.guild.roles, name="再認証者")
230
+
231
+ await ctx.author.add_roles(role, role1, role2)
232
+
233
+ embed = discord.Embed(title="{}さんの認証が完了しましたなの".format(ctx.author.name), description='', color=0xff0000)
234
+
235
+ embed.add_field(name="MLSBOTに関して・・・", value="当サーバーではあらゆる機能を持ったBOTがいます。\nその機能は<#499571567823421440>にて`!?help`と入力するとコマンド一覧が、\n<#546337968042803222>にて`何ができるの?`と聞いたり`何が話せるの?`と聞いたりすると機能がわかります。", inline=False)
236
+
237
+ await ctx.author.send(embed=embed)
238
+
239
+ await ctx.change_nickname(mcid + "#非スポンサー")
240
+
241
+ if ctx.channel.id == 555051444596768789:
242
+
243
+ if mcid == "notid":
244
+
245
+ role = discord.utils.get(ctx.guild.roles, name="m._.m(モン民)")
246
+
247
+ role1 = discord.utils.get(ctx.guild.roles, name="通知")
248
+
249
+ role2 = discord.utils.get(ctx.guild.roles, name="再認証者")
250
+
251
+ await ctx.author.add_roles(role, role1, role2)
252
+
253
+ embed = discord.Embed(title="{}さんの認証が完了しましたなの".format(ctx.author.name), description='', color=0xff0000)
254
+
255
+ embed.add_field(name="MLSBOTに関して・・・", value="当サーバーではあらゆる機能を持ったBOTがいます。\nその機能は<#499571567823421440>にて`!?help`と入力するとコマンド一覧が、\n<#546337968042803222>にて`何ができるの?`と聞いたり`何が話せるの?`と聞いたりすると機能がわかります。", inline=False)
256
+
257
+ await ctx.author.send(embed=embed)
258
+
259
+ await ctx.bot.change_nickname(nick=ctx.author_name + "#非スポンサー")
260
+
261
+ else:
262
+
263
+ role = discord.utils.get(ctx.guild.roles, name="m._.m(モン民)")
264
+
265
+ role1 = discord.utils.get(ctx.guild.roles, name="通知")
266
+
267
+ role2 = discord.utils.get(ctx.guild.roles, name="再認証者")
268
+
269
+ await ctx.author.add_roles(role, role1, role2)
270
+
271
+ embed = discord.Embed(title="{}さんの認証が完了しましたなの".format(ctx.author.name), description='', color=0xff0000)
272
+
273
+ embed.add_field(name="MLSBOTに関して・・・", value="当サーバーではあらゆる機能を持ったBOTがいます。\nその機能は<#499571567823421440>にて`!?help`と入力するとコマンド一覧が、\n<#546337968042803222>にて`何ができるの?`と聞いたり`何が話せるの?`と聞いたりすると機能がわかります。", inline=False)
274
+
275
+ await ctx.author.send(embed=embed)
276
+
277
+ await ctx.bot.change_nickname(mcid + "#非スポンサー")
278
+
279
+ ```
280
+
281
+
282
+
283
+ これが最新のコードです。

7

error文の追記

2019/03/14 13:41

投稿

meoto2408
meoto2408

スコア52

test CHANGED
File without changes
test CHANGED
@@ -141,3 +141,51 @@
141
141
 
142
142
 
143
143
  `await ctx.bot.change_nickname(mcid + "#非スポンサー")`このようにしたり、`ctx`を`self.bot`や`mcid`にしたり、[ここ](https://techwithtim.net/tutorials/discord-py/change-nickname/)を参考に`await after.edit(nick=last)`を使ってみたりと試行錯誤しましたが、ニックネームを変更する部分のみうまくできませんでした。
144
+
145
+
146
+
147
+ #追記3.5
148
+
149
+ どういう結果だったかを忘れていました。
150
+
151
+ コマンド実行時に同じようなエラーがでるといった感じです。
152
+
153
+ ```error
154
+
155
+ Ignoring exception in command agree:
156
+
157
+ Traceback (most recent call last):
158
+
159
+ File "C:\Users\enjoy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 62, in wrapped
160
+
161
+ ret = await coro(*args, **kwargs)
162
+
163
+ File "c:\Users\enjoy\OneDrive\デスクトップ\Python\DiscordBot\cogs\testcog.py", line 275, in agree
164
+
165
+ await ctx.bot.change_nickname(nick=ctx.author_name + "#非スポンサー")
166
+
167
+ AttributeError: 'MyBot' object has no attribute 'change_nickname'
168
+
169
+
170
+
171
+ The above exception was the direct cause of the following exception:
172
+
173
+
174
+
175
+ Traceback (most recent call last):
176
+
177
+ File "C:\Users\enjoy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\bot.py", line 898, in invoke
178
+
179
+ await ctx.command.invoke(ctx)
180
+
181
+ File "C:\Users\enjoy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 611, in invoke
182
+
183
+ await injected(*ctx.args, **ctx.kwargs)
184
+
185
+ File "C:\Users\enjoy\AppData\Local\Programs\Python\Python36-32\lib\site-packages\discord\ext\commands\core.py", line 71, in wrapped
186
+
187
+ raise CommandInvokeError(exc) from exc
188
+
189
+ discord.ext.commands.errors.CommandInvokeError: Command raised an exception: AttributeError: 'MyBot' object has no attribute 'change_nickname'
190
+
191
+ ```

6

指摘された箇所の追記

2019/03/14 10:53

投稿

meoto2408
meoto2408

スコア52

test CHANGED
File without changes
test CHANGED
@@ -115,3 +115,29 @@
115
115
 
116
116
 
117
117
  どうかご教授ください。
118
+
119
+
120
+
121
+ #追記3
122
+
123
+
124
+
125
+ `それでできませんでした。`について・・
126
+
127
+ `以下を読んでも分からなかった部分を質問してください。`という部分から読んでできませんでした、という意味でした。わかりずらい表記をしてすみません。
128
+
129
+
130
+
131
+
132
+
133
+ ニックネームの変更がわかりません。
134
+
135
+ また、こういう場所で質問する場合はドキュメントをしっかり読んで、日本語じゃないなら翻訳を使いながら読み取ってそれで分からなければ聞くという流れで質問しなければ失礼だとわかってます。
136
+
137
+ なので、実装したいことを説明しますと、
138
+
139
+ `!?agree Monster2408`と入力するとニックネームが`Monster2408#非スポンサー`となるようにしたいです。
140
+
141
+
142
+
143
+ `await ctx.bot.change_nickname(mcid + "#非スポンサー")`このようにしたり、`ctx`を`self.bot`や`mcid`にしたり、[ここ](https://techwithtim.net/tutorials/discord-py/change-nickname/)を参考に`await after.edit(nick=last)`を使ってみたりと試行錯誤しましたが、ニックネームを変更する部分のみうまくできませんでした。

5

2019/03/14 10:41

投稿

meoto2408
meoto2408

スコア52

test CHANGED
File without changes
test CHANGED
File without changes

4

2019/03/14 07:36

投稿

meoto2408
meoto2408

スコア52

test CHANGED
@@ -1 +1 @@
1
- PythonBOT作っててつまずいています。
1
+ discord.pyでメンバーのニックネーム変更する方法が分からな
test CHANGED
@@ -97,3 +97,21 @@
97
97
  ですが、ニックネームを変更する方法がわかりません。
98
98
 
99
99
  どうかご教授お願い致します。
100
+
101
+
102
+
103
+ #追記2
104
+
105
+ pythonのバージョンは3.6.6です。
106
+
107
+ discord.pyは1.0.0aです。
108
+
109
+
110
+
111
+ discord.pyのドキュメント等は既に確認済みです。
112
+
113
+ それでできませんでした。
114
+
115
+
116
+
117
+ どうかご教授ください。

3

2019/03/14 07:35

投稿

meoto2408
meoto2408

スコア52

test CHANGED
File without changes
test CHANGED
@@ -1,10 +1,4 @@
1
1
  コマンドを実行すると役職を付与、ニックネームを変更したいです。
2
-
3
-
4
-
5
- ですが、ニックネームを変更する方法がわかりません。
6
-
7
- どうかご教授お願い致します。
8
2
 
9
3
 
10
4
 
@@ -95,3 +89,11 @@
95
89
  return
96
90
 
97
91
  ```
92
+
93
+
94
+
95
+ #追記
96
+
97
+ ですが、ニックネームを変更する方法がわかりません。
98
+
99
+ どうかご教授お願い致します。

2

2019/03/14 02:00

投稿

meoto2408
meoto2408

スコア52

test CHANGED
File without changes
test CHANGED
@@ -1,4 +1,10 @@
1
1
  コマンドを実行すると役職を付与、ニックネームを変更したいです。
2
+
3
+
4
+
5
+ ですが、ニックネームを変更する方法がわかりません。
6
+
7
+ どうかご教授お願い致します。
2
8
 
3
9
 
4
10
 
@@ -89,7 +95,3 @@
89
95
  return
90
96
 
91
97
  ```
92
-
93
-
94
-
95
- どうかご教授お願い致します。

1

困ってたことのうち片方は自己解決できました

2019/03/14 01:59

投稿

meoto2408
meoto2408

スコア52

test CHANGED
@@ -1 +1 @@
1
- PythonでBOTを作っていてのことでつまずいています。
1
+ PythonでBOTを作っていてつまずいています。
test CHANGED
@@ -1,29 +1,3 @@
1
- #1つ目
2
-
3
- Discordの特定のチャンネルでのみメッセージを編集するとそれを削除する機構を作りたいのですがイベントがわからずに詰まっています。
4
-
5
-
6
-
7
- 書いたコードはイベントがわからなかったためめちゃくちゃです。
8
-
9
-
10
-
11
- ```python
12
-
13
- async def on_Message.edit(self, message):
14
-
15
- await message.delete()
16
-
17
- await message.author.send("<#510735554128773121>ではメッセージの編集は禁止されてるの\nメッセージは消されたので再度`参加`とお書きください。")
18
-
19
- ```
20
-
21
-
22
-
23
-
24
-
25
- #2つ目
26
-
27
1
  コマンドを実行すると役職を付与、ニックネームを変更したいです。
28
2
 
29
3