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 }}%"