Ejemplo n.º 1
0
        private void serverstatusbtn_Click_1(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("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 in your mailbox!");
                pm.SetPlayerId(0);
                pm.SetLeagueId(22);
                pm.SetPlayerName("System Manager");
                p.SetAvatarStreamEntry(mail);
                PacketManager.ProcessOutgoingPacket(p);
                PacketManager.ProcessOutgoingPacket(pm);
            }
            ConsoleWrite("Server Status Sent to Player's.");
        }
Ejemplo n.º 2
0
        public override void Execute(Level level)
        {
            if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    var mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("UCS System");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("Legendary Administrator");
                    mail.SetMessage("Latest Server Status:\nConnected Players:" +
                                    ResourcesManager.GetOnlinePlayers().Count + "\nIn Memory Alliances:" +
                                    ObjectManager.GetInMemoryAlliances().Count + "\nIn Memory Levels:" +
                                    ResourcesManager.GetInMemoryLevels().Count + "\nIn Database Accounts:" +
                                    ResourcesManager.GetAllPlayerIds().Count);
                    mail.SetSenderLeagueId(22);

                    var p = new AvatarStreamEntryMessage(level.GetClient());
                    p.SetAvatarStreamEntry(mail);
                    PacketManager.ProcessOutgoingPacket(p);
                }
            }
            else
            {
                SendCommandFailedMessage(level.GetClient());
            }
        }
Ejemplo n.º 3
0
        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(avatar.GetId());
                    mail.SetSenderAvatarId(avatar.GetId());
                    mail.SetSenderName(avatar.GetAvatarName());
                    mail.SetIsNew(2);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(1526735450);
                    mail.SetAllianceName("UCS Server Information");
                    mail.SetMessage(@"Online Players: " + ResourcesManager.GetOnlinePlayers().Count +
                                    "\nIn Memory Players: " + ResourcesManager.GetInMemoryLevels().Count +
                                    "\nConnected Players: " + ResourcesManager.GetConnectedClients().Count +
                                    "\nServer Ram: " + Performances.GetUsedMemory() + "% / " + Performances.GetTotalMemory() + "MB"
                                    );

                    mail.SetSenderLevel(avatar.GetAvatarLevel());
                    mail.SetSenderLeagueId(avatar.GetLeagueId());

                    var p = new AvatarStreamEntryMessage(level.GetClient());
                    p.SetAvatarStreamEntry(mail);
                    PacketProcessor.Send(p);
                }
            }
            else
            {
                SendCommandFailedMessage(level.GetClient());
            }
        }
Ejemplo n.º 4
0
        public override void Execute(Level level)
        {
            if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    var mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("UCS Information Bot");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("UCS System");
                    mail.SetMessage(
                        "UCS Game Server FAQ:\n\nHow long is this server online?\nThis Server is 24/7 online every day in the week.\n\nWhat is UCS Shard?\nUCS Shard is the OFFICIAL Test server of the famous CoC Emulator: Ultrapowa Clash Server.\n\nIs my progress saved?\nYes, we save everything automatically.\n\nWhere can I find the homepage with the forum?\nHomePage: http://ultrapowa.com/shard \n\nMy Friends want to player here too, how can they play here?\nGive them our APK or Server IP, you can find both at the forums!\n\n\nGreetings,\n\nUCS Shard Team");
                    mail.SetSenderLeagueId(22);

                    var p = new AvatarStreamEntryMessage(level.GetClient());
                    p.SetAvatarStreamEntry(mail);
                    PacketManager.ProcessOutgoingPacket(p);
                }
            }
            else
            {
                SendCommandFailedMessage(level.GetClient());
            }
        }
Ejemplo n.º 5
0
        public override void Process(Level a)
        {
            if (Client.CState >= 1)
            {
                CheckClient();
                // IF THE USER IS TOTALLY NEW, WITH ID 0 AND NO TOKEN
                if (UserID == 0 || string.IsNullOrEmpty(UserToken))
                {
                    NewUser();
                    return;
                }

                level = ResourcesManager.GetPlayer(UserID); // THE USER HAVE AN ID, WE CHECK IF IT'S IN DATABASE
                if (level != null)
                {
                    if (level.Banned()) // IF THE USER IS FOUND BUT BANNED
                    {
                        var p = new LoginFailedMessage(Client);
                        p.SetErrorCode(11);
                        PacketManager.ProcessOutgoingPacket(p);
                        return;
                    }
                    if (String.Equals(level.GetPlayerAvatar().GetUserToken(), UserToken, StringComparison.Ordinal)) // IF THE USER TOKEN MATCH THE CLIENT TOKEN
                    {
                        LogUser();
                    }
                    else // ELSE, HE IS TRYING TO STEAL AN ACCOUNT
                    {
                        var p = new LoginFailedMessage(Client);
                        p.SetErrorCode(11);
                        p.SetReason("We have detected unrecognized token sended from your devices. Please contact server owner for more information");
                        PacketManager.ProcessOutgoingPacket(p);
                        return;
                    }
                }
                else // IF NOTHING IS FOUND IN DATABASE WITH THIS ID, WE CREATE A NEW
                {
                    NewUser();
                }

                if (ResourcesManager.IsPlayerOnline(level))
                {
                    var mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("Server Manager");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetSenderLeagueId(22);
                    mail.SetAllianceBadgeData(1728059989);
                    mail.SetAllianceName("Server Admin");
                    mail.SetMessage(ConfigurationManager.AppSettings["AdminMessage"]);
                    mail.SetSenderLevel(500);
                    var p = new AvatarStreamEntryMessage(level.GetClient());
                    p.SetAvatarStreamEntry(mail);
                    PacketManager.ProcessOutgoingPacket(p);
                }
            }
        }
Ejemplo n.º 6
0
        public override void Execute(Level level)
        {
            if (level.Avatar.AccountPrivileges >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    ClientAvatar avatar = level.Avatar;
                    var          mail   = new AllianceMailStreamEntry();
                    mail.ID = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
                    mail.SetSender(avatar);
                    mail.IsNew             = 2;
                    mail.AllianceId        = 0;
                    mail.AllianceBadgeData = 1526735450;
                    mail.AllianceName      = "UCS Server Information";
                    mail.Message           = @"Online Players: " + ResourcesManager.m_vOnlinePlayers.Count +
                                             "\nIn Memory Players: " + ResourcesManager.m_vInMemoryLevels.Count +
                                             "\nConnected Players: " + ResourcesManager.GetConnectedClients().Count +
                                             "\nServer Ram: " + Performances.GetUsedMemory() + "% / " + Performances.GetTotalMemory() + "MB";

                    var p = new AvatarStreamEntryMessage(level.Client);
                    p.SetAvatarStreamEntry(mail);
                    Processor.Send(p);
                }
            }
            else
            {
                SendCommandFailedMessage(level.Client);
            }
        }
Ejemplo n.º 7
0
        public override void Execute(Level level)
        {
            if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    var mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("UCS Info Bot");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("UCS Info Bots");
                    mail.SetMessage(
                        "Here is the current UCS Developer Team:\n\n\nDev Leader:\nAidid\n\nDevelopers:\nBerkan,\nAbdu, \nTobiti\nAnd iSwuerfel\n\n");
                    mail.SetSenderLeagueId(22);

                    var p = new AvatarStreamEntryMessage(level.GetClient());
                    p.SetAvatarStreamEntry(mail);
                    PacketManager.ProcessOutgoingPacket(p);
                }
            }
            else
            {
                SendCommandFailedMessage(level.GetClient());
            }
        }
        public override void Execute(Level level)
        {
            if (level.Avatar.AccountPrivileges >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    string       message = string.Join(" ", m_vArgs.Skip(1));
                    ClientAvatar avatar  = level.Avatar;
                    var          mail    = new AllianceMailStreamEntry();
                    mail.ID = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
                    mail.SetSender(avatar);
                    mail.IsNew             = 2;
                    mail.AllianceId        = 0;
                    mail.AllianceBadgeData = 1526735450;
                    mail.AllianceName      = "Administrator";
                    mail.Message           = message;

                    foreach (var onlinePlayer in ResourcesManager.m_vOnlinePlayers)
                    {
                        var p = new AvatarStreamEntryMessage(onlinePlayer.Client);
                        p.SetAvatarStreamEntry(mail);
                        Processor.Send(p);
                    }
                }
            }
            else
            {
                SendCommandFailedMessage(level.Client);
            }
        }
Ejemplo n.º 9
0
        public override void Execute(Level level)
        {
            if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    var mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    mail.SetSenderName("UCS Info Bot");
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("UCS System");
                    mail.SetMessage(
                        "Here you can find general Informations about UCS:\n\nUCS is a Server Emulator that run Clash Of Clans\nYou can test our latest Server Builds at Shard.");
                    mail.SetSenderLeagueId(22);

                    var p = new AvatarStreamEntryMessage(level.GetClient());
                    p.SetAvatarStreamEntry(mail);
                    PacketManager.ProcessOutgoingPacket(p);
                }
            }
            else
            {
                SendCommandFailedMessage(level.GetClient());
            }
        }
Ejemplo n.º 10
0
        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(avatar.GetId());
                    mail.SetSenderAvatarId(avatar.GetId());
                    mail.SetSenderName(avatar.GetAvatarName());
                    mail.SetIsNew(0);
                    mail.SetAllianceId(1);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("UCS Information");
                    mail.SetMessage("Your Player ID: " + level.GetPlayerAvatar().GetId());
                    mail.SetSenderLevel(avatar.GetAvatarLevel());
                    mail.SetSenderLeagueId(avatar.GetLeagueId());

                    var p = new AvatarStreamEntryMessage(level.GetClient());
                    p.SetAvatarStreamEntry(mail);
                    PacketManager.ProcessOutgoingPacket(p);
                }
            }
            else
            {
                SendCommandFailedMessage(level.GetClient());
            }
        }
Ejemplo n.º 11
0
        public override void Execute(Level level)
        {
            var avatar     = level.GetPlayerAvatar();
            var allianceId = avatar.GetAllianceId();

            if (allianceId > 0)
            {
                var alliance = ObjectManager.GetAlliance(allianceId);
                if (alliance != null)
                {
                    var mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetAvatar(avatar);
                    mail.SetIsNew(2);
                    mail.SetSenderId(avatar.GetId());
                    mail.SetAllianceId(allianceId);
                    mail.SetAllianceBadgeData(alliance.GetAllianceBadgeData());
                    mail.SetAllianceName(alliance.GetAllianceName());
                    mail.SetMessage(m_vMailContent);

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        if (onlinePlayer.GetPlayerAvatar().GetAllianceId() == allianceId)
                        {
                            var p = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                            p.SetAvatarStreamEntry(mail);
                            PacketManager.ProcessOutgoingPacket(p);
                        }
                    }
                }
            }
        }
Ejemplo n.º 12
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();
        }
Ejemplo n.º 13
0
        public override void Execute(Level level)
        {
            if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    var message = string.Join(" ", m_vArgs.Skip(1));
                    var avatar  = level.GetPlayerAvatar();
                    var mail    = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(avatar.GetId());
                    mail.SetSenderAvatarId(avatar.GetId());
                    mail.SetSenderName(avatar.GetAvatarName());
                    mail.SetIsNew(0);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(0);
                    mail.SetAllianceName("Administrator");
                    mail.SetMessage(message);
                    mail.SetSenderLevel(avatar.GetAvatarLevel());
                    mail.SetSenderLeagueId(avatar.GetLeagueId());

                    foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
                    {
                        var p = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                        p.SetAvatarStreamEntry(mail);
                        PacketManager.ProcessOutgoingPacket(p);
                    }
                }
            }
            else
            {
                SendCommandFailedMessage(level.GetClient());
            }
        }
        private void AddAvatarStreamEntry(AvatarStreamEntry entry)
        {
            if (this.AvatarStreamList.Size() > 50)
            {
                this.RemoveAvatarStreamEntry(this.AvatarStreamList[0]);
            }
            this.AvatarStreamList.Add(entry.GetId());

            if (this.CurrentSession != null)
            {
                AvatarStreamEntryMessage avatarStreamEntryMessage = new AvatarStreamEntryMessage();
                avatarStreamEntryMessage.SetAvatarStreamEntry(entry);
                this.CurrentSession.SendPiranhaMessage(avatarStreamEntryMessage, 1);

                if (entry.IsNew())
                {
                    ServerMessageManager.SendMessage(new AvatarStreamSeenMessage
                    {
                        AccountId = entry.GetId()
                    }, 11);
                }
            }
            else
            {
                GameAvatar.Save(this);
            }
        }
Ejemplo n.º 15
0
        async void LogUser()
        {
            try
            {
                ResourcesManager.LogPlayerIn(level, Client);
                level.Tick();
                level.SetIPAddress(Client.CIPAddress);
                LoginOkMessage l      = new LoginOkMessage(Client);
                ClientAvatar   avatar = level.GetPlayerAvatar();
                l.SetAccountId(avatar.GetId());
                l.SetPassToken(avatar.GetUserToken());
                l.SetServerMajorVersion(MajorVersion);
                l.SetServerBuild(MinorVersion);
                l.SetContentVersion(ContentVersion);
                l.SetServerEnvironment("prod");
                l.SetDaysSinceStartedPlaying(0);
                l.SetServerTime(Math.Round(level.GetTime().Subtract(new DateTime(1970, 1, 1)).TotalSeconds * 1000).ToString(CultureInfo.InvariantCulture));
                l.SetAccountCreatedDate(avatar.GetAccountCreationDate().ToString());
                l.SetStartupCooldownSeconds(0);
                l.SetCountryCode(avatar.GetUserRegion().ToUpper());
                PacketProcessor.Send(l);

                Alliance alliance = await ObjectManager.GetAlliance(level.GetPlayerAvatar().GetAllianceId());

                if (ResourcesManager.IsPlayerOnline(level))
                {
                    AllianceMailStreamEntry mail = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(0);
                    mail.SetSenderAvatarId(0);
                    /*FOR FHX*/   //mail.SetSenderName("Clash Of Heroes Team");
                    mail.SetSenderName("Server Manager");
                    mail.SetIsNew(2);
                    mail.SetAllianceId(0);
                    mail.SetSenderLeagueId(22);
                    mail.SetAllianceBadgeData(1526735450);
                    /*FOR FHX*/   //mail.SetAllianceName("COH-TEAM");
                    mail.SetAllianceName("Server Admin");
                    mail.SetMessage(ConfigurationManager.AppSettings["AdminMessage"]);
                    mail.SetSenderLevel(500);
                    AvatarStreamEntryMessage p = new AvatarStreamEntryMessage(level.GetClient());
                    p.SetAvatarStreamEntry(mail);
                    PacketProcessor.Send(p);
                }

                if (alliance != null)
                {
                    PacketProcessor.Send(new AllianceFullEntryMessage(Client, alliance));
                    PacketProcessor.Send(new AllianceStreamMessage(Client, alliance));
                    PacketProcessor.Send(new AllianceWarHistoryMessage(Client, alliance));
                }
                PacketProcessor.Send(new AvatarStreamMessage(Client));
                PacketProcessor.Send(new OwnHomeDataMessage(Client, level));
                PacketProcessor.Send(new BookmarkMessage(Client));
            } catch (Exception) { }
        }
Ejemplo n.º 16
0
        private void LogUser()
        {
            ResourcesManager.LogPlayerIn(level, Client);
            level.Tick();

            var loginOk = new LoginOkMessage(Client);
            var avatar  = level.GetPlayerAvatar();

            loginOk.SetAccountId(avatar.GetId());
            loginOk.SetPassToken(avatar.GetUserToken());
            loginOk.SetServerMajorVersion(MajorVersion);
            loginOk.SetServerBuild(MinorVersion);
            loginOk.SetContentVersion(ContentVersion);
            loginOk.SetServerEnvironment("prod");
            loginOk.SetDaysSinceStartedPlaying(0);
            loginOk.SetServerTime(Math.Round(level.GetTime().Subtract(new DateTime(1970, 1, 1)).TotalSeconds * 1000).ToString(CultureInfo.InvariantCulture));
            loginOk.SetAccountCreatedDate(avatar.GetAccountCreationDate().ToString());
            loginOk.SetStartupCooldownSeconds(0);
            loginOk.SetCountryCode(avatar.GetUserRegion() ?? "EN");
            loginOk.Send();

            var alliance = ObjectManager.GetAlliance(level.GetPlayerAvatar().GetAllianceId());

            if (ResourcesManager.IsPlayerOnline(level))
            {
                var mail = new AllianceMailStreamEntry();
                mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                mail.SetSenderId(0);
                mail.SetSenderAvatarId(0);
                mail.SetSenderName("Clash of Magic Admin");
                mail.SetIsNew(2);
                mail.SetAllianceId(0);
                mail.SetSenderLeagueId(22);
                mail.SetAllianceBadgeData(1526735450);
                mail.SetAllianceName("Clash of Magic Admin");
                mail.SetMessage(ConfigurationManager.AppSettings["AdminMessage"]);
                mail.SetSenderLevel(500);
                var p = new AvatarStreamEntryMessage(level.GetClient());
                p.SetAvatarStreamEntry(mail);
                p.Send();
            }

            new OwnHomeDataMessage(Client, level).Send(); // THIS MESSAGE MUST BE SENT FIRST !!!
            new AvatarStreamMessage(Client).Send();

            if (alliance != null)
            {
                new AllianceFullEntryMessage(Client, alliance).Send();
                new AllianceStreamMessage(Client, alliance).Send();
                new AllianceWarHistoryMessage(Client, alliance).Send();
                //PacketManager.ProcessOutgoingPacket (new AllianceWarMapDataMessage(Client)); //Don't activate it (not done!)
            }

            new BookmarkMessage(Client).Send();
        }
Ejemplo n.º 17
0
        public override void Execute(Level level)
        {
            if (level.Avatar.AccountPrivileges >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    ManagementObjectSearcher searcher = new ManagementObjectSearcher("select * from Win32_PerfFormattedData_PerfOS_Processor");
                    var cpuTimes = searcher.Get()
                                   .Cast <ManagementObject>()
                                   .Select(mo => new
                    {
                        Name  = mo["Name"],
                        Usage = mo["PercentProcessorTime"]
                    }
                                           )
                                   .ToList();
                    var query         = cpuTimes.Where(x => x.Name.ToString() == "_Total").Select(x => x.Usage);
                    var CPUParcentage = query.SingleOrDefault();
                    RAMUsage       = PerformanceInfo.GetTotalMemoryInMiB() - PerformanceInfo.GetPhysicalAvailableMemoryInMiB();
                    DriveLetter    = Path.GetPathRoot(Directory.GetCurrentDirectory());
                    DiskSpace      = new DriveInfo(DriveLetter.Substring(0, DriveLetter.Length - 2));
                    TotalFreeSpace = DiskSpace.TotalFreeSpace / 1073741824;
                    TotalDiskSize  = DiskSpace.TotalSize / 1073741824;
                    DiskspaceUsed  = TotalDiskSize - TotalFreeSpace;
                    ClientAvatar avatar = level.Avatar;
                    var          mail   = new AllianceMailStreamEntry();
                    mail.ID = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
                    mail.SetSender(avatar);
                    mail.IsNew             = 2;
                    mail.AllianceId        = 0;
                    mail.AllianceBadgeData = 1526735450;
                    mail.AllianceName      = "UCS Server Information";
                    mail.Message           = @"Online Players: " + ResourcesManager.m_vOnlinePlayers.Count +
                                             "\nIn Memory Players: " + ResourcesManager.m_vInMemoryLevels.Count +
                                             "\nConnected Players: " + ResourcesManager.GetConnectedClients().Count +
                                             "\nTotal System CPU Usage: " + CPUParcentage + "%" +
                                             "\nServer RAM: " + Performances.GetUsedMemory() + "% / " + Performances.GetTotalMemory() + "MB" +
                                             "\nTotal Server Ram Usage: " + RAMUsage + "MB / " + Performances.GetTotalMemory() + "MB" +
                                             "\nServer Disk Space Used: " + Math.Round(DiskspaceUsed, 2) + "GB / " + Math.Round(TotalDiskSize, 2) + "GB";

                    var p = new AvatarStreamEntryMessage(level.Client);
                    p.SetAvatarStreamEntry(mail);
                    Processor.Send(p);
                }
            }
            else
            {
                SendCommandFailedMessage(level.Client);
            }
        }
Ejemplo n.º 18
0
        private async void LogUser()
        {
            ResourcesManager.LogPlayerIn(level, Device);
            level.Avatar.Region = Resources.Region.GetIpCountry(level.Avatar.IPAddress = Device.IPAddress);

            new LoginOkMessage(this.Device)
            {
                ServerMajorVersion = MajorVersion,
                ServerBuild        = MinorVersion,
                ContentVersion     = ContentVersion
            }.Send();

            if (level.Avatar.AllianceId > 0)
            {
                Alliance alliance = ObjectManager.GetAlliance(level.Avatar.AllianceId);
                if (alliance != null)
                {
                    new AllianceFullEntryMessage(this.Device, alliance).Send();
                    new AllianceStreamMessage(this.Device, alliance).Send();
                    new AllianceWarHistoryMessage(this.Device, alliance).Send();
                }
                else
                {
                    this.level.Avatar.AllianceId = 0;
                }
            }
            new AvatarStreamMessage(this.Device).Send();
            new OwnHomeDataMessage(this.Device, level).Send();
            new BookmarkMessage(this.Device).Send();

            if (ResourcesManager.IsPlayerOnline(level))
            {
                AllianceMailStreamEntry mail = new AllianceMailStreamEntry();
                mail.ID       = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
                mail.SenderId = 0;
                //mail.SetSenderName("Clash Of Heroes Team");
                mail.m_vSenderName     = "Server Manager";
                mail.IsNew             = 2;
                mail.AllianceId        = 0;
                mail.m_vSenderLeagueId = 22;
                mail.AllianceBadgeData = 1526735450;
                //mail.SetAllianceName("COH-TEAM");
                mail.AllianceName   = "Server Admin";
                mail.Message        = ConfigurationManager.AppSettings["AdminMessage"];
                mail.m_vSenderLevel = 500;
                AvatarStreamEntryMessage p = new AvatarStreamEntryMessage(level.Client);
                p.SetAvatarStreamEntry(mail);
                p.Send();
            }
        }
Ejemplo n.º 19
0
        void LogUser()
        {
            ResourcesManager.LogPlayerIn(level, Client);
            level.Tick();
            var loginOk = new LoginOkMessage(Client);
            var avatar  = level.GetPlayerAvatar();

            loginOk.SetAccountId(avatar.GetId());
            loginOk.SetPassToken(avatar.GetUserToken());
            loginOk.SetServerMajorVersion(MajorVersion);
            loginOk.SetServerBuild(MinorVersion);
            loginOk.SetContentVersion(ContentVersion);
            loginOk.SetServerEnvironment("prod");
            loginOk.SetDaysSinceStartedPlaying(0);
            loginOk.SetServerTime(Math.Round(level.GetTime().Subtract(new DateTime(1970, 1, 1)).TotalSeconds * 1000).ToString(CultureInfo.InvariantCulture));
            loginOk.SetAccountCreatedDate("1414003838000");
            loginOk.SetStartupCooldownSeconds(0);
            loginOk.SetCountryCode(avatar.GetUserRegion().ToUpper());
            PacketManager.ProcessOutgoingPacket(loginOk);
            PacketManager.ProcessOutgoingPacket(new OwnHomeDataMessage(Client, level));
            var alliance = ObjectManager.GetAlliance(level.GetPlayerAvatar().GetAllianceId());

            if (ResourcesManager.IsPlayerOnline(level))
            {
                var mail = new AllianceMailStreamEntry();
                mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                mail.SetSenderId(0);
                mail.SetSenderAvatarId(0);
                mail.SetSenderName("Server Manager");
                mail.SetIsNew(0);
                mail.SetAllianceId(0);
                mail.SetSenderLeagueId(22);
                mail.SetAllianceBadgeData(1728059989);
                mail.SetAllianceName("Server Admin");
                mail.SetMessage(ConfigurationManager.AppSettings["AdminMessage"]);
                mail.SetSenderLevel(500);
                var p = new AvatarStreamEntryMessage(level.GetClient());
                p.SetAvatarStreamEntry(mail);
                PacketManager.ProcessOutgoingPacket(p);
            }

            if (alliance != null)
            {
                PacketManager.ProcessOutgoingPacket(new AllianceFullEntryMessage(Client, alliance));
                PacketManager.ProcessOutgoingPacket(new AllianceStreamMessage(Client, alliance));
                PacketManager.ProcessOutgoingPacket(new AllianceWarHistoryMessage(Client));
            }
            PacketManager.ProcessOutgoingPacket(new BookmarkMessage(Client));
        }
Ejemplo n.º 20
0
        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(avatar.GetId());
                    mail.SetSenderAvatarId(avatar.GetId());
                    mail.SetSenderName(avatar.GetAvatarName());
                    mail.SetIsNew(2);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(1526735450);
                    mail.SetAllianceName("UCS Server Commands Help");
                    mail.SetMessage(@"/help" +
                                    "\n/attack" +
                                    "\n/ban" +
                                    "\n/kick" +
                                    "\n/rename" +
                                    "\n/setprivileges" +
                                    "\n/shutdown" +
                                    "\n/unban" +
                                    "\n/visit" +
                                    "\n/sysmsg" +
                                    "\n/id" +
                                    "\n/max" +
                                    "\n/saveacc" +
                                    "\n/saveall" +
                                    "\n/becomeleader" +
                                    "\n/status");
                    mail.SetSenderLevel(avatar.GetAvatarLevel());
                    mail.SetSenderLeagueId(avatar.GetLeagueId());

                    var p = new AvatarStreamEntryMessage(level.GetClient());
                    p.SetAvatarStreamEntry(mail);
                    p.Send();
                }
            }
            else
            {
                SendCommandFailedMessage(level.GetClient());
            }
        }
Ejemplo n.º 21
0
        public override void Execute(Level level)
        {
            if (level.Avatar.AccountPrivileges >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    ClientAvatar avatar = level.Avatar;
                    var          mail   = new AllianceMailStreamEntry();
                    mail.ID = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
                    mail.SetSender(avatar);
                    mail.IsNew             = 2;
                    mail.AllianceId        = 0;
                    mail.AllianceBadgeData = 1526735450;
                    mail.AllianceName      = "UCS Server Commands Help";
                    mail.Message           = @"/help" +
                                             "\n/ban" +
                                             "\n/kick" +
                                             "\n/rename " +
                                             "\n/setprivileges" +
                                             "\n/shutdown" +
                                             "\n/unban" +
                                             "\n/visit" +
                                             "\n/sysmsg" +
                                             "\n/id" +
                                             "\n/min" +
                                             "\n/max" +
                                             "\n/saveacc" +
                                             "\n/saveall" +
                                             "\n/becomeleader" +
                                             "\n/status" +
                                             "\n/help" +
                                             "\n/accinfo";

                    var p = new AvatarStreamEntryMessage(level.Client);
                    p.SetAvatarStreamEntry(mail);
                    Processor.Send(p);
                }
            }
            else
            {
                SendCommandFailedMessage(level.Client);
            }
        }
        public override void Execute(Level level)
        {
            SendAllianceMailCommand allianceMailCommand = this;

            try
            {
                ClientAvatar avatar     = level.GetPlayerAvatar();
                long         allianceId = avatar.GetAllianceId();
                if (allianceId > 0L)
                {
                    Alliance alliance = ObjectManager.GetAlliance(allianceId);
                    if (alliance != null)
                    {
                        AllianceMailStreamEntry allianceMailStreamEntry1 = new AllianceMailStreamEntry();
                        allianceMailStreamEntry1.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                        allianceMailStreamEntry1.SetAvatar(avatar);
                        allianceMailStreamEntry1.SetIsNew((byte)2);
                        allianceMailStreamEntry1.SetSenderId(avatar.GetId());
                        allianceMailStreamEntry1.SetAllianceId(allianceId);
                        allianceMailStreamEntry1.SetAllianceBadgeData(alliance.GetAllianceBadgeData());
                        allianceMailStreamEntry1.SetAllianceName(alliance.GetAllianceName());
                        allianceMailStreamEntry1.SetMessage(m_vMailContent);
                        foreach (Level onlinePlayer in ResourcesManager.GetOnlinePlayers())
                        {
                            if (onlinePlayer.GetPlayerAvatar().GetAllianceId() == allianceId)
                            {
                                AvatarStreamEntryMessage Message = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                                AllianceMailStreamEntry  allianceMailStreamEntry2 = allianceMailStreamEntry1;
                                Message.SetAvatarStreamEntry((UCS.Logic.AvatarStreamEntry.AvatarStreamEntry)allianceMailStreamEntry2);
                                Message.Send();
                            }
                        }
                    }
                }
                avatar = (ClientAvatar)null;
            }
            catch (Exception ex)
            {
            }
        }
Ejemplo n.º 23
0
        public override void Execute(Level level)
        {
            if (level.GetAccountPrivileges() >= GetRequiredAccountPrivileges())
            {
                if (m_vArgs.Length >= 1)
                {
                    _cpuCounter.NextValue(); //Always 0
                    var avatar = level.GetPlayerAvatar();
                    var mail   = new AllianceMailStreamEntry();
                    mail.SetId((int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds);
                    mail.SetSenderId(avatar.GetId());
                    mail.SetSenderAvatarId(avatar.GetId());
                    mail.SetSenderName(avatar.GetAvatarName());
                    mail.SetIsNew(2);
                    mail.SetAllianceId(0);
                    mail.SetAllianceBadgeData(1526735450);
                    mail.SetAllianceName("UCS Server Information");
                    mail.SetMessage(@"Online Players: " + ResourcesManager.GetOnlinePlayers().Count +
                                    "\nIn Memory Players: " + ResourcesManager.GetInMemoryLevels().Count +
                                    "\nConnected Players: " + ResourcesManager.GetConnectedClients().Count +
                                                                                    //"\nUCS Ram: " + (Process.GetCurrentProcess().WorkingSet64 / 1048576) + "MB/" + //Unknown yet how to get properly
                                    "\nServer Ram: " + PerformanceInfo.GetPhysicalAvailableMemoryInMiB() + "MB/" + Performances.GetTotalMemory() + "MB" +
                                    "\nServer CPU " + _cpuCounter.NextValue() + "%" //Match Taskmanager
                                    );

                    mail.SetSenderLevel(avatar.GetAvatarLevel());
                    mail.SetSenderLeagueId(avatar.GetLeagueId());

                    var p = new AvatarStreamEntryMessage(level.GetClient());
                    p.SetAvatarStreamEntry(mail);
                    p.Send();
                }
            }
            else
            {
                SendCommandFailedMessage(level.GetClient());
            }
        }
Ejemplo n.º 24
0
        private void materialRaisedButton10_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(textBox23.Text);
            mail.SetIsNew(2); // 0 = Seen, 2 = New
            mail.SetAllianceId(0);
            mail.SetAllianceBadgeData(1728059989);
            mail.SetAllianceName("Ultrapowa");
            mail.SetMessage(textBox24.Text);
            mail.SetSenderLevel(300);
            mail.SetSenderLeagueId(22);

            foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
            {
                var p = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                p.SetAvatarStreamEntry(mail);
                PacketManager.ProcessOutgoingPacket(p);
            }
        }
Ejemplo n.º 25
0
        //Send To Mailbox Button
        private void materialRaisedButton10_Click(object sender, EventArgs e)
        {
            var mail = new AllianceMailStreamEntry();

            mail.ID                = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
            mail.SenderId          = 0;
            mail.SenderId          = 0;
            mail.m_vSenderName     = textBox23.Text;
            mail.IsNew             = 2; // 0 = Seen, 2 = New
            mail.AllianceId        = 0;
            mail.AllianceBadgeData = 1526735450;
            mail.AllianceName      = "Ultrapowa";
            mail.Message           = textBox24.Text;
            mail.m_vSenderLevel    = 300;
            mail.m_vSenderLeagueId = 22;

            foreach (var onlinePlayer in ResourcesManager.m_vOnlinePlayers)
            {
                var p = new AvatarStreamEntryMessage(onlinePlayer.Client);
                p.SetAvatarStreamEntry(mail);
                p.Send();
            }
        }
Ejemplo n.º 26
0
        private void PlayersMailBoxBtn_Click_1(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(MessageSenderNameTextBox.Text);
            mail.SetIsNew(0);
            mail.SetAllianceId(0);
            mail.SetAllianceBadgeData(1728059989);
            mail.SetAllianceName(MessageSenderNameTextBox.Text);
            mail.SetMessage(CMessageTextBox.Text);
            mail.SetSenderLevel(500);
            mail.SetSenderLeagueId(22);

            foreach (var onlinePlayer in ResourcesManager.GetOnlinePlayers())
            {
                var p = new AvatarStreamEntryMessage(onlinePlayer.GetClient());
                p.SetAvatarStreamEntry(mail);
                PacketManager.ProcessOutgoingPacket(p);
            }
        }
        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.º 28
0
        internal override async void Process()
        {
            try
            {
                var avatar     = this.Device.Player.Avatar;
                var allianceId = avatar.AllianceId;
                if (allianceId > 0)
                {
                    var alliance = ObjectManager.GetAlliance(allianceId);
                    if (alliance != null)
                    {
                        var mail = new AllianceMailStreamEntry();
                        mail.ID = (int)DateTime.UtcNow.Subtract(new DateTime(1970, 1, 1)).TotalSeconds;
                        mail.SetSender(avatar);
                        mail.IsNew             = 2;
                        mail.SenderId          = avatar.UserId;
                        mail.AllianceId        = allianceId;
                        mail.AllianceBadgeData = alliance.m_vAllianceBadgeData;
                        mail.AllianceName      = alliance.m_vAllianceName;
                        mail.Message           = m_vMailContent;

                        foreach (var onlinePlayer in ResourcesManager.m_vOnlinePlayers)
                        {
                            if (onlinePlayer.Avatar.AllianceId == allianceId)
                            {
                                var p = new AvatarStreamEntryMessage(onlinePlayer.Client);
                                p.SetAvatarStreamEntry(mail);
                                p.Send();
                            }
                        }
                    }
                }
            }
            catch (Exception)
            {
            }
        }
Ejemplo n.º 29
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.º 30
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();
            }
        }