diff --git a/src/common/environment.ts b/src/common/environment.ts index cade4de..fd87a9a 100644 --- a/src/common/environment.ts +++ b/src/common/environment.ts @@ -13,6 +13,8 @@ export class Environment { static DB_FILE_NAME: string = "database.db"; static DB_PATH: string; + static ONLY_FOR_CREATOR_MODE: boolean; + static USE_MOM: boolean; static USE_DAD: boolean; static USE_FU: boolean; @@ -45,6 +47,8 @@ export class Environment { Environment.DATA_PATH = Environment.IS_DOCKER ? "/" + path.join("config", "data") : "data"; Environment.DB_PATH = "file:" + path.join(Environment.DATA_PATH, Environment.DB_FILE_NAME); + Environment.ONLY_FOR_CREATOR_MODE = process.env.ONLY_FOR_CREATOR_MODE == "true"; + Environment.USE_MOM = process.env.USE_MOM == "true"; Environment.USE_DAD = process.env.USE_DAD == "true"; Environment.USE_FU = process.env.USE_FU == "true"; diff --git a/src/index.ts b/src/index.ts index 531479a..e571d68 100644 --- a/src/index.ts +++ b/src/index.ts @@ -170,11 +170,21 @@ async function main() { `MAX_PHOTO_SIZE: ${Environment.MAX_PHOTO_SIZE}` ); + const commands = chatCommands.filter(cmd => { + return cmd.title && cmd.title.startsWith("/") && cmd.title.split(" ").length === 1 && cmd.description; + }).map(cmd => { + return { + command: cmd.title.toLowerCase(), + description: cmd.description, + }; + }); + try { const results = await Promise.all( [ initSystemSpecs(), readData(), retrieveAnswers(), - bot.getMe() + bot.getMe(), + bot.setMyCommands({commands: commands, scope: {type: "default"}}) ] ); botUser = results[3]; diff --git a/src/util/utils.ts b/src/util/utils.ts index 0a927fe..07fe342 100644 --- a/src/util/utils.ts +++ b/src/util/utils.ts @@ -64,6 +64,8 @@ export function searchCallbackCommand(commands: CallbackCommand[], data: string) export async function checkRequirements(cmd: ChatCommand | null, msg: Message): Promise { if (!cmd) return false; + if (Environment.ONLY_FOR_CREATOR_MODE && msg.from.id !== Environment.CREATOR_ID) return false; + const fromId = msg.from?.id || -1; if (Environment.CHAT_IDS_WHITELIST.size > 0 &&