Merge pull request #12677 from pchote/fix-player-drop
Fix player drop handling.
This commit is contained in:
@@ -104,8 +104,10 @@ namespace OpenRA.Server
|
||||
|
||||
case ReceiveState.Data:
|
||||
{
|
||||
if (MostRecentFrame < Frame)
|
||||
MostRecentFrame = Frame;
|
||||
|
||||
server.DispatchOrders(this, Frame, bytes);
|
||||
MostRecentFrame = Frame;
|
||||
ExpectLength = 8;
|
||||
State = ReceiveState.Header;
|
||||
} break;
|
||||
|
||||
@@ -542,11 +542,6 @@ namespace OpenRA.Server
|
||||
}
|
||||
|
||||
public void DropClient(Connection toDrop)
|
||||
{
|
||||
DropClient(toDrop, toDrop.MostRecentFrame);
|
||||
}
|
||||
|
||||
public void DropClient(Connection toDrop, int frame)
|
||||
{
|
||||
if (!PreConns.Remove(toDrop))
|
||||
{
|
||||
@@ -584,7 +579,7 @@ namespace OpenRA.Server
|
||||
}
|
||||
}
|
||||
|
||||
DispatchOrders(toDrop, frame, new byte[] { 0xbf });
|
||||
DispatchOrders(toDrop, toDrop.MostRecentFrame, new byte[] { 0xbf });
|
||||
|
||||
// All clients have left: clean up
|
||||
if (!Conns.Any())
|
||||
|
||||
@@ -49,7 +49,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
var client = server.GetClient(c);
|
||||
if (client == null)
|
||||
{
|
||||
server.DropClient(c, -1);
|
||||
server.DropClient(c);
|
||||
server.SendMessage("A player has been dropped after timing out.");
|
||||
continue;
|
||||
}
|
||||
@@ -66,7 +66,7 @@ namespace OpenRA.Mods.Common.Server
|
||||
else
|
||||
{
|
||||
server.SendMessage(client.Name + " has been dropped after timing out.");
|
||||
server.DropClient(c, -1);
|
||||
server.DropClient(c);
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
Reference in New Issue
Block a user