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