using System.Drawing; using OpenRA.Network; using OpenRA.Traits; namespace OpenRA.Server { public interface IServerExtension { /// /// Return true to use the built-in handling /// bool OnReadyUp(Connection conn, Session.Client client); void OnStartGame(); /// /// Return true to use the built-in handling /// bool OnNickChange(Connection conn, Session.Client client, string newName); /// /// Return true to use the built-in handling /// bool OnRaceChange(Connection conn, Session.Client client, string newRace); /// /// Return true to use the built-in handling /// bool OnSlotChange(Connection conn, Session.Client client, Session.Slot slot, Map map); /// /// Return true to use the built-in handling /// bool OnTeamChange(Connection conn, Session.Client getClient, int team); /// /// Return true to use the built-in handling /// bool OnSpawnpointChange(Connection conn, Session.Client getClient, int spawnPoint); /// /// Return true to use the built-in handling /// bool OnColorChange(Connection conn, Session.Client getClient, Color fromArgb, Color color); /// /// Return true to use the built-in handling /// bool OnChat(Connection conn, string message, bool teamChat); void OnServerStart(); void OnServerStop(bool forced); void OnLoadMap(Map map); /// /// Return false to drop the connection /// bool OnValidateConnection(bool gameStarted, Connection newConn); void OnLobbySync(Session lobbyInfo, bool gameStarted); /// /// Return true to use the built-in handling /// bool OnPingMasterServer(Session lobbyInfo, bool gameStarted); /// /// Return true to use the built-in handling /// bool OnIngameChat(Session.Client client, string message, bool teamChat); void OnIngameSetStance(Player player, Player stanceForPlayer, Stance newStance); void OnLobbyUp(); void OnRejoinLobby(World world); } }