ServerEntityEventManager doesn't prevent creating a duplicate event if the previous one has already been sent to someone, handling exceptions in WriteEvent
This commit is contained in:
@@ -30,7 +30,16 @@ namespace Barotrauma.Networking
|
||||
{
|
||||
//write into a temporary buffer so we can write the length before the actual data
|
||||
NetBuffer tempBuffer = new NetBuffer();
|
||||
WriteEvent(tempBuffer, e, recipient);
|
||||
try
|
||||
{
|
||||
WriteEvent(tempBuffer, e, recipient);
|
||||
}
|
||||
|
||||
catch (Exception exception)
|
||||
{
|
||||
DebugConsole.ThrowError("Failed to write an event for the entity \""+e.Entity+"\"", exception);
|
||||
continue;
|
||||
}
|
||||
|
||||
Debug.Assert(
|
||||
tempBuffer.LengthBytes < 128,
|
||||
|
||||
@@ -78,7 +78,7 @@ namespace Barotrauma.Networking
|
||||
{
|
||||
//we already have an identical event that's waiting to be sent
|
||||
// -> no need to add a new one
|
||||
if (events[i].IsDuplicate(newEvent)) return;
|
||||
if (events[i].IsDuplicate(newEvent) && !events[i].Sent) return;
|
||||
}
|
||||
|
||||
ID++;
|
||||
|
||||
Reference in New Issue
Block a user