Skip to content

Commit 384d8b7

Browse files
committed
fix: not response the button on second time
fix: hide error on delete() function
1 parent b0aeca5 commit 384d8b7

18 files changed

+40
-27
lines changed

src/commands/Music/File.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export default class implements Command {
9999

100100
const TotalDuration = player.queue.duration;
101101

102-
if (handler.message) await handler.message.delete();
102+
if (handler.message) await handler.message.delete().catch(() => null);
103103

104104
if (result.type === "PLAYLIST") {
105105
const embed = new EmbedBuilder()

src/commands/Music/Nowplaying.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -99,7 +99,7 @@ export default class implements Command {
9999
const currentNP = client.nowPlaying.get(`${handler.guild?.id}`);
100100
if (currentNP) {
101101
clearInterval(currentNP.interval);
102-
await currentNP.msg?.delete();
102+
await currentNP.msg?.delete().catch(() => null);
103103
client.nowPlaying.delete(`${handler.guild?.id}`);
104104
}
105105

src/commands/Music/Play.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -96,7 +96,7 @@ export default class implements Command {
9696

9797
const TotalDuration = player.queue.duration;
9898

99-
if (handler.message) await handler.message.delete();
99+
if (handler.message) await handler.message.delete().catch(() => null);
100100

101101
if (result.type === "TRACK") {
102102
const embed = new EmbedBuilder()

src/commands/Playlist/Delete.ts

+2-2
Original file line numberDiff line numberDiff line change
@@ -91,14 +91,14 @@ export default class implements Command {
9191
.setColor(client.color);
9292
interaction.reply({ embeds: [embed] });
9393
collector.stop();
94-
msg?.delete();
94+
msg?.delete().catch(() => null);
9595
} else if (id == "no") {
9696
const embed = new EmbedBuilder()
9797
.setDescription(`${client.getString(handler.language, "command.playlist", "delete_no")}`)
9898
.setColor(client.color);
9999
interaction.reply({ embeds: [embed] });
100100
collector.stop();
101-
msg?.delete();
101+
msg?.delete().catch(() => null);
102102
}
103103
});
104104

src/commands/Utils/Setup.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -145,9 +145,9 @@ export default class implements Command {
145145
)
146146
.setColor(client.color);
147147

148-
if (fetchedCategory) await fetchedCategory.delete();
149-
if (fetchedVoiceChannel) await fetchedVoiceChannel.delete();
150-
if (fetchedTextChannel) await fetchedTextChannel.delete();
148+
if (fetchedCategory) await fetchedCategory.delete().catch(() => null);
149+
if (fetchedVoiceChannel) await fetchedVoiceChannel.delete().catch(() => null);
150+
if (fetchedTextChannel) await fetchedTextChannel.delete().catch(() => null);
151151

152152
await client.db.setup.delete(`${handler.guild!.id}`);
153153

src/events/guild/voiceStateUpdate.ts

+6-3
Original file line numberDiff line numberDiff line change
@@ -91,7 +91,8 @@ export default class {
9191
})
9292
: null;
9393
setTimeout(
94-
async () => ((!setup || setup == null || setup.channel !== player.textId) && msg ? msg.delete() : true),
94+
async () =>
95+
(!setup || setup == null || setup.channel !== player.textId) && msg ? msg.delete().catch(() => null) : true,
9596
client.config.bot.DELETE_MSG_TIMEOUT
9697
);
9798
}
@@ -118,7 +119,7 @@ export default class {
118119
setTimeout(async () => {
119120
const isChannelAvalible = await client.channels.fetch(msg.channelId).catch(() => undefined);
120121
if (!isChannelAvalible) return;
121-
!setup || setup == null || setup.channel !== player.textId ? msg.delete() : true;
122+
!setup || setup == null || setup.channel !== player.textId ? msg.delete().catch(() => null) : true;
122123
}, client.config.bot.DELETE_MSG_TIMEOUT);
123124
}
124125

@@ -141,7 +142,9 @@ export default class {
141142
const msg = newPlayer && leaveEmbed ? await leaveEmbed.send({ embeds: [TimeoutEmbed] }) : undefined;
142143
setTimeout(
143144
async () =>
144-
msg && (!setup || setup == null || setup.channel !== player.textId) ? msg.delete() : undefined,
145+
msg && (!setup || setup == null || setup.channel !== player.textId)
146+
? msg.delete().catch(() => null)
147+
: undefined,
145148
client.config.bot.DELETE_MSG_TIMEOUT
146149
);
147150
}

src/events/player/playerDestroy.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -55,7 +55,7 @@ export default class {
5555
const setup = await client.db.setup.get(player.guildId);
5656
const msg = await channel.send({ embeds: [embed] });
5757
setTimeout(
58-
async () => (!setup || setup == null || setup.channel !== channel.id ? msg.delete() : true),
58+
async () => (!setup || setup == null || setup.channel !== channel.id ? msg.delete().catch(() => null) : true),
5959
client.config.bot.DELETE_MSG_TIMEOUT
6060
);
6161
}

src/events/player/playerPause.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default class {
99

1010
const nowPlaying = client.nplayingMsg.get(`${player.guildId}`);
1111
if (nowPlaying) {
12-
nowPlaying.edit({ components: [playerRowOneEdited, playerRowTwo] });
12+
nowPlaying.msg.edit({ components: [playerRowOneEdited, playerRowTwo] });
1313
}
1414

1515
const setup = await client.db.setup.get(`${player.guildId}`);

src/events/player/playerResume.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -9,7 +9,7 @@ export default class {
99

1010
const nowPlaying = client.nplayingMsg.get(`${player.guildId}`);
1111
if (nowPlaying) {
12-
nowPlaying.edit({ components: [playerRowOne, playerRowTwo] });
12+
nowPlaying.msg.edit({ components: [playerRowOne, playerRowTwo] });
1313
}
1414

1515
const setup = await client.db.setup.get(`${player.guildId}`);

src/events/player/playerStop.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -46,7 +46,7 @@ export default class {
4646
const setup = await client.db.setup.get(player.guildId);
4747
const msg = await channel.send({ embeds: [embed] });
4848
setTimeout(
49-
async () => (!setup || setup == null || setup.channel !== channel.id ? msg.delete() : true),
49+
async () => (!setup || setup == null || setup.channel !== channel.id ? msg.delete().catch(() => null) : true),
5050
client.config.bot.DELETE_MSG_TIMEOUT
5151
);
5252
}

src/events/track/trackResolveError.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -37,7 +37,7 @@ export default class {
3737
const setup = await client.db.setup.get(player.guildId);
3838
const msg = await channel.send({ embeds: [embed] });
3939
setTimeout(
40-
async () => (!setup || setup == null || setup.channel !== channel.id ? msg.delete() : true),
40+
async () => (!setup || setup == null || setup.channel !== channel.id ? msg.delete().catch(() => null) : true),
4141
client.config.bot.DELETE_MSG_TIMEOUT
4242
);
4343
}

src/events/track/trackStart.ts

+6-2
Original file line numberDiff line numberDiff line change
@@ -126,7 +126,6 @@ export default class {
126126
: undefined;
127127

128128
if (!nplaying) return;
129-
client.nplayingMsg.set(player.guildId, nplaying);
130129

131130
const collector = nplaying.createMessageComponentCollector({
132131
componentType: ComponentType.Button,
@@ -146,6 +145,8 @@ export default class {
146145
},
147146
});
148147

148+
client.nplayingMsg.set(player.guildId, { coll: collector, msg: nplaying });
149+
149150
collector.on("collect", async (message: ButtonInteraction): Promise<void> => {
150151
const id = message.customId;
151152
const button = client.plButton.get(id);
@@ -159,7 +160,10 @@ export default class {
159160
client.logger.error(import.meta.url, err);
160161
}
161162
}
162-
collector?.removeAllListeners();
163+
});
164+
165+
collector.on("end", (): void => {
166+
collector.removeAllListeners();
163167
});
164168
}
165169
}

src/events/track/trackStuck.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ export default class {
3636
const setup = await client.db.setup.get(player.guildId);
3737
const msg = await channel.send({ embeds: [embed] });
3838
setTimeout(
39-
async () => (!setup || setup == null || setup.channel !== channel.id ? msg.delete() : true),
39+
async () => (!setup || setup == null || setup.channel !== channel.id ? msg.delete().catch(() => null) : true),
4040
client.config.bot.DELETE_MSG_TIMEOUT
4141
);
4242
}

src/manager.ts

+7-2
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,8 @@ import {
66
ActionRowBuilder,
77
ButtonBuilder,
88
Collection,
9+
InteractionCollector,
10+
ButtonInteraction,
911
} from "discord.js";
1012
import { DatabaseService } from "./database/index.js";
1113
import { I18n, I18nArgs } from "@hammerhq/localization";
@@ -67,7 +69,7 @@ export class Manager extends Client {
6769
commands: Collection<string, Command>;
6870
interval: Collection<string, NodeJS.Timer>;
6971
sentQueue: Collection<string, boolean>;
70-
nplayingMsg: Collection<string, Message>;
72+
nplayingMsg: Collection<string, { coll: InteractionCollector<ButtonInteraction<"cached">>; msg: Message }>;
7173
aliases: Collection<string, string>;
7274
plButton: Collection<string, PlayerButton>;
7375
leaveDelay: Collection<string, NodeJS.Timeout>;
@@ -131,7 +133,10 @@ export class Manager extends Client {
131133
this.interval = new Collection<string, NodeJS.Timer>();
132134
this.sentQueue = new Collection<string, boolean>();
133135
this.aliases = new Collection<string, string>();
134-
this.nplayingMsg = new Collection<string, Message>();
136+
this.nplayingMsg = new Collection<
137+
string,
138+
{ coll: InteractionCollector<ButtonInteraction<"cached">>; msg: Message }
139+
>();
135140
this.plButton = new Collection<string, PlayerButton>();
136141
this.leaveDelay = new Collection<string, NodeJS.Timeout>();
137142
this.nowPlaying = new Collection<string, { interval: NodeJS.Timeout; msg: GlobalMsg }>();

src/rainlink/Player/RainlinkPlayer.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -206,7 +206,7 @@ export class RainlinkPlayer extends EventEmitter {
206206
},
207207
},
208208
});
209-
await this.node.rest.destroyPlayer(this.guildId);
209+
this.node.rest.destroyPlayer(this.guildId);
210210
this.manager.players.delete(this.guildId);
211211
this.state = RainlinkPlayerState.DESTROYED;
212212
this.debug("Player destroyed at " + this.guildId);

src/services/ClearMessageService.ts

+2-1
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,8 @@ export class ClearMessageService {
1717
try {
1818
const nplayingMsg = this.client.nplayingMsg.get(this.player.guildId);
1919
if (!nplayingMsg) return;
20-
nplayingMsg.delete();
20+
nplayingMsg.coll.stop();
21+
nplayingMsg.msg.delete().catch(() => null);
2122
this.client.nplayingMsg.delete(this.player.guildId);
2223
} catch (err) {}
2324
}

src/services/RatelimitReplyService.ts

+3-3
Original file line numberDiff line numberDiff line change
@@ -42,7 +42,7 @@ export class RatelimitReplyService {
4242
],
4343
});
4444
if (!setup || setup == null || setup.channel !== this.interaction.channelId)
45-
setTimeout(() => msg.delete(), this.client.config.bot.DELETE_MSG_TIMEOUT);
45+
setTimeout(() => msg.delete().catch(() => null), this.client.config.bot.DELETE_MSG_TIMEOUT);
4646

4747
return;
4848
}
@@ -61,7 +61,7 @@ export class RatelimitReplyService {
6161
],
6262
});
6363
if (!setup || setup == null || setup.channel !== this.button.channelId)
64-
setTimeout(() => msg.delete(), this.client.config.bot.DELETE_MSG_TIMEOUT);
64+
setTimeout(() => msg.delete().catch(() => null), this.client.config.bot.DELETE_MSG_TIMEOUT);
6565

6666
return;
6767
}
@@ -80,7 +80,7 @@ export class RatelimitReplyService {
8080
],
8181
});
8282
if (!setup || setup == null || setup.channel !== this.message.channelId)
83-
setTimeout(() => msg.delete(), this.client.config.bot.DELETE_MSG_TIMEOUT);
83+
setTimeout(() => msg.delete().catch(() => null), this.client.config.bot.DELETE_MSG_TIMEOUT);
8484

8585
return;
8686
}

src/services/ReplyInteractionService.ts

+1-1
Original file line numberDiff line numberDiff line change
@@ -23,7 +23,7 @@ export class ReplyInteractionService {
2323
const setup = await this.client.db.setup.get(String(this.message.guildId));
2424

2525
setTimeout(() => {
26-
!setup || setup == null || setup.channel !== this.message.channelId ? msg.delete() : true;
26+
!setup || setup == null || setup.channel !== this.message.channelId ? msg.delete().catch(() => null) : true;
2727
}, this.client.config.bot.DELETE_MSG_TIMEOUT);
2828
} catch (err) {}
2929
}

0 commit comments

Comments
 (0)