Merge pull request #12677 from pchote/fix-player-drop

Fix player drop handling.
This commit is contained in:
Matthias Mailänder
2017-02-08 09:01:58 +01:00
committed by GitHub
3 changed files with 6 additions and 9 deletions

View File

@@ -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;

View File

@@ -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())

View File

@@ -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);
}
}