質問編集履歴

2

自分でわかったこととして「使えそうなコマンド」を追記

2019/11/28 17:50

投稿

inzs
inzs

スコア17

test CHANGED
File without changes
test CHANGED
@@ -24,6 +24,22 @@
24
24
 
25
25
 
26
26
 
27
+ ### 使えそうなコマンド
28
+
29
+ 追記:2019/11/29
30
+
31
+ get_commandとinovkeでhelpを発言させることには成功しました。
32
+
33
+ しかし、helpに引数を与える方法(サブコマンド?)がわかりません。
34
+
35
+ 「!help add」を発言させる方法はあるでしょうか?
36
+
37
+ ```Python
38
+
39
+ bot.get_command('help').invoke(context)
40
+
41
+ ```
42
+
27
43
 
28
44
 
29
45
 

1

Cog以外の部分を追加。微妙にわかりにくい部分を修正

2019/11/28 17:50

投稿

inzs
inzs

スコア17

test CHANGED
@@ -1 +1 @@
1
- Discord.pyでhelpの内容を送るには?
1
+ discord.pyで!helpの内容を送るには?
test CHANGED
@@ -2,7 +2,7 @@
2
2
 
3
3
 
4
4
 
5
- Python3環境下のDiscord.pyでDiscordBotを作成しています。
5
+ Python3環境下のdiscord.pyでDiscordBotを作成しています。
6
6
 
7
7
 
8
8
 
@@ -78,7 +78,7 @@
78
78
 
79
79
  """
80
80
 
81
- await ctx.send(str)
81
+ await ctx.send(arg)
82
82
 
83
83
 
84
84
 
@@ -111,3 +111,133 @@
111
111
 
112
112
 
113
113
  ```
114
+
115
+
116
+
117
+ #### Main
118
+
119
+ iniファイル上からtokenを読んでBotを起動
120
+
121
+ ```Python
122
+
123
+ import configparser
124
+
125
+
126
+
127
+ from discord.ext import commands
128
+
129
+
130
+
131
+ import JapaneseHelpCommand
132
+
133
+
134
+
135
+ # コンフィグファイルの読み込み
136
+
137
+ inifile = configparser.ConfigParser()
138
+
139
+ inifile.read('./config.ini', 'UTF-8')
140
+
141
+ token = inifile.get('settings', 'token')
142
+
143
+
144
+
145
+ # 読み込むコグの名前を格納しておく。
146
+
147
+ INITIAL_EXTENSIONS = [
148
+
149
+ 'cogs.testcog'
150
+
151
+ ]
152
+
153
+
154
+
155
+
156
+
157
+
158
+
159
+ class MyBot(commands.Bot):
160
+
161
+ def __init__(self, command_prefix, help_command):
162
+
163
+ super().__init__(command_prefix, help_command)
164
+
165
+
166
+
167
+ for cog in INITIAL_EXTENSIONS:
168
+
169
+ try:
170
+
171
+ self.load_extension(cog)
172
+
173
+ except Exception as e:
174
+
175
+ print(e)
176
+
177
+
178
+
179
+ # Botの準備完了時に呼び出されるイベント
180
+
181
+ async def on_ready(self):
182
+
183
+ print('-----')
184
+
185
+ print(self.user.name)
186
+
187
+ print(self.user.id)
188
+
189
+ print('-----')
190
+
191
+
192
+
193
+
194
+
195
+ # MyBotのインスタンス化及び起動処理。
196
+
197
+ if __name__ == '__main__':
198
+
199
+ prefix = '!'
200
+
201
+ bot = MyBot(command_prefix=prefix, help_command=JapaneseHelpCommand.JapaneseHelpCommand(prefix))
202
+
203
+ bot.run(token)
204
+
205
+ ```
206
+
207
+
208
+
209
+ #### JapaneseHelpCommand
210
+
211
+ HelpCommandを日本語化してるだけのクラス
212
+
213
+ ```Python
214
+
215
+ from discord.ext import commands
216
+
217
+
218
+
219
+ class JapaneseHelpCommand(commands.DefaultHelpCommand):
220
+
221
+ def __init__(self, prefix):
222
+
223
+ super().__init__()
224
+
225
+ self.commands_heading = "コマンド:"
226
+
227
+ self.no_category = "その他"
228
+
229
+ self.command_attrs["help"] = "コマンド一覧と簡単な説明を表示"
230
+
231
+ self.command_prefix = prefix
232
+
233
+
234
+
235
+ def get_ending_note(self):
236
+
237
+ return (f"各コマンドの説明: {self.command_prefix}help <コマンド名>\n"
238
+
239
+ f"各カテゴリの説明: {self.command_prefix}help <カテゴリ名>\n")
240
+
241
+
242
+
243
+ ```