@nerimity/nerimity.js 1.16.2 → 1.17.0
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/build/EventNames.d.ts +13 -0
- package/build/EventNames.d.ts.map +1 -1
- package/build/EventNames.js +5 -0
- package/build/EventNames.js.map +1 -1
- package/build/RawData.d.ts +25 -0
- package/build/RawData.d.ts.map +1 -1
- package/build/RawData.js.map +1 -1
- package/build/classes/Client.d.ts +6 -0
- package/build/classes/Client.d.ts.map +1 -1
- package/build/classes/Client.js +35 -1
- package/build/classes/Client.js.map +1 -1
- package/build/classes/Collection.d.ts +6 -1
- package/build/classes/Collection.d.ts.map +1 -1
- package/build/classes/Collection.js +25 -1
- package/build/classes/Collection.js.map +1 -1
- package/build/classes/Message.d.ts +15 -1
- package/build/classes/Message.d.ts.map +1 -1
- package/build/classes/Message.js +32 -6
- package/build/classes/Message.js.map +1 -1
- package/build/classes/Reaction.d.ts +23 -0
- package/build/classes/Reaction.d.ts.map +1 -0
- package/build/classes/Reaction.js +22 -0
- package/build/classes/Reaction.js.map +1 -0
- package/build/classes/Server.d.ts +3 -1
- package/build/classes/Server.d.ts.map +1 -1
- package/build/classes/Server.js +2 -2
- package/build/classes/Server.js.map +1 -1
- package/build/classes/ServerMember.d.ts +3 -1
- package/build/classes/ServerMember.d.ts.map +1 -1
- package/build/classes/ServerMember.js +2 -2
- package/build/classes/ServerMember.js.map +1 -1
- package/build/services/MessageService.d.ts +1 -0
- package/build/services/MessageService.d.ts.map +1 -1
- package/build/services/MessageService.js +1 -1
- package/build/services/MessageService.js.map +1 -1
- package/build/services/ServerService.d.ts +1 -1
- package/build/services/ServerService.d.ts.map +1 -1
- package/build/services/ServerService.js +2 -1
- package/build/services/ServerService.js.map +1 -1
- package/package.json +1 -1
- package/src/EventNames.ts +11 -0
- package/src/RawData.ts +26 -0
- package/src/classes/Client.ts +66 -3
- package/src/classes/Collection.ts +34 -1
- package/src/classes/Message.ts +40 -8
- package/src/classes/Reaction.ts +45 -0
- package/src/classes/Server.ts +2 -2
- package/src/classes/ServerMember.ts +7 -2
- package/src/services/MessageService.ts +2 -1
- package/src/services/ServerService.ts +3 -1
|
@@ -19,7 +19,9 @@ export declare class ServerMember {
|
|
|
19
19
|
nickname?: string | null;
|
|
20
20
|
constructor(client: Client, member: RawServerMember);
|
|
21
21
|
toString(): string;
|
|
22
|
-
ban(
|
|
22
|
+
ban(opts?: {
|
|
23
|
+
reason?: string;
|
|
24
|
+
}): Promise<any>;
|
|
23
25
|
unban(): Promise<any>;
|
|
24
26
|
kick(): Promise<any>;
|
|
25
27
|
get roles(): import("./ServerRole").ServerRole[];
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerMember.d.ts","sourceRoot":"","sources":["../../src/classes/ServerMember.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAGrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,aAAa;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAC5B,MAAM,EAAE,MAAM;IAI1B,QAAQ,CAAC,SAAS,EAAE,eAAe;CAKpC;AAED,qBAAa,YAAY;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;IASnD,QAAQ;IAGF,GAAG;
|
|
1
|
+
{"version":3,"file":"ServerMember.d.ts","sourceRoot":"","sources":["../../src/classes/ServerMember.ts"],"names":[],"mappings":"AAAA,OAAO,EAEL,oBAAoB,EAGrB,MAAM,YAAY,CAAC;AACpB,OAAO,EAAE,eAAe,EAAE,MAAM,YAAY,CAAC;AAM7C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,UAAU,EAAE,MAAM,cAAc,CAAC;AAC1C,OAAO,EAAE,MAAM,EAAE,MAAM,UAAU,CAAC;AAClC,OAAO,EAAE,IAAI,EAAE,MAAM,QAAQ,CAAC;AAE9B,qBAAa,aAAa;IACxB,MAAM,EAAE,MAAM,CAAC;IACf,KAAK,EAAE,UAAU,CAAC,MAAM,EAAE,YAAY,CAAC,CAAC;gBAC5B,MAAM,EAAE,MAAM;IAI1B,QAAQ,CAAC,SAAS,EAAE,eAAe;CAKpC;AAED,qBAAa,YAAY;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,EAAE,EAAE,MAAM,CAAC;IACX,IAAI,EAAE,IAAI,CAAC;IACX,MAAM,EAAE,MAAM,CAAC;IACf,OAAO,EAAE,MAAM,EAAE,CAAC;IAClB,QAAQ,CAAC,EAAE,MAAM,GAAG,IAAI,CAAC;gBAEb,MAAM,EAAE,MAAM,EAAE,MAAM,EAAE,eAAe;IASnD,QAAQ;IAGF,GAAG,CAAC,IAAI,CAAC,EAAE;QAAE,MAAM,CAAC,EAAE,MAAM,CAAA;KAAE;IAQ9B,KAAK;IAGL,IAAI;IAGV,IAAI,KAAK,wCAIR;IAED,WAAW,CAAC,IAAI,EAAE,YAAY;IAe9B,aAAa,CACX,UAAU,EAAE,oBAAoB,EAChC,WAAW,UAAQ,EACnB,aAAa,UAAQ;CAUxB"}
|
|
@@ -28,8 +28,8 @@ class ServerMember {
|
|
|
28
28
|
toString() {
|
|
29
29
|
return `[@:${this.id}]`;
|
|
30
30
|
}
|
|
31
|
-
async ban() {
|
|
32
|
-
return (0, ServerService_1.banServerMember)(this.client, this.server.id, this.user.id);
|
|
31
|
+
async ban(opts) {
|
|
32
|
+
return (0, ServerService_1.banServerMember)(this.client, this.server.id, this.user.id, opts?.reason);
|
|
33
33
|
}
|
|
34
34
|
async unban() {
|
|
35
35
|
return (0, ServerService_1.unbanServerMember)(this.client, this.server.id, this.user.id);
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerMember.js","sourceRoot":"","sources":["../../src/classes/ServerMember.ts"],"names":[],"mappings":";;;AAAA,wCAKoB;AAEpB,6DAImC;AAEnC,6CAA0C;AAI1C,MAAa,aAAa;IAGxB,YAAY,MAAc;QACxB,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,KAAK,GAAG,IAAI,uBAAU,EAAE,CAAC;IAChC,CAAC;IACD,QAAQ,CAAC,SAA0B;QACjC,MAAM,MAAM,GAAG,IAAI,YAAY,CAAC,IAAI,CAAC,MAAM,EAAE,SAAS,CAAC,CAAC;QACxD,IAAI,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,EAAE,MAAM,CAAC,CAAC;QACvC,OAAO,MAAM,CAAC;IAChB,CAAC;CACF;AAZD,sCAYC;AAED,MAAa,YAAY;IAQvB,YAAY,MAAc,EAAE,MAAuB;QACjD,IAAI,CAAC,MAAM,GAAG,MAAM,CAAC;QACrB,IAAI,CAAC,EAAE,GAAG,MAAM,CAAC,IAAI,CAAC,EAAE,CAAC;QACzB,IAAI,CAAC,OAAO,GAAG,MAAM,CAAC,OAAO,CAAC;QAC9B,IAAI,CAAC,QAAQ,GAAG,MAAM,CAAC,QAAQ,CAAC;QAEhC,IAAI,CAAC,IAAI,GAAG,IAAI,CAAC,MAAM,CAAC,KAAK,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,IAAI,CAAC,EAAE,CAAE,CAAC;QACzD,IAAI,CAAC,MAAM,GAAG,IAAI,CAAC,MAAM,CAAC,OAAO,CAAC,KAAK,CAAC,GAAG,CAAC,MAAM,CAAC,QAAQ,CAAE,CAAC;IAChE,CAAC;IACD,QAAQ;QACN,OAAO,MAAM,IAAI,CAAC,EAAE,GAAG,CAAC;IAC1B,CAAC;IACD,KAAK,CAAC,GAAG;
|
|
1
|
+
{"version":3,"file":"ServerMember.js","sourceRoot":"","sources":["../../src/classes/ServerMember.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAC3C,OAAO,EAAE,UAAU,EAAE,gBAAgB,EAAE,MAAM,YAAY,CAAC;AAI1D,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;IAChB,iBAAiB,CAAC,EAAE,MAAM,CAAC;IAC3B,SAAS,CAAC,EAAE,MAAM,CAAC;IACnB,OAAO,CAAC,EAAE,gBAAgB,EAAE,CAAC;IAC7B,iBAAiB,CAAC,EAAE,MAAM,EAAE,CAAC;IAC7B,cAAc,CAAC,EAAE,OAAO,CAAC;IACzB,MAAM,CAAC,EAAE,OAAO,CAAC;CAClB;AAED,wBAAsB,WAAW,CAAC,IAAI,EAAE,eAAe,uBAsBtD;AAED,UAAU,eAAe;IACvB,MAAM,EAAE,MAAM,CAAC;IACf,SAAS,EAAE,MAAM,CAAC;IAClB,SAAS,EAAE,MAAM,CAAC;IAClB,OAAO,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"MessageService.d.ts","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":"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"}
|
|
@@ -36,7 +36,7 @@ function editMessage(opts) {
|
|
|
36
36
|
client: opts.client,
|
|
37
37
|
url: serviceEndpoints_1.ServiceEndpoints.EditMessage(opts.channelId, opts.messageId),
|
|
38
38
|
method: "PATCH",
|
|
39
|
-
body: { content: opts.content },
|
|
39
|
+
body: { content: opts.content, htmlEmbed: opts.htmlEmbed },
|
|
40
40
|
useToken: true,
|
|
41
41
|
}).catch((err) => {
|
|
42
42
|
throw err.message;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"MessageService.js","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":";;;;;AAiBA,kCAsBC;
|
|
1
|
+
{"version":3,"file":"MessageService.js","sourceRoot":"","sources":["../../src/services/MessageService.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,5 +1,5 @@
|
|
|
1
1
|
import { Client } from "../classes/Client";
|
|
2
|
-
export declare function banServerMember(client: Client, serverId: string, userId: string): Promise<any>;
|
|
2
|
+
export declare function banServerMember(client: Client, serverId: string, userId: string, reason?: string): Promise<any>;
|
|
3
3
|
export declare function unbanServerMember(client: Client, serverId: string, userId: string): Promise<any>;
|
|
4
4
|
export declare function kickServerMember(client: Client, serverId: string, userId: string): Promise<any>;
|
|
5
5
|
//# sourceMappingURL=ServerService.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerService.d.ts","sourceRoot":"","sources":["../../src/services/ServerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,
|
|
1
|
+
{"version":3,"file":"ServerService.d.ts","sourceRoot":"","sources":["../../src/services/ServerService.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,mBAAmB,CAAC;AAI3C,wBAAsB,eAAe,CACnC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,EACd,MAAM,CAAC,EAAE,MAAM,gBAWhB;AAED,wBAAsB,iBAAiB,CACrC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,gBAUf;AACD,wBAAsB,gBAAgB,CACpC,MAAM,EAAE,MAAM,EACd,QAAQ,EAAE,MAAM,EAChB,MAAM,EAAE,MAAM,gBAUf"}
|
|
@@ -5,12 +5,13 @@ exports.unbanServerMember = unbanServerMember;
|
|
|
5
5
|
exports.kickServerMember = kickServerMember;
|
|
6
6
|
const MessageService_1 = require("./MessageService");
|
|
7
7
|
const serviceEndpoints_1 = require("./serviceEndpoints");
|
|
8
|
-
async function banServerMember(client, serverId, userId) {
|
|
8
|
+
async function banServerMember(client, serverId, userId, reason) {
|
|
9
9
|
return await (0, MessageService_1.request)({
|
|
10
10
|
client: client,
|
|
11
11
|
url: serviceEndpoints_1.ServiceEndpoints.serverMemberBan(serverId, userId),
|
|
12
12
|
method: "POST",
|
|
13
13
|
useToken: true,
|
|
14
|
+
body: { reason },
|
|
14
15
|
}).catch((err) => {
|
|
15
16
|
throw new Error(`Failed to ban server member. ${err.message}`);
|
|
16
17
|
});
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"ServerService.js","sourceRoot":"","sources":["../../src/services/ServerService.ts"],"names":[],"mappings":";;AAIA,
|
|
1
|
+
{"version":3,"file":"ServerService.js","sourceRoot":"","sources":["../../src/services/ServerService.ts"],"names":[],"mappings":";;AAIA,0CAeC;AAED,8CAaC;AACD,4CAaC;AA/CD,qDAA2C;AAC3C,yDAAsD;AAE/C,KAAK,UAAU,eAAe,CACnC,MAAc,EACd,QAAgB,EAChB,MAAc,EACd,MAAe;IAEf,OAAO,MAAM,IAAA,wBAAO,EAAM;QACxB,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,mCAAgB,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC;QACvD,MAAM,EAAE,MAAM;QACd,QAAQ,EAAE,IAAI;QACd,IAAI,EAAE,EAAE,MAAM,EAAE;KACjB,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,gCAAgC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACjE,CAAC,CAAC,CAAC;AACL,CAAC;AAEM,KAAK,UAAU,iBAAiB,CACrC,MAAc,EACd,QAAgB,EAChB,MAAc;IAEd,OAAO,MAAM,IAAA,wBAAO,EAAM;QACxB,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,mCAAgB,CAAC,eAAe,CAAC,QAAQ,EAAE,MAAM,CAAC;QACvD,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,kCAAkC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IACnE,CAAC,CAAC,CAAC;AACL,CAAC;AACM,KAAK,UAAU,gBAAgB,CACpC,MAAc,EACd,QAAgB,EAChB,MAAc;IAEd,OAAO,MAAM,IAAA,wBAAO,EAAM;QACxB,MAAM,EAAE,MAAM;QACd,GAAG,EAAE,mCAAgB,CAAC,gBAAgB,CAAC,QAAQ,EAAE,MAAM,CAAC;QACxD,MAAM,EAAE,QAAQ;QAChB,QAAQ,EAAE,IAAI;KACf,CAAC,CAAC,KAAK,CAAC,CAAC,GAAG,EAAE,EAAE;QACf,MAAM,IAAI,KAAK,CAAC,iCAAiC,GAAG,CAAC,OAAO,EAAE,CAAC,CAAC;IAClE,CAAC,CAAC,CAAC;AACL,CAAC"}
|
package/package.json
CHANGED
package/src/EventNames.ts
CHANGED
|
@@ -4,11 +4,16 @@ import { Server } from "./classes/Server";
|
|
|
4
4
|
import { ServerChannel } from "./classes/ServerChannel";
|
|
5
5
|
import { ServerMember } from "./classes/ServerMember";
|
|
6
6
|
import { ServerRole, ServerRoles } from "./classes/ServerRole";
|
|
7
|
+
import { Reaction } from "./classes/Reaction";
|
|
8
|
+
import { User } from "./classes/User";
|
|
7
9
|
|
|
8
10
|
export const ClientEvents = {
|
|
9
11
|
Ready: "ready",
|
|
10
12
|
MessageCreate: "messageCreate",
|
|
11
13
|
MessageUpdate: "messageUpdate",
|
|
14
|
+
MessageDelete: "messageDelete",
|
|
15
|
+
MessageReactionAdded: "messageReactionAdded",
|
|
16
|
+
MessageReactionRemoved: "messageReactionRemoved",
|
|
12
17
|
ServerMemberLeft: "serverMemberLeft",
|
|
13
18
|
ServerMemberJoined: "serverMemberJoined",
|
|
14
19
|
ServerMemberUpdated: "serverMemberUpdated",
|
|
@@ -28,6 +33,9 @@ export type ClientEventMap = {
|
|
|
28
33
|
ready: () => void;
|
|
29
34
|
messageCreate: (message: Message) => void;
|
|
30
35
|
messageUpdate: (message: Message) => void;
|
|
36
|
+
messageDelete: (data: { messageId: string; channelId: string }) => void;
|
|
37
|
+
messageReactionAdded: (data: Reaction, user?: User) => void;
|
|
38
|
+
messageReactionRemoved: (data: Reaction, user?: User) => void;
|
|
31
39
|
serverMemberLeft: (member: ServerMember) => void;
|
|
32
40
|
serverMemberJoined: (member: ServerMember) => void;
|
|
33
41
|
serverMemberUpdated: (member: ServerMember) => void;
|
|
@@ -85,6 +93,9 @@ export const SocketServerEvents = {
|
|
|
85
93
|
|
|
86
94
|
MESSAGE_BUTTON_CLICKED: "message:button_clicked",
|
|
87
95
|
|
|
96
|
+
MESSAGE_REACTION_ADDED: "message:reaction_added",
|
|
97
|
+
MESSAGE_REACTION_REMOVED: "message:reaction_removed",
|
|
98
|
+
|
|
88
99
|
CHANNEL_TYPING: "channel:typing",
|
|
89
100
|
MESSAGE_CREATED: "message:created",
|
|
90
101
|
MESSAGE_UPDATED: "message:updated",
|
package/src/RawData.ts
CHANGED
|
@@ -12,6 +12,14 @@ export interface AuthenticatedPayload {
|
|
|
12
12
|
lastSeenServerChannelIds: Record<string, number>; // { [channelId]: timestamp }
|
|
13
13
|
}
|
|
14
14
|
|
|
15
|
+
export interface RawMessageReaction {
|
|
16
|
+
name: string;
|
|
17
|
+
emojiId?: string | null;
|
|
18
|
+
gif?: boolean;
|
|
19
|
+
|
|
20
|
+
reacted: boolean;
|
|
21
|
+
count: number;
|
|
22
|
+
}
|
|
15
23
|
export interface RawBotCommand {
|
|
16
24
|
name: string;
|
|
17
25
|
description: string;
|
|
@@ -29,6 +37,24 @@ export interface MessageButtonClickPayload {
|
|
|
29
37
|
data?: Record<string, string>;
|
|
30
38
|
}
|
|
31
39
|
|
|
40
|
+
export interface ReactionAddedPayload {
|
|
41
|
+
messageId: string;
|
|
42
|
+
channelId: string;
|
|
43
|
+
count: number;
|
|
44
|
+
reactedByUserId: string;
|
|
45
|
+
emojiId?: string;
|
|
46
|
+
name: string;
|
|
47
|
+
gif?: boolean;
|
|
48
|
+
}
|
|
49
|
+
export interface ReactionRemovedPayload {
|
|
50
|
+
messageId: string;
|
|
51
|
+
channelId: string;
|
|
52
|
+
count: number;
|
|
53
|
+
reactionRemovedByUserId: string;
|
|
54
|
+
emojiId?: string;
|
|
55
|
+
name: string;
|
|
56
|
+
gif?: boolean;
|
|
57
|
+
}
|
|
32
58
|
export interface RawServer {
|
|
33
59
|
id: string;
|
|
34
60
|
name: string;
|
package/src/classes/Client.ts
CHANGED
|
@@ -15,6 +15,8 @@ import {
|
|
|
15
15
|
RawServer,
|
|
16
16
|
RawServerMember,
|
|
17
17
|
RawServerRole,
|
|
18
|
+
ReactionAddedPayload,
|
|
19
|
+
ReactionRemovedPayload,
|
|
18
20
|
} from "../RawData";
|
|
19
21
|
|
|
20
22
|
import { path, updatePath } from "../services/serviceEndpoints";
|
|
@@ -28,9 +30,10 @@ import { Servers } from "./Server";
|
|
|
28
30
|
import { Posts } from "./Post";
|
|
29
31
|
import { ServerMember } from "./ServerMember";
|
|
30
32
|
import { ServerChannel } from "./ServerChannel";
|
|
31
|
-
import {
|
|
33
|
+
import { Messages } from "./Message";
|
|
32
34
|
import { ServerRole } from "./ServerRole";
|
|
33
35
|
import { Channels } from "./Channels";
|
|
36
|
+
import { Reaction } from "./Reaction";
|
|
34
37
|
|
|
35
38
|
export const Events = ClientEvents;
|
|
36
39
|
|
|
@@ -42,8 +45,9 @@ export class Client extends EventEmitter<ClientEventMap> {
|
|
|
42
45
|
channels: Channels;
|
|
43
46
|
servers: Servers;
|
|
44
47
|
posts: Posts;
|
|
48
|
+
messages: Messages;
|
|
45
49
|
|
|
46
|
-
constructor(opts?: { urlOverride?: string }) {
|
|
50
|
+
constructor(opts?: { urlOverride?: string; messageCacheLimit?: number }) {
|
|
47
51
|
super();
|
|
48
52
|
if (opts?.urlOverride) {
|
|
49
53
|
updatePath(opts.urlOverride);
|
|
@@ -56,6 +60,7 @@ export class Client extends EventEmitter<ClientEventMap> {
|
|
|
56
60
|
this.users = new Users(this);
|
|
57
61
|
this.servers = new Servers(this);
|
|
58
62
|
this.posts = new Posts(this);
|
|
63
|
+
this.messages = new Messages(this, opts?.messageCacheLimit);
|
|
59
64
|
new EventHandlers(this);
|
|
60
65
|
}
|
|
61
66
|
|
|
@@ -80,6 +85,10 @@ class EventHandlers {
|
|
|
80
85
|
SocketServerEvents.USER_AUTHENTICATED,
|
|
81
86
|
this.onAuthenticated.bind(this)
|
|
82
87
|
);
|
|
88
|
+
client.socket.on(
|
|
89
|
+
SocketServerEvents.FRIEND_REQUEST_ACCEPTED,
|
|
90
|
+
this.onAuthenticated.bind(this)
|
|
91
|
+
);
|
|
83
92
|
|
|
84
93
|
client.socket.on(
|
|
85
94
|
SocketServerEvents.SERVER_MEMBER_JOINED,
|
|
@@ -121,6 +130,16 @@ class EventHandlers {
|
|
|
121
130
|
this.onMessageCreated.bind(this)
|
|
122
131
|
);
|
|
123
132
|
|
|
133
|
+
client.socket.on(
|
|
134
|
+
SocketServerEvents.MESSAGE_UPDATED,
|
|
135
|
+
this.onMessageUpdated.bind(this)
|
|
136
|
+
);
|
|
137
|
+
|
|
138
|
+
client.socket.on(
|
|
139
|
+
SocketServerEvents.MESSAGE_DELETED,
|
|
140
|
+
this.onMessageDeleted.bind(this)
|
|
141
|
+
);
|
|
142
|
+
|
|
124
143
|
client.socket.on(
|
|
125
144
|
SocketServerEvents.MESSAGE_BUTTON_CLICKED,
|
|
126
145
|
this.onMessageButtonClicked.bind(this)
|
|
@@ -141,6 +160,14 @@ class EventHandlers {
|
|
|
141
160
|
SocketServerEvents.SERVER_ROLE_ORDER_UPDATED,
|
|
142
161
|
this.onServerRoleOrderUpdated.bind(this)
|
|
143
162
|
);
|
|
163
|
+
client.socket.on(
|
|
164
|
+
SocketServerEvents.MESSAGE_REACTION_ADDED,
|
|
165
|
+
this.onMessageReactionAdded.bind(this)
|
|
166
|
+
);
|
|
167
|
+
client.socket.on(
|
|
168
|
+
SocketServerEvents.MESSAGE_REACTION_REMOVED,
|
|
169
|
+
this.onMessageReactionRemoved.bind(this)
|
|
170
|
+
);
|
|
144
171
|
}
|
|
145
172
|
onConnect() {
|
|
146
173
|
this.socket.emit(SocketClientEvents.AUTHENTICATE, {
|
|
@@ -281,9 +308,35 @@ class EventHandlers {
|
|
|
281
308
|
server?.members.cache.delete(payload.userId);
|
|
282
309
|
}
|
|
283
310
|
onMessageCreated(payload: { message: RawMessage }) {
|
|
284
|
-
const message =
|
|
311
|
+
const message = this.client.messages.setCache(payload.message);
|
|
285
312
|
this.client.emit(ClientEvents.MessageCreate, message);
|
|
286
313
|
}
|
|
314
|
+
onMessageUpdated(payload: {
|
|
315
|
+
channelId: string;
|
|
316
|
+
messageId: string;
|
|
317
|
+
updated: Partial<RawMessage>;
|
|
318
|
+
}) {
|
|
319
|
+
const message = this.client.messages.cache.get(payload.messageId);
|
|
320
|
+
const updated = payload.updated;
|
|
321
|
+
|
|
322
|
+
if (message) {
|
|
323
|
+
message._update(updated);
|
|
324
|
+
}
|
|
325
|
+
if (message) {
|
|
326
|
+
this.client.emit(ClientEvents.MessageUpdate, message);
|
|
327
|
+
}
|
|
328
|
+
}
|
|
329
|
+
onMessageDeleted(payload: {
|
|
330
|
+
channelId: string;
|
|
331
|
+
messageId: string;
|
|
332
|
+
deletedAttachmentCount: number;
|
|
333
|
+
}) {
|
|
334
|
+
this.client.messages.cache.delete(payload.messageId);
|
|
335
|
+
this.client.emit(ClientEvents.MessageDelete, {
|
|
336
|
+
messageId: payload.messageId,
|
|
337
|
+
channelId: payload.channelId,
|
|
338
|
+
});
|
|
339
|
+
}
|
|
287
340
|
onMessageButtonClicked(payload: MessageButtonClickPayload) {
|
|
288
341
|
const button = new MessageButton(this.client, payload);
|
|
289
342
|
this.client.emit(ClientEvents.MessageButtonClick, button);
|
|
@@ -327,6 +380,16 @@ class EventHandlers {
|
|
|
327
380
|
|
|
328
381
|
this.client.emit(ClientEvents.ServerRoleOrderUpdated, server?.roles!);
|
|
329
382
|
}
|
|
383
|
+
onMessageReactionAdded(payload: ReactionAddedPayload) {
|
|
384
|
+
const reaction = new Reaction(this.client, payload);
|
|
385
|
+
const user = this.client.users.cache.get(payload.reactedByUserId);
|
|
386
|
+
this.client.emit(ClientEvents.MessageReactionAdded, reaction, user);
|
|
387
|
+
}
|
|
388
|
+
onMessageReactionRemoved(payload: ReactionRemovedPayload) {
|
|
389
|
+
const reaction = new Reaction(this.client, payload);
|
|
390
|
+
const user = this.client.users.cache.get(payload.reactionRemovedByUserId);
|
|
391
|
+
this.client.emit(ClientEvents.MessageReactionRemoved, reaction, user);
|
|
392
|
+
}
|
|
330
393
|
}
|
|
331
394
|
|
|
332
395
|
function updateClass<T extends object>(classInstance: T, update: Partial<T>) {
|
|
@@ -1,5 +1,38 @@
|
|
|
1
1
|
export class Collection<K, V> extends Map<K, V> {
|
|
2
|
-
|
|
2
|
+
limit?: number;
|
|
3
|
+
|
|
4
|
+
constructor(opts?: { limit?: number }) {
|
|
3
5
|
super();
|
|
6
|
+
this.limit = opts?.limit;
|
|
7
|
+
}
|
|
8
|
+
|
|
9
|
+
set(key: K, value: V): this {
|
|
10
|
+
if (this.limit === 0) return this;
|
|
11
|
+
if (super.has(key)) {
|
|
12
|
+
super.delete(key);
|
|
13
|
+
}
|
|
14
|
+
|
|
15
|
+
const result = super.set(key, value);
|
|
16
|
+
|
|
17
|
+
if (this.limit && this.size > this.limit) {
|
|
18
|
+
const lruKey = this.keys().next().value;
|
|
19
|
+
|
|
20
|
+
if (lruKey) {
|
|
21
|
+
super.delete(lruKey);
|
|
22
|
+
}
|
|
23
|
+
}
|
|
24
|
+
|
|
25
|
+
return result;
|
|
26
|
+
}
|
|
27
|
+
|
|
28
|
+
get(key: K): V | undefined {
|
|
29
|
+
const value = super.get(key);
|
|
30
|
+
|
|
31
|
+
if (value && this.limit) {
|
|
32
|
+
super.delete(key);
|
|
33
|
+
super.set(key, value);
|
|
34
|
+
}
|
|
35
|
+
|
|
36
|
+
return value;
|
|
4
37
|
}
|
|
5
38
|
}
|
package/src/classes/Message.ts
CHANGED
|
@@ -7,11 +7,26 @@ import {
|
|
|
7
7
|
import { deleteMessage, editMessage } from "../services/MessageService";
|
|
8
8
|
import { AllChannel } from "../types";
|
|
9
9
|
import { Client } from "./Client";
|
|
10
|
+
import { Collection } from "./Collection";
|
|
10
11
|
import { User } from "./User";
|
|
11
12
|
|
|
12
13
|
const UserMentionRegex = /\[@:([0-9]+)\]/gm;
|
|
13
14
|
const CommandRegex = /^(\/[^:\s]*):(\d+)( .*)?$/m;
|
|
14
15
|
|
|
16
|
+
export class Messages {
|
|
17
|
+
client: Client;
|
|
18
|
+
cache: Collection<string, Message>;
|
|
19
|
+
constructor(client: Client, limit?: number) {
|
|
20
|
+
this.client = client;
|
|
21
|
+
this.cache = new Collection({ limit: limit ?? 1000 });
|
|
22
|
+
}
|
|
23
|
+
setCache(rawMessage: RawMessage) {
|
|
24
|
+
const message = new Message(this.client, rawMessage);
|
|
25
|
+
this.cache.set(message.id, message);
|
|
26
|
+
return message;
|
|
27
|
+
}
|
|
28
|
+
}
|
|
29
|
+
|
|
15
30
|
export interface MessageOpts {
|
|
16
31
|
htmlEmbed?: string;
|
|
17
32
|
nerimityCdnFileId?: string;
|
|
@@ -20,7 +35,9 @@ export interface MessageOpts {
|
|
|
20
35
|
replyToMessageIds?: string[];
|
|
21
36
|
mentionReplies?: boolean;
|
|
22
37
|
}
|
|
23
|
-
|
|
38
|
+
interface EditMessageOpts {
|
|
39
|
+
htmlEmbed?: string;
|
|
40
|
+
}
|
|
24
41
|
export class Message {
|
|
25
42
|
client: Client;
|
|
26
43
|
id: string;
|
|
@@ -32,6 +49,7 @@ export class Message {
|
|
|
32
49
|
user: User;
|
|
33
50
|
mentions: User[] = [];
|
|
34
51
|
command?: { name: string; args: string[] };
|
|
52
|
+
editedAt?: number;
|
|
35
53
|
constructor(client: Client, message: RawMessage) {
|
|
36
54
|
this.client = client;
|
|
37
55
|
|
|
@@ -42,6 +60,7 @@ export class Message {
|
|
|
42
60
|
this.type = message.type;
|
|
43
61
|
this.createdAt = message.createdAt;
|
|
44
62
|
this.user = this.client.users.cache.get(message.createdBy.id)!;
|
|
63
|
+
this.editedAt = message.editedAt;
|
|
45
64
|
|
|
46
65
|
const cmd = message.content?.match(CommandRegex);
|
|
47
66
|
if (cmd?.[2] === this.client.user?.id) {
|
|
@@ -63,12 +82,7 @@ export class Message {
|
|
|
63
82
|
}
|
|
64
83
|
|
|
65
84
|
if (this.content) {
|
|
66
|
-
|
|
67
|
-
(exp) => exp[1]
|
|
68
|
-
);
|
|
69
|
-
this.mentions = mentionIds
|
|
70
|
-
.map((id) => this.client.users.cache.get(id)!)
|
|
71
|
-
.filter((u) => u);
|
|
85
|
+
this._updateMentions(this.content);
|
|
72
86
|
}
|
|
73
87
|
}
|
|
74
88
|
get member() {
|
|
@@ -79,12 +93,13 @@ export class Message {
|
|
|
79
93
|
opts.replyToMessageIds = [this.id];
|
|
80
94
|
return this.channel.send(content, opts);
|
|
81
95
|
}
|
|
82
|
-
async edit(content: string) {
|
|
96
|
+
async edit(content: string, opts?: EditMessageOpts) {
|
|
83
97
|
const RawMessage = await editMessage({
|
|
84
98
|
client: this.client,
|
|
85
99
|
channelId: this.channel.id,
|
|
86
100
|
messageId: this.id,
|
|
87
101
|
content: content,
|
|
102
|
+
htmlEmbed: opts?.htmlEmbed,
|
|
88
103
|
});
|
|
89
104
|
const message = new Message(this.client, RawMessage);
|
|
90
105
|
return message;
|
|
@@ -96,6 +111,23 @@ export class Message {
|
|
|
96
111
|
messageId: this.id,
|
|
97
112
|
});
|
|
98
113
|
}
|
|
114
|
+
|
|
115
|
+
private _updateMentions(content: string) {
|
|
116
|
+
const mentionIds = [...content.matchAll(UserMentionRegex)].map(
|
|
117
|
+
(exp) => exp[1]
|
|
118
|
+
);
|
|
119
|
+
this.mentions = mentionIds
|
|
120
|
+
.map((id) => this.client.users.cache.get(id)!)
|
|
121
|
+
.filter((u) => u);
|
|
122
|
+
}
|
|
123
|
+
_update(update: Partial<RawMessage>) {
|
|
124
|
+
this.content = update.content || this.content;
|
|
125
|
+
this.editedAt = update.editedAt || this.editedAt;
|
|
126
|
+
if (this.content) {
|
|
127
|
+
this._updateMentions(this.content);
|
|
128
|
+
}
|
|
129
|
+
this.client.messages.cache.set(this.id, this);
|
|
130
|
+
}
|
|
99
131
|
toString() {
|
|
100
132
|
return `[q:${this.id}]`;
|
|
101
133
|
}
|
|
@@ -0,0 +1,45 @@
|
|
|
1
|
+
import { Channel } from "./Channel";
|
|
2
|
+
import { Client } from "./Client";
|
|
3
|
+
import { Message } from "./Message";
|
|
4
|
+
|
|
5
|
+
export class Reaction {
|
|
6
|
+
client: Client;
|
|
7
|
+
|
|
8
|
+
name: string;
|
|
9
|
+
count?: number;
|
|
10
|
+
emojiId?: string;
|
|
11
|
+
gif: boolean;
|
|
12
|
+
partial: boolean = true;
|
|
13
|
+
messageId: string = "";
|
|
14
|
+
message?: Message;
|
|
15
|
+
channel: Channel;
|
|
16
|
+
constructor(
|
|
17
|
+
client: Client,
|
|
18
|
+
reaction: {
|
|
19
|
+
messageId: string;
|
|
20
|
+
gif?: boolean;
|
|
21
|
+
name: string;
|
|
22
|
+
emojiId?: string | null;
|
|
23
|
+
channelId: string;
|
|
24
|
+
count?: number;
|
|
25
|
+
}
|
|
26
|
+
) {
|
|
27
|
+
this.client = client;
|
|
28
|
+
|
|
29
|
+
this.messageId = reaction.messageId;
|
|
30
|
+
this.message = this.client.messages.cache.get(this.messageId);
|
|
31
|
+
if (this.message) {
|
|
32
|
+
this.partial = false;
|
|
33
|
+
}
|
|
34
|
+
|
|
35
|
+
this.count = reaction.count || 0;
|
|
36
|
+
this.channel = this.client.channels.cache.get(reaction.channelId)!;
|
|
37
|
+
this.gif = reaction.gif || false;
|
|
38
|
+
this.name = reaction.name;
|
|
39
|
+
this.emojiId = reaction.emojiId || undefined;
|
|
40
|
+
}
|
|
41
|
+
// TODO: add fetch
|
|
42
|
+
// fetch() {
|
|
43
|
+
|
|
44
|
+
// }
|
|
45
|
+
}
|
package/src/classes/Server.ts
CHANGED
|
@@ -45,8 +45,8 @@ export class Server {
|
|
|
45
45
|
this.createdById = server.createdById;
|
|
46
46
|
}
|
|
47
47
|
|
|
48
|
-
async banMember(userId: string) {
|
|
49
|
-
return banServerMember(this.client, this.id, userId);
|
|
48
|
+
async banMember(userId: string, opts?: { reason?: string }) {
|
|
49
|
+
return banServerMember(this.client, this.id, userId, opts?.reason);
|
|
50
50
|
}
|
|
51
51
|
async unbanMember(userId: string) {
|
|
52
52
|
return unbanServerMember(this.client, this.id, userId);
|
|
@@ -49,8 +49,13 @@ export class ServerMember {
|
|
|
49
49
|
toString() {
|
|
50
50
|
return `[@:${this.id}]`;
|
|
51
51
|
}
|
|
52
|
-
async ban() {
|
|
53
|
-
return banServerMember(
|
|
52
|
+
async ban(opts?: { reason?: string }) {
|
|
53
|
+
return banServerMember(
|
|
54
|
+
this.client,
|
|
55
|
+
this.server.id,
|
|
56
|
+
this.user.id,
|
|
57
|
+
opts?.reason
|
|
58
|
+
);
|
|
54
59
|
}
|
|
55
60
|
async unban() {
|
|
56
61
|
return unbanServerMember(this.client, this.server.id, this.user.id);
|
|
@@ -44,6 +44,7 @@ interface EditMessageOpts {
|
|
|
44
44
|
channelId: string;
|
|
45
45
|
messageId: string;
|
|
46
46
|
content: string;
|
|
47
|
+
htmlEmbed?: string;
|
|
47
48
|
}
|
|
48
49
|
|
|
49
50
|
export function editMessage(opts: EditMessageOpts) {
|
|
@@ -51,7 +52,7 @@ export function editMessage(opts: EditMessageOpts) {
|
|
|
51
52
|
client: opts.client,
|
|
52
53
|
url: ServiceEndpoints.EditMessage(opts.channelId, opts.messageId),
|
|
53
54
|
method: "PATCH",
|
|
54
|
-
body: { content: opts.content },
|
|
55
|
+
body: { content: opts.content, htmlEmbed: opts.htmlEmbed },
|
|
55
56
|
useToken: true,
|
|
56
57
|
}).catch((err) => {
|
|
57
58
|
throw err.message;
|
|
@@ -5,13 +5,15 @@ import { ServiceEndpoints } from "./serviceEndpoints";
|
|
|
5
5
|
export async function banServerMember(
|
|
6
6
|
client: Client,
|
|
7
7
|
serverId: string,
|
|
8
|
-
userId: string
|
|
8
|
+
userId: string,
|
|
9
|
+
reason?: string
|
|
9
10
|
) {
|
|
10
11
|
return await request<any>({
|
|
11
12
|
client: client,
|
|
12
13
|
url: ServiceEndpoints.serverMemberBan(serverId, userId),
|
|
13
14
|
method: "POST",
|
|
14
15
|
useToken: true,
|
|
16
|
+
body: { reason },
|
|
15
17
|
}).catch((err) => {
|
|
16
18
|
throw new Error(`Failed to ban server member. ${err.message}`);
|
|
17
19
|
});
|