diff --git a/src/callback/Warning.ts b/src/callback/Warning.ts index ac3db4f..9c3afab 100644 --- a/src/callback/Warning.ts +++ b/src/callback/Warning.ts @@ -17,7 +17,7 @@ import ChatHelper from "../helper/Chat.js"; import Lang from "../helper/Lang.js"; import { parse } from "dotenv"; -export default class CaptchaConfirmation extends Callback { +export default class Warning extends Callback { /** * The constructor. @@ -44,14 +44,20 @@ export default class CaptchaConfirmation extends Callback { const chat = await ChatHelper.getByTelegramId(this.context.chat.getId()); if (!user || !chat) { - this.context.callbackQuery?.answer(Lang.get("adminOnlyAction")); - return; + return Promise.resolve(); } Lang.set(chat.language || "us"); if (!await this.context.user.isAdmin()) { this.context.callbackQuery?.answer(Lang.get("adminOnlyAction")); + + const message = Lang.get("adminOnlyActionMessage") + .replace("{userid}", this.context.user.getId()) + .replace("{username}", this.context.user.getFirstName() || this.context.user.getUsername()); + + this.context.chat.sendMessage(message, { parseMode: "HTML" }); + return Promise.resolve(); } const [userId, chatId, warningId] = this.context.callbackQuery?.callbackData?.d?.split(","); diff --git a/src/command/Ban.ts b/src/command/Ban.ts index 7793139..67138a1 100644 --- a/src/command/Ban.ts +++ b/src/command/Ban.ts @@ -201,7 +201,7 @@ export default class Ban extends Command { const message = Lang.get("bannedMessage") .replace("{userid}", contextUser.getId()) .replace("{username}", contextUser.getFirstName() || contextUser.getUsername()) - .replace("{reason}", reason.length ? reason : "Unknown"); + .replace("{reason}", reason.length ? reason : Lang.get("reasonUnknown")); this.context.chat.sendMessage(message, { parseMode: "HTML" }); diff --git a/src/command/Warning/Warn.ts b/src/command/Warning/Warn.ts index c35fbb8..90779e0 100644 --- a/src/command/Warning/Warn.ts +++ b/src/command/Warning/Warn.ts @@ -157,7 +157,7 @@ export default class Warn extends WarningsBase { .set("user_id", user.id) .set("chat_id", chat.id) .set("date", Math.ceil(Date.now() / 1000)) - .set("reason", reason); + .set("reason", reason.length ? reason : Lang.get("reasonUnknown")); try { diff --git a/src/lang/br.ts b/src/lang/br.ts index 6073485..7b9b6b4 100644 --- a/src/lang/br.ts +++ b/src/lang/br.ts @@ -97,5 +97,7 @@ export default { macroRemoveError: "Ocorreu um erro ao remover a macro. Por favor, tente novamente mais tarde.", lastWarningRemovalButton: "Remover Advertência (somente admins)", warningsRemovalButton: "Remover todas as advertências (somente admins)", - adminOnlyAction: "Esta ação só pode ser executada por administradores." + adminOnlyAction: "Esta ação só pode ser executada por administradores.", + adminOnlyActionMessage: "{username} você sabe o que quer dizer \"somente admins\"? O que você pensa que está fazendo?", + reasonUnknown: "Desconhecido", }; diff --git a/src/lang/us.ts b/src/lang/us.ts index 6c59655..108e9ce 100644 --- a/src/lang/us.ts +++ b/src/lang/us.ts @@ -97,5 +97,7 @@ export default { macroRemoveError: "An error occurred while removing the macro. Please try again later.", lastWarningRemovalButton: "Remove warning (admin only)", warningsRemovalButton: "Remove all warnings (admin only)", - adminOnlyAction: "This action can only be performed by admins." + adminOnlyAction: "This action can only be performed by admins.", + adminOnlyActionMessage: "{username} do you know what \"admin only\" means? What do you think you're doing?", + reasonUnknown: "Unknown", }; diff --git a/src/library/telegram/type/ChatMemberUpdated.ts b/src/library/telegram/type/ChatMemberUpdated.ts index 16fad4a..be1c4f6 100644 --- a/src/library/telegram/type/ChatMemberUpdated.ts +++ b/src/library/telegram/type/ChatMemberUpdated.ts @@ -21,5 +21,6 @@ export type ChatMemberUpdated = { oldChatMember: ChatMember; newChatMember: ChatMember; inviteLink?: ChatInviteLink; + viaJoinRequest?: boolean; viaChatFolderInviteLink?: boolean; };