some bugfixes

This commit is contained in:
dan63047 2025-01-09 20:28:12 +03:00
parent 9ab9d13119
commit 12f2a4d1d4
4 changed files with 8 additions and 6 deletions

View File

@ -148,16 +148,17 @@ module.exports = {
// Send a message into the channel where command was triggered from // Send a message into the channel where command was triggered from
const message = await interaction.followUp({ embeds: [tournamentEmbed], fetchReply: true }); const message = await interaction.followUp({ embeds: [tournamentEmbed], fetchReply: true });
teto.setMessageID(message.id, message.channel.id);
message.react('✅'); message.react('✅');
updateTournamentsJSON(); updateTournamentsJSON();
trackedTournaments.push(current_time.toString()); trackedTournaments.push(current_time.toString());
teto.setMessageID(message.id, message.channel.id);
const collectorFilter = (reaction, user) => { const collectorFilter = (reaction, user) => {
return reaction.emoji.name === '✅' && user.id !== message.author.id; return reaction.emoji.name === '✅' && user.id !== message.author.id;
}; };
// We gonna make sure, that user is eligible for a participation // We gonna make sure, that user is eligible for a participation
// NOTE: only 24,855127314815 days max
const collector = message.createReactionCollector({ filter: collectorFilter, time: teto.unix_reg_end*1000 - current_time*1000, dispose: true }); const collector = message.createReactionCollector({ filter: collectorFilter, time: teto.unix_reg_end*1000 - current_time*1000, dispose: true });
collector.on('collect', async (reaction, user) => reactionCheck(reaction, user, interaction.client, interaction.guild, teto, reg_role)); collector.on('collect', async (reaction, user) => reactionCheck(reaction, user, interaction.client, interaction.guild, teto, reg_role));
collector.on('remove', async (reaction, user) => unreactionCheck(reaction, user, interaction.guild, teto, reg_role)); collector.on('remove', async (reaction, user) => unreactionCheck(reaction, user, interaction.guild, teto, reg_role));

View File

@ -17,8 +17,8 @@ module.exports = {
try{ try{
await interaction.guild.roles.delete(t.participant_role, 'Информация о турнире удалена'); await interaction.guild.roles.delete(t.participant_role, 'Информация о турнире удалена');
await interaction.guild.roles.delete(t.checked_in_role, 'Информация о турнире удалена'); await interaction.guild.roles.delete(t.checked_in_role, 'Информация о турнире удалена');
const msg_channel = await interaction.client.channels.fetch(value.channelID); const msg_channel = await interaction.client.channels.fetch(t.channelID);
const msg = await msg_channel.messages.fetch(value.messageID); const msg = await msg_channel.messages.fetch(t.messageID);
msg.delete(); msg.delete();
interaction.reply({ content: `Готово`, flags: MessageFlags.Ephemeral }); interaction.reply({ content: `Готово`, flags: MessageFlags.Ephemeral });
}catch(e){ }catch(e){

View File

@ -77,7 +77,7 @@ client.on('ready', () => {
() => { () => {
let current_time = Date.now()/1000; let current_time = Date.now()/1000;
tournaments.forEach(async (value, key, map) => { tournaments.forEach(async (value, key, map) => {
if (!trackedTournaments.find((element) => element === key) && value.status === 0 && value.unix_checkin_start > current_time){ if (!trackedTournaments.find((element) => element === key) && value.status === 0 && value.unix_checkin_start > current_time && value.channelID && value.messageID){
// need to recheck for participants // need to recheck for participants
const msg_channel = await client.channels.fetch(value.channelID); const msg_channel = await client.channels.fetch(value.channelID);
const msg = await msg_channel.messages.fetch(value.messageID); const msg = await msg_channel.messages.fetch(value.messageID);
@ -110,6 +110,7 @@ client.on('ready', () => {
return reaction.emoji.name === '✅' && user.id !== client.user.id; return reaction.emoji.name === '✅' && user.id !== client.user.id;
}; };
check_in_message.react('✅'); check_in_message.react('✅');
// NOTE: only 24,855127314815 days max
const collector = check_in_message.createReactionCollector({ filter: collectorFilter, time: value.unix_checkin_end*1000 - current_time*1000, dispose: true }); const collector = check_in_message.createReactionCollector({ filter: collectorFilter, time: value.unix_checkin_end*1000 - current_time*1000, dispose: true });
collector.on('collect', async (reaction, user) => { collector.on('collect', async (reaction, user) => {
try{ try{
@ -138,7 +139,7 @@ client.on('ready', () => {
collector.on('remove', async (reaction, user) => { collector.on('remove', async (reaction, user) => {
check_in_message.guild.members.addRole({ user: user, reason: "Расхотел участвовать", role: value.checked_in_role }); check_in_message.guild.members.addRole({ user: user, reason: "Расхотел участвовать", role: value.checked_in_role });
console.log(`${user.tag} unregistred for a ${value.title} event`); console.log(`${user.tag} unregistred for a ${value.title} event`);
teto.removeChecked(user.id); value.removeChecked(user.id);
updateTournamentsJSON(); updateTournamentsJSON();
}); });
} }

View File

@ -100,7 +100,7 @@ async function reactionCheck(reaction, user, client, guild, teto, reg_role) {
// Checking, if user is from CIS // Checking, if user is from CIS
const cisCountries = ["RU", "BY", "AM", "AZ", "KZ", "KG", "MD", "TJ", "UZ", "TM", "UA"]; const cisCountries = ["RU", "BY", "AM", "AZ", "KZ", "KG", "MD", "TJ", "UZ", "TM", "UA"];
const { blacklist, whitelist } = require("./index.js"); const { blacklist, whitelist } = require("./index.js");
if (!teto.international && (!cisCountries.includes(userData[0].data.country) || whitelist.includes(userData[0].data._id) || blacklist.includes(userData[0].data._id))){deny('Ваша регистрация отклонена', `${blacklist.includes(userData[0].data._id) ? "По данным, которые есть у нашей организации" : "Судя по вашему профилю в TETR.IO"}, вы не из СНГ`); return} if (!teto.international && (!cisCountries.includes(userData[0].data.country) || blacklist.has(user.id)) && !whitelist.has(user.id)){deny('Ваша регистрация отклонена', `${blacklist.includes(userData[0].data._id) ? "По данным, которые есть у нашей организации" : "Судя по вашему профилю в TETR.IO"}, вы не из СНГ`); return}
// Finally, if everything is ok - add him to participants list // Finally, if everything is ok - add him to participants list
teto.register(user.id, userData[0], userData[1]); teto.register(user.id, userData[0], userData[1]);