@magicyan/discord 1.0.27 → 1.0.29
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.
- package/README.md +227 -80
- package/dist/functions/channels.cjs +3 -0
- package/dist/functions/channels.mjs +3 -0
- package/dist/functions/components.cjs +0 -49
- package/dist/functions/components.mjs +2 -50
- package/dist/functions/embeds/assets.cjs +2 -2
- package/dist/functions/embeds/assets.mjs +2 -2
- package/dist/functions/embeds/author.cjs +27 -24
- package/dist/functions/embeds/author.mjs +27 -24
- package/dist/functions/embeds/embedplus.cjs +23 -6
- package/dist/functions/embeds/embedplus.mjs +24 -7
- package/dist/functions/embeds/fields.cjs +10 -0
- package/dist/functions/embeds/fields.mjs +10 -0
- package/dist/functions/message.cjs +3 -0
- package/dist/functions/message.mjs +3 -0
- package/dist/index.cjs +12 -15
- package/dist/index.d.cts +139 -145
- package/dist/index.d.mts +139 -145
- package/dist/index.d.ts +139 -145
- package/dist/index.mjs +5 -6
- package/package.json +1 -1
- package/dist/functions/format.cjs +0 -9
- package/dist/functions/format.mjs +0 -7
|
@@ -3,8 +3,8 @@
|
|
|
3
3
|
const discord_js = require('discord.js');
|
|
4
4
|
const chars = require('../../constants/chars.cjs');
|
|
5
5
|
const assets = require('./assets.cjs');
|
|
6
|
-
const footer = require('./footer.cjs');
|
|
7
6
|
const fields = require('./fields.cjs');
|
|
7
|
+
const footer = require('./footer.cjs');
|
|
8
8
|
|
|
9
9
|
var __defProp = Object.defineProperty;
|
|
10
10
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -15,7 +15,7 @@ var __publicField = (obj, key, value) => {
|
|
|
15
15
|
class EmbedPlusBuilder extends discord_js.EmbedBuilder {
|
|
16
16
|
constructor(data) {
|
|
17
17
|
const { mergeFields = false, extends: extendsEmbed, ...embedData } = data;
|
|
18
|
-
const extendsEmbedData = extendsEmbed ? "data" in extendsEmbed ? extendsEmbed.data :
|
|
18
|
+
const extendsEmbedData = extendsEmbed ? "data" in extendsEmbed ? extendsEmbed.data : extendsEmbed : {};
|
|
19
19
|
const { fields: extendsFields, ...extendsData } = extendsEmbedData;
|
|
20
20
|
const fields$1 = (mergeFields ? [extendsFields ?? [], data.fields ?? []].flat() : data.fields ?? extendsFields ?? []).map((field) => Object.assign(
|
|
21
21
|
{ name: field.name ?? chars.chars.invisible, value: field.value ?? chars.chars.invisible },
|
|
@@ -51,22 +51,39 @@ class EmbedPlusBuilder extends discord_js.EmbedBuilder {
|
|
|
51
51
|
toArray() {
|
|
52
52
|
return Array.from([this]);
|
|
53
53
|
}
|
|
54
|
+
/**
|
|
55
|
+
*
|
|
56
|
+
* @param data
|
|
57
|
+
* @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
|
|
58
|
+
* @returns AttachmentBuilder
|
|
59
|
+
*
|
|
60
|
+
* Create a json attachment file from this embed
|
|
61
|
+
*/
|
|
62
|
+
toAttachment(data, space = 2) {
|
|
63
|
+
return new discord_js.AttachmentBuilder(
|
|
64
|
+
Buffer.from(this.toString(space), "utf-8"),
|
|
65
|
+
data ?? (data = { name: "embed.json" })
|
|
66
|
+
);
|
|
67
|
+
}
|
|
54
68
|
toString(space = 2) {
|
|
55
69
|
return JSON.stringify(this, null, space);
|
|
56
70
|
}
|
|
57
71
|
setBorderColor(color) {
|
|
58
72
|
if (color === null) {
|
|
59
73
|
this.setColor("#2B2D31");
|
|
74
|
+
} else if (typeof color === "number") {
|
|
75
|
+
this.update({ color });
|
|
60
76
|
} else {
|
|
61
77
|
this.setColor(color);
|
|
62
78
|
}
|
|
63
79
|
return this;
|
|
64
80
|
}
|
|
65
81
|
setAsset(asset, source) {
|
|
66
|
-
|
|
67
|
-
|
|
68
|
-
|
|
69
|
-
|
|
82
|
+
if (source === null) {
|
|
83
|
+
asset === "image" ? this.setImage(source) : this.setThumbnail(source);
|
|
84
|
+
} else {
|
|
85
|
+
this.update({ [asset]: source });
|
|
86
|
+
}
|
|
70
87
|
return this;
|
|
71
88
|
}
|
|
72
89
|
static fromInteraction(interaction, index = 0, data = {}) {
|
|
@@ -1,8 +1,8 @@
|
|
|
1
|
-
import { EmbedBuilder } from 'discord.js';
|
|
1
|
+
import { EmbedBuilder, AttachmentBuilder } from 'discord.js';
|
|
2
2
|
import { chars } from '../../constants/chars.mjs';
|
|
3
3
|
import { createEmbedAsset } from './assets.mjs';
|
|
4
|
-
import { createEmbedFooter } from './footer.mjs';
|
|
5
4
|
import { EmbedPlusFields } from './fields.mjs';
|
|
5
|
+
import { createEmbedFooter } from './footer.mjs';
|
|
6
6
|
|
|
7
7
|
var __defProp = Object.defineProperty;
|
|
8
8
|
var __defNormalProp = (obj, key, value) => key in obj ? __defProp(obj, key, { enumerable: true, configurable: true, writable: true, value }) : obj[key] = value;
|
|
@@ -13,7 +13,7 @@ var __publicField = (obj, key, value) => {
|
|
|
13
13
|
class EmbedPlusBuilder extends EmbedBuilder {
|
|
14
14
|
constructor(data) {
|
|
15
15
|
const { mergeFields = false, extends: extendsEmbed, ...embedData } = data;
|
|
16
|
-
const extendsEmbedData = extendsEmbed ? "data" in extendsEmbed ? extendsEmbed.data :
|
|
16
|
+
const extendsEmbedData = extendsEmbed ? "data" in extendsEmbed ? extendsEmbed.data : extendsEmbed : {};
|
|
17
17
|
const { fields: extendsFields, ...extendsData } = extendsEmbedData;
|
|
18
18
|
const fields = (mergeFields ? [extendsFields ?? [], data.fields ?? []].flat() : data.fields ?? extendsFields ?? []).map((field) => Object.assign(
|
|
19
19
|
{ name: field.name ?? chars.invisible, value: field.value ?? chars.invisible },
|
|
@@ -49,22 +49,39 @@ class EmbedPlusBuilder extends EmbedBuilder {
|
|
|
49
49
|
toArray() {
|
|
50
50
|
return Array.from([this]);
|
|
51
51
|
}
|
|
52
|
+
/**
|
|
53
|
+
*
|
|
54
|
+
* @param data
|
|
55
|
+
* @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
|
|
56
|
+
* @returns AttachmentBuilder
|
|
57
|
+
*
|
|
58
|
+
* Create a json attachment file from this embed
|
|
59
|
+
*/
|
|
60
|
+
toAttachment(data, space = 2) {
|
|
61
|
+
return new AttachmentBuilder(
|
|
62
|
+
Buffer.from(this.toString(space), "utf-8"),
|
|
63
|
+
data ?? (data = { name: "embed.json" })
|
|
64
|
+
);
|
|
65
|
+
}
|
|
52
66
|
toString(space = 2) {
|
|
53
67
|
return JSON.stringify(this, null, space);
|
|
54
68
|
}
|
|
55
69
|
setBorderColor(color) {
|
|
56
70
|
if (color === null) {
|
|
57
71
|
this.setColor("#2B2D31");
|
|
72
|
+
} else if (typeof color === "number") {
|
|
73
|
+
this.update({ color });
|
|
58
74
|
} else {
|
|
59
75
|
this.setColor(color);
|
|
60
76
|
}
|
|
61
77
|
return this;
|
|
62
78
|
}
|
|
63
79
|
setAsset(asset, source) {
|
|
64
|
-
|
|
65
|
-
|
|
66
|
-
|
|
67
|
-
|
|
80
|
+
if (source === null) {
|
|
81
|
+
asset === "image" ? this.setImage(source) : this.setThumbnail(source);
|
|
82
|
+
} else {
|
|
83
|
+
this.update({ [asset]: source });
|
|
84
|
+
}
|
|
68
85
|
return this;
|
|
69
86
|
}
|
|
70
87
|
static fromInteraction(interaction, index = 0, data = {}) {
|
|
@@ -57,6 +57,9 @@ class EmbedPlusFields {
|
|
|
57
57
|
set(...fields) {
|
|
58
58
|
this.embed.setFields(fields);
|
|
59
59
|
}
|
|
60
|
+
map(callback) {
|
|
61
|
+
return this.toArray().map(callback);
|
|
62
|
+
}
|
|
60
63
|
update(predicate, field) {
|
|
61
64
|
const index = this.getPredicateIndex(predicate);
|
|
62
65
|
if (index == -1)
|
|
@@ -77,6 +80,13 @@ class EmbedPlusFields {
|
|
|
77
80
|
this.embed.spliceFields(index, 1);
|
|
78
81
|
return true;
|
|
79
82
|
}
|
|
83
|
+
/**
|
|
84
|
+
* Remove all fields
|
|
85
|
+
*/
|
|
86
|
+
clear() {
|
|
87
|
+
this.fields = [];
|
|
88
|
+
return this;
|
|
89
|
+
}
|
|
80
90
|
toArray() {
|
|
81
91
|
return Array.from(this);
|
|
82
92
|
}
|
|
@@ -55,6 +55,9 @@ class EmbedPlusFields {
|
|
|
55
55
|
set(...fields) {
|
|
56
56
|
this.embed.setFields(fields);
|
|
57
57
|
}
|
|
58
|
+
map(callback) {
|
|
59
|
+
return this.toArray().map(callback);
|
|
60
|
+
}
|
|
58
61
|
update(predicate, field) {
|
|
59
62
|
const index = this.getPredicateIndex(predicate);
|
|
60
63
|
if (index == -1)
|
|
@@ -75,6 +78,13 @@ class EmbedPlusFields {
|
|
|
75
78
|
this.embed.spliceFields(index, 1);
|
|
76
79
|
return true;
|
|
77
80
|
}
|
|
81
|
+
/**
|
|
82
|
+
* Remove all fields
|
|
83
|
+
*/
|
|
84
|
+
clear() {
|
|
85
|
+
this.fields = [];
|
|
86
|
+
return this;
|
|
87
|
+
}
|
|
78
88
|
toArray() {
|
|
79
89
|
return Array.from(this);
|
|
80
90
|
}
|
|
@@ -41,6 +41,9 @@ function findMessage(channel) {
|
|
|
41
41
|
};
|
|
42
42
|
}
|
|
43
43
|
function getMessageUrlInfo(url) {
|
|
44
|
+
const regex = new RegExp(/^https:\/\/discord\.com\/channels\/\d+\/\d+\/\d+$/);
|
|
45
|
+
if (!regex.test(url))
|
|
46
|
+
return {};
|
|
44
47
|
const [messageId, channelId, guildId] = url.split("/").reverse();
|
|
45
48
|
return { messageId, channelId, guildId };
|
|
46
49
|
}
|
|
@@ -39,6 +39,9 @@ function findMessage(channel) {
|
|
|
39
39
|
};
|
|
40
40
|
}
|
|
41
41
|
function getMessageUrlInfo(url) {
|
|
42
|
+
const regex = new RegExp(/^https:\/\/discord\.com\/channels\/\d+\/\d+\/\d+$/);
|
|
43
|
+
if (!regex.test(url))
|
|
44
|
+
return {};
|
|
42
45
|
const [messageId, channelId, guildId] = url.split("/").reverse();
|
|
43
46
|
return { messageId, channelId, guildId };
|
|
44
47
|
}
|
package/dist/index.cjs
CHANGED
|
@@ -3,20 +3,19 @@
|
|
|
3
3
|
const chars = require('./constants/chars.cjs');
|
|
4
4
|
const client = require('./constants/client.cjs');
|
|
5
5
|
const misc = require('./functions/misc.cjs');
|
|
6
|
+
const assets = require('./functions/embeds/assets.cjs');
|
|
7
|
+
const author = require('./functions/embeds/author.cjs');
|
|
8
|
+
const embedplus = require('./functions/embeds/embedplus.cjs');
|
|
9
|
+
const footer = require('./functions/embeds/footer.cjs');
|
|
10
|
+
const components = require('./functions/components.cjs');
|
|
6
11
|
const channels = require('./functions/channels.cjs');
|
|
7
12
|
const commands = require('./functions/commands.cjs');
|
|
8
|
-
const components = require('./functions/components.cjs');
|
|
9
13
|
const modals = require('./functions/modals.cjs');
|
|
10
14
|
const emojis = require('./functions/emojis.cjs');
|
|
11
|
-
const format = require('./functions/format.cjs');
|
|
12
15
|
const members = require('./functions/members.cjs');
|
|
13
16
|
const message = require('./functions/message.cjs');
|
|
14
17
|
const roles = require('./functions/roles.cjs');
|
|
15
18
|
const regex = require('./functions/regex.cjs');
|
|
16
|
-
const assets = require('./functions/embeds/assets.cjs');
|
|
17
|
-
const author = require('./functions/embeds/author.cjs');
|
|
18
|
-
const embedplus = require('./functions/embeds/embedplus.cjs');
|
|
19
|
-
const footer = require('./functions/embeds/footer.cjs');
|
|
20
19
|
const core = require('@magicyan/core');
|
|
21
20
|
|
|
22
21
|
|
|
@@ -25,27 +24,25 @@ exports.chars = chars.chars;
|
|
|
25
24
|
exports.CustomItents = client.CustomItents;
|
|
26
25
|
exports.CustomPartials = client.CustomPartials;
|
|
27
26
|
exports.setMobileStatus = misc.setMobileStatus;
|
|
27
|
+
exports.createEmbedAsset = assets.createEmbedAsset;
|
|
28
|
+
exports.createEmbedAuthor = author.createEmbedAuthor;
|
|
29
|
+
exports.EmbedPlusBuilder = embedplus.EmbedPlusBuilder;
|
|
30
|
+
exports.createEmbed = embedplus.createEmbed;
|
|
31
|
+
exports.createEmbedFooter = footer.createEmbedFooter;
|
|
32
|
+
exports.createLinkButton = components.createLinkButton;
|
|
33
|
+
exports.createRow = components.createRow;
|
|
28
34
|
exports.findChannel = channels.findChannel;
|
|
29
35
|
exports.getChannelUrlInfo = channels.getChannelUrlInfo;
|
|
30
36
|
exports.findCommand = commands.findCommand;
|
|
31
|
-
exports.createComponentsManager = components.createComponentsManager;
|
|
32
|
-
exports.createLinkButton = components.createLinkButton;
|
|
33
|
-
exports.createRow = components.createRow;
|
|
34
37
|
exports.createModalFields = modals.createModalFields;
|
|
35
38
|
exports.createModalInput = modals.createModalInput;
|
|
36
39
|
exports.modalFieldsToRecord = modals.modalFieldsToRecord;
|
|
37
40
|
exports.findEmoji = emojis.findEmoji;
|
|
38
|
-
exports.formatedMention = format.formatedMention;
|
|
39
41
|
exports.findMember = members.findMember;
|
|
40
42
|
exports.findMessage = message.findMessage;
|
|
41
43
|
exports.getMessageUrlInfo = message.getMessageUrlInfo;
|
|
42
44
|
exports.findRole = roles.findRole;
|
|
43
45
|
exports.extractMentionId = regex.extractMentionId;
|
|
44
|
-
exports.createEmbedAsset = assets.createEmbedAsset;
|
|
45
|
-
exports.createEmbedAuthor = author.createEmbedAuthor;
|
|
46
|
-
exports.EmbedPlusBuilder = embedplus.EmbedPlusBuilder;
|
|
47
|
-
exports.createEmbed = embedplus.createEmbed;
|
|
48
|
-
exports.createEmbedFooter = footer.createEmbedFooter;
|
|
49
46
|
Object.keys(core).forEach(function (k) {
|
|
50
47
|
if (k !== 'default' && !Object.prototype.hasOwnProperty.call(exports, k)) exports[k] = core[k];
|
|
51
48
|
});
|
package/dist/index.d.cts
CHANGED
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import * as discord_js from 'discord.js';
|
|
2
|
-
import { GatewayIntentBits, Partials,
|
|
2
|
+
import { GatewayIntentBits, Partials, Attachment, AttachmentBuilder, EmbedAssetData, Guild, GuildMember, User, ImageURLOptions, EmbedFooterData, APIEmbed, Embed, EmbedData, EmbedBuilder, AttachmentData, ColorResolvable, AnyComponentBuilder, ActionRowBuilder, ButtonBuilder, LinkButtonComponentData, ChannelType, CommandInteractionOption, Client, ApplicationCommand, TextInputBuilder, ModalSubmitFields, Collection, TextInputComponent, TextInputComponentData, GuildEmoji, GuildTextBasedChannel, Message, Role } from 'discord.js';
|
|
3
3
|
export * from '@magicyan/core';
|
|
4
4
|
|
|
5
5
|
declare const chars: {
|
|
@@ -18,6 +18,141 @@ declare const CustomPartials: {
|
|
|
18
18
|
|
|
19
19
|
declare function setMobileStatus(): void;
|
|
20
20
|
|
|
21
|
+
type EmbedPlusAssetData = string | Attachment | AttachmentBuilder | EmbedAssetData | undefined | null;
|
|
22
|
+
type EmbedAssetOptions = Omit<EmbedAssetData, "url">;
|
|
23
|
+
declare function createEmbedAsset(source: EmbedPlusAssetData, options?: EmbedAssetOptions): EmbedAssetData | undefined;
|
|
24
|
+
|
|
25
|
+
interface MemberAuthor {
|
|
26
|
+
property?: "username" | "displayName" | "id" | "globalName" | "nickname";
|
|
27
|
+
}
|
|
28
|
+
interface UserAuthor {
|
|
29
|
+
property?: "username" | "displayName" | "id" | "globalName";
|
|
30
|
+
}
|
|
31
|
+
interface GuildAuthor {
|
|
32
|
+
property?: "name" | "id";
|
|
33
|
+
}
|
|
34
|
+
type AuthorType = Guild | GuildMember | User;
|
|
35
|
+
type CreateEmbedAuthorOptions<T extends AuthorType> = {
|
|
36
|
+
iconURL?: string;
|
|
37
|
+
url?: string | null;
|
|
38
|
+
prefix?: string;
|
|
39
|
+
suffix?: string;
|
|
40
|
+
} & ImageURLOptions & (T extends User ? UserAuthor : T extends GuildMember ? MemberAuthor : T extends Guild ? GuildAuthor : never);
|
|
41
|
+
declare function createEmbedAuthor<T extends AuthorType>(type: T, options?: CreateEmbedAuthorOptions<T>): {
|
|
42
|
+
name: string;
|
|
43
|
+
url: string | undefined;
|
|
44
|
+
iconURL: string | undefined;
|
|
45
|
+
};
|
|
46
|
+
|
|
47
|
+
type EmbedPlusFieldData = {
|
|
48
|
+
name: string;
|
|
49
|
+
value: string;
|
|
50
|
+
inline?: boolean;
|
|
51
|
+
};
|
|
52
|
+
type FieldPredicate = (field: EmbedPlusFieldData, index: number, obj: EmbedPlusFieldData[]) => boolean;
|
|
53
|
+
declare class EmbedPlusFields {
|
|
54
|
+
private embed;
|
|
55
|
+
private set fields(value);
|
|
56
|
+
private get fields();
|
|
57
|
+
constructor(embed: EmbedPlusBuilder);
|
|
58
|
+
[Symbol.iterator](): {
|
|
59
|
+
next(): IteratorResult<EmbedPlusFieldData>;
|
|
60
|
+
};
|
|
61
|
+
get length(): number;
|
|
62
|
+
get record(): Record<string, string | undefined>;
|
|
63
|
+
/**
|
|
64
|
+
* Get a filed by index
|
|
65
|
+
* @param name Field name
|
|
66
|
+
*/
|
|
67
|
+
get(name: string): EmbedPlusFieldData | undefined;
|
|
68
|
+
/**
|
|
69
|
+
* Get a field by name
|
|
70
|
+
* @param index Field index
|
|
71
|
+
*/
|
|
72
|
+
get(index: number): EmbedPlusFieldData | undefined;
|
|
73
|
+
find(predicate: FieldPredicate): EmbedPlusFieldData | undefined;
|
|
74
|
+
push(...fields: EmbedPlusFieldData[]): void;
|
|
75
|
+
set(...fields: EmbedPlusFieldData[]): void;
|
|
76
|
+
map<U>(callback: (value: EmbedPlusFieldData, index: number, array: EmbedPlusFieldData[]) => U): U[];
|
|
77
|
+
update(predicate: string | number | FieldPredicate, field: Partial<EmbedPlusFieldData>): boolean;
|
|
78
|
+
delete(predicate: string | number | FieldPredicate): boolean;
|
|
79
|
+
/**
|
|
80
|
+
* Remove all fields
|
|
81
|
+
*/
|
|
82
|
+
clear(): this;
|
|
83
|
+
toArray(): EmbedPlusFieldData[];
|
|
84
|
+
private getPredicateIndex;
|
|
85
|
+
}
|
|
86
|
+
|
|
87
|
+
type EmbedPlusFooterData = {
|
|
88
|
+
text?: string | null;
|
|
89
|
+
iconURL?: string | null;
|
|
90
|
+
};
|
|
91
|
+
declare function createEmbedFooter(options: EmbedPlusFooterData): EmbedFooterData | undefined;
|
|
92
|
+
|
|
93
|
+
type EmbedPlusColorData = string & {} | ColorResolvable | null;
|
|
94
|
+
type EmbedPlusAuthorData = {
|
|
95
|
+
name: string;
|
|
96
|
+
url?: string;
|
|
97
|
+
iconURL?: string;
|
|
98
|
+
};
|
|
99
|
+
interface EmbedPlusData {
|
|
100
|
+
title?: string | null;
|
|
101
|
+
color?: EmbedPlusColorData | null;
|
|
102
|
+
description?: string | null;
|
|
103
|
+
url?: string | null;
|
|
104
|
+
thumbnail?: EmbedPlusAssetData;
|
|
105
|
+
image?: EmbedPlusAssetData;
|
|
106
|
+
fields?: Partial<EmbedPlusFieldData>[] | null;
|
|
107
|
+
timestamp?: string | number | Date | null;
|
|
108
|
+
footer?: EmbedPlusFooterData;
|
|
109
|
+
author?: EmbedPlusAuthorData;
|
|
110
|
+
}
|
|
111
|
+
type AnyEmbedData = APIEmbed | Embed | EmbedData;
|
|
112
|
+
interface MessageWithEmbeds {
|
|
113
|
+
embeds: Array<Embed>;
|
|
114
|
+
}
|
|
115
|
+
interface InteractionWithEmbeds {
|
|
116
|
+
message: MessageWithEmbeds;
|
|
117
|
+
}
|
|
118
|
+
interface EmbedPlusOptions extends EmbedPlusData {
|
|
119
|
+
extends?: EmbedPlusData | AnyEmbedData | EmbedBuilder;
|
|
120
|
+
mergeFields?: boolean;
|
|
121
|
+
}
|
|
122
|
+
declare class EmbedPlusBuilder extends EmbedBuilder {
|
|
123
|
+
fields: EmbedPlusFields;
|
|
124
|
+
constructor(data: EmbedPlusOptions);
|
|
125
|
+
update(data: EmbedPlusData): this;
|
|
126
|
+
has(property: keyof EmbedPlusData): boolean;
|
|
127
|
+
toArray(): EmbedPlusBuilder[];
|
|
128
|
+
/**
|
|
129
|
+
*
|
|
130
|
+
* @param data
|
|
131
|
+
* @param space Adds indentation, white space, and line break characters to the return-value JSON text to make it easier to read.
|
|
132
|
+
* @returns AttachmentBuilder
|
|
133
|
+
*
|
|
134
|
+
* Create a json attachment file from this embed
|
|
135
|
+
*/
|
|
136
|
+
toAttachment(data?: AttachmentData, space?: number): AttachmentBuilder;
|
|
137
|
+
toString(space?: number): string;
|
|
138
|
+
setBorderColor(color: EmbedPlusColorData | null): this;
|
|
139
|
+
setAsset(asset: "thumbnail" | "image", source: EmbedPlusAssetData): this;
|
|
140
|
+
static fromInteraction(interaction: InteractionWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
|
|
141
|
+
static fromMessage(message: MessageWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
|
|
142
|
+
}
|
|
143
|
+
type EmbedPlusProperty<P extends keyof EmbedPlusData> = EmbedPlusData[P];
|
|
144
|
+
interface CreateEmbedOptions<B extends boolean> extends EmbedPlusOptions {
|
|
145
|
+
array?: B;
|
|
146
|
+
interaction?: InteractionWithEmbeds;
|
|
147
|
+
}
|
|
148
|
+
type CreateEmbedReturn<B> = undefined extends B ? EmbedPlusBuilder : false extends B ? EmbedPlusBuilder : EmbedPlusBuilder[];
|
|
149
|
+
declare function createEmbed<B extends boolean>(options: CreateEmbedOptions<B>): CreateEmbedReturn<B>;
|
|
150
|
+
|
|
151
|
+
declare function createRow<Component extends AnyComponentBuilder>(...components: Component[]): ActionRowBuilder<Component>;
|
|
152
|
+
interface CreateLinkButtonData extends Omit<LinkButtonComponentData, "style" | "type"> {
|
|
153
|
+
}
|
|
154
|
+
declare function createLinkButton(data: CreateLinkButtonData): ButtonBuilder;
|
|
155
|
+
|
|
21
156
|
type GuildChannelType = Exclude<ChannelType, ChannelType.DM>;
|
|
22
157
|
type FindChannelFilter<T extends GuildChannelType> = (channel: GetChannelType<T>) => boolean;
|
|
23
158
|
type GetChannelType<Type extends GuildChannelType> = Extract<NonNullable<CommandInteractionOption<"cached">["channel"]>, {
|
|
@@ -57,41 +192,13 @@ declare function findCommand(guildOrClient: Guild | Client<true>): {
|
|
|
57
192
|
}> | undefined;
|
|
58
193
|
};
|
|
59
194
|
|
|
60
|
-
declare function createRow<Component extends AnyComponentBuilder>(...components: Component[]): ActionRowBuilder<Component>;
|
|
61
|
-
interface CreateLinkButtonData extends Omit<LinkButtonComponentData, "style" | "type"> {
|
|
62
|
-
}
|
|
63
|
-
declare function createLinkButton(data: CreateLinkButtonData): ButtonBuilder;
|
|
64
|
-
interface MessageComponentsManager {
|
|
65
|
-
getButton(customId: string): ButtonComponent | undefined;
|
|
66
|
-
getButton(customId: string, required: true): ButtonComponent;
|
|
67
|
-
getStringSelect(customId: string): StringSelectMenuComponent | undefined;
|
|
68
|
-
getStringSelect(customId: string, required: true): StringSelectMenuComponent;
|
|
69
|
-
getUserSelect(customId: string): UserSelectMenuComponent | undefined;
|
|
70
|
-
getUserSelect(customId: string, required: true): UserSelectMenuComponent;
|
|
71
|
-
getChannelSelect(customId: string): ChannelSelectMenuComponent | undefined;
|
|
72
|
-
getChannelSelect(customId: string, required: true): ChannelSelectMenuComponent;
|
|
73
|
-
getRoleSelect(customId: string): RoleSelectMenuComponent | undefined;
|
|
74
|
-
getRoleSelect(customId: string, required: true): RoleSelectMenuComponent;
|
|
75
|
-
getMentionableSelect(customId: string): MentionableSelectMenuComponent | undefined;
|
|
76
|
-
getMentionableSelect(customId: string, required: true): MentionableSelectMenuComponent;
|
|
77
|
-
resolved: {
|
|
78
|
-
buttons: ButtonComponent[];
|
|
79
|
-
stringSelects: StringSelectMenuComponent[];
|
|
80
|
-
userSelects: UserSelectMenuComponent[];
|
|
81
|
-
channelSelects: ChannelSelectMenuComponent[];
|
|
82
|
-
roleSelects: RoleSelectMenuComponent[];
|
|
83
|
-
mentionableSelects: MentionableSelectMenuComponent[];
|
|
84
|
-
};
|
|
85
|
-
}
|
|
86
|
-
declare function createComponentsManager(components: ActionRow<MessageActionRowComponent>[]): MessageComponentsManager;
|
|
87
|
-
|
|
88
195
|
type TextInputData = Omit<TextInputComponentData, "type">;
|
|
89
196
|
type CreateModalInputData = TextInputData;
|
|
90
197
|
declare function createModalInput(data: CreateModalInputData): ActionRowBuilder<TextInputBuilder>;
|
|
91
198
|
type ModalFieldsData = Record<string, Omit<TextInputData, "customId">>;
|
|
92
199
|
declare function createModalFields(data: ModalFieldsData): ActionRowBuilder<TextInputBuilder>[];
|
|
93
|
-
type ModalFieldsRecord = Record<
|
|
94
|
-
declare function modalFieldsToRecord(fields: ModalSubmitFields | Collection<string, TextInputComponent>): ModalFieldsRecord
|
|
200
|
+
type ModalFieldsRecord<K extends string> = Record<K, string>;
|
|
201
|
+
declare function modalFieldsToRecord<K extends string = string>(fields: ModalSubmitFields | Collection<string, TextInputComponent>): ModalFieldsRecord<K>;
|
|
95
202
|
|
|
96
203
|
type FindEmojiFilter = (emoji: GuildEmoji) => boolean;
|
|
97
204
|
declare function findEmoji(guildOrClient: Guild | Client): {
|
|
@@ -100,8 +207,6 @@ declare function findEmoji(guildOrClient: Guild | Client): {
|
|
|
100
207
|
byFilter(filter: FindEmojiFilter): GuildEmoji | undefined;
|
|
101
208
|
};
|
|
102
209
|
|
|
103
|
-
declare function formatedMention(ref: GuildBasedChannel | Role | User | undefined | null, alt?: string): string;
|
|
104
|
-
|
|
105
210
|
type FindMemberFilter = (member: GuildMember) => boolean;
|
|
106
211
|
declare function findMember(guild: Guild): {
|
|
107
212
|
byGlobalName(globalName: string, and?: FindMemberFilter): GuildMember | undefined;
|
|
@@ -165,115 +270,4 @@ declare function findRole(guild: Guild): {
|
|
|
165
270
|
*/
|
|
166
271
|
declare function extractMentionId(mention: string): string | null;
|
|
167
272
|
|
|
168
|
-
type EmbedPlusAssetData
|
|
169
|
-
type EmbedAssetOptions = Omit<EmbedAssetData, "url">;
|
|
170
|
-
declare function createEmbedAsset(source: EmbedPlusAssetData, options?: EmbedAssetOptions): EmbedAssetData | undefined;
|
|
171
|
-
|
|
172
|
-
interface UserAuthorOption {
|
|
173
|
-
user: User;
|
|
174
|
-
property?: "username" | "displayName" | "id" | "globalName";
|
|
175
|
-
}
|
|
176
|
-
interface MemberAuthorOption {
|
|
177
|
-
member: GuildMember;
|
|
178
|
-
property?: "username" | "displayName" | "id" | "globalName" | "nickname";
|
|
179
|
-
}
|
|
180
|
-
type AuthorOption = UserAuthorOption | MemberAuthorOption;
|
|
181
|
-
type CreateEmbedAuthorOptions = AuthorOption & ImageURLOptions & {
|
|
182
|
-
iconURL?: string;
|
|
183
|
-
url?: string;
|
|
184
|
-
prefix?: string;
|
|
185
|
-
suffix?: string;
|
|
186
|
-
};
|
|
187
|
-
declare function createEmbedAuthor(options: CreateEmbedAuthorOptions): EmbedAuthorData;
|
|
188
|
-
|
|
189
|
-
type EmbedPlusFooterData = {
|
|
190
|
-
text?: string | null;
|
|
191
|
-
iconURL?: string | null;
|
|
192
|
-
};
|
|
193
|
-
declare function createEmbedFooter(options: EmbedPlusFooterData): EmbedFooterData | undefined;
|
|
194
|
-
|
|
195
|
-
type EmbedPlusFieldData = {
|
|
196
|
-
name: string;
|
|
197
|
-
value: string;
|
|
198
|
-
inline?: boolean;
|
|
199
|
-
};
|
|
200
|
-
type FieldPredicate = (field: EmbedPlusFieldData, index: number, obj: EmbedPlusFieldData[]) => boolean;
|
|
201
|
-
declare class EmbedPlusFields {
|
|
202
|
-
private embed;
|
|
203
|
-
private set fields(value);
|
|
204
|
-
private get fields();
|
|
205
|
-
constructor(embed: EmbedPlusBuilder);
|
|
206
|
-
[Symbol.iterator](): {
|
|
207
|
-
next(): IteratorResult<EmbedPlusFieldData>;
|
|
208
|
-
};
|
|
209
|
-
get length(): number;
|
|
210
|
-
get record(): Record<string, string | undefined>;
|
|
211
|
-
/**
|
|
212
|
-
* Get a filed by index
|
|
213
|
-
* @param name Field name
|
|
214
|
-
*/
|
|
215
|
-
get(name: string): EmbedPlusFieldData | undefined;
|
|
216
|
-
/**
|
|
217
|
-
* Get a field by name
|
|
218
|
-
* @param index Field index
|
|
219
|
-
*/
|
|
220
|
-
get(index: number): EmbedPlusFieldData | undefined;
|
|
221
|
-
find(predicate: FieldPredicate): EmbedPlusFieldData | undefined;
|
|
222
|
-
push(...fields: EmbedPlusFieldData[]): void;
|
|
223
|
-
set(...fields: EmbedPlusFieldData[]): void;
|
|
224
|
-
update(predicate: string | number | FieldPredicate, field: Partial<EmbedPlusFieldData>): boolean;
|
|
225
|
-
delete(predicate: string | number | FieldPredicate): boolean;
|
|
226
|
-
toArray(): EmbedPlusFieldData[];
|
|
227
|
-
private getPredicateIndex;
|
|
228
|
-
}
|
|
229
|
-
|
|
230
|
-
type EmbedPlusColorData = string & {} | ColorResolvable | null;
|
|
231
|
-
type EmbedPlusAuthorData = {
|
|
232
|
-
name: string;
|
|
233
|
-
url?: string;
|
|
234
|
-
iconURL?: string;
|
|
235
|
-
};
|
|
236
|
-
interface EmbedPlusData {
|
|
237
|
-
title?: string | null;
|
|
238
|
-
color?: EmbedPlusColorData | null;
|
|
239
|
-
description?: string | null;
|
|
240
|
-
url?: string | null;
|
|
241
|
-
thumbnail?: EmbedPlusAssetData;
|
|
242
|
-
image?: EmbedPlusAssetData;
|
|
243
|
-
fields?: Partial<EmbedPlusFieldData>[] | null;
|
|
244
|
-
timestamp?: string | number | Date | null;
|
|
245
|
-
footer?: EmbedPlusFooterData;
|
|
246
|
-
author?: EmbedPlusAuthorData;
|
|
247
|
-
}
|
|
248
|
-
type AnyEmbed = APIEmbed | Embed | EmbedBuilder | EmbedData;
|
|
249
|
-
interface MessageWithEmbeds {
|
|
250
|
-
embeds: Array<Embed>;
|
|
251
|
-
}
|
|
252
|
-
interface InteractionWithEmbeds {
|
|
253
|
-
message: MessageWithEmbeds;
|
|
254
|
-
}
|
|
255
|
-
interface EmbedPlusOptions extends EmbedPlusData {
|
|
256
|
-
extends?: Omit<EmbedPlusData, keyof EmbedPlusOptions> | AnyEmbed;
|
|
257
|
-
mergeFields?: boolean;
|
|
258
|
-
}
|
|
259
|
-
declare class EmbedPlusBuilder extends EmbedBuilder {
|
|
260
|
-
fields: EmbedPlusFields;
|
|
261
|
-
constructor(data: EmbedPlusOptions);
|
|
262
|
-
update(data: EmbedPlusData): this;
|
|
263
|
-
has(property: keyof Omit<EmbedPlusData, keyof EmbedPlusOptions>): boolean;
|
|
264
|
-
toArray(): EmbedPlusBuilder[];
|
|
265
|
-
toString(space?: number): string;
|
|
266
|
-
setBorderColor(color: EmbedPlusColorData | null): this;
|
|
267
|
-
setAsset(asset: "thumbnail" | "image", source: EmbedPlusAssetData): this;
|
|
268
|
-
static fromInteraction(interaction: InteractionWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
|
|
269
|
-
static fromMessage(message: MessageWithEmbeds, index?: number, data?: EmbedPlusData): EmbedPlusBuilder;
|
|
270
|
-
}
|
|
271
|
-
type EmbedPlusProperty<P extends keyof EmbedPlusData> = EmbedPlusData[P];
|
|
272
|
-
interface CreateEmbedOptions<B extends boolean> extends EmbedPlusOptions {
|
|
273
|
-
array?: B;
|
|
274
|
-
interaction?: InteractionWithEmbeds;
|
|
275
|
-
}
|
|
276
|
-
type CreateEmbedReturn<B> = undefined extends B ? EmbedPlusBuilder : false extends B ? EmbedPlusBuilder : EmbedPlusBuilder[];
|
|
277
|
-
declare function createEmbed<B extends boolean>(options: CreateEmbedOptions<B>): CreateEmbedReturn<B>;
|
|
278
|
-
|
|
279
|
-
export { type AnyEmbed, CustomItents, CustomPartials, type EmbedPlusAssetData, EmbedPlusBuilder, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, createComponentsManager, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, formatedMention, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };
|
|
273
|
+
export { type AnyEmbedData, CustomItents, CustomPartials, type EmbedPlusAssetData, EmbedPlusBuilder, type EmbedPlusData, type EmbedPlusFooterData, type EmbedPlusProperty, chars, createEmbed, createEmbedAsset, createEmbedAuthor, createEmbedFooter, createLinkButton, createModalFields, createModalInput, createRow, extractMentionId, findChannel, findCommand, findEmoji, findMember, findMessage, findRole, getChannelUrlInfo, getMessageUrlInfo, modalFieldsToRecord, setMobileStatus };
|