Hallo Zusammen
Der Fehler scheint weder mit dem Plug-In noch unmittelbar mit dem betroffenen Spieler in Verbindung zu stehen. Mal kann der Spieler längere Zeit problemlos spielen, mal fliegt er und alle anderen mit ihm, nach 2 -20 Minuten raus.
Mir waren in den Log-Files Warnungen aufgefallen, die sich auf fehlende Permission-Keys bezogen:
[WARNING] [13:50:18] Permission key 'chatcolor_chatnamecolor' not found!
[WARNING] [13:50:18] Permission key 'chatcolor_commands' not found!
[WARNING] [13:50:18] Permission key 'chatcolor_deny' not found!
[WARNING] [13:50:18] Permission key 'chatcolor_deny' (array) not found!
Da hat wohl jemand versucht irgendwas zu ändern und dabei Fragmente aus der Java-Version verwendet. Daraufhin habe ich komplett neue Permissions aus den Vorgaben (Permissions [New Version]) erstellt und angepasst. Danach waren die Warnungen weg.
Anschließend habe ich eine neue Permission-Gruppe mit dem Namen "player" erstellt und versucht diese dem betroffenen Spieler zuzuweisen. Dabei ist es zu einer Fehlermeldung gekommen, ohne Absturz des Servers:
[WARNING] [16:20:53] Player Hans (UID: 76561198076034469) reloaded all permissions...
Default permission loaded successfully!
Permission 'admin' loaded successfully!
Permission 'player' loaded successfully!
Permission '4975855' loaded successfully!
[DB] Saved 3841 npcs in database (10 ms)
[DB] Saved 1 players in database (0 ms)
[EXCEPTION] Error while executing player command (0)
[ERROR] NullReferenceException: Object reference not set to an instance of an object.
RisingWorld.Server.Network.Listeners.ServerGeneralListener.CommandReceived (JIW.Network.Core.Common.IPacket packet, JIW.Network.Core.Server.AbstractConnection client) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Scripts/Server/Network/Listeners/ServerGeneralListener.cs:4740)
JIW.Network.Core.Server.AbstractNetworkServer.EnqueuePacket (JIW.Network.Core.Common.IPacket packet, JIW.Network.Core.Server.AbstractConnection connection) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Server/AbstractNetworkServer.cs:168)
JIW.Network.Core.Common.Event.NetworkEvent.Execute (JIW.Network.Core.Server.AbstractNetworkServer server, JIW.Network.Core.Client.AbstractNetworkClient client) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Common/Event/NetworkEvent.cs:150)
JIW.Network.Core.Common.Channel.Run () (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Common/Channel.cs:148)
System.Threading.ExecutionContext.RunInternal (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state, System.Boolean preserveSyncCtx) (at <00000000000000000000000000000000>:0)
System.Threading.ExecutionContext.Run (System.Threading.ExecutionContext executionContext, System.Threading.ContextCallback callback, System.Object state) (at <00000000000000000000000000000000>:0)
UnityEngine.Debug:LogException(Exception)
RisingWorld.Server.Network.Listeners.ServerGeneralListener:CommandReceived(IPacket, AbstractConnection) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Scripts/Server/Network/Listeners/ServerGeneralListener.cs:6786)
JIW.Network.Core.Server.AbstractNetworkServer:EnqueuePacket(IPacket, AbstractConnection) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Server/AbstractNetworkServer.cs:168)
JIW.Network.Core.Common.Event.NetworkEvent:Execute(AbstractNetworkServer, AbstractNetworkClient) (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Common/Event/NetworkEvent.cs:150)
JIW.Network.Core.Common.Channel:Run() (at C:/GitLab-Runner/builds/jxpAq3Km/2/jiw-games/rising-world/Assets/Plugins/JIW Network/Scripts/Common/Channel.cs:148)
System.Threading.ExecutionContext:Run(ExecutionContext, ContextCallback, Object)
Da mir der Verdacht gekommen ist, einen Namenskonflikt ausgelöst zu haben, habe ich die Permission-Gruppe nach "all_player" umbenannt. Danach hat die Zuweisung funktioniert, aber das mag auch Zufall gewesen sein.
Desweiteren habe ich die interne Schedule-Funktion (Server Task Scheduler) aktiviert, um einen automatischen Restart auszuführen. Das hat funktioniert:
[SCHEDULER] Register trigger (in 41400 s): say Warning: Server restarts in 30 minutes!
[SCHEDULER] Register trigger (in 42300 s): say Warning: Server restarts in 15 minutes!
[SCHEDULER] Register trigger (in 42600 s): yell Server restarts in 10 minutes!
[SCHEDULER] Register trigger (in 42900 s): yell Server restarts in 5 minutes!
[SCHEDULER] Register trigger (in 43140 s): lock Server is currently restarting, please try again shortly!
[SCHEDULER] Register trigger (in 43140 s): kickall Server restart
[SCHEDULER] Register trigger (in 43140 s): saveall
[SCHEDULER] Register trigger (in 43200 s): restart
[SCHEDULER] Initialized
........
CHAT MESSAGE: Warning: Server restarts in 30 minutes!
[2024-10-22 01:15] Server: Warning: Server restarts in 30 minutes!
.....
CHAT MESSAGE: Warning: Server restarts in 15 minutes!
[2024-10-22 01:30] Server: Warning: Server restarts in 15 minutes!
.....
YELL MESSAGE: Server restarts in 10 minutes!
.....
YELL MESSAGE: Server restarts in 5 minutes!
.....
Server now no longer accepts new connections ("Server is currently restarting, please try again shortly!")
Kick all players: Server restart
Save all...
[DB] Saved 2 npcs in database (0 ms)
[DB] Saved 3841 npcs in database (10 ms)
[WARNING] [01:45:12] R E S T A R T S E R V E R
[WARNING] [01:45:12] Exit (0)
.....
Rising World Dedicated Server Version 0.7.5.2 (13) 2024-10-22 01:45
Windows 10 (10.0.20348) 64bit (Desktop)
AMD Ryzen 9 7950X3D 16-Core Processor , 32 Cores, 4192 MHz
System Product Name (ASUS) 130271 MB RAM
Commit: de445703d5f0296a5d7d7a896d8b41f3c50d8e99
Branch: master JobID: 16141
____________________________________________________
[C++] Initialize Main.cpp
Initialized default settings (248 ms)
ARG: Override Settings_MaxPlayers to 12
ARG: Override Server_Port to 4255
[WARNING] [01:45:15] Server was restarted before...
Eine große Anzahl von Save-Meldungen zeigt, dass der Server danach gelaufen sein muss.
.....
[DB] Saved 3843 npcs in database (9 ms)
[DB] Saved 3843 npcs in database (8 ms)
[DB] Saved 3843 npcs in database (10 ms)
[DB] Saved 3843 npcs in database (9 ms)
.....
Allerdings wurde gleichzeitig bis zum Morgen alle 2 Minuten erfolglos versucht den Server erneut zu starten, wie die Log-Files zeigen.
2024-10-22-01-45-30.log
2024-10-22-01-47-46.log
.....
2024-10-22-10-44-23.log
2024-10-22-10-46-38.log
Am Morgen habe ich den Server manuell gestoppt und wieder gestartet. Danach war wieder alles in Ordnung. Vermutlich hängt das irgendwie mit dem Scheduler zusammen. Die Log-Files habe ich gezippt und angehängt.
LG
Hans