Skip to content

Commit c889854

Browse files
committed
Minor fixes to client mod
1 parent b8b0a0f commit c889854

2 files changed

Lines changed: 29 additions & 11 deletions

File tree

‎Torch.Mod/ModCommunication.cs‎

Lines changed: 21 additions & 10 deletions
Original file line numberDiff line numberDiff line change
@@ -148,6 +148,10 @@ public static void SendMessageTo(MessageBase message, ulong target)
148148
{
149149
if (!MyAPIGateway.Multiplayer.IsServer)
150150
throw new Exception("Only server can send targeted messages");
151+
152+
if (_closing)
153+
return;
154+
151155
message.Target = target;
152156
message.TargetType = MessageTarget.Single;
153157
MyLog.Default.WriteLineAndConsole($"Sending message of type {message.GetType().FullName}");
@@ -159,15 +163,23 @@ public static void SendMessageToClients(MessageBase message)
159163
{
160164
if (!MyAPIGateway.Multiplayer.IsServer)
161165
throw new Exception("Only server can send targeted messages");
166+
167+
if (_closing)
168+
return;
169+
162170
message.TargetType = MessageTarget.AllClients;
163171
_outgoing.Enqueue(message);
164172
ReleaseLock();
165173
}
166174

167175
public static void SendMessageExcept(MessageBase message, params ulong[] ignoredUsers)
168176
{
169-
if (MyAPIGateway.Multiplayer.IsServer)
177+
if (!MyAPIGateway.Multiplayer.IsServer)
170178
throw new Exception("Only server can send targeted messages");
179+
180+
if (_closing)
181+
return;
182+
171183
message.TargetType = MessageTarget.AllExcept;
172184
message.Ignore = ignoredUsers;
173185
_outgoing.Enqueue(message);
@@ -176,27 +188,26 @@ public static void SendMessageExcept(MessageBase message, params ulong[] ignored
176188

177189
public static void SendMessageToServer(MessageBase message)
178190
{
191+
if (_closing)
192+
return;
193+
179194
message.TargetType = MessageTarget.Server;
180195
_outgoing.Enqueue(message);
181196
ReleaseLock();
182197
}
183198

184199
private static void ReleaseLock()
185200
{
186-
if(_lock==null)
187-
return;
188-
while(!_lock.TryAcquireExclusive())
189-
_lock.ReleaseExclusive();
190-
_lock.ReleaseExclusive();
201+
while(_lock?.TryAcquireExclusive() == false)
202+
_lock?.ReleaseExclusive();
203+
_lock?.ReleaseExclusive();
191204
}
192205

193206
private static void AcquireLock()
194207
{
195-
if (_lock == null)
196-
return;
197208
ReleaseLock();
198-
_lock.AcquireExclusive();
199-
_lock.AcquireExclusive();
209+
_lock?.AcquireExclusive();
210+
_lock?.AcquireExclusive();
200211
}
201212
}
202213
}

‎Torch.Mod/TorchModCore.cs‎

Lines changed: 8 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -24,7 +24,14 @@ public override void UpdateAfterSimulation()
2424

2525
protected override void UnloadData()
2626
{
27-
ModCommunication.Unregister();
27+
try
28+
{
29+
ModCommunication.Unregister();
30+
}
31+
catch
32+
{
33+
//session unloading, don't care
34+
}
2835
}
2936
}
3037
}

0 commit comments

Comments
 (0)