add kick command to LobbyCommands
This commit is contained in:
@@ -49,7 +49,7 @@ namespace OpenRA.Server
|
||||
else
|
||||
{
|
||||
if (len == 0)
|
||||
server.DropClient(this, null);
|
||||
server.DropClient(this);
|
||||
break;
|
||||
}
|
||||
|
||||
@@ -57,7 +57,7 @@ namespace OpenRA.Server
|
||||
catch (SocketException e)
|
||||
{
|
||||
if (e.SocketErrorCode == SocketError.WouldBlock) break;
|
||||
server.DropClient(this, e);
|
||||
server.DropClient(this);
|
||||
return false;
|
||||
}
|
||||
}
|
||||
|
||||
@@ -165,7 +165,7 @@ namespace OpenRA.Server
|
||||
foreach (var t in ServerTraits.WithInterface<IClientJoined>())
|
||||
t.ClientJoined(this, newConn);
|
||||
}
|
||||
catch (Exception e) { DropClient(newConn, e); }
|
||||
catch (Exception e) { DropClient(newConn); }
|
||||
}
|
||||
|
||||
public void UpdateInFlightFrames(Connection conn)
|
||||
@@ -193,7 +193,7 @@ namespace OpenRA.Server
|
||||
ms.Write( data );
|
||||
c.socket.Send( ms.ToArray() );
|
||||
}
|
||||
catch( Exception e ) { DropClient( c, e ); }
|
||||
catch (Exception e) { DropClient(c); }
|
||||
}
|
||||
|
||||
public void DispatchOrders(Connection conn, int frame, byte[] data)
|
||||
@@ -277,7 +277,7 @@ namespace OpenRA.Server
|
||||
return lobbyInfo.ClientWithIndex(conn.PlayerIndex);
|
||||
}
|
||||
|
||||
public void DropClient(Connection toDrop, Exception e)
|
||||
public void DropClient(Connection toDrop)
|
||||
{
|
||||
conns.Remove(toDrop);
|
||||
SendChat(toDrop, "Connection Dropped");
|
||||
|
||||
@@ -129,7 +129,7 @@ namespace OpenRA.Mods.RA.Server
|
||||
{
|
||||
var occupantConn = server.conns.FirstOrDefault( c => c.PlayerIndex == occupant.Index );
|
||||
if (occupantConn != null)
|
||||
server.DropClient( occupantConn, new Exception() );
|
||||
server.DropClient(occupantConn);
|
||||
}
|
||||
|
||||
server.SyncLobbyInfo();
|
||||
@@ -221,6 +221,31 @@ namespace OpenRA.Mods.RA.Server
|
||||
|
||||
bool.TryParse(s, out server.lobbyInfo.GlobalSettings.LockTeams);
|
||||
server.SyncLobbyInfo();
|
||||
return true;
|
||||
}},
|
||||
{ "kick",
|
||||
s =>
|
||||
{
|
||||
if (conn.PlayerIndex != 0)
|
||||
{
|
||||
server.SendChatTo( conn, "Only the host can kick players" );
|
||||
return true;
|
||||
}
|
||||
|
||||
int slot;
|
||||
int.TryParse( s, out slot );
|
||||
|
||||
var connToKick = server.conns.SingleOrDefault( c => server.GetClient(c) != null && server.GetClient(c).Slot == slot);
|
||||
if (connToKick == null)
|
||||
{
|
||||
server.SendChatTo( conn, "Noone in that slot." );
|
||||
return true;
|
||||
}
|
||||
|
||||
server.DropClient(connToKick);
|
||||
|
||||
server.SyncLobbyInfo();
|
||||
|
||||
return true;
|
||||
}},
|
||||
};
|
||||
|
||||
Reference in New Issue
Block a user