mirror of
https://github.com/ahmadk953/poixpixel-discord-bot.git
synced 2025-05-10 02:33:06 +00:00
Added Counting Feature
This commit is contained in:
parent
de599534f0
commit
95143d8c93
7 changed files with 343 additions and 3 deletions
|
@ -1,6 +1,12 @@
|
|||
import { AuditLogEvent, Events, Message, PartialMessage } from 'discord.js';
|
||||
|
||||
import { Event } from '../types/EventTypes.js';
|
||||
import { loadConfig } from '../util/configLoader.js';
|
||||
import {
|
||||
addCountingReactions,
|
||||
processCountingMessage,
|
||||
resetCounting,
|
||||
} from '../util/countingManager.js';
|
||||
import logAction from '../util/logging/logAction.js';
|
||||
|
||||
export const messageDelete: Event<typeof Events.MessageDelete> = {
|
||||
|
@ -62,4 +68,56 @@ export const messageUpdate: Event<typeof Events.MessageUpdate> = {
|
|||
},
|
||||
};
|
||||
|
||||
export default [messageDelete, messageUpdate];
|
||||
export const messageCreate: Event<typeof Events.MessageCreate> = {
|
||||
name: Events.MessageCreate,
|
||||
execute: async (message: Message) => {
|
||||
try {
|
||||
if (message.author.bot) return;
|
||||
|
||||
const countingChannelId = loadConfig().channels.counting;
|
||||
const countingChannel =
|
||||
message.guild?.channels.cache.get(countingChannelId);
|
||||
|
||||
if (!countingChannel || message.channel.id !== countingChannelId) return;
|
||||
if (!countingChannel.isTextBased()) {
|
||||
console.error('Counting channel not found or is not a text channel');
|
||||
return;
|
||||
}
|
||||
|
||||
const result = await processCountingMessage(message);
|
||||
|
||||
if (result.isValid) {
|
||||
await addCountingReactions(message, result.milestoneType || 'normal');
|
||||
} else {
|
||||
let errorMessage: string;
|
||||
|
||||
switch (result.reason) {
|
||||
case 'not_a_number':
|
||||
errorMessage = `${message.author}, that's not a valid number! The count has been reset. The next number should be **1**.`;
|
||||
break;
|
||||
case 'too_high':
|
||||
errorMessage = `${message.author}, too high! The count was **${(result?.expectedCount ?? 0) - 1}** and the next number should have been **${result.expectedCount}**. The count has been reset.`;
|
||||
break;
|
||||
case 'too_low':
|
||||
errorMessage = `${message.author}, too low! The count was **${(result?.expectedCount ?? 0) - 1}** and the next number should have been **${result.expectedCount}**. The count has been reset.`;
|
||||
break;
|
||||
case 'same_user':
|
||||
errorMessage = `${message.author}, you can't count twice in a row! The count has been reset. The next number should be **1**.`;
|
||||
break;
|
||||
default:
|
||||
errorMessage = `${message.author}, something went wrong with the count. The count has been reset. The next number should be **1**.`;
|
||||
}
|
||||
|
||||
await resetCounting();
|
||||
|
||||
await countingChannel.send(errorMessage);
|
||||
|
||||
await message.react('❌');
|
||||
}
|
||||
} catch (error) {
|
||||
console.error('Error handling message create:', error);
|
||||
}
|
||||
},
|
||||
};
|
||||
|
||||
export default [messageCreate, messageDelete, messageUpdate];
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue