Skip to content

Commit 75d6686

Browse files
committed
Fix hanging (?) and pre-fetch members
1 parent d77746c commit 75d6686

File tree

15 files changed

+29
-21
lines changed

15 files changed

+29
-21
lines changed

commands/Economy/add-money-role.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -78,8 +78,6 @@ class AddMoneyRole extends Command {
7878
return msg.channel.send({ embeds: [errEmbed] });
7979
}
8080

81-
// Ensure the members cache is populated
82-
await msg.guild.members.fetch();
8381
const members = [...role.members.values()];
8482

8583
amount = BigInt(amount);

commands/Economy/clean-leaderboard.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -28,7 +28,6 @@ class CleanLeaderboard extends Command {
2828

2929
const message = await msg.channel.send({ embeds: [em] });
3030

31-
await msg.guild.members.fetch();
3231
for (const i in users) {
3332
if (!msg.guild.members.cache.get(i)) toRemove.push(i);
3433
}

commands/Economy/economy-stats.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ class EconomyStats extends Command {
1717
}
1818

1919
async run(msg, _args) {
20-
await msg.guild.members.fetch();
2120
const connection = await this.client.db.getConnection();
2221

2322
const [economyRows] = await connection.execute(

commands/Economy/leaderboard.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,6 @@ class Leaderboard extends Command {
4949

5050
// Fetch data for the current page
5151
const offset = (page - 1) * itemsPerPage;
52-
await msg.guild.members.fetch();
5352
const usersData = (await db.get(`servers.${msg.guild.id}.users`)) || {};
5453

5554
const sortedLeaderboard = Object.entries(usersData)

commands/Economy/remove-money-role.js

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,6 @@ class RemoveMoneyRole extends Command {
6868
[msg.guild.id],
6969
);
7070

71-
// Ensure the members cache is populated
72-
await msg.guild.members.fetch();
7371
const members = [...role.members.values()];
7472

7573
amount = BigInt(parseInt(amount));

commands/General/bot-info.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -17,7 +17,6 @@ class BotInfo extends Command {
1717
}
1818

1919
async run(msg) {
20-
await this.client.guilds.cache.forEach((g) => g.available && g.members.fetch());
2120
const botUptime = moment
2221
.duration(this.client.uptime)
2322
.format('y[ years][,] M[ months][,] d[ days][,] h[ hours][,] m[ minutes][ and] s[ seconds]');

commands/Information/perms.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -20,7 +20,6 @@ class Permissions extends Command {
2020

2121
// If a user is mentioned, fetch them and set them as the infoMemOrRole
2222
if (args?.length > 0) {
23-
await msg.guild.members.fetch();
2423
infoMemOrRole = await this.client.util.getMember(msg, args.join(' '));
2524
}
2625

commands/Information/role-info.js

Lines changed: 0 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -25,8 +25,6 @@ class RoleInfo extends Command {
2525
const time = then.from(moment());
2626
const ca = then.format('dddd, MMMM Do, YYYY, h:mm a');
2727

28-
await msg.guild.members.fetch();
29-
3028
const hexColor = infoRole.hexColor.toString().toUpperCase();
3129
const color = hexColor === '#000000' ? 'None' : hexColor;
3230
const embed = new EmbedBuilder()
@@ -38,7 +36,6 @@ class RoleInfo extends Command {
3836
{ name: 'ID', value: infoRole.id.toString(), inline: true },
3937
{ name: 'Mention', value: `\`${infoRole}\``, inline: true },
4038
{ name: 'Color', value: color, inline: true },
41-
{ name: 'Members', value: infoRole.members.size.toLocaleString(), inline: true },
4239
{ name: 'Position', value: `${infoRole.position}/${msg.guild.roles.cache.size}`, inline: true },
4340
{ name: 'Mentionable', value: infoRole.mentionable.toString(), inline: true },
4441
{ name: 'Managed', value: infoRole.managed.toString(), inline: true },

commands/Information/server-info.js

Lines changed: 0 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -32,7 +32,6 @@ class ServerInfo extends Command {
3232
'Invalid Server',
3333
);
3434
if (!server.available) return this.client.util.errorEmbed(msg, 'That server is currently unavailable');
35-
await server.members.fetch();
3635

3736
// Get the server's creation date and format it
3837
const then = moment(server.createdAt);

events/Bot/clientReady.mjs

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -20,6 +20,17 @@ export async function run(client) {
2020
client.games.clear();
2121
client.logger.log(`${client.user.tag}, ready to serve ${client.guilds.cache.size} guilds.`, 'ready');
2222

23+
for (const [, guild] of client.guilds.cache) {
24+
try {
25+
// This fetches all members and stores them in guild.members.cache
26+
await guild.members.fetch();
27+
} catch (err) {
28+
console.error(`❌ Failed to fetch members for ${guild.name}:`, err);
29+
}
30+
31+
await new Promise((resolve) => setTimeout(resolve, 500));
32+
}
33+
2334
if (BotPanelID?.length > 0 && BotPanelSecret?.length > 0) {
2435
const BotPanelClient = new Client({ id: BotPanelID, secret: BotPanelSecret });
2536

0 commit comments

Comments
 (0)