Ejemplo n.º 1
0
        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);
        }
Ejemplo n.º 2
0
 void HandleOnPlayerDisconnect(ShootManiaXMLRPC.Structs.PlayerDisconnect PC)
 {
     Console.WriteLine("Player [" + PC.Login + "] disconnected");
 }
Ejemplo n.º 3
0
        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) + " !");

            }
        }
Ejemplo n.º 4
0
        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());
            }
        }
Ejemplo n.º 5
0
 void HandleOnPlayerDisconnect(ShootManiaXMLRPC.Structs.PlayerDisconnect PC)
 {
     if (IRCBotSettings.ShootMania_SayPlayerDisconnected == 1) {
         irc.SendMessage(SendType.Message, IRCBotSettings.IRC_Channel, "[ShootMania] Player disconnected : " + PC.Login);
     }
 }
Ejemplo n.º 6
0
 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));
             }
         }
     }
 }
Ejemplo n.º 7
0
 void HandleOnPlayerConnect(ShootManiaXMLRPC.Structs.PlayerConnect PC)
 {
     if (Admins.Contains (PC.Login)) {
         ChatSendServerMessage("Admin connected : " + PC.Login);
     }
 }
Ejemplo n.º 8
0
 void HandleOnPlayerChat(ShootManiaXMLRPC.Structs.PlayerChat PC)
 {
     ParseChatCommand(PC);
 }
Ejemplo n.º 9
0
        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);

            }
        }