feat: internal knowledeat: add knowledge base text to specific exception dialogs

This commit is contained in:
aclist 2026-08-18 18:40:02 +09:00 committed by GitHub
parent 8087f3a707
commit 0bb8f3206f
No known key found for this signature in database
GPG Key ID: B5690EEEBB952194
4 changed files with 24 additions and 3 deletions

View File

@ -45,6 +45,7 @@ from dzgui.strings.dialogs import (
waiting_for_mods,
waiting_for_directories,
)
from dzgui.strings import kb
from dzgui.strings.server_mods import checkmark, resync
from dzgui.util.format import format_mib
from dzgui.util.strings import dialog, server_timeout
@ -193,7 +194,9 @@ class ConnectionManager:
is_last = self.is_last_server()
# TODO: strings
invalid_mods = [(mod[0], mod[1]) for mod in remote_mods if mod[2] == "Invalid mod"]
invalid_mods = [
(mod[0], mod[1]) for mod in remote_mods if mod[2] == "Invalid mod"
]
prereqs = Prerequisites(
name=info.server_name,
@ -298,6 +301,7 @@ class ConnectionManager:
def _server_timeout(self) -> None:
dialog = ExceptionDialog(self.controller, server_timeout)
dialog.set_secondary_text(kb.DZG_006)
dialog.run()
def _connect_steam(self, menu_only: bool) -> None:

View File

@ -20,7 +20,7 @@ from dzgui.const.constants import (
from dzgui.const.enum import Preferences
from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManager
from dzgui.model.model_factory import FastInsertListStore, ModelFactory
from dzgui.strings import dialogs
from dzgui.strings import dialogs, kb
from dzgui.util.format import format_mods
from dzgui.util.strings import server_timeout
from dzgui.util.symlink import rebuild_symlinks
@ -215,6 +215,7 @@ class ModManager:
def _server_timeout(self) -> None:
dialog = ExceptionDialog(self.controller, server_timeout)
dialog.set_seconary_text(kb.DZG_006)
dialog.run()
def select_colorized(self) -> None:

View File

@ -14,7 +14,7 @@ from dzgui.const.constants import (
)
from dzgui.const.enum import FilterMode, Preferences, ServerTab
from dzgui.managers.threading import call_on_thread, StoredFunc, ThreadingManager
from dzgui.strings import dialogs
from dzgui.strings import dialogs, kb
from dzgui.util.strings import server_timeout, dialog
from dzgui.views.dialogs.generic import ExceptionDialog
@ -420,6 +420,7 @@ class ServerModelManager:
# customize statusbar and dialog accordingly
if show_dialog:
dialog = ExceptionDialog(self.controller, server_timeout)
dialog.set_secondary_text(kb.DZG_006)
dialog.run()
def _push_data(self, data: list[Any]) -> None:

15
dzgui/strings/kb.py Normal file
View File

@ -0,0 +1,15 @@
DZG_006 = """The leading cause of specific servers periodically timing out is local network configuration.
Many third-party DayZ servers use a server rental/hosting provider with DDoS protection.
This can cause responses from servers to originate from a server other than the one originally queried.
Consumer-grade routers are likely to drop this traffic as invalid due to how they handle NAT (network address translation).
By contrast, wireless routers and enterprise-grade routers may be less likely to have this issue.
If you find that a specific server is unresponsive for you when it shouldn't be, add a port forwarding rule to your router's settings for the server's query port.
In addition, packets received from server responses are expected to be a standard size: MTU (maximum transmission unit) of 1500.
Deviation from this may cause your router to discard incoming responses from the server."""