diff --git a/db/ConfigBuilder.cpp b/db/ConfigBuilder.cpp
index ea168b7..5ea8ad5 100644
--- a/db/ConfigBuilder.cpp
+++ b/db/ConfigBuilder.cpp
@@ -732,7 +732,7 @@ namespace NekoRay {
inboundObj["stack"] = Preset::SingBox::VpnImplementation.value(dataStore->vpn_implementation);
inboundObj["strict_route"] = dataStore->vpn_strict_route;
inboundObj["inet4_address"] = "172.19.0.1/28";
- if (dataStore->vpn_ipv6) inboundObj["inet4_address"] = "fdfe:dcba:9876::1/126";
+ if (dataStore->vpn_ipv6) inboundObj["inet6_address"] = "fdfe:dcba:9876::1/126";
if (dataStore->routing->sniffing_mode != SniffingMode::DISABLE) {
inboundObj["sniff"] = true;
inboundObj["sniff_override_destination"] = dataStore->routing->sniffing_mode == SniffingMode::FOR_DESTINATION;
diff --git a/nekoray_version.txt b/nekoray_version.txt
index fb98920..7f61c7f 100644
--- a/nekoray_version.txt
+++ b/nekoray_version.txt
@@ -1 +1 @@
-3.0-2023-05-14
+3.1-2023-05-17
diff --git a/translations/fa_IR.ts b/translations/fa_IR.ts
index 728246f..61a68c7 100644
--- a/translations/fa_IR.ts
+++ b/translations/fa_IR.ts
@@ -678,10 +678,6 @@ These settings can be changed later.
VPN Settings
تنظیمات vpn
-
- VPN Implementation
- پیاده سازی VPN
-
Hide Console
مخفی کردن کنسول
diff --git a/translations/zh_CN.ts b/translations/zh_CN.ts
index f3a1a8c..1e6b861 100644
--- a/translations/zh_CN.ts
+++ b/translations/zh_CN.ts
@@ -676,10 +676,6 @@ These settings can be changed later.
VPN Settings
VPN 设置
-
- VPN Implementation
- VPN 实现
-
Hide Console
隐藏控制台
diff --git a/ui/dialog_vpn_settings.ui b/ui/dialog_vpn_settings.ui
index 3deb617..6558e1b 100644
--- a/ui/dialog_vpn_settings.ui
+++ b/ui/dialog_vpn_settings.ui
@@ -32,7 +32,7 @@
- VPN Implementation
+ Stack
diff --git a/ui/mainwindow.cpp b/ui/mainwindow.cpp
index 99e3458..97018f1 100644
--- a/ui/mainwindow.cpp
+++ b/ui/mainwindow.cpp
@@ -45,6 +45,7 @@
#include
#include
#include
+#include
QElapsedTimer coreRestartTimer;
@@ -671,7 +672,10 @@ void MainWindow::on_menu_exit_triggered() {
QDir::setCurrent(QApplication::applicationDirPath());
auto arguments = NekoRay::dataStore->argv;
- if (arguments.length() > 0) arguments.removeFirst();
+ if (arguments.length() > 0) {
+ arguments.removeFirst();
+ arguments.removeAll("-tray");
+ }
auto isLauncher = qEnvironmentVariable("NKR_FROM_LAUNCHER") == "1";
if (isLauncher) arguments.prepend("--");
auto program = isLauncher ? "./launcher" : QApplication::applicationFilePath();
diff --git a/ui/mainwindow_grpc.cpp b/ui/mainwindow_grpc.cpp
index d7815a4..6a4a925 100644
--- a/ui/mainwindow_grpc.cpp
+++ b/ui/mainwindow_grpc.cpp
@@ -256,7 +256,10 @@ void MainWindow::neko_start(int _id) {
return true;
};
- if (!mu_starting.tryLock()) return;
+ if (!mu_starting.tryLock()) {
+ MessageBoxWarning(software_name, "Another profile is starting...");
+ return;
+ }
// timeout message
auto restartMsgbox = new QMessageBox(QMessageBox::Question, software_name, tr("If there is no response for a long time, it is recommended to restart the software."),