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;
};