void HandleOnPlayerConnect(ShootManiaXMLRPC.Structs.PlayerConnect PC) { string PlayerConnectText = "Player [" + PC.Login + "] connected"; if (PC.IsSpectator) { PlayerConnectText += " (Spectator)"; } Console.WriteLine(PlayerConnectText); Server.SendNoticeToLogin(PC.Login, "$08FThis server is running SMAdminTools " + Settings.Version); }
void HandleOnPlayerDisconnect(ShootManiaXMLRPC.Structs.PlayerDisconnect PC) { Console.WriteLine("Player [" + PC.Login + "] disconnected"); }
void HandleOnModeScriptCallback(ShootManiaXMLRPC.Structs.ModeScriptCallback MSC) { if (MSC.Param1 == "startRound" && IRCBotSettings.ShootMania_SayBeginRound == 1) { irc.SendMessage(SendType.Message, IRCBotSettings.IRC_Channel, "[ShootMania] Round " + MSC.Param2 + " started !"); } else if (MSC.Param1 == "endRound" && IRCBotSettings.ShootMania_SayEndRound == 1) { string[] Params = MSC.Param2.Split(';'); if (Params.Length == 3) { string Unk1 = Params[0]; string Winner = Params[1]; string Unk2 = Params[2]; irc.SendMessage(SendType.Message, IRCBotSettings.IRC_Channel, "[ShootMania] " + Winner + " win the round !"); } } else if (MSC.Param1 == "hit" && IRCBotSettings.ShootMania_SayHit == 1) { string[] Params = MSC.Param2.Split(';'); if (Params.Length == 3) { string Shooter = Params[0]; string Unk1 = Params[1]; string Victim = Params[2]; var playerShooter = Server.Server.GetPlayerListByPlayerLogin(Shooter); var playerVictim = Server.Server.GetPlayerListByPlayerLogin(Victim); if (playerShooter.Nickname.Length > 0 && playerVictim.Nickname.Length > 0) { irc.SendMessage(SendType.Message, IRCBotSettings.IRC_Channel, "[ShootMania] " + SMAdminTools.Functions.Mania.StripNadeoColours(playerShooter.Nickname) + " hit " + SMAdminTools.Functions.Mania.StripNadeoColours(playerVictim.Nickname) + " !"); } } } else if (MSC.Param1 == "frag" && IRCBotSettings.ShootMania_SayFrag == 1) { string[] Params = MSC.Param2.Split(';'); if (Params.Length == 3) { string Shooter = Params[0]; string Unk1 = Params[1]; string Victim = Params[2]; var playerShooter = Server.Server.GetPlayerListByPlayerLogin(Shooter); var playerVictim = Server.Server.GetPlayerListByPlayerLogin(Victim); if (playerShooter.Nickname.Length > 0 && playerVictim.Nickname.Length > 0) { irc.SendMessage(SendType.Message, IRCBotSettings.IRC_Channel, "[ShootMania] " + SMAdminTools.Functions.Mania.StripNadeoColours(playerShooter.Nickname) + " killed " + SMAdminTools.Functions.Mania.StripNadeoColours(playerVictim.Nickname) + " !"); } } } else if (MSC.Param1 == "endMap" && IRCBotSettings.ShootMania_SayEndMap == 1) { irc.SendMessage(SendType.Message, IRCBotSettings.IRC_Channel, "[ShootMania] Map ended !"); } else if (MSC.Param1 == "beginMap" && IRCBotSettings.ShootMania_SayBeginMap == 1) { irc.SendMessage(SendType.Message, IRCBotSettings.IRC_Channel, "[ShootMania] Map started : " + SMAdminTools.Functions.Mania.StripNadeoColours(MSC.Param2) + " !"); } }
void HandleEventGbxCallback(object o, ShootManiaXMLRPC.XmlRpc.GbxCallbackEventArgs e) { if (Config.SMAdminTools__Debug) { Console.WriteLine ("[DEBUG] Callback received : " + e.Response.MethodName + " (Params : " + e.Response.Params.Count + ")"); } if (e.Response.MethodName == "ManiaPlanet.ModeScriptCallback") { //Console.WriteLine(e.Response.Params[0].ToString() + " - " + e.Response.Params[1].ToString()); } }
void HandleOnPlayerDisconnect(ShootManiaXMLRPC.Structs.PlayerDisconnect PC) { if (IRCBotSettings.ShootMania_SayPlayerDisconnected == 1) { irc.SendMessage(SendType.Message, IRCBotSettings.IRC_Channel, "[ShootMania] Player disconnected : " + PC.Login); } }
void HandleOnPlayerChat(ShootManiaXMLRPC.Structs.PlayerChat PC) { if (IRCBotSettings.ShootMania_GameChatToIRC == 1) { foreach (var player in Server.Server.GetPlayerList(100, 0)) { if (player.Login == PC.Login && player.TeamId >= 0) { irc.SendMessage(SendType.Message, IRCBotSettings.IRC_Channel, "[ShootMania] [Chat] <" + SMAdminTools.Functions.Mania.StripNadeoColours(player.Nickname) + "> " + SMAdminTools.Functions.Mania.StripNadeoColours(PC.Text)); } } } }
void HandleOnPlayerConnect(ShootManiaXMLRPC.Structs.PlayerConnect PC) { if (Admins.Contains (PC.Login)) { ChatSendServerMessage("Admin connected : " + PC.Login); } }
void HandleOnPlayerChat(ShootManiaXMLRPC.Structs.PlayerChat PC) { ParseChatCommand(PC); }
private void ParseChatCommand(ShootManiaXMLRPC.Structs.PlayerChat PC) { if (PC.Text == "!admins") { foreach (string admin in Admins) { ChatSendServerMessage ("Admin : " + admin); } } else if (PC.Text == "!players" && Admins.Contains (PC.Login)) { foreach (var player in ServerManager.Server.GetPlayerList(100, 0)) { if (player.PlayerId > 0) { ChatSendServerMessage ("[" + player.PlayerId + "] " + player.Nickname); } } } else if (PC.Text.StartsWith ("!addadmin") && Admins.Contains (PC.Login)) { string admin = PC.Text.Replace ("!addadmin ", string.Empty); if (!Admins.Contains (admin)) { Admins.Add (admin); SaveAdmins (); ChatSendServerMessage ("Admin added : " + admin); } else { ChatSendServerMessage ("Admin already exist : " + admin); } } else if (PC.Text.StartsWith ("!deladmin") && Admins.Contains (PC.Login)) { string admin = PC.Text.Replace ("!deladmin ", string.Empty); if (admin != PC.Login) { if (Admins.Contains (admin)) { Admins.Remove (admin); SaveAdmins (); ChatSendServerMessage ("Admin removed : " + admin); } else { ChatSendServerMessage ("Admin not found : " + admin); } } else { ChatSendServerMessage ("You can't remove yourself !"); } } else if (PC.Text == "!restartmap" && Admins.Contains (PC.Login)) { ChatSendServerMessage ("Restart map ..."); ServerManager.Server.RestartMap (false); } else if (PC.Text == "!nextmap" && Admins.Contains (PC.Login)) { ChatSendServerMessage ("Next map ..."); ServerManager.Server.NextMap (false); } else if (PC.Text.StartsWith ("!map ") && Admins.Contains (PC.Login)) { string newMap = PC.Text.Replace ("!map ", string.Empty); foreach (var map in ServerManager.Server.GetMapList(1000, 0)) { if (map.FileName.ToLower ().Contains (newMap.ToLower ())) { ChatSendServerMessage ("Map found : " + map.Name); ServerManager.Server.ChooseNextMap (map.FileName); ServerManager.Server.NextMap (false); return; } } ChatSendServerMessage ("No map found with the pattern : " + newMap); } else if (PC.Text.StartsWith ("!kick ") && Admins.Contains (PC.Login)) { try { int PlayerId = Convert.ToInt32 (PC.Text.Replace ("!kick ", string.Empty)); ServerManager.Server.KickId (PlayerId, "Kicked by admin"); ChatSendServerMessage ("Played kicked"); } catch { ChatSendServerMessage ("Invalid player id !"); } } else if (PC.Text.StartsWith ("!ban ") && Admins.Contains (PC.Login)) { try { int PlayerId = Convert.ToInt32 (PC.Text.Replace ("!ban ", string.Empty)); ServerManager.Server.BanId (PlayerId, "Banned by admin"); ChatSendServerMessage ("Played banned"); } catch { ChatSendServerMessage ("Invalid player id !"); } } else if (PC.Text.StartsWith ("!password ") && Admins.Contains (PC.Login)) { string newPassword = PC.Text.Replace ("!password ", string.Empty); ServerManager.Server.SetServerPassword (newPassword); ChatSendServerMessage ("Password set to : " + newPassword); } }