diff --git a/commands/course.js b/commands/course.js index dac19ba6..07428e13 100644 --- a/commands/course.js +++ b/commands/course.js @@ -1,4 +1,5 @@ const { SlashCommandBuilder } = require("@discordjs/builders"); +const { ChannelType } = require("discord.js"); const COMMAND_JOIN = "join"; const COMMAND_LEAVE = "leave"; @@ -35,20 +36,26 @@ const get_real_course_name = (course) => { }; const is_valid_course = (course) => { - const reg_comp_course = /^comp\d{4}$/; - const reg_math_course = /^math\d{4}$/; - const reg_binf_course = /^binf\d{4}$/; - const reg_engg_course = /^engg\d{4}$/; - const reg_seng_course = /^seng\d{4}$/; - const reg_desn_course = /^desn\d{4}$/; + const reg_valid_course = /^[a-zA-Z]{4}\d{4}$/; + + return reg_valid_course.test(course); +}; + +const is_supported_course = (course) => { + const reg_comp_course = /^comp\d{4}$/i; + const reg_math_course = /^math\d{4}$/i; + const reg_binf_course = /^binf\d{4}$/i; + const reg_engg_course = /^engg\d{4}$/i; + const reg_seng_course = /^seng\d{4}$/i; + const reg_desn_course = /^desn\d{4}$/i; return ( - reg_comp_course.test(course.toLowerCase()) || - reg_math_course.test(course.toLowerCase()) || - reg_binf_course.test(course.toLowerCase()) || - reg_engg_course.test(course.toLowerCase()) || - reg_seng_course.test(course.toLowerCase()) || - reg_desn_course.test(course.toLowerCase()) + reg_comp_course.test(course) || + reg_math_course.test(course) || + reg_binf_course.test(course) || + reg_engg_course.test(course) || + reg_seng_course.test(course) || + reg_desn_course.test(course) ); }; @@ -87,20 +94,20 @@ module.exports = { const input_course = await interaction.options.getString("course").toLowerCase(); const course = get_real_course_name(input_course); - const other_courses = /^[a-zA-Z]{4}\d{4}$/; const is_valid = is_valid_course(course); + const is_supported = is_supported_course(course); const course_with_alias = course != input_course ? `${course} (same course chat as ${input_course})` : `${course}`; - if (!is_valid && other_courses.test(course.toLowerCase())) { + if (!is_supported && is_valid) { return await interaction.reply({ content: `❌ | Course chats for other faculties are not supported.`, ephemeral: true, }); - } else if (!is_valid) { + } else if (!is_supported) { return await interaction.reply({ content: `❌ | You are not allowed to join this channel using this command.`, ephemeral: true, @@ -138,7 +145,7 @@ module.exports = { const input_course = await interaction.options.getString("course"); const course = get_real_course_name(input_course); - if (!is_valid_course(course)) { + if (!is_supported_course(course)) { return await interaction.reply({ content: `❌ | Not a valid course.`, ephemeral: true, @@ -155,7 +162,7 @@ module.exports = { content: `❌ | The course chat for \`${course}\` does not exist.`, ephemeral: true, }); - } else if (channel.type !== "GUILD_TEXT") { + } else if (channel.type !== ChannelType.GuildText) { return await interaction.reply({ content: `❌ | The course chat for \`${course}\` is not a text channel.`, ephemeral: true,