質問編集履歴

1

詳しいコード等の追加

2021/10/27 14:12

投稿

Rainkory
Rainkory

スコア7

test CHANGED
File without changes
test CHANGED
@@ -2,17 +2,131 @@
2
2
 
3
3
  Discord.jsでスラッシュコマンドを実装したい
4
4
 
5
-
5
+ が、エラーが出てしまって起動もできない
6
6
 
7
7
  ### 発生している問題・エラーメッセージ
8
8
 
9
9
  スラッシュコマンドを実装しようとしていたのですが、どの方法でもうまくいきません。
10
10
 
11
-
11
+ 一応サブのサーバー機でも試しました
12
12
 
13
13
  ### 試したこと
14
14
 
15
+ ```javascript
15
16
 
17
+ const { Client, ClientApplication } = require("discord.js");
18
+
19
+ /**
20
+
21
+ *
22
+
23
+ * @param {Client} client
24
+
25
+ * @param {import("discord.js").ApplicationCommandData[]} commands
26
+
27
+ * @param {import("discord.js").Snowflake} guildID
28
+
29
+ * @returns {Promise<import("@discordjs/collection").Collection<string,import("discord.js").ApplicationCommand>>}
30
+
31
+ */
32
+
33
+ async function register(client, commands, guildID) {
34
+
35
+ if (guildID == null) {
36
+
37
+ return client.application.commands.set(commands);
38
+
39
+ }
40
+
41
+ const guild = await client.guilds.fetch(guildID);
42
+
43
+ return guild.commands.set(commands);
44
+
45
+ }
46
+
47
+ const ping = {
48
+
49
+ name: "ping",
50
+
51
+ description: "pong!",
52
+
53
+ };
54
+
55
+ const hello = {
56
+
57
+ name: "hello",
58
+
59
+ description: "botがあなたに挨拶します。",
60
+
61
+ options: [
62
+
63
+ {
64
+
65
+ type: "STRING",
66
+
67
+ name: "language",
68
+
69
+ description: "どの言語で挨拶するか指定します。",
70
+
71
+ required: true,
72
+
73
+ choices: [
74
+
75
+ {
76
+
77
+ name: "English",
78
+
79
+ value: "en"
80
+
81
+ },
82
+
83
+ {
84
+
85
+ name: "Japanese",
86
+
87
+ value: "ja"
88
+
89
+ }
90
+
91
+ ],
92
+
93
+ }
94
+
95
+ ]
96
+
97
+ };
98
+
99
+ const commands = [ping, hello];
100
+
101
+ const client = new Client({
102
+
103
+ intents: 0,
104
+
105
+ });
106
+
107
+ client.token = process.env.DISCORD_TOKEN;
108
+
109
+ async function main() {
110
+
111
+ client.application = new ClientApplication(client, {});
112
+
113
+ await client.application.fetch();
114
+
115
+ await register(client, commands, process.argv[2]);
116
+
117
+ console.log("registration succeed!");
118
+
119
+ }
120
+
121
+ main().catch(err=>console.error(err));
122
+
123
+ ```
124
+
125
+ という見本?のコードをそのままコピペしました
126
+
127
+ エラーの内容はトークンが指定されていないもしくは正しくないというものでしたがトークンはサイトの見本に沿って指定済みできちんと正しいトークンが使われています。
128
+
129
+ 参考元↓
16
130
 
17
131
  https://scrapbox.io/discordjs-japan/%E3%82%B9%E3%83%A9%E3%83%83%E3%82%B7%E3%83%A5%E3%82%B3%E3%83%9E%E3%83%B3%E3%83%89%E3%82%92%E4%BD%BF%E3%81%A3%E3%81%A6%E3%81%BF%E3%82%88%E3%81%86
18
132