@spyglassmc/discord-bot 0.3.7 → 0.3.9

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
@@ -1 +1 @@
1
- {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AAoCA,MAAM,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,SAAS,CAAA"}
1
+ {"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"AA0BA,MAAM,CAAC,OAAO,CAAC,MAAM,SAAS,EAAE,SAAS,CAAA"}
package/lib/index.js CHANGED
@@ -5,7 +5,7 @@ import { NodeJsExternals } from '@spyglassmc/core/lib/nodejs.js';
5
5
  import * as je from '@spyglassmc/java-edition';
6
6
  import * as mcdoc from '@spyglassmc/mcdoc';
7
7
  import { Routes } from 'discord-api-types/rest/v9';
8
- import { Client, Intents, MessageActionRow, MessageButton, MessageEmbed, } from 'discord.js';
8
+ import { Client, Intents, MessageActionRow, MessageButton, MessageEmbed } from 'discord.js';
9
9
  import { dirname, join } from 'path';
10
10
  import { fileURLToPath, pathToFileURL } from 'url';
11
11
  const MaxContentLength = 2000;
@@ -20,17 +20,13 @@ console.log(`cacheRoot = ${cacheRoot}`);
20
20
  console.log(`projectPath = ${projectPath}`);
21
21
  const config = await loadConfig();
22
22
  const rest = new REST({ version: '9' }).setToken(config.token);
23
- const client = new Client({
24
- intents: [Intents.FLAGS.GUILDS],
25
- });
23
+ const client = new Client({ intents: [Intents.FLAGS.GUILDS] });
26
24
  const service = new Service({
27
25
  logger: console,
28
26
  profilers,
29
27
  project: {
30
28
  cacheRoot: fileUtil.ensureEndingSlash(pathToFileURL(cacheRoot).toString()),
31
- defaultConfig: ConfigService.merge(VanillaConfig, {
32
- env: { dependencies: [] },
33
- }),
29
+ defaultConfig: ConfigService.merge(VanillaConfig, { env: { dependencies: [] } }),
34
30
  externals: NodeJsExternals,
35
31
  initializers: [mcdoc.initialize, je.initialize],
36
32
  projectRoot: fileUtil.ensureEndingSlash(pathToFileURL(projectPath).toString()),
@@ -44,9 +40,7 @@ client.on('interactionCreate', async (i) => {
44
40
  const info = activeInteractions.get(i.message.id);
45
41
  if (!info) {
46
42
  await i.update({
47
- embeds: [
48
- new MessageEmbed().setDescription('The interaction has expired!'),
49
- ],
43
+ embeds: [new MessageEmbed().setDescription('The interaction has expired!')],
50
44
  components: [],
51
45
  });
52
46
  return;
@@ -95,9 +89,9 @@ __profiler.task('Register Commands').finalize();
95
89
  async function loadConfig() {
96
90
  const path = join(parentPath, 'config.json');
97
91
  const config = (await fileUtil.readJson(NodeJsExternals, path));
98
- if (!(typeof config.clientId === 'string' &&
99
- typeof config.guildId === 'string' &&
100
- typeof config.token === 'string')) {
92
+ if (!(typeof config.clientId === 'string'
93
+ && typeof config.guildId === 'string'
94
+ && typeof config.token === 'string')) {
101
95
  throw new Error(`Bad config: ${JSON.stringify(config)}`);
102
96
  }
103
97
  return config;
@@ -106,23 +100,11 @@ async function loadConfig() {
106
100
  * @throws
107
101
  */
108
102
  async function registerCommands() {
109
- const pingCommand = new SlashCommandBuilder()
110
- .setName('ping')
111
- .setDescription('Ping the Spyglass Bot')
112
- .toJSON();
113
- const spyCommand = new SlashCommandBuilder()
114
- .setName('spy')
115
- .setDescription('Renders a mcfunction command. Error reporting coming soon™')
116
- .addStringOption(new SlashCommandStringOption()
117
- .setName('command')
118
- .setDescription('Put a single mcfunction command here')
119
- .setRequired(true))
120
- .addBooleanOption(new SlashCommandBooleanOption()
121
- .setName('showraw')
122
- .setDescription('Whether to show the result ANSI code in raw code blocks')
123
- .setRequired(false))
124
- .toJSON();
125
- return rest.put(Routes.applicationGuildCommands(config.clientId, config.guildId), { body: [pingCommand, spyCommand] });
103
+ const pingCommand = new SlashCommandBuilder().setName('ping').setDescription('Ping the Spyglass Bot').toJSON();
104
+ const spyCommand = new SlashCommandBuilder().setName('spy').setDescription('Renders a mcfunction command. Error reporting coming soon™').addStringOption(new SlashCommandStringOption().setName('command').setDescription('Put a single mcfunction command here').setRequired(true)).addBooleanOption(new SlashCommandBooleanOption().setName('showraw').setDescription('Whether to show the result ANSI code in raw code blocks').setRequired(false)).toJSON();
105
+ return rest.put(Routes.applicationGuildCommands(config.clientId, config.guildId), {
106
+ body: [pingCommand, spyCommand],
107
+ });
126
108
  }
127
109
  async function getInteractionInfo(content, showRaw) {
128
110
  if (activeInteractions.has(content)) {
@@ -138,13 +120,7 @@ async function getInteractionInfo(content, showRaw) {
138
120
  const errors = FileNode.getErrors(node);
139
121
  const tokens = service.colorize(node, doc);
140
122
  const activeErrorIndex = errors.length ? 0 : -1;
141
- return {
142
- content,
143
- errors,
144
- activeErrorIndex,
145
- tokens,
146
- showRaw,
147
- };
123
+ return { content, errors, activeErrorIndex, tokens, showRaw };
148
124
  }
149
125
  function getReplyOptions(info) {
150
126
  const content = getReplyContent(info);
@@ -153,17 +129,8 @@ function getReplyOptions(info) {
153
129
  ? `Skipped colorizing due to Discord length limit.\n\`\`\`\n${info.content}\n\`\`\``
154
130
  : content,
155
131
  components: info.errors.length > 1
156
- ? [
157
- new MessageActionRow().addComponents(new MessageButton()
158
- .setCustomId('previous')
159
- .setLabel('Previous Error')
160
- .setStyle('PRIMARY')
161
- .setDisabled(info.activeErrorIndex <= 0), new MessageButton()
162
- .setCustomId('next')
163
- .setLabel('Next Error')
164
- .setStyle('PRIMARY')
165
- .setDisabled(info.activeErrorIndex >= info.errors.length - 1)),
166
- ]
132
+ ? [new MessageActionRow().addComponents(new MessageButton().setCustomId('previous').setLabel('Previous Error').setStyle('PRIMARY').setDisabled(info.activeErrorIndex <= 0), new MessageButton().setCustomId('next').setLabel('Next Error').setStyle('PRIMARY')
133
+ .setDisabled(info.activeErrorIndex >= info.errors.length - 1))]
167
134
  : [],
168
135
  fetchReply: true,
169
136
  };
@@ -210,7 +177,7 @@ function getReplyContent(info) {
210
177
  /**
211
178
  * @returns Unsorted tokens.
212
179
  */
213
- function toRenderTokens({ tokens, errors, activeErrorIndex, }) {
180
+ function toRenderTokens({ tokens, errors, activeErrorIndex }) {
214
181
  const ans = tokens.map((t) => ({
215
182
  formats: ColorTokenTypeLegend[t.type],
216
183
  range: t.range,
@@ -226,14 +193,9 @@ function toRenderTokens({ tokens, errors, activeErrorIndex, }) {
226
193
  }
227
194
  function getAnsiCode(content, tokens) {
228
195
  let ans = toAnsiEscapeCode(['reset']);
229
- tokens = tokens
230
- .map((t) => t.range.end - t.range.start === 0
231
- ? {
232
- range: { start: t.range.start, end: t.range.start + 1 },
233
- formats: t.formats,
234
- }
235
- : t)
236
- .sort((a, b) => a.range.start - b.range.start);
196
+ tokens = tokens.map((t) => t.range.end - t.range.start === 0
197
+ ? { range: { start: t.range.start, end: t.range.start + 1 }, formats: t.formats }
198
+ : t).sort((a, b) => a.range.start - b.range.start);
237
199
  for (let i = 0; i < tokens.length - 1; i++) {
238
200
  const current = tokens[i];
239
201
  const next = tokens[i + 1];
@@ -251,16 +213,11 @@ function getAnsiCode(content, tokens) {
251
213
  }
252
214
  insertedTokens.push({
253
215
  formats: new Set([...current.formats, ...next.formats]),
254
- range: {
255
- start: next.range.start,
256
- end: Math.min(current.range.end, next.range.end),
257
- },
216
+ range: { start: next.range.start, end: Math.min(current.range.end, next.range.end) },
258
217
  });
259
218
  if (current.range.end !== next.range.end) {
260
219
  insertedTokens.push({
261
- formats: current.range.end < next.range.end
262
- ? next.formats
263
- : current.formats,
220
+ formats: current.range.end < next.range.end ? next.formats : current.formats,
264
221
  range: {
265
222
  start: Math.min(current.range.end, next.range.end),
266
223
  end: Math.max(current.range.end, next.range.end),
package/lib/index.js.map CHANGED
@@ -1 +1 @@
1
- {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
1
+ {"version":3,"file":"index.js","sourceRoot":"","sources":["../src/index.ts"],"names":[],"mappings":"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"}
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@spyglassmc/discord-bot",
3
- "version": "0.3.7",
3
+ "version": "0.3.9",
4
4
  "type": "module",
5
5
  "main": "lib/index.js",
6
6
  "types": "lib/index.d.ts",
@@ -13,10 +13,10 @@
13
13
  "@discordjs/rest": "^0.4.1",
14
14
  "discord.js": "^13.7.0",
15
15
  "discord-api-types": "^0.33.1",
16
- "@spyglassmc/core": "0.4.5",
17
- "@spyglassmc/java-edition": "0.3.7",
18
- "@spyglassmc/locales": "0.3.5",
19
- "@spyglassmc/mcdoc": "0.3.7"
16
+ "@spyglassmc/core": "0.4.6",
17
+ "@spyglassmc/java-edition": "0.3.9",
18
+ "@spyglassmc/locales": "0.3.6",
19
+ "@spyglassmc/mcdoc": "0.3.9"
20
20
  },
21
21
  "devDependencies": {},
22
22
  "scripts": {
package/src/index.ts CHANGED
@@ -4,11 +4,7 @@ import {
4
4
  SlashCommandStringOption,
5
5
  } from '@discordjs/builders'
6
6
  import { REST } from '@discordjs/rest'
7
- import type {
8
- ColorToken,
9
- ColorTokenType,
10
- LanguageError,
11
- } from '@spyglassmc/core'
7
+ import type { ColorToken, ColorTokenType, LanguageError } from '@spyglassmc/core'
12
8
  import {
13
9
  ConfigService,
14
10
  ErrorSeverity,
@@ -24,13 +20,7 @@ import * as je from '@spyglassmc/java-edition'
24
20
  import * as mcdoc from '@spyglassmc/mcdoc'
25
21
  import { Routes } from 'discord-api-types/rest/v9'
26
22
  import type { Snowflake } from 'discord.js'
27
- import {
28
- Client,
29
- Intents,
30
- MessageActionRow,
31
- MessageButton,
32
- MessageEmbed,
33
- } from 'discord.js'
23
+ import { Client, Intents, MessageActionRow, MessageButton, MessageEmbed } from 'discord.js'
34
24
  import { dirname, join } from 'path'
35
25
  import { fileURLToPath, pathToFileURL } from 'url'
36
26
 
@@ -50,24 +40,16 @@ console.log(`projectPath = ${projectPath}`)
50
40
 
51
41
  const config = await loadConfig()
52
42
  const rest = new REST({ version: '9' }).setToken(config.token)
53
- const client = new Client({
54
- intents: [Intents.FLAGS.GUILDS],
55
- })
43
+ const client = new Client({ intents: [Intents.FLAGS.GUILDS] })
56
44
  const service = new Service({
57
45
  logger: console,
58
46
  profilers,
59
47
  project: {
60
- cacheRoot: fileUtil.ensureEndingSlash(
61
- pathToFileURL(cacheRoot).toString(),
62
- ),
63
- defaultConfig: ConfigService.merge(VanillaConfig, {
64
- env: { dependencies: [] },
65
- }),
48
+ cacheRoot: fileUtil.ensureEndingSlash(pathToFileURL(cacheRoot).toString()),
49
+ defaultConfig: ConfigService.merge(VanillaConfig, { env: { dependencies: [] } }),
66
50
  externals: NodeJsExternals,
67
51
  initializers: [mcdoc.initialize, je.initialize],
68
- projectRoot: fileUtil.ensureEndingSlash(
69
- pathToFileURL(projectPath).toString(),
70
- ),
52
+ projectRoot: fileUtil.ensureEndingSlash(pathToFileURL(projectPath).toString()),
71
53
  },
72
54
  })
73
55
  const DocumentUri = 'spyglassmc://discord-bot/file.mcfunction'
@@ -87,11 +69,7 @@ client.on('interactionCreate', async (i) => {
87
69
  const info = activeInteractions.get(i.message.id)
88
70
  if (!info) {
89
71
  await i.update({
90
- embeds: [
91
- new MessageEmbed().setDescription(
92
- 'The interaction has expired!',
93
- ),
94
- ],
72
+ embeds: [new MessageEmbed().setDescription('The interaction has expired!')],
95
73
  components: [],
96
74
  })
97
75
  return
@@ -147,11 +125,9 @@ async function loadConfig(): Promise<Config> {
147
125
  const path = join(parentPath, 'config.json')
148
126
  const config = (await fileUtil.readJson(NodeJsExternals, path)) as Config
149
127
  if (
150
- !(
151
- typeof config.clientId === 'string' &&
152
- typeof config.guildId === 'string' &&
153
- typeof config.token === 'string'
154
- )
128
+ !(typeof config.clientId === 'string'
129
+ && typeof config.guildId === 'string'
130
+ && typeof config.token === 'string')
155
131
  ) {
156
132
  throw new Error(`Bad config: ${JSON.stringify(config)}`)
157
133
  }
@@ -162,49 +138,33 @@ async function loadConfig(): Promise<Config> {
162
138
  * @throws
163
139
  */
164
140
  async function registerCommands(): Promise<unknown> {
165
- const pingCommand = new SlashCommandBuilder()
166
- .setName('ping')
167
- .setDescription('Ping the Spyglass Bot')
168
- .toJSON()
169
- const spyCommand = new SlashCommandBuilder()
170
- .setName('spy')
171
- .setDescription(
172
- 'Renders a mcfunction command. Error reporting coming soon™',
173
- )
174
- .addStringOption(
175
- new SlashCommandStringOption()
176
- .setName('command')
177
- .setDescription('Put a single mcfunction command here')
178
- .setRequired(true),
179
- )
180
- .addBooleanOption(
181
- new SlashCommandBooleanOption()
182
- .setName('showraw')
183
- .setDescription(
184
- 'Whether to show the result ANSI code in raw code blocks',
185
- )
186
- .setRequired(false),
187
- )
188
- .toJSON()
141
+ const pingCommand = new SlashCommandBuilder().setName('ping').setDescription(
142
+ 'Ping the Spyglass Bot',
143
+ ).toJSON()
144
+ const spyCommand = new SlashCommandBuilder().setName('spy').setDescription(
145
+ 'Renders a mcfunction command. Error reporting coming soon™',
146
+ ).addStringOption(
147
+ new SlashCommandStringOption().setName('command').setDescription(
148
+ 'Put a single mcfunction command here',
149
+ ).setRequired(true),
150
+ ).addBooleanOption(
151
+ new SlashCommandBooleanOption().setName('showraw').setDescription(
152
+ 'Whether to show the result ANSI code in raw code blocks',
153
+ ).setRequired(false),
154
+ ).toJSON()
189
155
 
190
- return rest.put(
191
- Routes.applicationGuildCommands(config.clientId, config.guildId),
192
- { body: [pingCommand, spyCommand] },
193
- )
156
+ return rest.put(Routes.applicationGuildCommands(config.clientId, config.guildId), {
157
+ body: [pingCommand, spyCommand],
158
+ })
194
159
  }
195
160
 
196
- async function getInteractionInfo(
197
- content: string,
198
- showRaw: boolean,
199
- ): Promise<InteractionInfo> {
161
+ async function getInteractionInfo(content: string, showRaw: boolean): Promise<InteractionInfo> {
200
162
  if (activeInteractions.has(content)) {
201
163
  return activeInteractions.get(content)!
202
164
  }
203
165
 
204
166
  await service.project.onDidOpen(DocumentUri, 'mcfunction', 0, content)
205
- const docAndNode = await service.project.ensureClientManagedChecked(
206
- DocumentUri,
207
- )
167
+ const docAndNode = await service.project.ensureClientManagedChecked(DocumentUri)
208
168
  service.project.onDidClose(DocumentUri)
209
169
  if (!docAndNode) {
210
170
  throw new Error('docAndNode is undefined')
@@ -215,40 +175,25 @@ async function getInteractionInfo(
215
175
  const tokens = service.colorize(node, doc)
216
176
  const activeErrorIndex = errors.length ? 0 : -1
217
177
 
218
- return {
219
- content,
220
- errors,
221
- activeErrorIndex,
222
- tokens,
223
- showRaw,
224
- }
178
+ return { content, errors, activeErrorIndex, tokens, showRaw }
225
179
  }
226
180
 
227
- function getReplyOptions(info: InteractionInfo): {
228
- content: string
229
- components: MessageActionRow[]
230
- fetchReply: true
231
- } {
181
+ function getReplyOptions(
182
+ info: InteractionInfo,
183
+ ): { content: string; components: MessageActionRow[]; fetchReply: true } {
232
184
  const content = getReplyContent(info)
233
185
  return {
234
186
  content: content.length > MaxContentLength
235
187
  ? `Skipped colorizing due to Discord length limit.\n\`\`\`\n${info.content}\n\`\`\``
236
188
  : content,
237
189
  components: info.errors.length > 1
238
- ? [
239
- new MessageActionRow().addComponents(
240
- new MessageButton()
241
- .setCustomId('previous')
242
- .setLabel('Previous Error')
243
- .setStyle('PRIMARY')
244
- .setDisabled(info.activeErrorIndex <= 0),
245
- new MessageButton()
246
- .setCustomId('next')
247
- .setLabel('Next Error')
248
- .setStyle('PRIMARY')
249
- .setDisabled(info.activeErrorIndex >= info.errors.length - 1),
250
- ),
251
- ]
190
+ ? [new MessageActionRow().addComponents(
191
+ new MessageButton().setCustomId('previous').setLabel('Previous Error').setStyle(
192
+ 'PRIMARY',
193
+ ).setDisabled(info.activeErrorIndex <= 0),
194
+ new MessageButton().setCustomId('next').setLabel('Next Error').setStyle('PRIMARY')
195
+ .setDisabled(info.activeErrorIndex >= info.errors.length - 1),
196
+ )]
252
197
  : [],
253
198
  fetchReply: true,
254
199
  }
@@ -311,9 +256,7 @@ function getReplyContent(info: InteractionInfo): string {
311
256
  return `\`\`\`${info.showRaw ? '' : 'ansi'}\n${ansiCode}\n\`\`\`${
312
257
  activeError
313
258
  ? `\n\`${errorSeverityToChar(activeError.severity)} ${
314
- Range.toString(
315
- activeError.range,
316
- )
259
+ Range.toString(activeError.range)
317
260
  } ${activeError.message}\``
318
261
  : ''
319
262
  }`
@@ -322,11 +265,7 @@ function getReplyContent(info: InteractionInfo): string {
322
265
  /**
323
266
  * @returns Unsorted tokens.
324
267
  */
325
- function toRenderTokens({
326
- tokens,
327
- errors,
328
- activeErrorIndex,
329
- }: InteractionInfo): RenderToken[] {
268
+ function toRenderTokens({ tokens, errors, activeErrorIndex }: InteractionInfo): RenderToken[] {
330
269
  const ans: RenderToken[] = tokens.map((t) => ({
331
270
  formats: ColorTokenTypeLegend[t.type],
332
271
  range: t.range,
@@ -343,16 +282,11 @@ function toRenderTokens({
343
282
 
344
283
  function getAnsiCode(content: string, tokens: RenderToken[]): string {
345
284
  let ans: string = toAnsiEscapeCode(['reset'])
346
- tokens = tokens
347
- .map((t) =>
348
- t.range.end - t.range.start === 0
349
- ? {
350
- range: { start: t.range.start, end: t.range.start + 1 },
351
- formats: t.formats,
352
- }
353
- : t
354
- )
355
- .sort((a, b) => a.range.start - b.range.start)
285
+ tokens = tokens.map((t) =>
286
+ t.range.end - t.range.start === 0
287
+ ? { range: { start: t.range.start, end: t.range.start + 1 }, formats: t.formats }
288
+ : t
289
+ ).sort((a, b) => a.range.start - b.range.start)
356
290
 
357
291
  for (let i = 0; i < tokens.length - 1; i++) {
358
292
  const current = tokens[i]
@@ -372,16 +306,11 @@ function getAnsiCode(content: string, tokens: RenderToken[]): string {
372
306
  }
373
307
  insertedTokens.push({
374
308
  formats: new Set([...current.formats, ...next.formats]),
375
- range: {
376
- start: next.range.start,
377
- end: Math.min(current.range.end, next.range.end),
378
- },
309
+ range: { start: next.range.start, end: Math.min(current.range.end, next.range.end) },
379
310
  })
380
311
  if (current.range.end !== next.range.end) {
381
312
  insertedTokens.push({
382
- formats: current.range.end < next.range.end
383
- ? next.formats
384
- : current.formats,
313
+ formats: current.range.end < next.range.end ? next.formats : current.formats,
385
314
  range: {
386
315
  start: Math.min(current.range.end, next.range.end),
387
316
  end: Math.max(current.range.end, next.range.end),
@@ -404,9 +333,7 @@ function getAnsiCode(content: string, tokens: RenderToken[]): string {
404
333
  return ans
405
334
  }
406
335
 
407
- function toAnsiEscapeCode(
408
- formats: Iterable<RenderFormat>,
409
- ): `\u001b[${string}m` {
336
+ function toAnsiEscapeCode(formats: Iterable<RenderFormat>): `\u001b[${string}m` {
410
337
  return `\u001b[${[...formats].map((v) => AnsiCodeMap[v]).join(';')}m`
411
338
  }
412
339