diff --git a/web/service/tgbot.go b/web/service/tgbot.go index b8294620..0b27ff5f 100644 --- a/web/service/tgbot.go +++ b/web/service/tgbot.go @@ -280,6 +280,22 @@ func (t *Tgbot) answerCommand(message *telego.Message, chatId int64, isAdmin boo } else { msg += t.I18nBot("tgbot.commands.unknown") } + case "restart": + onlyMessage = true + if isAdmin && len(commandArgs) > 0 && commandArgs[0] == "force" { + if t.xrayService.IsXrayRunning() { + err := t.xrayService.RestartXray(true) + msg += t.I18nBot("tgbot.commands.restartSuccess") + if err != nil { + msg += t.I18nBot("tgbot.commands.restartFailed", "Error=="+err.Error()) + } + } else { + msg += t.I18nBot("tgbot.commands.xrayNotRunning") + } + } else { + msg += t.I18nBot("tgbot.commands.unknown") + msg += t.I18nBot("tgbot.commands.restartUsage") + } default: msg += t.I18nBot("tgbot.commands.unknown") } diff --git a/web/translation/translate.en_US.toml b/web/translation/translate.en_US.toml index 7e2e5eef..6803ef24 100644 --- a/web/translation/translate.en_US.toml +++ b/web/translation/translate.en_US.toml @@ -485,6 +485,10 @@ "getID" = "🆔 Your ID: {{ .ID }}" "helpAdminCommands" = "To search for a client email:\r\n/usage [Email]\r\n\r\nTo search for inbounds (with client stats):\r\n/inbound [Remark]\r\n\r\nTelegram Chat ID:\r\n/id" "helpClientCommands" = "To search for statistics, use the following command:\r\n\r\n/usage [Email]\r\n\r\nTelegram Chat ID:\r\n/id" +"restartUsage" = "\r\n\r\n/restart force" +"restartSuccess" = "✅ Operation successful!" +"restartFailed" = "❗ Error in operation.\r\n\r\nError: {{.Error }}." +"xrayNotRunning" = "❗ Xray Core is not running." [tgbot.messages] "cpuThreshold" = "🔴 CPU Load {{ .Percent }}% exceeds the threshold of {{ .Threshold }}%" diff --git a/web/translation/translate.id_ID.toml b/web/translation/translate.id_ID.toml index f543971b..79645726 100644 --- a/web/translation/translate.id_ID.toml +++ b/web/translation/translate.id_ID.toml @@ -485,6 +485,10 @@ "getID" = "🆔 ID Anda:{{.ID }}" "helpAdminCommands" = "Untuk mencari email klien:\r\n/usage [Email]\r\n\r\nUntuk mencari inbound (dengan statistik klien):\r\n/inbound [Catatan]\r\n\r\nID Obrolan Telegram:\r\n/id" "helpClientCommands" = "Untuk mencari statistik, gunakan perintah berikut:\r\n/usage [Email]\r\n\r\nID Obrolan Telegram:\r\n/id" +"restartUsage" = "\r\n\r\n/restart force" +"restartSuccess" = "✅ Operasi berhasil!" +"restartFailed" = "❗ Kesalahan dalam operasi.\r\n\r\nError: {{.Error }}." +"xrayNotRunning" = "❗ Xray Core tidak berjalan." [tgbot.messages] "cpuThreshold" = "🔴 Beban CPU {{ .Percent }}% melebihi batas {{ .Threshold }}%"