@magicyan/discord 1.0.20 → 1.0.22

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.
@@ -64,7 +64,7 @@ class EmbedBuilderPlus extends discord_js.EmbedBuilder {
64
64
  super(embed.data);
65
65
  }
66
66
  has(property) {
67
- return Object.hasOwn(this, property);
67
+ return Boolean(this.data[property]);
68
68
  }
69
69
  toArray() {
70
70
  return [this];
@@ -62,7 +62,7 @@ class EmbedBuilderPlus extends EmbedBuilder {
62
62
  super(embed.data);
63
63
  }
64
64
  has(property) {
65
- return Object.hasOwn(this, property);
65
+ return Boolean(this.data[property]);
66
66
  }
67
67
  toArray() {
68
68
  return [this];
@@ -5,6 +5,23 @@ const core = require('@magicyan/core');
5
5
  function findMessage(channel) {
6
6
  const messages = channel.messages.cache;
7
7
  return {
8
+ async all(limit = Infinity) {
9
+ const messages2 = [];
10
+ let lastMessageId;
11
+ while (true) {
12
+ const fetched = await channel.messages.fetch({ limit: 100, before: lastMessageId });
13
+ messages2.push(...fetched.values());
14
+ lastMessageId = fetched.lastKey();
15
+ if (fetched.size < 100 || messages2.length >= limit)
16
+ break;
17
+ }
18
+ if (limit < messages2.length) {
19
+ const sliced = messages2.slice(0, limit);
20
+ messages2.length = 0;
21
+ messages2.push(...sliced);
22
+ }
23
+ return messages2;
24
+ },
8
25
  byId(id) {
9
26
  return messages.get(id);
10
27
  },
@@ -3,6 +3,23 @@ import { equalsIgnoreCase, includesIgnoreCase } from '@magicyan/core';
3
3
  function findMessage(channel) {
4
4
  const messages = channel.messages.cache;
5
5
  return {
6
+ async all(limit = Infinity) {
7
+ const messages2 = [];
8
+ let lastMessageId;
9
+ while (true) {
10
+ const fetched = await channel.messages.fetch({ limit: 100, before: lastMessageId });
11
+ messages2.push(...fetched.values());
12
+ lastMessageId = fetched.lastKey();
13
+ if (fetched.size < 100 || messages2.length >= limit)
14
+ break;
15
+ }
16
+ if (limit < messages2.length) {
17
+ const sliced = messages2.slice(0, limit);
18
+ messages2.length = 0;
19
+ messages2.push(...sliced);
20
+ }
21
+ return messages2;
22
+ },
6
23
  byId(id) {
7
24
  return messages.get(id);
8
25
  },
@@ -0,0 +1,9 @@
1
+ 'use strict';
2
+
3
+ function extractMentionId(mention) {
4
+ const regex = new RegExp(/\d+/);
5
+ const matches = mention.match(regex);
6
+ return matches ? matches[0] : null;
7
+ }
8
+
9
+ exports.extractMentionId = extractMentionId;
@@ -0,0 +1,7 @@
1
+ function extractMentionId(mention) {
2
+ const regex = new RegExp(/\d+/);
3
+ const matches = mention.match(regex);
4
+ return matches ? matches[0] : null;
5
+ }
6
+
7
+ export { extractMentionId };
package/dist/index.cjs CHANGED
@@ -11,6 +11,7 @@ const format = require('./functions/format.cjs');
11
11
  const members = require('./functions/members.cjs');
12
12
  const message = require('./functions/message.cjs');
13
13
  const roles = require('./functions/roles.cjs');
14
+ const regex = require('./functions/regex.cjs');
14
15
  const core = require('@magicyan/core');
15
16
 
16
17
 
@@ -34,6 +35,7 @@ exports.formatedMention = format.formatedMention;
34
35
  exports.findMember = members.findMember;
35
36
  exports.findMessage = message.findMessage;
36
37
  exports.findRole = roles.findRole;
38
+ exports.extractMentionId = regex.extractMentionId;
37
39
  Object.keys(core).forEach(function (k) {
38
40
  if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = core[k];
39
41
  });
package/dist/index.d.cts CHANGED
@@ -167,6 +167,7 @@ declare function findMember(guild: Guild): {
167
167
 
168
168
  type FindMessageFilter = (role: Message<true>) => boolean;
169
169
  declare function findMessage(channel: GuildTextBasedChannel): {
170
+ all(limit?: number): Promise<Message<boolean>[]>;
170
171
  byId(id: string): Message<true> | undefined;
171
172
  byContent(): {
172
173
  equals(content: string, ignoreCase?: boolean): Message<true> | undefined;
@@ -184,4 +185,21 @@ declare function findRole(guild: Guild): {
184
185
  byFilter(filter: FindRoleFilter): Role | undefined;
185
186
  };
186
187
 
187
- export { CustomItents, CustomPartials, EmbedBuilderPlus, type EmbedPropery, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalInput, createRow, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention };
188
+ /**
189
+ *
190
+ * @param mention Discord mentionable string
191
+ * @returns mentionable id or null
192
+ *
193
+ * ```ts
194
+ * const user = "<@264620632644255745>";
195
+ * const channel = "<#1068689068256403457>";
196
+ * const role = "<@&929925182796226632>";
197
+ *
198
+ * extractMentionId(user) // 264620632644255745
199
+ * extractMentionId(channel) // 1068689068256403457
200
+ * extractMentionId(role) // 929925182796226632
201
+ * ```
202
+ */
203
+ declare function extractMentionId(mention: string): string | null;
204
+
205
+ export { CustomItents, CustomPartials, EmbedBuilderPlus, type EmbedPropery, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention };
package/dist/index.d.mts CHANGED
@@ -167,6 +167,7 @@ declare function findMember(guild: Guild): {
167
167
 
168
168
  type FindMessageFilter = (role: Message<true>) => boolean;
169
169
  declare function findMessage(channel: GuildTextBasedChannel): {
170
+ all(limit?: number): Promise<Message<boolean>[]>;
170
171
  byId(id: string): Message<true> | undefined;
171
172
  byContent(): {
172
173
  equals(content: string, ignoreCase?: boolean): Message<true> | undefined;
@@ -184,4 +185,21 @@ declare function findRole(guild: Guild): {
184
185
  byFilter(filter: FindRoleFilter): Role | undefined;
185
186
  };
186
187
 
187
- export { CustomItents, CustomPartials, EmbedBuilderPlus, type EmbedPropery, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalInput, createRow, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention };
188
+ /**
189
+ *
190
+ * @param mention Discord mentionable string
191
+ * @returns mentionable id or null
192
+ *
193
+ * ```ts
194
+ * const user = "<@264620632644255745>";
195
+ * const channel = "<#1068689068256403457>";
196
+ * const role = "<@&929925182796226632>";
197
+ *
198
+ * extractMentionId(user) // 264620632644255745
199
+ * extractMentionId(channel) // 1068689068256403457
200
+ * extractMentionId(role) // 929925182796226632
201
+ * ```
202
+ */
203
+ declare function extractMentionId(mention: string): string | null;
204
+
205
+ export { CustomItents, CustomPartials, EmbedBuilderPlus, type EmbedPropery, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention };
package/dist/index.d.ts CHANGED
@@ -167,6 +167,7 @@ declare function findMember(guild: Guild): {
167
167
 
168
168
  type FindMessageFilter = (role: Message<true>) => boolean;
169
169
  declare function findMessage(channel: GuildTextBasedChannel): {
170
+ all(limit?: number): Promise<Message<boolean>[]>;
170
171
  byId(id: string): Message<true> | undefined;
171
172
  byContent(): {
172
173
  equals(content: string, ignoreCase?: boolean): Message<true> | undefined;
@@ -184,4 +185,21 @@ declare function findRole(guild: Guild): {
184
185
  byFilter(filter: FindRoleFilter): Role | undefined;
185
186
  };
186
187
 
187
- export { CustomItents, CustomPartials, EmbedBuilderPlus, type EmbedPropery, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalInput, createRow, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention };
188
+ /**
189
+ *
190
+ * @param mention Discord mentionable string
191
+ * @returns mentionable id or null
192
+ *
193
+ * ```ts
194
+ * const user = "<@264620632644255745>";
195
+ * const channel = "<#1068689068256403457>";
196
+ * const role = "<@&929925182796226632>";
197
+ *
198
+ * extractMentionId(user) // 264620632644255745
199
+ * extractMentionId(channel) // 1068689068256403457
200
+ * extractMentionId(role) // 929925182796226632
201
+ * ```
202
+ */
203
+ declare function extractMentionId(mention: string): string | null;
204
+
205
+ export { CustomItents, CustomPartials, EmbedBuilderPlus, type EmbedPropery, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention };
package/dist/index.mjs CHANGED
@@ -9,4 +9,5 @@ export { formatedMention } from './functions/format.mjs';
9
9
  export { findMember } from './functions/members.mjs';
10
10
  export { findMessage } from './functions/message.mjs';
11
11
  export { findRole } from './functions/roles.mjs';
12
+ export { extractMentionId } from './functions/regex.mjs';
12
13
  export * from '@magicyan/core';
package/package.json CHANGED
@@ -1,6 +1,6 @@
1
1
  {
2
2
  "name": "@magicyan/discord",
3
- "version": "1.0.20",
3
+ "version": "1.0.22",
4
4
  "description": "Simple functions to facilitate discord bot development",
5
5
  "license": "MIT",
6
6
  "type": "module",