Added documentation. Protected the command from general use.

This commit is contained in:
2025-09-29 01:01:51 -04:00
parent 0c2e08854e
commit 5d5c96147c

View File

@@ -6,23 +6,45 @@ const composer = new Composer<Context>();
const feature = composer.chatType(["group", "supergroup"]); const feature = composer.chatType(["group", "supergroup"]);
/**
* What triggers this feature and adds to the log when it has been triggered.
* The trigger is the command "/botInfo"
*/
feature.hears( feature.hears(
"/getGroupID", "/getGroupID",
logHandle("get-group-id"), logHandle("get-group-id"),
async (ctx: Context) => { async (ctx: Context) => {
// Pulling the group IDs from the env variables.
const GROUP_IDS = process.env.GROUP_IDS const GROUP_IDS = process.env.GROUP_IDS
? process.env.GROUP_IDS.split(",") ? process.env.GROUP_IDS.split(",")
: undefined; : undefined;
if (ctx.chat && ctx.msg) { // Checks if the context has a chat, msg, and from property.
if (ctx.chat && ctx.msg && ctx.msg.from) {
if (GROUP_IDS !== undefined) { if (GROUP_IDS !== undefined) {
const groupID = ctx.chat.id; const groupID = ctx.chat.id;
const flag = GROUP_IDS.includes(`${groupID}`); const flag = GROUP_IDS.includes(`${groupID}`);
// Checks if the group is whitelisted
if (flag) { if (flag) {
await ctx.reply(`The group id is: \`${groupID}\``, { const chatMember = await ctx.getChatMember(ctx.msg.from.id);
parse_mode: "MarkdownV2",
reply_parameters: { message_id: ctx.msg.message_id } // Checks if the user is an admin
}); if (["creator", "administrator"].includes(chatMember.status)) {
return await ctx.reply(`The group id is: \`${groupID}\``, {
parse_mode: "MarkdownV2",
reply_parameters: { message_id: ctx.msg.message_id }
});
}
// Send a default message if the user is not an admin
return await ctx.reply(
`You have to be an admin to use this command\\!`,
{
parse_mode: "MarkdownV2",
reply_parameters: { message_id: ctx.msg.message_id }
}
);
} }
} }
} }