djs-builder 0.5.31 → 0.5.32
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/.tsbuildinfo +1 -1
- package/dist/discord/events-handler/eventLoader.d.ts +2 -1
- package/dist/discord/events-handler/eventLoader.d.ts.map +1 -1
- package/dist/discord/events-handler/eventLoader.js +23 -0
- package/dist/discord/events-handler/eventLoader.js.map +1 -1
- package/dist/discord/events-handler/login.d.ts.map +1 -1
- package/dist/discord/events-handler/login.js +12 -0
- package/dist/discord/events-handler/login.js.map +1 -1
- package/dist/discord/events-handler/prefixLoader.d.ts +2 -1
- package/dist/discord/events-handler/prefixLoader.d.ts.map +1 -1
- package/dist/discord/events-handler/prefixLoader.js +23 -0
- package/dist/discord/events-handler/prefixLoader.js.map +1 -1
- package/dist/discord/events-handler/slash-responder.js +4 -4
- package/dist/discord/events-handler/slash-responder.js.map +1 -1
- package/dist/discord/events-handler/slashLoader.d.ts +2 -1
- package/dist/discord/events-handler/slashLoader.d.ts.map +1 -1
- package/dist/discord/events-handler/slashLoader.js +23 -0
- package/dist/discord/events-handler/slashLoader.js.map +1 -1
- package/dist/discord/games/X-O.d.ts +20 -0
- package/dist/discord/games/X-O.d.ts.map +1 -0
- package/dist/discord/games/X-O.js +166 -0
- package/dist/discord/games/X-O.js.map +1 -0
- package/dist/discord/games/rps.d.ts +21 -0
- package/dist/discord/games/rps.d.ts.map +1 -0
- package/dist/discord/games/rps.js +99 -0
- package/dist/discord/games/rps.js.map +1 -0
- package/dist/discord/types/starter.d.ts +12 -0
- package/dist/discord/types/starter.d.ts.map +1 -1
- package/dist/discord/utils.d.ts.map +1 -1
- package/dist/discord/utils.js.map +1 -1
- package/dist/index.d.ts.map +1 -1
- package/lib/discord/events-handler/eventLoader.ts +29 -1
- package/lib/discord/events-handler/login.ts +13 -0
- package/lib/discord/events-handler/prefixLoader.ts +31 -2
- package/lib/discord/events-handler/slash-responder.ts +4 -4
- package/lib/discord/events-handler/slashLoader.ts +29 -1
- package/lib/discord/types/starter.ts +12 -0
- package/lib/discord/utils.ts +2 -1
- package/lib/index.ts +1 -1
- package/package.json +2 -1
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slash-responder.js","sourceRoot":"","sources":["../../../lib/discord/events-handler/slash-responder.ts"],"names":[],"mappings":";;AAKA,8BA6HC;AAlID,2CAAiH;AACjH,qDAAyD;AAEzD,gDAAoE;AAE7D,KAAK,UAAU,SAAS,CAAC,MAAW,EAAE,KAAa,EAAE,OAAqB;IAC7E,MAAM,aAAa,GAAG,MAAM,IAAA,sCAAqB,EAAC,MAAM,EAAE,KAAK,EAAE,OAAO,CAAC,CAAC;IAE1E,IAAI,CAAC,aAAa,IAAI,aAAa,CAAC,IAAI,KAAK,CAAC,EAAE,CAAC;QAC7C,IAAA,mBAAU,EAAC,yDAAyD,CAAC,CAAC;QACtE,OAAO;IACX,CAAC;IAED,MAAM,oBAAoB,GAAsD,IAAI,uBAAU,EAAE,CAAC;IAEjG,MAAM,CAAC,EAAE,CAAC,mBAAmB,EAAE,KAAK,EAAE,WAAwB,EAAE,EAAE;QAC9D,IAAI,CAAC,WAAW,CAAC,SAAS,EAAE,IAAI,CAAC,WAAW,CAAC,
|
|
1
|
+
{"version":3,"file":"slash-responder.js","sourceRoot":"","sources":["../../../lib/discord/events-handler/slash-responder.ts"],"names":[],"mappings":"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"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
|
-
import { Collection } from 'discord.js';
|
|
1
|
+
import { Client, Collection } from 'discord.js';
|
|
2
2
|
export declare function slashLoader(client: any): Promise<{
|
|
3
3
|
commands: Collection<string, any>;
|
|
4
4
|
success: boolean;
|
|
5
5
|
}>;
|
|
6
|
+
export declare function autoSlashLoader(client: Client, DEBOUNCE_DELAY?: number): void;
|
|
6
7
|
//# sourceMappingURL=slashLoader.d.ts.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slashLoader.d.ts","sourceRoot":"","sources":["../../../lib/discord/events-handler/slashLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;
|
|
1
|
+
{"version":3,"file":"slashLoader.d.ts","sourceRoot":"","sources":["../../../lib/discord/events-handler/slashLoader.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,UAAU,EAAE,MAAM,YAAY,CAAC;AAWhD,wBAAsB,WAAW,CAAC,MAAM,EAAE,GAAG,GAAG,OAAO,CAAC;IAAE,QAAQ,EAAE,UAAU,CAAC,MAAM,EAAE,GAAG,CAAC,CAAC;IAAC,OAAO,EAAE,OAAO,CAAA;CAAE,CAAC,CAiE/G;AAED,wBAAgB,eAAe,CAAC,MAAM,EAAE,MAAM,EAAE,cAAc,GAAE,MAAc,QAyB7E"}
|
|
@@ -1,6 +1,7 @@
|
|
|
1
1
|
"use strict";
|
|
2
2
|
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
3
|
exports.slashLoader = slashLoader;
|
|
4
|
+
exports.autoSlashLoader = autoSlashLoader;
|
|
4
5
|
const discord_js_1 = require("discord.js");
|
|
5
6
|
const rest_1 = require("@discordjs/rest");
|
|
6
7
|
const v10_1 = require("discord-api-types/v10");
|
|
@@ -8,6 +9,7 @@ const promises_1 = require("fs/promises");
|
|
|
8
9
|
const path_1 = require("path");
|
|
9
10
|
const login_1 = require("./login");
|
|
10
11
|
const logger_1 = require("../functions/logger");
|
|
12
|
+
const fs_1 = require("fs");
|
|
11
13
|
const validExtensions = ['.js', '.ts'];
|
|
12
14
|
async function slashLoader(client) {
|
|
13
15
|
try {
|
|
@@ -68,4 +70,25 @@ async function slashLoader(client) {
|
|
|
68
70
|
return { commands: new discord_js_1.Collection(), success: false };
|
|
69
71
|
}
|
|
70
72
|
}
|
|
73
|
+
function autoSlashLoader(client, DEBOUNCE_DELAY = 10000) {
|
|
74
|
+
const slashPath = login_1.botData.get('slashCommandPath');
|
|
75
|
+
const commandPath = (0, path_1.resolve)(process.cwd(), slashPath);
|
|
76
|
+
let debounceTimer = null;
|
|
77
|
+
const handleReload = async () => {
|
|
78
|
+
if (debounceTimer) {
|
|
79
|
+
clearTimeout(debounceTimer);
|
|
80
|
+
}
|
|
81
|
+
debounceTimer = setTimeout(async () => {
|
|
82
|
+
await slashLoader(client);
|
|
83
|
+
(0, logger_1.logInfo)('Slash commands successfully reloaded after debounce.');
|
|
84
|
+
}, DEBOUNCE_DELAY);
|
|
85
|
+
};
|
|
86
|
+
(0, fs_1.watch)(commandPath, { recursive: false }, (eventType, filename) => {
|
|
87
|
+
if (filename && validExtensions.includes((0, path_1.extname)(filename))) {
|
|
88
|
+
(0, logger_1.logInfo)(`Detected ${eventType} in ${filename}, waiting for debouncing...`);
|
|
89
|
+
handleReload();
|
|
90
|
+
}
|
|
91
|
+
});
|
|
92
|
+
(0, logger_1.logInfo)('Started watching for changes in slash commands...');
|
|
93
|
+
}
|
|
71
94
|
//# sourceMappingURL=slashLoader.js.map
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"slashLoader.js","sourceRoot":"","sources":["../../../lib/discord/events-handler/slashLoader.ts"],"names":[],"mappings":";;
|
|
1
|
+
{"version":3,"file":"slashLoader.js","sourceRoot":"","sources":["../../../lib/discord/events-handler/slashLoader.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,20 @@
|
|
|
1
|
+
import { CommandInteraction, Message } from 'discord.js';
|
|
2
|
+
type Interaction = CommandInteraction | Message;
|
|
3
|
+
export declare class TicTacToe {
|
|
4
|
+
private board;
|
|
5
|
+
private currentPlayer;
|
|
6
|
+
private gameEnded;
|
|
7
|
+
private createButton;
|
|
8
|
+
players({ interaction, challengerId, }: {
|
|
9
|
+
interaction: Interaction;
|
|
10
|
+
challengerId: string;
|
|
11
|
+
}): Promise<void>;
|
|
12
|
+
private updateGameMessage;
|
|
13
|
+
private drawBoard;
|
|
14
|
+
private drawSymbol;
|
|
15
|
+
private checkWinner;
|
|
16
|
+
private isBoardFull;
|
|
17
|
+
private displayResults;
|
|
18
|
+
}
|
|
19
|
+
export {};
|
|
20
|
+
//# sourceMappingURL=X-O.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"X-O.d.ts","sourceRoot":"","sources":["../../../lib/discord/games/X-O.ts"],"names":[],"mappings":"AAAA,OAAO,EAAiD,kBAAkB,EAAE,OAAO,EAAkC,MAAM,YAAY,CAAC;AAGxI,KAAK,WAAW,GAAG,kBAAkB,GAAG,OAAO,CAAC;AAEhD,qBAAa,SAAS;IAClB,OAAO,CAAC,KAAK,CAIX;IACF,OAAO,CAAC,aAAa,CAAO;IAC5B,OAAO,CAAC,SAAS,CAAS;IAE1B,OAAO,CAAC,YAAY;IAQP,OAAO,CAAC,EACjB,WAAW,EACX,YAAY,GACf,EAAE;QACC,WAAW,EAAE,WAAW,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,IAAI,CAAC;YAsFH,iBAAiB;YAuBjB,SAAS;IAgCvB,OAAO,CAAC,UAAU;IASlB,OAAO,CAAC,WAAW;IAqBnB,OAAO,CAAC,WAAW;YAIL,cAAc;CAqB/B"}
|
|
@@ -0,0 +1,166 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.TicTacToe = void 0;
|
|
4
|
+
const discord_js_1 = require("discord.js");
|
|
5
|
+
const canvas_1 = require("@napi-rs/canvas");
|
|
6
|
+
class TicTacToe {
|
|
7
|
+
board = [
|
|
8
|
+
['', '', ''],
|
|
9
|
+
['', '', ''],
|
|
10
|
+
['', '', ''],
|
|
11
|
+
];
|
|
12
|
+
currentPlayer = 'X';
|
|
13
|
+
gameEnded = false;
|
|
14
|
+
createButton(cellId) {
|
|
15
|
+
return new discord_js_1.ButtonBuilder()
|
|
16
|
+
.setCustomId(cellId)
|
|
17
|
+
.setLabel(' ')
|
|
18
|
+
.setStyle(discord_js_1.ButtonStyle.Primary)
|
|
19
|
+
.setDisabled(this.gameEnded);
|
|
20
|
+
}
|
|
21
|
+
async players({ interaction, challengerId, }) {
|
|
22
|
+
const userId = 'user' in interaction ? interaction.user.id : interaction.author.id;
|
|
23
|
+
const gameEmbed = new discord_js_1.EmbedBuilder()
|
|
24
|
+
.setTitle('Tic-Tac-Toe')
|
|
25
|
+
.setDescription(`<@${userId}> (**X**) vs. <@${challengerId}> (**O**)\nIt's <@${userId}>'s turn!`)
|
|
26
|
+
.setColor('DarkNavy');
|
|
27
|
+
const row1 = new discord_js_1.ActionRowBuilder().addComponents(this.createButton('0-0'), this.createButton('0-1'), this.createButton('0-2'));
|
|
28
|
+
const row2 = new discord_js_1.ActionRowBuilder().addComponents(this.createButton('1-0'), this.createButton('1-1'), this.createButton('1-2'));
|
|
29
|
+
const row3 = new discord_js_1.ActionRowBuilder().addComponents(this.createButton('2-0'), this.createButton('2-1'), this.createButton('2-2'));
|
|
30
|
+
const canvasBuffer = await this.drawBoard();
|
|
31
|
+
const gameMessage = 'user' in interaction
|
|
32
|
+
? await interaction.reply({
|
|
33
|
+
embeds: [gameEmbed],
|
|
34
|
+
files: [new discord_js_1.AttachmentBuilder(canvasBuffer, { name: 'tictactoe.png' })],
|
|
35
|
+
components: [row1, row2, row3],
|
|
36
|
+
fetchReply: true,
|
|
37
|
+
})
|
|
38
|
+
: await interaction.reply({
|
|
39
|
+
embeds: [gameEmbed],
|
|
40
|
+
files: [new discord_js_1.AttachmentBuilder(canvasBuffer, { name: 'tictactoe.png' })],
|
|
41
|
+
components: [row1, row2, row3],
|
|
42
|
+
});
|
|
43
|
+
const filter = (btnInteraction) => {
|
|
44
|
+
return [userId, challengerId].includes(btnInteraction.user.id) && !this.gameEnded;
|
|
45
|
+
};
|
|
46
|
+
const collector = gameMessage.createMessageComponentCollector({
|
|
47
|
+
filter,
|
|
48
|
+
time: 60000,
|
|
49
|
+
});
|
|
50
|
+
collector.on('collect', async (btnInteraction) => {
|
|
51
|
+
const [row, col] = btnInteraction.customId.split('-').map(Number);
|
|
52
|
+
if (this.board[row][col] !== '') {
|
|
53
|
+
await btnInteraction.reply({ content: 'This cell is already taken!', ephemeral: true });
|
|
54
|
+
return;
|
|
55
|
+
}
|
|
56
|
+
this.board[row][col] = this.currentPlayer;
|
|
57
|
+
const player = this.currentPlayer === 'X' ? userId : challengerId;
|
|
58
|
+
this.currentPlayer = this.currentPlayer === 'X' ? 'O' : 'X';
|
|
59
|
+
const winner = this.checkWinner();
|
|
60
|
+
if (winner || this.isBoardFull()) {
|
|
61
|
+
this.gameEnded = true;
|
|
62
|
+
collector.stop();
|
|
63
|
+
await this.displayResults(interaction, winner, userId, challengerId);
|
|
64
|
+
}
|
|
65
|
+
else {
|
|
66
|
+
await this.updateGameMessage(btnInteraction, userId, challengerId, row1, row2, row3);
|
|
67
|
+
}
|
|
68
|
+
});
|
|
69
|
+
collector.on('end', async (_collected, reason) => {
|
|
70
|
+
if (reason === 'time' && !this.gameEnded) {
|
|
71
|
+
const endMessage = 'The game has ended due to inactivity!';
|
|
72
|
+
if ('editReply' in interaction) {
|
|
73
|
+
await interaction.editReply({ content: endMessage, components: [] });
|
|
74
|
+
}
|
|
75
|
+
else {
|
|
76
|
+
await interaction.channel?.send({ content: endMessage });
|
|
77
|
+
}
|
|
78
|
+
}
|
|
79
|
+
});
|
|
80
|
+
}
|
|
81
|
+
async updateGameMessage(btnInteraction, userId, challengerId, row1, row2, row3) {
|
|
82
|
+
const canvasBuffer = await this.drawBoard();
|
|
83
|
+
const nextPlayer = this.currentPlayer === 'X' ? userId : challengerId;
|
|
84
|
+
const updatedEmbed = new discord_js_1.EmbedBuilder()
|
|
85
|
+
.setTitle('Tic-Tac-Toe')
|
|
86
|
+
.setDescription(`It's <@${nextPlayer}>'s turn!`)
|
|
87
|
+
.setColor('DarkNavy');
|
|
88
|
+
await btnInteraction.update({
|
|
89
|
+
embeds: [updatedEmbed],
|
|
90
|
+
files: [new discord_js_1.AttachmentBuilder(canvasBuffer, { name: 'tictactoe.png' })],
|
|
91
|
+
components: [row1, row2, row3],
|
|
92
|
+
});
|
|
93
|
+
}
|
|
94
|
+
async drawBoard() {
|
|
95
|
+
const canvas = (0, canvas_1.createCanvas)(300, 300);
|
|
96
|
+
const ctx = canvas.getContext('2d');
|
|
97
|
+
ctx.strokeStyle = '#000000';
|
|
98
|
+
ctx.lineWidth = 5;
|
|
99
|
+
ctx.beginPath();
|
|
100
|
+
ctx.moveTo(0, 100);
|
|
101
|
+
ctx.lineTo(300, 100);
|
|
102
|
+
ctx.moveTo(0, 200);
|
|
103
|
+
ctx.lineTo(300, 200);
|
|
104
|
+
ctx.stroke();
|
|
105
|
+
ctx.moveTo(100, 0);
|
|
106
|
+
ctx.lineTo(100, 300);
|
|
107
|
+
ctx.moveTo(200, 0);
|
|
108
|
+
ctx.lineTo(200, 300);
|
|
109
|
+
ctx.stroke();
|
|
110
|
+
for (let row = 0; row < 3; row++) {
|
|
111
|
+
for (let col = 0; col < 3; col++) {
|
|
112
|
+
const symbol = this.board[row][col];
|
|
113
|
+
if (symbol) {
|
|
114
|
+
this.drawSymbol(ctx, symbol, row, col);
|
|
115
|
+
}
|
|
116
|
+
}
|
|
117
|
+
}
|
|
118
|
+
return canvas.toBuffer('image/png');
|
|
119
|
+
}
|
|
120
|
+
drawSymbol(ctx, symbol, row, col) {
|
|
121
|
+
ctx.font = '80px Arial';
|
|
122
|
+
ctx.textAlign = 'center';
|
|
123
|
+
ctx.textBaseline = 'middle';
|
|
124
|
+
const x = col * 100 + 50;
|
|
125
|
+
const y = row * 100 + 50;
|
|
126
|
+
ctx.fillText(symbol, x, y);
|
|
127
|
+
}
|
|
128
|
+
checkWinner() {
|
|
129
|
+
const winningPatterns = [
|
|
130
|
+
[[0, 0], [0, 1], [0, 2]],
|
|
131
|
+
[[1, 0], [1, 1], [1, 2]],
|
|
132
|
+
[[2, 0], [2, 1], [2, 2]],
|
|
133
|
+
[[0, 0], [1, 0], [2, 0]],
|
|
134
|
+
[[0, 1], [1, 1], [2, 1]],
|
|
135
|
+
[[0, 2], [1, 2], [2, 2]],
|
|
136
|
+
[[0, 0], [1, 1], [2, 2]],
|
|
137
|
+
[[0, 2], [1, 1], [2, 0]],
|
|
138
|
+
];
|
|
139
|
+
for (const pattern of winningPatterns) {
|
|
140
|
+
const [a, b, c] = pattern;
|
|
141
|
+
if (this.board[a[0]][a[1]] && this.board[a[0]][a[1]] === this.board[b[0]][b[1]] && this.board[a[0]][a[1]] === this.board[c[0]][c[1]]) {
|
|
142
|
+
return this.board[a[0]][a[1]];
|
|
143
|
+
}
|
|
144
|
+
}
|
|
145
|
+
return null;
|
|
146
|
+
}
|
|
147
|
+
isBoardFull() {
|
|
148
|
+
return this.board.flat().every(cell => cell !== '');
|
|
149
|
+
}
|
|
150
|
+
async displayResults(interaction, winner, userId, challengerId) {
|
|
151
|
+
const resultEmbed = new discord_js_1.EmbedBuilder()
|
|
152
|
+
.setTitle('Tic-Tac-Toe Results')
|
|
153
|
+
.setDescription(winner
|
|
154
|
+
? `<@${winner}> wins!\n<@${userId}> vs. <@${challengerId}>`
|
|
155
|
+
: "It's a tie!\n<@${userId}> vs. <@${challengerId}>")
|
|
156
|
+
.setColor('DarkNavy');
|
|
157
|
+
if ('editReply' in interaction) {
|
|
158
|
+
await interaction.editReply({ embeds: [resultEmbed], components: [] });
|
|
159
|
+
}
|
|
160
|
+
else {
|
|
161
|
+
await interaction.channel?.send({ embeds: [resultEmbed], components: [] });
|
|
162
|
+
}
|
|
163
|
+
}
|
|
164
|
+
}
|
|
165
|
+
exports.TicTacToe = TicTacToe;
|
|
166
|
+
//# sourceMappingURL=X-O.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"X-O.js","sourceRoot":"","sources":["../../../lib/discord/games/X-O.ts"],"names":[],"mappings":"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"}
|
|
@@ -0,0 +1,21 @@
|
|
|
1
|
+
import { CommandInteraction, Message } from 'discord.js';
|
|
2
|
+
type Interaction = CommandInteraction | Message;
|
|
3
|
+
export declare class RPS {
|
|
4
|
+
private playerChoices;
|
|
5
|
+
private resultData;
|
|
6
|
+
players({ interaction, challengerId, }: {
|
|
7
|
+
interaction: Interaction;
|
|
8
|
+
challengerId: string;
|
|
9
|
+
}): Promise<void>;
|
|
10
|
+
private displayResults;
|
|
11
|
+
private getResult;
|
|
12
|
+
results(): {
|
|
13
|
+
userId: string;
|
|
14
|
+
challengerId: string;
|
|
15
|
+
results: {
|
|
16
|
+
[key: string]: boolean;
|
|
17
|
+
};
|
|
18
|
+
} | null;
|
|
19
|
+
}
|
|
20
|
+
export {};
|
|
21
|
+
//# sourceMappingURL=rps.d.ts.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rps.d.ts","sourceRoot":"","sources":["../../../lib/discord/games/rps.ts"],"names":[],"mappings":"AAAA,OAAO,EAIH,kBAAkB,EAClB,OAAO,EAEV,MAAM,YAAY,CAAC;AAEpB,KAAK,WAAW,GAAG,kBAAkB,GAAG,OAAO,CAAC;AAEhD,qBAAa,GAAG;IACZ,OAAO,CAAC,aAAa,CAAkC;IACvD,OAAO,CAAC,UAAU,CAA8F;IAEnG,OAAO,CAAC,EACjB,WAAW,EACX,YAAY,GACf,EAAE;QACC,WAAW,EAAE,WAAW,CAAC;QACzB,YAAY,EAAE,MAAM,CAAC;KACxB,GAAG,OAAO,CAAC,IAAI,CAAC;YA+DH,cAAc;IA6B5B,OAAO,CAAC,SAAS;IAYV,OAAO;;;;;;;CAUjB"}
|
|
@@ -0,0 +1,99 @@
|
|
|
1
|
+
"use strict";
|
|
2
|
+
Object.defineProperty(exports, "__esModule", { value: true });
|
|
3
|
+
exports.RPS = void 0;
|
|
4
|
+
const discord_js_1 = require("discord.js");
|
|
5
|
+
class RPS {
|
|
6
|
+
playerChoices = new Map();
|
|
7
|
+
resultData = null;
|
|
8
|
+
async players({ interaction, challengerId, }) {
|
|
9
|
+
const userId = 'user' in interaction ? interaction.user.id : interaction.author.id;
|
|
10
|
+
const duelEmbed = new discord_js_1.EmbedBuilder()
|
|
11
|
+
.setTitle('Rock-Paper-Scissors Duel!')
|
|
12
|
+
.setDescription(`<@${challengerId}>, you have been challenged to a duel of Rock-Paper-Scissors by <@${userId}>. Make your choice!`)
|
|
13
|
+
.setColor('DarkNavy');
|
|
14
|
+
const row = new discord_js_1.ActionRowBuilder().addComponents(new discord_js_1.ButtonBuilder().setCustomId('rock').setLabel('🪨 Rock').setStyle(discord_js_1.ButtonStyle.Primary), new discord_js_1.ButtonBuilder().setCustomId('paper').setLabel('📄 Paper').setStyle(discord_js_1.ButtonStyle.Primary), new discord_js_1.ButtonBuilder().setCustomId('scissors').setLabel('✂️ Scissors').setStyle(discord_js_1.ButtonStyle.Primary));
|
|
15
|
+
const duelMessage = 'user' in interaction
|
|
16
|
+
? await interaction.reply({
|
|
17
|
+
embeds: [duelEmbed],
|
|
18
|
+
components: [row],
|
|
19
|
+
fetchReply: true,
|
|
20
|
+
ephemeral: false,
|
|
21
|
+
})
|
|
22
|
+
: await interaction.reply({ embeds: [duelEmbed], components: [row] });
|
|
23
|
+
const filter = (btnInteraction) => {
|
|
24
|
+
return [userId, challengerId].includes(btnInteraction.user.id);
|
|
25
|
+
};
|
|
26
|
+
const collector = duelMessage.createMessageComponentCollector({
|
|
27
|
+
filter,
|
|
28
|
+
time: 60000,
|
|
29
|
+
});
|
|
30
|
+
collector.on('collect', async (btnInteraction) => {
|
|
31
|
+
const playerId = btnInteraction.user.id;
|
|
32
|
+
const playerChoice = btnInteraction.customId;
|
|
33
|
+
if (!this.playerChoices.has(playerId)) {
|
|
34
|
+
this.playerChoices.set(playerId, playerChoice);
|
|
35
|
+
await btnInteraction.reply({ content: `You chose ${playerChoice}`, ephemeral: true });
|
|
36
|
+
if (this.playerChoices.size === 2) {
|
|
37
|
+
collector.stop();
|
|
38
|
+
this.displayResults(interaction, userId, challengerId);
|
|
39
|
+
}
|
|
40
|
+
}
|
|
41
|
+
});
|
|
42
|
+
collector.on('end', async (_collected, reason) => {
|
|
43
|
+
if (reason === 'time') {
|
|
44
|
+
const endMessage = `The duel has expired. <@${challengerId}> did not respond in time!`;
|
|
45
|
+
if ('editReply' in interaction) {
|
|
46
|
+
await interaction.editReply({ content: endMessage, components: [] });
|
|
47
|
+
}
|
|
48
|
+
else {
|
|
49
|
+
await interaction.channel?.send({ content: endMessage });
|
|
50
|
+
}
|
|
51
|
+
}
|
|
52
|
+
});
|
|
53
|
+
}
|
|
54
|
+
async displayResults(interaction, userId, challengerId) {
|
|
55
|
+
const userChoice = this.playerChoices.get(userId);
|
|
56
|
+
const challengerChoice = this.playerChoices.get(challengerId);
|
|
57
|
+
const result = this.getResult(userChoice, challengerChoice);
|
|
58
|
+
this.resultData = {
|
|
59
|
+
userId,
|
|
60
|
+
challengerId,
|
|
61
|
+
results: {
|
|
62
|
+
[userId]: result === userId,
|
|
63
|
+
[challengerId]: result === challengerId,
|
|
64
|
+
},
|
|
65
|
+
};
|
|
66
|
+
const resultEmbed = new discord_js_1.EmbedBuilder()
|
|
67
|
+
.setTitle('Rock-Paper-Scissors Results')
|
|
68
|
+
.setDescription(`<@${userId}> chose **${userChoice}**.\n<@${challengerId}> chose **${challengerChoice}**.\n\n**${result}**`)
|
|
69
|
+
.setColor('DarkNavy');
|
|
70
|
+
if ('editReply' in interaction) {
|
|
71
|
+
await interaction.editReply({ embeds: [resultEmbed], components: [] });
|
|
72
|
+
}
|
|
73
|
+
else {
|
|
74
|
+
await interaction.channel?.send({ embeds: [resultEmbed], components: [] });
|
|
75
|
+
}
|
|
76
|
+
}
|
|
77
|
+
getResult(userChoice, challengerChoice) {
|
|
78
|
+
if (userChoice === challengerChoice)
|
|
79
|
+
return "It's a tie!";
|
|
80
|
+
if ((userChoice === 'rock' && challengerChoice === 'scissors') ||
|
|
81
|
+
(userChoice === 'paper' && challengerChoice === 'rock') ||
|
|
82
|
+
(userChoice === 'scissors' && challengerChoice === 'paper')) {
|
|
83
|
+
return userChoice ? userChoice : "";
|
|
84
|
+
}
|
|
85
|
+
return challengerChoice ? challengerChoice : "";
|
|
86
|
+
}
|
|
87
|
+
results() {
|
|
88
|
+
if (this.resultData) {
|
|
89
|
+
return {
|
|
90
|
+
userId: this.resultData.userId,
|
|
91
|
+
challengerId: this.resultData.challengerId,
|
|
92
|
+
results: this.resultData.results,
|
|
93
|
+
};
|
|
94
|
+
}
|
|
95
|
+
return null;
|
|
96
|
+
}
|
|
97
|
+
}
|
|
98
|
+
exports.RPS = RPS;
|
|
99
|
+
//# sourceMappingURL=rps.js.map
|
|
@@ -0,0 +1 @@
|
|
|
1
|
+
{"version":3,"file":"rps.js","sourceRoot":"","sources":["../../../lib/discord/games/rps.ts"],"names":[],"mappings":"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"}
|
|
@@ -39,6 +39,10 @@ export interface SlashOptions {
|
|
|
39
39
|
global?: boolean;
|
|
40
40
|
serverId?: string;
|
|
41
41
|
logsId?: string;
|
|
42
|
+
autoLoader?: {
|
|
43
|
+
enable?: boolean;
|
|
44
|
+
DEBOUNCE_DELAY?: number;
|
|
45
|
+
};
|
|
42
46
|
}
|
|
43
47
|
export interface PrefixOptions {
|
|
44
48
|
path: string;
|
|
@@ -51,6 +55,10 @@ export interface PrefixOptions {
|
|
|
51
55
|
}[];
|
|
52
56
|
similarity?: boolean;
|
|
53
57
|
logsId?: string;
|
|
58
|
+
autoLoader?: {
|
|
59
|
+
enable?: boolean;
|
|
60
|
+
DEBOUNCE_DELAY?: number;
|
|
61
|
+
};
|
|
54
62
|
}
|
|
55
63
|
export interface MongoDbOptions {
|
|
56
64
|
mongoURI: string;
|
|
@@ -78,6 +86,10 @@ export interface EventsOptions {
|
|
|
78
86
|
logsId?: string;
|
|
79
87
|
recursive?: boolean;
|
|
80
88
|
eventBlacklist?: string[];
|
|
89
|
+
autoLoader?: {
|
|
90
|
+
enable?: boolean;
|
|
91
|
+
DEBOUNCE_DELAY?: number;
|
|
92
|
+
};
|
|
81
93
|
}
|
|
82
94
|
export interface Event {
|
|
83
95
|
name: string;
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"starter.d.ts","sourceRoot":"","sources":["../../../lib/discord/types/starter.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,MAAM,EAAE,MAAM,YAAY,CAAA;AAEnC,MAAM,WAAW,UAAU;IACvB,KAAK,CAAC,EAAE,MAAM,CAAC;IACf,IAAI,CAAC,EAAE;QACH,OAAO,CAAC,EAAE;YACN,MAAM,EAAE,OAAO,CAAC;YAChB,WAAW,EAAE,GAAG,CAAC;YACjB,UAAU,EAAE,MAAM,CAAC;YACnB,OAAO,CAAC,EAAE,MAAM,CAAC;SACpB,CAAC;QACF,QAAQ,CAAC,EAAE,OAAO,CAAC;QACnB,SAAS,CAAC,EAAE,OAAO,CAAC;KACvB,CAAC;IACF,IAAI,CAAC,EAAE,MAAM,CAAC;IACd,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,MAAM,CAAC,EAAE,MAAM,CAAC;IAChB,OAAO,CAAC,EAAE;QACN,KAAK,CAAC,EAAE,MAAM,EAAE,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;QAClB,SAAS,CAAC,EAAE,MAAM,CAAC;QACnB,YAAY,CAAC,EAAE,MAAM,CAAC;QACtB,OAAO,CAAC,EAAE,MAAM,CAAC;QACjB,QAAQ,CAAC,EAAE,MAAM,EAAE,CAAC;QACpB,UAAU,CAAC,EAAE,MAAM,EAAE,CAAC;KACzB,CAAC;IACF,MAAM,CAAC,EAAE;QACL,KAAK,EAAE,QAAQ,GAAG,KAAK,GAAG,MAAM,GAAG,WAAW,GAAG,WAAW,GAAG,GAAG,CAAC;QACnE,UAAU,CAAC,EAAE,MAAM,EAAE,GAAG,SAAS,CAAC;QAClC,IAAI,CAAC,EAAE,MAAM,CAAC;QACd,KAAK,CAAC,EAAE,MAAM,CAAC;KAClB,CAAC;IACF,QAAQ,CAAC,EAAE;QACP,KAAK,CAAC,EAAE,cAAc,CAAC;QACvB,KAAK,CAAC,EAAE,OAAO,CAAC;KACnB,CAAA;CACJ;AAED,MAAM,WAAW,YAAY;IACzB,IAAI,EAAE,MAAM,CAAC;IACb,MAAM,CAAC,EAAE,OAAO,CAAC;IACjB,QAAQ,CAAC,EAAE,MAAM,CAAC;IAClB,MAAM,CAAC,EAAE,MAAM,CAAC;
|
|
1
|
+
{"version":3,"file":"starter.d.ts","sourceRoot":"","sources":["../../../lib/discord/types/starter.ts"],"names":[],"mappings":"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"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/discord/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAG,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;
|
|
1
|
+
{"version":3,"file":"utils.d.ts","sourceRoot":"","sources":["../../lib/discord/utils.ts"],"names":[],"mappings":"AAAA,OAAO,EAAE,OAAO,EAAE,MAAM,0BAA0B,CAAC;AACnD,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,MAAM,iBAAiB,CAAC;AAChF,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,+BAA+B,CAAC;AAC7D,OAAO,EAAE,WAAW,EAAE,MAAM,8BAA8B,CAAC;AAC3D,OAAO,EAAE,YAAY,EAAE,MAAM,kCAAkC,CAAC;AAChE,OAAO,EAAE,UAAU,EAAE,mBAAmB,EAAE,MAAM,mCAAmC,CAAC;AACpF,OAAO,EAAE,qBAAqB,EAAE,MAAM,iCAAiC,CAAC;AACxE,OAAO,EAAE,SAAS,EAAE,MAAM,kCAAkC,CAAC;AAC7D,OAAO,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAG,MAAM,oBAAoB,CAAC;AAChF,OAAO,EAAE,UAAU,EAAE,MAAM,6BAA6B,CAAC;AACzD,OAAO,EAAE,UAAU,EAAE,SAAS,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,gBAAgB,EAAE,eAAe,EAAE,MAAM,yBAAyB,CAAC;AAEvI,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAC7H,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,qBAAqB,EACjI,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC"}
|
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/discord/utils.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;
|
|
1
|
+
{"version":3,"file":"utils.js","sourceRoot":"","sources":["../../lib/discord/utils.ts"],"names":[],"mappings":";;;AAAA,sDAAmD;AAa1C,wFAbA,iBAAO,OAaA;AAZhB,2CAAgF;AAY9D,8FAZT,qBAAa,OAYS;AAAE,4FAZT,mBAAW,OAYS;AAAE,kGAZT,yBAAiB,OAYS;AAX/D,8DAA2D;AAWM,4FAXxD,yBAAW,OAWwD;AAV5E,gEAA6D;AAUiB,6FAVrE,2BAAY,OAUqE;AAT1F,8DAA2D;AASiC,4FATnF,yBAAW,OASmF;AARvG,sEAAgE;AAQyC,6FARhG,8BAAY,OAQgG;AAPrH,wEAAoF;AAQrE,2FARN,6BAAU,OAQM;AAAE,oGARN,sCAAmB,OAQM;AAP9C,oEAAwE;AAOwC,sGAPvG,sCAAqB,OAOuG;AANrI,sEAA6D;AAMzD,0FANK,2BAAS,OAML;AALb,+CAAgF;AAM1D,yFANb,iBAAQ,OAMa;AAAE,wFANb,gBAAO,OAMa;AAAE,2FANb,mBAAU,OAMa;AAAE,2FANb,mBAAU,OAMa;AAL/D,4DAAyD;AAKQ,2FALxD,uBAAU,OAKwD;AAJ3E,oDAAuI;AAEhB,2FAF9G,mBAAU,OAE8G;AAC5B,0FAHhF,kBAAS,OAGgF;AAC1G,iGAJ4B,yBAAgB,OAI5B;AAD4B,iGAHE,yBAAgB,OAGF;AAAmB,iGAHf,yBAAgB,OAGe;AAAjC,gGAHoB,wBAAe,OAGpB"}
|
package/dist/index.d.ts.map
CHANGED
|
@@ -1 +1 @@
|
|
|
1
|
-
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAC7H,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,qBAAqB,EAChI,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEtG,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAC7H,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,qBAAqB,EAChI,gBAAgB,EAAG,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,
|
|
1
|
+
{"version":3,"file":"index.d.ts","sourceRoot":"","sources":["../lib/index.ts"],"names":[],"mappings":"AA6BA,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAC7H,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,qBAAqB,EAChI,gBAAgB,EAAE,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,UAAU,EAAE,MAAM,iBAAiB,CAAC;AAEtG,OAAO,EAAE,OAAO,EAAE,aAAa,EAAE,WAAW,EAAE,iBAAiB,EAAE,WAAW,EAAE,YAAY,EAAE,WAAW,EAAE,YAAY,EAAE,UAAU,EAC7H,SAAS,EAAE,UAAU,EAAE,mBAAmB,EAAE,gBAAgB,EAAE,eAAe,EAAE,gBAAgB,EAAE,SAAS,EAAE,qBAAqB,EAChI,gBAAgB,EAAG,QAAQ,EAAE,OAAO,EAAE,UAAU,EAAE,UAAU,EAAE,CAAC;;;;;;;;;;;;;;;;;;;;;;;;;;AACpE,wBAE+E;AAC/E,cAAc,yBAAyB,CAAC"}
|
|
@@ -1,9 +1,10 @@
|
|
|
1
|
-
import { Collection } from 'discord.js';
|
|
1
|
+
import { Client, Collection } from 'discord.js';
|
|
2
2
|
import { readdir } from 'fs/promises';
|
|
3
3
|
import { resolve, extname } from 'path';
|
|
4
4
|
import { Event } from '../types/utils';
|
|
5
5
|
import { logError, logInfo } from '../functions/logger';
|
|
6
6
|
import { botData } from './login';
|
|
7
|
+
import { watch } from 'fs';
|
|
7
8
|
|
|
8
9
|
const validExtensions = ['.js', '.ts'];
|
|
9
10
|
|
|
@@ -136,3 +137,30 @@ async function withRetry(handler: (...args: any[]) => Promise<void>, retryAttemp
|
|
|
136
137
|
logError('Reached maximum retry attempts.');
|
|
137
138
|
};
|
|
138
139
|
}
|
|
140
|
+
|
|
141
|
+
export function autoEventLoader(client: Client, DEBOUNCE_DELAY: number = 10000, eventsOptions: Events = {}) {
|
|
142
|
+
|
|
143
|
+
const slashPath = botData.get('slashCommandPath') as string;
|
|
144
|
+
const commandPath = resolve(process.cwd(), slashPath);
|
|
145
|
+
|
|
146
|
+
let debounceTimer: NodeJS.Timeout | null = null;
|
|
147
|
+
|
|
148
|
+
const handleReload = async () => {
|
|
149
|
+
if (debounceTimer) {
|
|
150
|
+
clearTimeout(debounceTimer);
|
|
151
|
+
}
|
|
152
|
+
debounceTimer = setTimeout(async () => {
|
|
153
|
+
await eventLoader(client, eventsOptions);
|
|
154
|
+
logInfo('Slash commands successfully reloaded after debounce.');
|
|
155
|
+
}, DEBOUNCE_DELAY);
|
|
156
|
+
};
|
|
157
|
+
|
|
158
|
+
watch(commandPath, { recursive: false }, (eventType: any, filename: any) => {
|
|
159
|
+
if (filename && validExtensions.includes(extname(filename))) {
|
|
160
|
+
logInfo(`Detected ${eventType} in ${filename}, waiting for debouncing...`);
|
|
161
|
+
handleReload();
|
|
162
|
+
}
|
|
163
|
+
});
|
|
164
|
+
|
|
165
|
+
logInfo('Started watching for changes in slash commands...');
|
|
166
|
+
}
|
|
@@ -7,6 +7,9 @@ import { GatewayIntentBits } from 'discord-api-types/v10';
|
|
|
7
7
|
import { logError, logInfo, logWarning } from '../utils';
|
|
8
8
|
import * as path from 'path';
|
|
9
9
|
import fs from 'fs';
|
|
10
|
+
import { autoSlashLoader } from './slashLoader';
|
|
11
|
+
import { autoPrefixLoader } from './prefixLoader';
|
|
12
|
+
import { autoEventLoader } from './eventLoader';
|
|
10
13
|
|
|
11
14
|
export const botData = new Collection<string, string | string[]>();
|
|
12
15
|
|
|
@@ -248,5 +251,15 @@ export async function login(djs: Client & { botData?: Collection<string, string
|
|
|
248
251
|
}
|
|
249
252
|
|
|
250
253
|
(djs as any).botData = botData;
|
|
254
|
+
|
|
255
|
+
if (options.slash?.autoLoader?.enable) {
|
|
256
|
+
autoSlashLoader(djs, options.slash?.autoLoader?.DEBOUNCE_DELAY);
|
|
257
|
+
}
|
|
258
|
+
if (options.prefix?.autoLoader?.enable) {
|
|
259
|
+
autoPrefixLoader(djs, options.prefix?.autoLoader?.DEBOUNCE_DELAY);
|
|
260
|
+
}
|
|
261
|
+
if (options.events?.autoLoader?.enable) {
|
|
262
|
+
autoEventLoader(djs, options.events?.autoLoader?.DEBOUNCE_DELAY, options.events);
|
|
263
|
+
}
|
|
251
264
|
});
|
|
252
265
|
}
|