Ejemplo n.º 1
0
        private void RestartServer_Click(object sender, EventArgs e)
        {
            var mail = new AllianceMailStreamEntry();

            mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
            mail.SetSenderId(0);
            mail.SetSenderAvatarId(0);
            mail.SetSenderName("System Manager");
            mail.SetIsNew(0);
            mail.SetAllianceId(0);
            mail.SetAllianceBadgeData(1728059989);
            mail.SetAllianceName("Legendary Administrator");
            mail.SetMessage("System is about to restart in a few moments.");
            mail.SetSenderLevel(500);
            mail.SetSenderLeagueId(22);
            foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
            {
                var pm = new GlobalChatLineMessage(onlinePlayer.GetClient());
                var ps = new ShutdownStartedMessage(onlinePlayer.GetClient());
                var p  = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                ps.SetCode(5);
                p.SetAvatarStreamEntry(mail);
                pm.SetChatMessage("System is about to restart in a few moments.");
                pm.SetPlayerId(0);
                pm.SetLeagueId(22);
                pm.SetPlayerName("System Manager");
                PacketManager.ProcessOutgoingPacket(p);
                PacketManager.ProcessOutgoingPacket(ps);
                PacketManager.ProcessOutgoingPacket(pm);
            }
            StatusLabel.Text     = "Status : Restart";
            kServerConsole.Text += Environment.NewLine + "Message Send To Users And Server Is Restarting ...";
            Console.WriteLine("Message Send To Users And Server Is Restarting ...");
            Program.RestartProgram();
        }
 public static void SendShutdownStartedMessageToConnections(int remainingSeconds)
 {
     foreach (ClientConnection connection in ClientConnectionManager.m_connections.Values)
     {
         ShutdownStartedMessage shutdownStartedMessage = new ShutdownStartedMessage();
         shutdownStartedMessage.SetSecondsUntilShutdown(remainingSeconds);
         connection.Messaging.Send(shutdownStartedMessage);
     }
 }
Ejemplo n.º 3
0
        public static void Parse(string Command)
        {
            switch (Command)
            {
            case "/help":
                Console.WriteLine("[UCS][MENU]  -> /startx      - Starts the UCS Interface.");
                Console.WriteLine("[UCS][MENU]  -> /status      - Shows the actual UCS status.");
                Console.WriteLine("[UCS][MENU]  -> /clear       - Clears the console screen.");
                Console.WriteLine("[UCS][MENU]  -> /restart     - Restarts UCS instantly.");
                Console.WriteLine("[UCS][MENU]  -> /prepareshutdown    - Send Shutdown Message To Users.");
                Console.WriteLine("[UCS][MENU]  -> /shutdown    - Shuts UCS down instantly.");
                break;

            case "/status":
                Console.WriteLine("");
                Console.WriteLine("[UCS][INFO]  -> IP Address (public):    " +
                                  new WebClient().DownloadString("http://bot.whatismyipaddress.com/"));
                Console.WriteLine("[UCS][INFO]  -> IP Address (local):     " +
                                  Dns.GetHostByName(Dns.GetHostName()).AddressList[0]);
                Console.WriteLine("[UCS][INFO]  -> Online players:         " +
                                  ResourcesManager.GetOnlinePlayers().Count);
                Console.WriteLine("[UCS][INFO]  -> Connected players:      " +
                                  ResourcesManager.GetConnectedClients().Count);
                Console.WriteLine("[UCS][INFO]  -> Clash Version:          " +
                                  ConfigurationManager.AppSettings["clientVersion"]);
                break;

            case "/clear":
                Console.Clear();
                break;

            case "/restart":
                //Process.Start(Application.ExecutablePath);
                Environment.Exit(0);
                break;

            case "/shutdown":
                Environment.Exit(0);
                break;

            case "/prepareshutdown":
                foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                {
                    var p = new ShutdownStartedMessage(onlinePlayer.GetClient());
                    p.SetCode(5);
                    PacketManager.ProcessOutgoingPacket(p);
                }
                Console.WriteLine("Shutdown Message Initiated!");
                break;

            default:
                Console.WriteLine(
                    "[UCS]    Unknown command, type \"/help\" for a list containing all available commands.");
                break;
            }
        }
Ejemplo n.º 4
0
 private void EShutdown_Click(object sender, EventArgs e)
 {
     foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
     {
         var p = new ShutdownStartedMessage(onlinePlayer.GetClient());
         p.SetCode(5);
         PacketManager.ProcessOutgoingPacket(p);
     }
     StatusLabel.Text = "Status : Emengency Shutdown";
     ConsoleWrite("Emengency Shutdown Message has been sent to the user's.");
 }
Ejemplo n.º 5
0
 public static void Restart()
 {
     DatabaseManager.Singelton.Save(ResourcesManager.GetInMemoryLevels());
     DatabaseManager.Singelton.Save(ObjectManager.GetInMemoryAlliances());
     foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
     {
         var p = new ShutdownStartedMessage(onlinePlayer.GetClient());
         p.SetCode(5);
         PacketManager.ProcessOutgoingPacket(p);
     }
     Console.WriteLine("[UCS]    Shutdown Message Initiated!");
     Environment.Exit(0);
 }
Ejemplo n.º 6
0
 public override void Execute(Level level)
 {
     if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges())
     {
         foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
         {
             var p = new ShutdownStartedMessage(onlinePlayer.GetClient());
             p.SetCode(5);
             PacketManager.ProcessOutgoingPacket(p);
         }
     }
     else
     {
         SendCommandFailedMessage(level.GetClient());
     }
 }
Ejemplo n.º 7
0
 public override void Execute(Level level)
 {
     if (level.Avatar.AccountPrivileges >= GetRequiredAccountPrivileges())
     {
         foreach (var onlinePlayer in ResourcesManager.m_vOnlinePlayers)
         {
             var p = new ShutdownStartedMessage(onlinePlayer.Client)
             {
                 Code = 5
             };
             p.Send();
         }
     }
     else
     {
         SendCommandFailedMessage(level.Client);
     }
 }
        public override void Execute(Level level)
        {
            if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    var avatar = level.GetPlayerAvatar();
                    var mail   = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("System Admin");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("System Manager");
                    mail.SetMessage("System is restarting in a few moments");
                    mail.SetSenderLevel(500);
                    mail.SetSenderLeagueId(22);

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var s = new ShutdownStartedMessage(onlinePlayer.GetClient());
                        var p = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                        p.SetAvatarStreamEntry(mail);
                        s.SetCode(5);
                        PacketManager.ProcessOutgoingPacket(s);
                        PacketManager.ProcessOutgoingPacket(p);
                    }
                    Program.RestartProgram();
                }
            }
            else
            {
                SendCommandFailedMessage(level.GetClient());
            }
        }
Ejemplo n.º 9
0
        public Menu()
        {
            while (true)
            {
                Console.WriteLine("");
                var line = Console.ReadLine();
                if (line == "/startx")
                {
                    //Application.Run(new UCSManager());
                }
                else if (line == "/reloadfilter")
                {
                    Console.WriteLine("Filter Has Been Reload");
                    Message.ReloadChatFilterList();
                }
                else if (line == "/shutdown")
                {
                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var p = new ShutdownStartedMessage(onlinePlayer.GetClient());
                        p.SetCode(5);
                        PacketManager.ProcessOutgoingPacket(p);
                    }
                    Console.WriteLine("Message has been send to the user");
                }
                else if (line == "/clear")
                {
                    Console.Clear();
                }
                else if (line == "/restart")
                {
                    var mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("System Manager");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("Legendary Administrator");
                    mail.SetMessage("System is about to restart in a few moments.");
                    mail.SetSenderLevel(500);
                    mail.SetSenderLeagueId(22);

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var pm = new GlobalChatLineMessage(onlinePlayer.GetClient());
                        var ps = new ShutdownStartedMessage(onlinePlayer.GetClient());
                        var p  = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                        ps.SetCode(5);
                        p.SetAvatarStreamEntry(mail);
                        pm.SetChatMessage("System is about to restart in a few moments.");
                        pm.SetPlayerId(0);
                        pm.SetLeagueId(22);
                        pm.SetPlayerName("System Manager");
                        PacketManager.ProcessOutgoingPacket(p);
                        PacketManager.ProcessOutgoingPacket(ps);
                        PacketManager.ProcessOutgoingPacket(pm);
                    }
                    Console.WriteLine("System Restarting....");
                    Program.RestartProgram();
                }
                else if (line == "/update")
                {
                    var           downloadUrl = "";
                    Version       newVersion  = null;
                    var           aboutUpdate = "";
                    var           xmlUrl      = "https://www.flamewall.net/ucs/system.xml";
                    XmlTextReader reader      = null;
                    try
                    {
                        reader = new XmlTextReader(xmlUrl);
                        reader.MoveToContent();
                        var elementName = "";
                        if ((reader.NodeType == XmlNodeType.Element) && (reader.Name == "appinfo"))
                        {
                            while (reader.Read())
                            {
                                if (reader.NodeType == XmlNodeType.Element)
                                {
                                    elementName = reader.Name;
                                }
                                else
                                {
                                    if ((reader.NodeType == XmlNodeType.Text) && reader.HasValue)
                                    {
                                        switch (elementName)
                                        {
                                        case "version":
                                            newVersion = new Version(reader.Value);
                                            break;

                                        case "url":
                                            downloadUrl = reader.Value;
                                            break;

                                        case "about":
                                            aboutUpdate = reader.Value;
                                            break;
                                        }
                                    }
                                }
                            }
                        }
                    }
                    catch (Exception ex)
                    {
                        MessageBox.Show(ex.Message);
                    }
                    finally
                    {
                        if (reader != null)
                        {
                            reader.Close();
                        }
                    }
                    var applicationVersion = Assembly.GetExecutingAssembly().GetName().Version;
                    if (applicationVersion.CompareTo(newVersion) < 0)
                    {
                        var str =
                            string.Format(
                                "New version found!\nYour version: {0}.\nNewest version: {1}. \nAdded in this version: {2}. ",
                                applicationVersion, newVersion, aboutUpdate);
                        if (DialogResult.No !=
                            MessageBox.Show(str + "\nWould you like to download this update?", "Check for updates",
                                            MessageBoxButtons.YesNo, MessageBoxIcon.Question))
                        {
                            try
                            {
                                Process.Start(downloadUrl);
                            }
                            catch
                            {
                            }
                            return;
                        }
                        ;
                    }
                    else
                    {
                        MessageBox.Show("Your version: " + applicationVersion + "  is up to date.", "Check for Updates",
                                        MessageBoxButtons.OK, MessageBoxIcon.None);
                    }
                }
                else if (line == "/status")
                {
                    var IPM = MainWindow.RemoteWindow.GetIP();
                    Console.WriteLine("Server IP : " + IPM + " on port 9339");
                    Console.WriteLine("Online Player : " + ResourcesManager.GetOnlinePlayers().Count);
                    Console.WriteLine("Connected Player : " + ResourcesManager.GetConnectedClients().Count);
                    Console.WriteLine("Starting Gold : " + int.Parse(ConfigurationManager.AppSettings["StartingGold"]));
                    Console.WriteLine("Starting Elixir : " +
                                      int.Parse(ConfigurationManager.AppSettings["StartingElixir"]));
                    Console.WriteLine("Starting Dark Elixir : " +
                                      int.Parse(ConfigurationManager.AppSettings["StartingDarkElixir"]));
                    Console.WriteLine("Starting Gems : " + int.Parse(ConfigurationManager.AppSettings["StartingGems"]));
                    Console.WriteLine("CoC Version : " + ConfigurationManager.AppSettings["ClientVersion"]);
                    if (Convert.ToBoolean(ConfigurationManager.AppSettings["useCustomPatch"]))
                    {
                        Console.WriteLine("Patch : Active");
                        Console.WriteLine("Patching Server : " + ConfigurationManager.AppSettings["patchingServer"]);
                    }
                    else
                    {
                        Console.WriteLine("Patch : Disable");
                    }
                    if (Convert.ToBoolean(ConfigurationManager.AppSettings["maintenanceMode"]))
                    {
                        Console.WriteLine("Maintance Mode : Active");
                        Console.WriteLine("Maintance time : " +
                                          Convert.ToInt32(ConfigurationManager.AppSettings["maintenanceTimeleft"]) +
                                          " Seconds");
                    }
                    else
                    {
                        Console.WriteLine("Maintance Mode : Disable");
                    }
                }
                else if (line == "/sysinfo")
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Server Status is now sent to all online players");
                    var mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("System Manager");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("Legendary Administrator");
                    mail.SetMessage("Latest Server Status:\nConnected Players:" +
                                    ResourcesManager.GetConnectedClients().Count + "\nIn Memory Alliances:" +
                                    ObjectManager.GetInMemoryAlliances().Count + "\nIn Memory Levels:" +
                                    ResourcesManager.GetInMemoryLevels().Count);
                    mail.SetSenderLeagueId(22);
                    mail.SetSenderLevel(500);

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var p  = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                        var pm = new GlobalChatLineMessage(onlinePlayer.GetClient());
                        pm.SetChatMessage("Our current Server Status is now sent at your mailbox!");
                        pm.SetPlayerId(0);
                        pm.SetLeagueId(22);
                        pm.SetPlayerName("System Manager");
                        p.SetAvatarStreamEntry(mail);
                        PacketManager.ProcessOutgoingPacket(p);
                        PacketManager.ProcessOutgoingPacket(pm);
                    }
                    Console.ForegroundColor = ConsoleColor.White;
                }
                else if (line == "/help")
                {
                    Console.WriteLine("");
                    Console.WriteLine("Available commands :");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/startx - This commands start the server Gui");
                    Console.WriteLine("");
                    Console.WriteLine("/restart - This commands restart server and sending online player info about it.");
                    Console.WriteLine("");
                    Console.WriteLine("/update - This commands check for new UCS update");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine(
                        "/shutdown - This commands fully close the server with message after five minutes.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/status - This commands show informations about the server.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("/clear - Clean the emulator screen");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("/help - This commands show a list of available commands.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(
                        "/sysinfo - This command will send the current Server Status to all online players.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("/reloadfilter - This commands reload in memory filtered texts");
                    Console.ResetColor();
                }
                else
                {
                    Console.WriteLine("");
                    Console.WriteLine("Available commands :");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/startx - This commands start the server Gui");
                    Console.WriteLine("");
                    Console.WriteLine("/restart - This commands restart server and sending online player info about it.");
                    Console.WriteLine("");
                    Console.WriteLine("/update - This commands check for new UCS update");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine(
                        "/shutdown - This commands fully close the server with message after five minutes.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/status - This commands show informations about the server.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("/clear - Clean the emulator screen");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("/help - This commands show a list of available commands.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine(
                        "/sysinfo - This command will send the current Server Status to all online players.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("/reloadfilter - This commands reload in memory filtered texts");
                    Console.ResetColor();
                }
            }
        }
Ejemplo n.º 10
0
        public static void CommandRead(string cmd)
        {
            if (cmd == null)
            {
                if (ConfUCS.IsConsoleMode)
                {
                    ManageConsole();
                }
            }
            try
            {
                switch (cmd.ToLower())
                {
                case "/help":

                    Console.WriteLine("/start                             <-- Start the server");
                    Console.WriteLine("/ban <PlayerID>                    <-- Ban a client");
                    // Console.WriteLine("/banip <PlayerID>                  <-- Ban a client by IP");
                    Console.WriteLine("/unban <PlayerID>                  <-- Unban a client");
                    // Console.WriteLine("/unbanip <PlayerID>                <-- Unban a client");
                    // Console.WriteLine("/tempban <PlayerID> <Seconds>      <-- Temporary ban a client");
                    // Console.WriteLine("/tempbanip <PlayerID> <Seconds>    <-- Temporary ban a client by IP");
                    Console.WriteLine("/kick <PlayerID>                   <-- Kick a client from the server");
                    // Console.WriteLine("/mute <PlayerID>                   <-- Mute a client");
                    // Console.WriteLine("/unmute <PlayerID>                 <-- Unmute a client");
                    // Console.WriteLine("/setlevel <PlayerID> <Level>       <-- Set a level for a player");
                    Console.WriteLine("/update                            <-- Check if update is available");
                    // Console.WriteLine("/say <Text>                        <-- Send a text to all");
                    // Console.WriteLine("/sayplayer <PlayerID> <Text>       <-- Send a text to a player");
                    Console.WriteLine("/stop  or   /shutdown              <-- Stop the server and save data");
                    Console.WriteLine("/forcestop                         <-- Force stop the server");
                    Console.WriteLine("/restart                           <-- Save data and then restart");
                    Console.WriteLine("/send sysinfo                      <-- Send server info to all players");
                    Console.WriteLine("/status                            <-- Get server status");
                    Console.WriteLine("/switch                            <-- Switch to GUI/Console mode");
                    break;

                case "/start":

                    if (!ConfUCS.IsServerOnline)
                    {
                        ConsoleThread CT = new ConsoleThread();
                        CT.Start();
                    }
                    else
                    {
                        Console.WriteLine("Server already online!");
                    }
                    break;

                case "/stop":
                case "/shutdown":

                    Console.WriteLine("Shutting down... Saving all data, wait.");

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var p = new ShutdownStartedMessage(onlinePlayer.GetClient());
                        p.SetCode(5);
                        PacketManager.ProcessOutgoingPacket(p);
                    }

                    ConsoleManage.FreeConsole();
                    Environment.Exit(0);
                    break;

                case "/forcestop":

                    Console.WriteLine("Force shutting down... All progress not saved will be lost!");
                    Process.GetCurrentProcess().Kill();
                    break;

                case "/uptime":

                    Console.WriteLine("Up time: " + ControlTimer.ElapsedTime);
                    break;

                case "/restart":

                    Console.WriteLine("System Restarting....");

                    var mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("System Manager");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("Legendary Administrator");
                    mail.SetMessage("System is about to restart in a few moments.");
                    mail.SetSenderLevel(500);
                    mail.SetSenderLeagueId(22);

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var pm = new GlobalChatLineMessage(onlinePlayer.GetClient());
                        var ps = new ShutdownStartedMessage(onlinePlayer.GetClient());
                        var p  = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                        ps.SetCode(5);
                        p.SetAvatarStreamEntry(mail);
                        pm.SetChatMessage("System is about to restart in a few moments.");
                        pm.SetPlayerId(0);
                        pm.SetLeagueId(22);
                        pm.SetPlayerName("System Manager");
                        PacketManager.ProcessOutgoingPacket(p);
                        PacketManager.ProcessOutgoingPacket(ps);
                        PacketManager.ProcessOutgoingPacket(pm);
                    }
                    Console.WriteLine("Saving all data...");
                    foreach (var l in ResourcesManager.GetOnlinePlayers())
                    {
                        //DatabaseManager.Singelton.Save(l);
                    }

                    Console.WriteLine("Restarting now");

                    Process.Start(Application.ResourceAssembly.Location);
                    Process.GetCurrentProcess().Kill();
                    break;

                case "/clear":

                    Console.WriteLine("Console cleared");
                    if (ConfUCS.IsConsoleMode)
                    {
                        Console.Clear();
                    }
                    else
                    {
                        MainWindow.RemoteWindow.RTB_Console.Clear();
                    }
                    break;

                case "/status":

                    Console.WriteLine("Server IP: " + ConfUCS.GetIP() + " on port 9339");
                    Console.WriteLine("IP Address (public): " + new WebClient().DownloadString("http://bot.whatismyipaddress.com/"));
                    Console.WriteLine("Online Player: " + ResourcesManager.GetOnlinePlayers().Count);
                    Console.WriteLine("Connected Player: " + ResourcesManager.GetConnectedClients().Count);
                    Console.WriteLine("Starting Gold: " + int.Parse(ConfigurationManager.AppSettings["StartingGold"]));
                    Console.WriteLine("Starting Elixir: " +
                                      int.Parse(ConfigurationManager.AppSettings["StartingElixir"]));
                    Console.WriteLine("Starting Dark Elixir: " +
                                      int.Parse(ConfigurationManager.AppSettings["StartingDarkElixir"]));
                    Console.WriteLine("Starting Gems: " + int.Parse(ConfigurationManager.AppSettings["StartingGems"]));
                    Console.WriteLine("CoC Version: " + ConfigurationManager.AppSettings["ClientVersion"]);
                    if (Convert.ToBoolean(ConfigurationManager.AppSettings["useCustomPatch"]))
                    {
                        Console.WriteLine("Patch: Active");
                        Console.WriteLine("Patching Server: " + ConfigurationManager.AppSettings["patchingServer"]);
                    }
                    else
                    {
                        Console.WriteLine("Patch: Disable");
                    }
                    if (Convert.ToBoolean(ConfigurationManager.AppSettings["maintenanceMode"]))
                    {
                        Console.WriteLine("Maintance Mode: Active");
                        Console.WriteLine("Maintance time: " +
                                          Convert.ToInt32(ConfigurationManager.AppSettings["maintenanceTimeleft"]) +
                                          " Seconds");
                    }
                    else
                    {
                        Console.WriteLine("Maintance Mode: Disable");
                    }
                    break;

                case "/send sysinfo":

                    Console.WriteLine("Server Status is now sent to all online players");

                    var mail1 = new AllianceMailStreamEntry();
                    mail1.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail1.SetSenderId(0);
                    mail1.SetSenderAvatarId(0);
                    mail1.SetSenderName("System Manager");
                    mail1.SetIsNew(0);
                    mail1.SetAllianceId(0);
                    mail1.SetAllianceBadgeData(0);
                    mail1.SetAllianceName("Legendary Administrator");
                    mail1.SetMessage("Latest Server Status:\nConnected Players:" +
                                     ResourcesManager.GetConnectedClients().Count + "\nIn Memory Alliances:" +
                                     ObjectManager.GetInMemoryAlliances().Count + "\nIn Memory Levels:" +
                                     ResourcesManager.GetInMemoryLevels().Count);
                    mail1.SetSenderLeagueId(22);
                    mail1.SetSenderLevel(500);

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var p  = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                        var pm = new GlobalChatLineMessage(onlinePlayer.GetClient());
                        pm.SetChatMessage("Our current Server Status is now sent at your mailbox!");
                        pm.SetPlayerId(0);
                        pm.SetLeagueId(22);
                        pm.SetPlayerName("System Manager");
                        p.SetAvatarStreamEntry(mail1);
                        PacketManager.ProcessOutgoingPacket(p);
                        PacketManager.ProcessOutgoingPacket(pm);
                    }
                    break;

                case "/update":
                    UpdateChecker.Check();
                    break;

                case "/kick":
                    var CommGet = cmd.Split(' ');
                    if (CommGet.Length >= 2)
                    {
                        try
                        {
                            var id = Convert.ToInt64(CommGet[1]);
                            var l  = ResourcesManager.GetPlayer(id);
                            if (ResourcesManager.IsPlayerOnline(l))
                            {
                                ResourcesManager.LogPlayerOut(l);
                                var p = new OutOfSyncMessage(l.GetClient());
                                PacketManager.ProcessOutgoingPacket(p);
                            }
                            else
                            {
                                Console.WriteLine("Kick failed: id " + id + " not found");
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("The given id is not a valid number");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Kick failed with error: " + ex);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Not enough arguments");
                    }
                    break;

                case "/ban":
                    var CommGet1 = cmd.Split(' ');
                    if (CommGet1.Length >= 2)
                    {
                        try
                        {
                            var id = Convert.ToInt64(CommGet1[1]);
                            var l  = ResourcesManager.GetPlayer(id);
                            if (l != null)
                            {
                                l.SetAccountStatus(99);
                                l.SetAccountPrivileges(0);
                                if (ResourcesManager.IsPlayerOnline(l))
                                {
                                    var p = new OutOfSyncMessage(l.GetClient());
                                    PacketManager.ProcessOutgoingPacket(p);
                                }
                            }
                            else
                            {
                                Console.WriteLine("Ban failed: id " + id + " not found");
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("The given id is not a valid number");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Ban failed with error: " + ex);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Not enough arguments");
                    }
                    break;

                case "/unban":
                    var CommGet2 = cmd.Split(' ');
                    if (CommGet2.Length >= 2)
                    {
                        try
                        {
                            var id = Convert.ToInt64(CommGet2[1]);
                            var l  = ResourcesManager.GetPlayer(id);
                            if (l != null)
                            {
                                l.SetAccountStatus(0);
                            }
                            else
                            {
                                Console.WriteLine("Unban failed: id " + id + " not found");
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("The given id is not a valid number");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Unban failed with error: " + ex);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Not enough arguments");
                    }
                    break;

                case "/switch":
                    if (ConfUCS.IsConsoleFirst)
                    {
                        Console.WriteLine("Sorry, you need to launch UCS in GUI mode first.");
                    }
                    else
                    {
                        if (ConfUCS.IsConsoleMode)
                        {
                            ConfUCS.IsConsoleMode = false;
                            ConsoleManage.HideConsole();
                            InterfaceThread.Start();
                            Console.WriteLine("Switched to GUI");
                            ControlTimer.SwitchTimer();
                        }
                        else
                        {
                            ConfUCS.IsConsoleMode = true;
                            ConsoleManage.ShowConsole();
                            Console.SetOut(AllocateConsole.StandardConsole);
                            MainWindow.RemoteWindow.Hide();
                            Console.Title = ConfUCS.UnivTitle;
                            Console.WriteLine("Switched to Console");
                            ControlTimer.SwitchTimer();
                            ManageConsole();
                        }
                    }
                    break;

                default:
                    Console.WriteLine("Unknown command. Type \"/help\" for a list containing all available commands.");
                    break;
                }
            }
            catch (Exception)
            {
                Console.WriteLine("Something wrong happens...");
                //throw;
            }


            //else if (cmd.ToLower().StartsWith("/mute"))
            //{
            //    var CommGet = cmd.Split(' ');
            //    if (CommGet.Length >= 2)
            //    {
            //        try
            //        {
            //            var id = Convert.ToInt64(CommGet[1]);
            //            var l = ResourcesManager.GetPlayer(id);
            //            if (ResourcesManager.IsPlayerOnline(l))
            //            {
            //                var p = new BanChatTrigger(l.GetClient());
            //                p.SetCode(999999999);
            //                PacketManager.ProcessOutgoingPacket(p);
            //            }
            //            else
            //            {
            //                Console.WriteLineDebug("Chat Mute failed: id " + id + " not found", CoreWriter.level.DEBUGLOG);
            //            }
            //        }
            //        catch (FormatException)
            //        {
            //            Console.WriteLineDebug("The given id is not a valid number", CoreWriter.level.DEBUGFATAL);
            //        }
            //        catch (Exception ex)
            //        {
            //            Console.WriteLineDebug("Chat Mute failed with error: " + ex, CoreWriter.level.DEBUGFATAL);
            //        }
            //    }
            //    else Console.WriteLineDebug("Not enough arguments", CoreWriter.level.DEBUGFATAL);
            //}


            if (ConfUCS.IsConsoleMode)
            {
                ManageConsole();
            }
        }
Ejemplo n.º 11
0
        public override PiranhaMessage CreateMessageByType(int type)
        {
            PiranhaMessage message = null;

            if (type < 20000)
            {
                switch (type)
                {
                case ClientCryptoErrorMessage.MESSAGE_TYPE:
                {
                    message = new ClientCryptoErrorMessage();
                    break;
                }

                case ClientHelloMessage.MESSAGE_TYPE:
                {
                    message = new ClientHelloMessage();
                    break;
                }

                case LoginMessage.MESSAGE_TYPE:
                {
                    message = new LoginMessage();
                    break;
                }

                case KeepAliveMessage.MESSAGE_TYPE:
                {
                    message = new KeepAliveMessage();
                    break;
                }

                case SetDeviceTokenMessage.MESSAGE_TYPE:
                {
                    message = new SetDeviceTokenMessage();
                    break;
                }

                case ResetAccountMessage.MESSAGE_TYPE:
                {
                    message = new ResetAccountMessage();
                    break;
                }

                case ReportUserMessage.MESSAGE_TYPE:
                {
                    message = new ReportUserMessage();
                    break;
                }

                case AccountSwitchedMessage.MESSAGE_TYPE:
                {
                    message = new AccountSwitchedMessage();
                    break;
                }

                case UnlockAccountMessage.MESSAGE_TYPE:
                {
                    message = new UnlockAccountMessage();
                    break;
                }

                case AppleBillingRequestMessage.MESSAGE_TYPE:
                {
                    message = new AppleBillingRequestMessage();
                    break;
                }

                case ChangeAvatarNameMessage.MESSAGE_TYPE:
                {
                    message = new ChangeAvatarNameMessage();
                    break;
                }

                case AcceptFriendMessage.MESSAGE_TYPE:
                {
                    message = new AcceptFriendMessage();
                    break;
                }

                case AddFriendMessage.MESSAGE_TYPE:
                {
                    message = new AddFriendMessage();
                    break;
                }

                case AskForFriendListMessage.MESSAGE_TYPE:
                {
                    message = new AskForFriendListMessage();
                    break;
                }

                case RemoveFriendMessage.MESSAGE_TYPE:
                {
                    message = new RemoveFriendMessage();
                    break;
                }

                case StartFriendLiveSpectateMessage.MESSAGE_TYPE:
                {
                    message = new StartFriendLiveSpectateMessage();
                    break;
                }

                case InboxOpenedMessage.MESSAGE_TYPE:
                {
                    message = new InboxOpenedMessage();
                    break;
                }

                case GoHomeMessage.MESSAGE_TYPE:
                {
                    message = new GoHomeMessage();
                    break;
                }

                case EndClientTurnMessage.MESSAGE_TYPE:
                {
                    message = new EndClientTurnMessage();
                    break;
                }

                case CancelMatchmakingMessage.MESSAGE_TYPE:
                {
                    message = new CancelMatchmakingMessage();
                    break;
                }

                case AttackHomeMessage.MESSAGE_TYPE:
                {
                    message = new AttackHomeMessage();
                    break;
                }

                case StartFriendlyChallengeSpectateMessage.MESSAGE_TYPE:
                {
                    message = new StartFriendlyChallengeSpectateMessage();
                    break;
                }

                case ScoutFriendlyBattleMessage.MESSAGE_TYPE:
                {
                    message = new ScoutFriendlyBattleMessage();
                    break;
                }

                case VisitHomeMessage.MESSAGE_TYPE:
                {
                    message = new VisitHomeMessage();
                    break;
                }

                case HomeBattleReplayMessage.MESSAGE_TYPE:
                {
                    message = new HomeBattleReplayMessage();
                    break;
                }

                case AttackMatchedHomeMessage.MESSAGE_TYPE:
                {
                    message = new AttackMatchedHomeMessage();
                    break;
                }

                case AcceptFriendlyBattleMessage.MESSAGE_TYPE:
                {
                    message = new AcceptFriendlyBattleMessage();
                    break;
                }

                case CancelChallengeMessage.MESSAGE_TYPE:
                {
                    message = new CancelChallengeMessage();
                    break;
                }

                case AttackNpcMessage.MESSAGE_TYPE:
                {
                    message = new AttackNpcMessage();
                    break;
                }

                case DuelNpcMessage.MESSAGE_TYPE:
                {
                    message = new DuelNpcMessage();
                    break;
                }

                case BindGoogleServiceAccountMessage.MESSAGE_TYPE:
                {
                    message = new BindGoogleServiceAccountMessage();
                    break;
                }

                case BindFacebookAccountMessage.MESSAGE_TYPE:
                {
                    message = new BindFacebookAccountMessage();
                    break;
                }

                case CreateAllianceMessage.MESSAGE_TYPE:
                {
                    message = new CreateAllianceMessage();
                    break;
                }

                case AskForAllianceDataMessage.MESSAGE_TYPE:
                {
                    message = new AskForAllianceDataMessage();
                    break;
                }

                case AskForJoinableAlliancesListMessage.MESSAGE_TYPE:
                {
                    message = new AskForJoinableAlliancesListMessage();
                    break;
                }

                case JoinAllianceMessage.MESSAGE_TYPE:
                {
                    message = new JoinAllianceMessage();
                    break;
                }

                case ChangeAllianceMemberRoleMessage.MESSAGE_TYPE:
                {
                    message = new ChangeAllianceMemberRoleMessage();
                    break;
                }

                case LeaveAllianceMessage.MESSAGE_TYPE:
                {
                    message = new LeaveAllianceMessage();
                    break;
                }

                case DonateAllianceUnitMessage.MESSAGE_TYPE:
                {
                    message = new DonateAllianceUnitMessage();
                    break;
                }

                case ChatToAllianceStreamMessage.MESSAGE_TYPE:
                {
                    message = new ChatToAllianceStreamMessage();
                    break;
                }

                case ChangeAllianceSettingsMessage.MESSAGE_TYPE:
                {
                    message = new ChangeAllianceSettingsMessage();
                    break;
                }

                case RequestJoinAllianceMessage.MESSAGE_TYPE:
                {
                    message = new RequestJoinAllianceMessage();
                    break;
                }

                case RespondToAllianceJoinRequestMessage.MESSAGE_TYPE:
                {
                    message = new RespondToAllianceJoinRequestMessage();
                    break;
                }

                case SendAllianceInvitationMessage.MESSAGE_TYPE:
                {
                    message = new SendAllianceInvitationMessage();
                    break;
                }

                case JoinAllianceUsingInvitationMessage.MESSAGE_TYPE:
                {
                    message = new JoinAllianceUsingInvitationMessage();
                    break;
                }

                case SearchAlliancesMessage.MESSAGE_TYPE:
                {
                    message = new SearchAlliancesMessage();
                    break;
                }

                case AskForAvatarProfileMessage.MESSAGE_TYPE:
                {
                    message = new AskForAvatarProfileMessage();
                    break;
                }

                case AskForAllianceBookmarksFullDataMessage.MESSAGE_TYPE:
                {
                    message = new AskForAllianceBookmarksFullDataMessage();
                    break;
                }

                case AddAllianceBookmarkMessage.MESSAGE_TYPE:
                {
                    message = new AddAllianceBookmarkMessage();
                    break;
                }

                case RemoveAllianceBookmarkMessage.MESSAGE_TYPE:
                {
                    message = new RemoveAllianceBookmarkMessage();
                    break;
                }

                case AskForAllianceRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AskForAllianceRankingListMessage();
                    break;
                }

                case AskForAvatarRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AskForAvatarRankingListMessage();
                    break;
                }

                case AskForAvatarLocalRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AskForAvatarLocalRankingListMessage();
                    break;
                }

                case AskForAvatarLastSeasonRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AskForAvatarLastSeasonRankingListMessage();
                    break;
                }

                case AskForAvatarDuelLastSeasonRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AskForAvatarDuelLastSeasonRankingListMessage();
                    break;
                }

                case RemoveAvatarStreamEntryMessage.MESSAGE_TYPE:
                {
                    message = new RemoveAvatarStreamEntryMessage();
                    break;
                }

                case AskForLeagueMemberListMessage.MESSAGE_TYPE:
                {
                    message = new AskForLeagueMemberListMessage();
                    break;
                }

                case BattleEndClientTurnMessage.MESSAGE_TYPE:
                {
                    message = new BattleEndClientTurnMessage();
                    break;
                }

                case AvatarNameCheckRequestMessage.MESSAGE_TYPE:
                {
                    message = new AvatarNameCheckRequestMessage();
                    break;
                }

                case SendGlobalChatLineMessage.MESSAGE_TYPE:
                {
                    message = new SendGlobalChatLineMessage();
                    break;
                }

                case Village2AttackStartSpectateMessage.MESSAGE_TYPE:
                {
                    message = new Village2AttackStartSpectateMessage();
                    break;
                }
                }
            }
            else
            {
                switch (type)
                {
                case SetEncryptionMessage.MESSAGE_TYPE:
                {
                    message = new ExtendedSetEncryptionMessage();
                    break;
                }

                case ServerHelloMessage.MESSAGE_TYPE:
                {
                    message = new ServerHelloMessage();
                    break;
                }

                case LoginFailedMessage.MESSAGE_TYPE:
                {
                    message = new LoginFailedMessage();
                    break;
                }

                case LoginOkMessage.MESSAGE_TYPE:
                {
                    message = new LoginOkMessage();
                    break;
                }

                case FriendListMessage.MESSAGE_TYPE:
                {
                    message = new FriendListMessage();
                    break;
                }

                case FriendListUpdateMessage.MESSAGE_TYPE:
                {
                    message = new FriendListUpdateMessage();
                    break;
                }

                case KeepAliveServerMessage.MESSAGE_TYPE:
                {
                    message = new KeepAliveServerMessage();
                    break;
                }

                case AddFriendErrorMessage.MESSAGE_TYPE:
                {
                    message = new AddFriendErrorMessage();
                    break;
                }

                case ReportUserStatusMessage.MESSAGE_TYPE:
                {
                    message = new ReportUserStatusMessage();
                    break;
                }

                case UnlockAccountOkMessage.MESSAGE_TYPE:
                {
                    message = new UnlockAccountOkMessage();
                    break;
                }

                case UnlockAccountFailedMessage.MESSAGE_TYPE:
                {
                    message = new UnlockAccountFailedMessage();
                    break;
                }

                case AppleBillingProcessedByServerMessage.MESSAGE_TYPE:
                {
                    message = new AppleBillingProcessedByServerMessage();
                    break;
                }

                case ShutdownStartedMessage.MESSAGE_TYPE:
                {
                    message = new ShutdownStartedMessage();
                    break;
                }

                case PersonalBreakStartedMessage.MESSAGE_TYPE:
                {
                    message = new PersonalBreakStartedMessage();
                    break;
                }

                case FacebookAccountBoundMessage.MESSAGE_TYPE:
                {
                    message = new FacebookAccountBoundMessage();
                    break;
                }

                case AvatarNameChangeFailedMessage.MESSAGE_TYPE:
                {
                    message = new AvatarNameChangeFailedMessage();
                    break;
                }

                case AvatarOnlineStatusUpdated.MESSAGE_TYPE:
                {
                    message = new AvatarOnlineStatusUpdated();
                    break;
                }

                case AvatarOnlineStatusListMessage.MESSAGE_TYPE:
                {
                    message = new AvatarOnlineStatusListMessage();
                    break;
                }

                case AllianceOnlineStatusUpdatedMessage.MESSAGE_TYPE:
                {
                    message = new AllianceOnlineStatusUpdatedMessage();
                    break;
                }

                case GoogleServiceAccountBoundMessage.MESSAGE_TYPE:
                {
                    message = new GoogleServiceAccountBoundMessage();
                    break;
                }

                case GoogleServiceAccountAlreadyBoundMessage.MESSAGE_TYPE:
                {
                    message = new GoogleServiceAccountAlreadyBoundMessage();
                    break;
                }

                case AvatarNameCheckResponseMessage.MESSAGE_TYPE:
                {
                    message = new AvatarNameCheckResponseMessage();
                    break;
                }

                case AcceptFriendErrorMessage.MESSAGE_TYPE:
                {
                    message = new AcceptFriendErrorMessage();
                    break;
                }

                case OwnHomeDataMessage.MESSAGE_TYPE:
                {
                    message = new OwnHomeDataMessage();
                    break;
                }

                case AttackHomeFailedMessage.MESSAGE_TYPE:
                {
                    message = new AttackHomeFailedMessage();
                    break;
                }

                case OutOfSyncMessage.MESSAGE_TYPE:
                {
                    message = new OutOfSyncMessage();
                    break;
                }

                case EnemyHomeDataMessage.MESSAGE_TYPE:
                {
                    message = new EnemyHomeDataMessage();
                    break;
                }

                case AvailableServerCommandMessage.MESSAGE_TYPE:
                {
                    message = new AvailableServerCommandMessage();
                    break;
                }

                case WaitingToGoHomeMessage.MESSAGE_TYPE:
                {
                    message = new WaitingToGoHomeMessage();
                    break;
                }

                case VisitedHomeDataMessage.MESSAGE_TYPE:
                {
                    message = new VisitedHomeDataMessage();
                    break;
                }

                case HomeBattleReplayDataMessage.MESSAGE_TYPE:
                {
                    message = new HomeBattleReplayDataMessage();
                    break;
                }

                case ServerErrorMessage.MESSAGE_TYPE:
                {
                    message = new ServerErrorMessage();
                    break;
                }

                case HomeBattleReplayFailedMessage.MESSAGE_TYPE:
                {
                    message = new HomeBattleReplayFailedMessage();
                    break;
                }

                case LiveReplayHeaderMessage.MESSAGE_TYPE:
                {
                    message = new LiveReplayHeaderMessage();
                    break;
                }

                case LiveReplayDataMessage.MESSAGE_TYPE:
                {
                    message = new LiveReplayDataMessage();
                    break;
                }

                case ChallengeFailedMessage.MESSAGE_TYPE:
                {
                    message = new ChallengeFailedMessage();
                    break;
                }

                case VisitFailedMessage.MESSAGE_TYPE:
                {
                    message = new VisitFailedMessage();
                    break;
                }

                case AttackSpectatorCountMessage.MESSAGE_TYPE:
                {
                    message = new AttackSpectatorCountMessage();
                    break;
                }

                case LiveReplayEndMessage.MESSAGE_TYPE:
                {
                    message = new LiveReplayEndMessage();
                    break;
                }

                case LiveReplayFailedMessage.MESSAGE_TYPE:
                {
                    message = new LiveReplayFailedMessage();
                    break;
                }

                case NpcDataMessage.MESSAGE_TYPE:
                {
                    message = new NpcDataMessage();
                    break;
                }

                case AllianceDataMessage.MESSAGE_TYPE:
                {
                    message = new AllianceDataMessage();
                    break;
                }

                case AllianceJoinFailedMessage.MESSAGE_TYPE:
                {
                    message = new AllianceJoinFailedMessage();
                    break;
                }

                case JoinableAllianceListMessage.MESSAGE_TYPE:
                {
                    message = new JoinableAllianceListMessage();
                    break;
                }

                case AllianceListMessage.MESSAGE_TYPE:
                {
                    message = new AllianceListMessage();
                    break;
                }

                case AllianceStreamMessage.MESSAGE_TYPE:
                {
                    message = new AllianceStreamMessage();
                    break;
                }

                case AllianceStreamEntryMessage.MESSAGE_TYPE:
                {
                    message = new AllianceStreamEntryMessage();
                    break;
                }

                case AllianceStreamEntryRemovedMessage.MESSAGE_TYPE:
                {
                    message = new AllianceStreamEntryRemovedMessage();
                    break;
                }

                case AllianceJoinRequestOkMessage.MESSAGE_TYPE:
                {
                    message = new AllianceJoinRequestOkMessage();
                    break;
                }

                case AllianceJoinRequestFailedMessage.MESSAGE_TYPE:
                {
                    message = new AllianceJoinRequestFailedMessage();
                    break;
                }

                case AllianceInvitationSendFailedMessage.MESSAGE_TYPE:
                {
                    message = new AllianceInvitationSendFailedMessage();
                    break;
                }

                case AllianceInvitationSentOkMessage.MESSAGE_TYPE:
                {
                    message = new AllianceInvitationSentOkMessage();
                    break;
                }

                case AllianceFullEntryUpdateMessage.MESSAGE_TYPE:
                {
                    message = new AllianceFullEntryUpdateMessage();
                    break;
                }

                case AllianceWarSearchDataMessage.MESSAGE_TYPE:
                {
                    message = new AllianceWarSearchDataMessage();
                    break;
                }

                case AllianceWarDataMessage.MESSAGE_TYPE:
                {
                    message = new AllianceWarDataMessage();
                    break;
                }

                case AllianceCreateFailedMessage.MESSAGE_TYPE:
                {
                    message = new AllianceCreateFailedMessage();
                    break;
                }

                case AvatarProfileMessage.MESSAGE_TYPE:
                {
                    message = new AvatarProfileMessage();
                    break;
                }

                case AllianceWarFullEntryMessage.MESSAGE_TYPE:
                {
                    message = new AllianceWarFullEntryMessage();
                    break;
                }

                case AllianceWarDataFailedMessage.MESSAGE_TYPE:
                {
                    message = new AllianceWarDataFailedMessage();
                    break;
                }

                case AllianceWarHistoryMessage.MESSAGE_TYPE:
                {
                    message = new AllianceWarHistoryMessage();
                    break;
                }

                case AvatarProfileFailedMessage.MESSAGE_TYPE:
                {
                    message = new AvatarProfileFailedMessage();
                    break;
                }

                case BookmarksListMessage.MESSAGE_TYPE:
                {
                    message = new BookmarksListMessage();
                    break;
                }

                case AllianceBookmarksFullDataMessage.MESSAGE_TYPE:
                {
                    message = new AllianceBookmarksFullDataMessage();
                    break;
                }

                case Village2AttackEntryListMessage.MESSAGE_TYPE:
                {
                    message = new Village2AttackEntryListMessage();
                    break;
                }

                case Village2AttackEntryUpdateMessage.MESSAGE_TYPE:
                {
                    message = new Village2AttackEntryUpdateMessage();
                    break;
                }

                case Village2AttackEntryAddedMessage.MESSAGE_TYPE:
                {
                    message = new Village2AttackEntryAddedMessage();
                    break;
                }

                case Village2AttackEntryRemovedMessage.MESSAGE_TYPE:
                {
                    message = new Village2AttackEntryRemovedMessage();
                    break;
                }

                case AllianceRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AllianceRankingListMessage();
                    break;
                }

                case AllianceLocalRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AllianceLocalRankingListMessage();
                    break;
                }

                case AvatarRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AvatarRankingListMessage();
                    break;
                }

                case AvatarLocalRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AvatarLocalRankingListMessage();
                    break;
                }

                case AvatarLastSeasonRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AvatarLastSeasonRankingListMessage();
                    break;
                }

                case AvatarDuelLocalRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AvatarDuelLocalRankingListMessage();
                    break;
                }

                case AvatarDuelLastSeasonRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AvatarDuelLastSeasonRankingListMessage();
                    break;
                }

                case AvatarDuelRankingListMessage.MESSAGE_TYPE:
                {
                    message = new AvatarDuelRankingListMessage();
                    break;
                }

                case AvatarStreamMessage.MESSAGE_TYPE:
                {
                    message = new AvatarStreamMessage();
                    break;
                }

                case AvatarStreamEntryMessage.MESSAGE_TYPE:
                {
                    message = new AvatarStreamEntryMessage();
                    break;
                }

                case AvatarStreamEntryRemovedMessage.MESSAGE_TYPE:
                {
                    message = new AvatarStreamEntryRemovedMessage();
                    break;
                }

                case LeagueMemberListMessage.MESSAGE_TYPE:
                {
                    message = new LeagueMemberListMessage();
                    break;
                }

                case GlobalChatLineMessage.MESSAGE_TYPE:
                {
                    message = new GlobalChatLineMessage();
                    break;
                }

                case AllianceWarEventMessage.MESSAGE_TYPE:
                {
                    message = new AllianceWarEventMessage();
                    break;
                }

                case FriendlyScoutHomeDataMessage.MESSAGE_TYPE:
                {
                    message = new FriendlyScoutHomeDataMessage();
                    break;
                }

                case Village2AttackAvatarDataMessage.MESSAGE_TYPE:
                {
                    message = new Village2AttackAvatarDataMessage();
                    break;
                }

                case AttackEventMessage.MESSAGE_TYPE:
                {
                    message = new AttackEventMessage();
                    break;
                }

                case TitanDisconnectedMessage.MESSAGE_TYPE:
                {
                    message = new DisconnectedMessage();
                    break;
                }

                case CryptoErrorMessage.MESSAGE_TYPE:
                {
                    message = new CryptoErrorMessage();
                    break;
                }
                }
            }

            return(message);
        }
Ejemplo n.º 12
0
        public static void CommandRead(string cmd)
        {
            if (cmd == null)
            {
                if (ConfUCS.IsConsoleMode)
                {
                    ManageConsole();
                }
            }
            try
            {
                switch (cmd.ToLower())
                {
                case "/help":
                    Console.WriteLine("/start                             <-- Inicia el servidor");
                    Console.WriteLine("/ban <PlayerID>                    <-- Banear un jugador");

                    Console.WriteLine("/banip <PlayerID>                  <-- Banear un jugador mediante IP");
                    Console.WriteLine("/unban <PlayerID>                  <-- Unbanear un jugador");

                    Console.WriteLine("/unbanip <PlayerID>                <-- Unbanear un jugador");
                    Console.WriteLine("/tempban <PlayerID> <Seconds>      <-- Banea un jugador temporalmente");
                    Console.WriteLine("/tempbanip <PlayerID> <Seconds>    <-- Banea temporalmente un jugador mediante IP");
                    Console.WriteLine("/kick <PlayerID>                   <-- Expulsa un jugador del servidor");

                    Console.WriteLine("/mute <PlayerID>                   <-- Silencia a un jugador");
                    Console.WriteLine("/unmute <PlayerID>                 <-- Quita silencio a jugador");
                    Console.WriteLine("/setlevel <PlayerID> <Level>       <-- Fija un level a un jugador");
                    Console.WriteLine("/update                            <-- Comprueba si hay actualizaciónes disponibles");

                    Console.WriteLine("/say <Text>                        <-- Envia un mensaje a todos los jugadores");
                    Console.WriteLine("/sayplayer <PlayerID> <Text>       <-- Envia un mensaje al jugador especificado");
                    Console.WriteLine("/stop  or   /shutdown              <-- Detiene el servidor y guarda todos los datos");
                    Console.WriteLine("/forcestop                         <-- Fuerza el cierre del servidor !! ATENCION SE PIERDEN LOS DATOS!!");
                    Console.WriteLine("/restart                           <-- Guarda los datos y reinicia el servidor");
                    Console.WriteLine("/send sysinfo                      <-- Envia la información del servidor a los jugadores conectados");
                    Console.WriteLine("/status                            <-- Obtiene el estado el servidor");
                    Console.WriteLine("/uptime                            <-- Obtiene el tiempo activo del servidor");
                    Console.WriteLine("/switch                            <-- Cambiar modo GUI/Console");
                    Console.WriteLine("/clear                             <-- Limpia todos los mensajes de a consola");
                    break;

                case "/start":

                    if (!ConfUCS.IsServerOnline)
                    {
                        ConsoleThread CT = new ConsoleThread();
                        CT.Start();
                    }
                    else
                    {
                        Core.Debug.Write("El servidor esta activo!");
                    }
                    break;

                case "/stop":
                case "/shutdown":

                    Core.Debug.Write("Apagando servidor... Guardando datos, esperare...");

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var p = new ShutdownStartedMessage(onlinePlayer.GetClient());
                        p.SetCode(5);
                        p.Send();
                    }

                    ConsoleManage.FreeConsole();
                    Environment.Exit(0);
                    break;

                case "/forcestop":

                    Core.Debug.Write("Terminado proceso del servidor... los ultimos datos se perderan!");
                    Process.GetCurrentProcess().Kill();
                    break;

                case "/uptime":

                    Core.Debug.Write("Tiempo servidor iniciado: " + ControlTimer.ElapsedTime);
                    break;

                case "/restart":

                    Core.Debug.Write("Reiniciando servidor....");

                    var mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("System Manager");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("JJBreaker Administrador");
                    mail.SetMessage("El servidor se reiniciará en breve.");
                    mail.SetSenderLevel(500);
                    mail.SetSenderLeagueId(22);

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var pm = new GlobalChatLineMessage(onlinePlayer.GetClient());
                        var ps = new ShutdownStartedMessage(onlinePlayer.GetClient());
                        var p  = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                        ps.SetCode(5);
                        p.SetAvatarStreamEntry(mail);
                        pm.SetChatMessage("El servidor se reiniciará en breve.");
                        pm.SetPlayerId(0);
                        pm.SetLeagueId(22);
                        pm.SetPlayerName("System Manager");
                        p.Send();
                        ps.Send();
                        pm.Send();
                    }
                    Console.WriteLine("Guaradndo datos...");

                    DatabaseManager.Save(ResourcesManager.GetInMemoryLevels());

                    Console.WriteLine("Restarting now");

                    Process.Start(Application.ResourceAssembly.Location);
                    Process.GetCurrentProcess().Kill();
                    break;

                case "/clear":

                    Core.Debug.Write("Consola limpiada");
                    if (ConfUCS.IsConsoleMode)
                    {
                        Console.Clear();
                    }
                    else
                    {
                        MainWindow.RemoteWindow.RTB_Console.Clear();
                    }
                    break;

                case "/status":

                    Console.WriteLine("Server IP: " + ConfUCS.GetIP() + " on port 9339");
                    Console.WriteLine("IP Address (public): "
                                      + new WebClient().DownloadString("http://bot.whatismyipaddress.com/"));
                    Console.WriteLine("Online Player: " + ResourcesManager.GetOnlinePlayers().Count);
                    Console.WriteLine("Connected Player: " + ResourcesManager.GetConnectedClients().Count);
                    Console.WriteLine("Starting Gold: " + Settings.StartingGold);
                    Console.WriteLine("Starting Gems: " + Settings.StartingGems);
                    var versionData = FingerPrint.version.Split('.');
                    Console.WriteLine("CRS Version: " + versionData[0] + "." + versionData[1] + "." + versionData[2]);
                    if (Convert.ToBoolean(Constants.Patching))
                    {
                        Console.WriteLine("Patch: Active");
                        Console.WriteLine("Patching Server: " + Constants.PatchURL);
                    }
                    else
                    {
                        Console.WriteLine("Patch: Disable");
                    }

                    if (Convert.ToBoolean(Settings.Maintenance))
                    {
                        Console.WriteLine("Maintance Mode: Active");
                        Console.WriteLine("Maintance time: " + Convert.ToInt32(Settings.MaintenanceDuration)
                                          + " Seconds");
                    }
                    else
                    {
                        Core.Debug.Write("Maintance Mode: Disable");
                    }

                    break;

                case "/send sysinfo":

                    Console.WriteLine("Server Status is now sent to all online players");

                    var mail1 = new AllianceMailStreamEntry();
                    mail1.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail1.SetSenderId(0);
                    mail1.SetSenderAvatarId(0);
                    mail1.SetSenderName("System Manager");
                    mail1.SetIsNew(0);
                    mail1.SetAllianceId(0);
                    mail1.SetAllianceBadgeData(0);
                    mail1.SetAllianceName("Legendary Administrator");
                    mail1.SetMessage("Latest Server Status:\nConnected Players:" +
                                     ResourcesManager.GetConnectedClients().Count + "\nIn Memory Alliances:" +
                                     ObjectManager.GetInMemoryAlliances().Count + "\nIn Memory Levels:" +
                                     ResourcesManager.GetInMemoryLevels().Count);
                    mail1.SetSenderLeagueId(22);
                    mail1.SetSenderLevel(500);

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var p  = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                        var pm = new GlobalChatLineMessage(onlinePlayer.GetClient());
                        pm.SetChatMessage("Our current Server Status is now sent at your mailbox!");
                        pm.SetPlayerId(0);
                        pm.SetLeagueId(22);
                        pm.SetPlayerName("System Manager");
                        p.SetAvatarStreamEntry(mail1);
                        p.Send();
                        pm.Send();
                    }
                    break;

                case "/update":
                    UpdateChecker.Check();
                    break;

                case "/kick":
                    var CommGet = cmd.Split(' ');
                    if (CommGet.Length >= 2)
                    {
                        try
                        {
                            var id = Convert.ToInt64(CommGet[1]);
                            var l  = ResourcesManager.GetPlayer(id);
                            if (ResourcesManager.IsPlayerOnline(l))
                            {
                                ResourcesManager.LogPlayerOut(l);
                                var p = new OutOfSyncMessage(l.GetClient());
                                p.Send();
                            }
                            else
                            {
                                Console.WriteLine("Kick failed: id " + id + " not found");
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("The given id is not a valid number");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Kick failed with error: " + ex);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Not enough arguments");
                    }
                    break;

                case "/ban":
                    var CommGet1 = cmd.Split(' ');
                    if (CommGet1.Length >= 2)
                    {
                        try
                        {
                            var id = Convert.ToInt64(CommGet1[1]);
                            var l  = ResourcesManager.GetPlayer(id);
                            if (l != null)
                            {
                                l.SetAccountStatus(99);
                                l.SetAccountPrivileges(0);
                                if (ResourcesManager.IsPlayerOnline(l))
                                {
                                    new OutOfSyncMessage(l.GetClient()).Send();
                                }
                            }
                            else
                            {
                                Console.WriteLine("Ban failed: id " + id + " not found");
                            }
                        }
                        catch (FormatException)
                        {
                            Console.WriteLine("The given id is not a valid number");
                        }
                        catch (Exception ex)
                        {
                            Console.WriteLine("Ban failed with error: " + ex);
                        }
                    }
                    else
                    {
                        Console.WriteLine("Not enough arguments");
                    }
                    break;

                case "/unban":
                    var CommGet2 = cmd.Split(' ');
                    if (CommGet2.Length >= 2)
                    {
                        try
                        {
                            var id = Convert.ToInt64(CommGet2[1]);
                            var l  = ResourcesManager.GetPlayer(id);
                            if (l != null)
                            {
                                l.SetAccountStatus(0);
                            }
                            else
                            {
                                Core.Debug.Write("Unban failed: id " + id + " not found");
                            }
                        }
                        catch (FormatException)
                        {
                            Core.Debug.Write("The given id is not a valid number");
                        }
                        catch (Exception ex)
                        {
                            Core.Debug.Write("Unban failed with error: " + ex);
                        }
                    }
                    else
                    {
                        Core.Debug.Write("Not enough arguments");
                    }
                    break;

                case "/switch":
                    if (ConfUCS.IsConsoleFirst)
                    {
                        Core.Debug.Write("Sorry, you need to launch UCS in GUI mode first.");
                    }
                    else
                    {
                        if (ConfUCS.IsConsoleMode)
                        {
                            ConfUCS.IsConsoleMode = false;
                            ConsoleManage.HideConsole();
                            InterfaceThread.Start();
                            Core.Debug.Write("Switched to GUI");
                            ControlTimer.SwitchTimer();
                        }
                        else
                        {
                            ConfUCS.IsConsoleMode = true;
                            ConsoleManage.ShowConsole();
                            Console.SetOut(AllocateConsole.StandardConsole);
                            MainWindow.RemoteWindow.Hide();
                            Console.Title = ConfUCS.UnivTitle;
                            Core.Debug.Write("Switched to Console");
                            ControlTimer.SwitchTimer();
                            ManageConsole();
                        }
                    }

                    break;

                default:
                    Core.Debug.Write("Unknown command ( " + cmd + " ). Type \"/help\" for a list containing all available commands.");
                    break;
                }
            }
            catch (Exception)
            {
                Core.Debug.Write("Something wrong happens...");

                // throw;
            }

            // else if (cmd.ToLower().StartsWith("/mute"))
            // {
            // var CommGet = cmd.Split(' ');
            // if (CommGet.Length >= 2)
            // {
            // try
            // {
            // var id = Convert.ToInt64(CommGet[1]);
            // var l = ResourcesManager.GetPlayer(id);
            // if (ResourcesManager.IsPlayerOnline(l))
            // {
            // var p = new BanChatTrigger(l.GetClient());
            // p.SetCode(999999999);
            // PacketManager.ProcessOutgoingPacket(p);
            // }
            // else
            // {
            // Console.WriteLineDebug("Chat Mute failed: id " + id + " not found", CoreWriter.level.DEBUGLOG);
            // }
            // }
            // catch (FormatException)
            // {
            // Console.WriteLineDebug("The given id is not a valid number", CoreWriter.level.DEBUGFATAL);
            // }
            // catch (Exception ex)
            // {
            // Console.WriteLineDebug("Chat Mute failed with error: " + ex, CoreWriter.level.DEBUGFATAL);
            // }
            // }
            // else Console.WriteLineDebug("Not enough arguments", CoreWriter.level.DEBUGFATAL);
            // }

            if (ConfUCS.IsConsoleMode)
            {
                ManageConsole();
            }
        }
Ejemplo n.º 13
0
        public Menu()
        {
            while (true)
            {
                Console.WriteLine("");
                string line = Console.ReadLine();
                if (line == "/shutdown")
                {
                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var p = new ShutdownStartedMessage(onlinePlayer.GetClient());
                        p.SetCode(5);
                        PacketManager.ProcessOutgoingPacket(p);
                    }
                    Console.WriteLine("Message has been send to the user");
                }
                else if (line == "/clear")
                {
                    Console.Clear();
                }
                else if (line == "/restart")
                {
                    AllianceMailStreamEntry mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("System Manager");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("Legendary Administrator");
                    mail.SetMessage("System is about to restart in a few moments.");
                    mail.SetSenderLevel(500);
                    mail.SetSenderLeagueId(22);

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var pm = new GlobalChatLineMessage(onlinePlayer.GetClient());
                        var ps = new ShutdownStartedMessage(onlinePlayer.GetClient());
                        var p  = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                        ps.SetCode(5);
                        p.SetAvatarStreamEntry(mail);
                        pm.SetChatMessage("System is about to restart in a few moments.");
                        pm.SetPlayerId(0);
                        pm.SetLeagueId(22);
                        pm.SetPlayerName("System Manager");
                        PacketManager.ProcessOutgoingPacket(p);
                        PacketManager.ProcessOutgoingPacket(ps);
                        PacketManager.ProcessOutgoingPacket(pm);
                    }
                    Console.WriteLine("System Restarting....");
                    System.Diagnostics.Process.Start(@"tools\ucs-restart.bat");
                }
                else if (line == "/status")
                {
                    string hostName = Dns.GetHostName();
                    string IPM      = Dns.GetHostByName(hostName).AddressList[0].ToString();
                    Console.WriteLine("Server IP : " + IPM + " on port 9339");
                    Console.WriteLine("Players Online : " + ResourcesManager.GetOnlinePlayers().Count);
                    Console.WriteLine("Starting Gold : " + Int32.Parse(ConfigurationManager.AppSettings["StartingGold"]));
                    Console.WriteLine("Starting Elixir : " + Int32.Parse(ConfigurationManager.AppSettings["StartingElixir"]));
                    Console.WriteLine("Starting Dark Elixir : " + Int32.Parse(ConfigurationManager.AppSettings["StartingDarkElixir"]));
                    Console.WriteLine("Starting Gems : " + Int32.Parse(ConfigurationManager.AppSettings["StartingGems"]));
                    Console.WriteLine("CoC Version : " + ConfigurationManager.AppSettings["ClientVersion"]);
                    if (Convert.ToBoolean(ConfigurationManager.AppSettings["useCustomPatch"]))
                    {
                        Console.WriteLine("Patch : Active");
                        Console.WriteLine("Patching Server : " + ConfigurationManager.AppSettings["patchingServer"]);
                    }
                    else
                    {
                        Console.WriteLine("Patch : Disable");
                    }
                    if (Convert.ToBoolean(ConfigurationManager.AppSettings["maintenanceMode"]))
                    {
                        Console.WriteLine("Maintance Mode : Active");
                        Console.WriteLine("Maintance time : " + (Convert.ToInt32(ConfigurationManager.AppSettings["maintenanceTimeleft"])) + " Seconds");
                    }
                    else
                    {
                        Console.WriteLine("Maintance Mode : Disable");
                    }
                }
                else if (line == "/sysinfo")
                {
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("Server Status is now sent to all online players");
                    AllianceMailStreamEntry mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("System Manager");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("Legendary Administrator");
                    mail.SetMessage("Latest Server Status:\nConnected Players:" + ResourcesManager.GetConnectedClients().Count + "\nIn Memory Alliances:" + ObjectManager.GetInMemoryAlliances().Count + "\nIn Memory Levels:" + ResourcesManager.GetInMemoryLevels().Count);
                    mail.SetSenderLeagueId(22);
                    mail.SetSenderLevel(500);

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var p  = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                        var pm = new GlobalChatLineMessage(onlinePlayer.GetClient());
                        pm.SetChatMessage("Our current Server Status is now sent at your mailbox!");
                        pm.SetPlayerId(0);
                        pm.SetLeagueId(22);
                        pm.SetPlayerName("System Manager");
                        p.SetAvatarStreamEntry(mail);
                        PacketManager.ProcessOutgoingPacket(p);
                        PacketManager.ProcessOutgoingPacket(pm);
                    }
                    Console.ForegroundColor = ConsoleColor.White;
                }
                else if (line == "/help")
                {
                    Console.WriteLine("");
                    Console.WriteLine("Available commands :");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/restart - This commands restart server and sending online player info about it.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("/shutdown - This commands fully close the server with message after five minutes.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/status - This commands show informations about the server.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("/clear - Clean the emulator screen");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("/help - This commands show a list of available commands.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/sysinfo - This command will send the current Server Status to all online players.");
                    Console.ForegroundColor = ConsoleColor.White;
                }
                else
                {
                    Console.WriteLine("");
                    Console.WriteLine("Available commands :");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/restart - This commands restart server and sending online player info about it.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("/shutdown - This commands fully close the server with message after five minutes.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/status - This commands show informations about the server.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.White;
                    Console.WriteLine("/clear - Clean the emulator screen");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Cyan;
                    Console.WriteLine("/help - This commands show a list of available commands.");
                    Console.WriteLine("");
                    Console.ForegroundColor = ConsoleColor.Red;
                    Console.WriteLine("/sysinfo - This command will send the current Server Status to all online players.");
                    Console.ForegroundColor = ConsoleColor.White;
                }
            }
        }
Ejemplo n.º 14
0
        /// <summary>
        ///     Creates a message by type.
        /// </summary>
        public override PiranhaMessage CreateMessageByType(int type)
        {
            PiranhaMessage message = null;

            if (type < 20000)
            {
                switch (type)
                {
                case 10100:
                {
                    message = new ClientHelloMessage();
                    break;
                }

                case 10101:
                {
                    message = new LoginMessage();
                    break;
                }

                case 10108:
                {
                    message = new KeepAliveMessage();
                    break;
                }

                case 10113:
                {
                    message = new SetDeviceTokenMessage();
                    break;
                }

                case 10116:
                {
                    message = new ResetAccountMessage();
                    break;
                }

                case 10117:
                {
                    message = new ReportUserMessage();
                    break;
                }

                case 10118:
                {
                    message = new AccountSwitchedMessage();
                    break;
                }

                case 10150:
                {
                    message = new AppleBillingRequestMessage();
                    break;
                }

                case 10212:
                {
                    message = new ChangeAvatarNameMessage();
                    break;
                }

                case 14101:
                {
                    message = new GoHomeMessage();
                    break;
                }

                case 14102:
                {
                    message = new EndClientTurnMessage();
                    break;
                }

                case 14134:
                {
                    message = new AttackNpcMessage();
                    break;
                }

                case 14262:
                {
                    message = new BindGoogleServiceAccountMessage();
                    break;
                }

                case 14325:
                {
                    message = new AskForAvatarProfileMessage();
                    break;
                }

                case 14715:
                {
                    message = new SendGlobalChatLineMessage();
                    break;
                }
                }
            }
            else
            {
                switch (type)
                {
                case 20000:
                {
                    message = new ExtendedSetEncryptionMessage();
                    break;
                }

                case 20100:
                {
                    message = new ServerHelloMessage();
                    break;
                }

                case 20103:
                {
                    message = new LoginFailedMessage();
                    break;
                }

                case 20104:
                {
                    message = new LoginOkMessage();
                    break;
                }

                case 20108:
                {
                    message = new KeepAliveServerMessage();
                    break;
                }

                case 20117:
                {
                    message = new ReportUserStatusMessage();
                    break;
                }

                case 20151:
                {
                    message = new AppleBillingProcessedByServerMessage();
                    break;
                }

                case 20161:
                {
                    message = new ShutdownStartedMessage();
                    break;
                }

                case 20171:
                {
                    message = new PersonalBreakStartedMessage();
                    break;
                }

                case 20261:
                {
                    message = new GoogleServiceAccountBoundMessage();
                    break;
                }

                case 20262:
                {
                    message = new GoogleServiceAccountAlreadyBoundMessage();
                    break;
                }

                case 24101:
                {
                    message = new OwnHomeDataMessage();
                    break;
                }

                case 24104:
                {
                    message = new OutOfSyncMessage();
                    break;
                }

                case 24111:
                {
                    message = new AvailableServerCommand();
                    break;
                }

                case 24112:
                {
                    message = new WaitingToGoHomeMessage();
                    break;
                }

                case 24115:
                {
                    message = new ServerErrorMessage();
                    break;
                }

                case 24133:
                {
                    message = new NpcDataMessage();
                    break;
                }

                case 24334:
                {
                    message = new AvatarProfileMessage();
                    break;
                }

                case 24411:
                {
                    message = new AvatarStreamMessage();
                    break;
                }

                case 24715:
                {
                    message = new GlobalChatLineMessage();
                    break;
                }
                }
            }

            return(message);
        }
Ejemplo n.º 15
0
        private void cmdSubmutBtn_Click(object sender, EventArgs e)
        {
            dpServerConsole.SelectionStart = dpServerConsole.Text.Length;
            dpServerConsole.ScrollToCaret();
            if (EnterCmdTextBox.Text == "/clear")
            {
                dpServerConsole.Clear();
            }
            else if (EnterCmdTextBox.Text == "/restart")
            {
                var mail = new AllianceMailStreamEntry();
                mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                mail.SetSenderId(0);
                mail.SetSenderAvatarId(0);
                mail.SetSenderName("System Manager");
                mail.SetIsNew(0);
                mail.SetAllianceId(0);
                mail.SetAllianceBadgeData(1728059989);
                mail.SetAllianceName("Legendary Administrator");
                mail.SetMessage("System is about to restart in a few moments.");
                mail.SetSenderLevel(500);
                mail.SetSenderLeagueId(22);

                foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                {
                    var pm = new GlobalChatLineMessage(onlinePlayer.GetClient());
                    var ps = new ShutdownStartedMessage(onlinePlayer.GetClient());
                    var p  = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                    ps.SetCode(5);
                    p.SetAvatarStreamEntry(mail);
                    pm.SetChatMessage("System is about to restart in a few moments.");
                    pm.SetPlayerId(0);
                    pm.SetLeagueId(22);
                    pm.SetPlayerName("System Manager");
                    PacketManager.ProcessOutgoingPacket(p);
                    PacketManager.ProcessOutgoingPacket(ps);
                    PacketManager.ProcessOutgoingPacket(pm);
                }
                dpServerConsole.Text += Environment.NewLine + "Message Sent To Users And Server Is Restarting ...";
                Console.WriteLine("Message Sent To Users And Server Is Restarting ...");
                Program.RestartProgram();
                StatusLabel.Text = "Status : Restart";
            }
            else if (EnterCmdTextBox.Text == "/info")
            {
                dpServerConsole.Text += Environment.NewLine + @"Created By UCS Team
                    Aidid
                    Berkan
                    Iswuefel
                    Moien007
                    Tobiti";
            }
            else if (EnterCmdTextBox.Text == "/quit")
            {
                Environment.Exit(1);
            }
            else
            {
                dpServerConsole.Text += Environment.NewLine + "unknown command = " + EnterCmdTextBox.Text +
                                        Environment.NewLine;
            }
            EnterCmdTextBox.Clear();
        }