示例#1
0
        public void Disconnect()
        {
            try
            {
                if (GetHabbo() != null)
                {
                    using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
                    {
                        DbClient.RunQuery(GetHabbo().GetQueryString);
                    }

                    GetHabbo().OnDisconnect();
                }
            }
            catch (Exception Error)
            {
                Logging.LogError(Error.ToString());
            }


            if (!Disconnected)
            {
                if (Connection != null)
                {
                    Connection.Dispose();
                }

                Disconnected = true;
            }
        }
示例#2
0
        public int AvgPriceForSprite(int SpriteID)
        {
            int Num  = 0;
            int Num2 = 0;

            if (MarketAverages.ContainsKey(SpriteID) && MarketCounts.ContainsKey(SpriteID))
            {
                if (MarketCounts[SpriteID] > 0)
                {
                    return(MarketAverages[SpriteID] / MarketCounts[SpriteID]);
                }

                return(0);
            }

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT `avgprice` FROM `" + ProjectHub.DbPrefix + "catalog_marketplace_data` WHERE `sprite` = '" + SpriteID + "' LIMIT 1");
                Num = DbClient.getInteger();

                DbClient.SetQuery("SELECT `sold` FROM `" + ProjectHub.DbPrefix + "catalog_marketplace_data` WHERE `sprite` = '" + SpriteID + "' LIMIT 1");
                Num2 = DbClient.getInteger();
            }

            MarketAverages.Add(SpriteID, Num);
            MarketCounts.Add(SpriteID, Num2);

            if (Num2 > 0)
            {
                return(Convert.ToInt32(Math.Ceiling((double)(Num / Num2))));
            }

            return(0);
        }
示例#3
0
        public ClothingManager()
        {
            Clothing = new Dictionary <int, ClothingItem>();

            if (Clothing.Count > 0)
            {
                Clothing.Clear();
            }

            DataTable GetClothing = null;

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT `id`,`clothing_name`,`clothing_parts` FROM `" + ProjectHub.DbPrefix + "catalog_clothing`");
                GetClothing = DbClient.getTable();
            }

            if (GetClothing != null)
            {
                foreach (DataRow DataRow in GetClothing.Rows)
                {
                    Clothing.Add(Convert.ToInt32(DataRow["id"]), new ClothingItem(Convert.ToInt32(DataRow["id"]), Convert.ToString(DataRow["clothing_name"]), Convert.ToString(DataRow["clothing_parts"])));
                }
            }
        }
示例#4
0
        public void Init()
        {
            if (Races.Count > 0)
            {
                Races.Clear();
            }

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT * FROM `catalog_pet_races`");
                DataTable DataTable = DbClient.getTable();

                if (DataTable != null)
                {
                    foreach (DataRow DataRow in DataTable.Rows)
                    {
                        PetRace Race = new PetRace(Convert.ToInt32(DataRow["raceid"]), Convert.ToInt32(DataRow["color1"]), Convert.ToInt32(DataRow["color2"]), (Convert.ToString(DataRow["has1color"]) == "1"), (Convert.ToString(DataRow["has2color"]) == "1"));
                        if (!Races.Contains(Race))
                        {
                            Races.Add(Race);
                        }
                    }
                }
            }
        }
示例#5
0
        public IHttpActionResult MethodName(int id)
        {
            var response    = new ApiResponseModel();
            var editpicture = _context.Editpictures.FirstOrDefault(e => e.Id == id);

            if (User.Identity.GetUserId() == editpicture.User_Id || User.Identity.GetUserId() == editpicture.Picture.User_Id)
            {
                ProjectHub.RemovePicture(editpicture.Id + "");  // Real time update
                _context.Editpictures.Remove(editpicture);
                _context.SaveChanges();

                var sm = new StorageManager();
                sm.RemoveBlob(BlobContainers.Pictures, editpicture.Id.ToString());
                sm.RemoveBlob(BlobContainers.PicturesThumbsMedium, editpicture.Id.ToString());
                sm.RemoveBlob(BlobContainers.PicturesThumbs, editpicture.Id.ToString());
            }
            else
            {
                response.Message       = "Invalid User Id";
                response.ResultPayload = new
                {
                    result = false
                };
                return(Ok(response));
            }
            response.Message       = "Successfully Delete";
            response.ResultPayload = new
            {
                result = true
            };
            return(Ok(response));
        }
示例#6
0
        public WordFilterManager()
        {
            FilteredWords = new List <WordFilter>();

            if (FilteredWords.Count > 0)
            {
                FilteredWords.Clear();
            }

            DataTable Data = null;

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT * FROM `" + ProjectHub.DbPrefix + "wordfilter`");
                Data = DbClient.getTable();

                if (Data != null)
                {
                    foreach (DataRow Row in Data.Rows)
                    {
                        FilteredWords.Add(new WordFilter(Convert.ToString(Row["word"]), ProjectHub.GetSettingsData().Data["wordfilter.replacement"], ProjectHub.EnumToBool(Row["strict"].ToString()), ProjectHub.EnumToBool(Row["bannable"].ToString())));
                    }
                }
            }
        }
示例#7
0
 public DiggosController(ProjectHub projectHub, RequestGateway requestGateway, ProjectGateway projectGateway, DGraphGateway dGraphGateway, GraphHub graphHub)
 {
     _projectGateway = projectGateway;
     _requestGateway = requestGateway;
     _dGraphGateway  = dGraphGateway;
     _projectHub     = projectHub;
     _graphHub       = graphHub;
 }
示例#8
0
 private void PolicyRequest()
 {
     Connection.SendData(ProjectHub.GetDefaultEncoding().GetBytes("<?xml version=\"1.0\"?>\r\n" +
                                                                  "<!DOCTYPE cross-domain-policy SYSTEM \"/xml/dtds/cross-domain-policy.dtd\">\r\n" +
                                                                  "<cross-domain-policy>\r\n" +
                                                                  "<allow-access-from domain=\"*\" to-ports=\"1-31111\" />\r\n" +
                                                                  "</cross-domain-policy>\x0"));
 }
示例#9
0
 public ProjectController(ProjectGateway projectGateway, UserGateway userGateway, RequestGateway requestGateway, ProjectHub projectHub, DGraphGateway dGraphGateway, GetAccessUser getAccessUser)
 {
     _projectGateway = projectGateway;
     _userGateway    = userGateway;
     _requestGateway = requestGateway;
     _projectHub     = projectHub;
     _dGraphGateway  = dGraphGateway;
     _getAccessUser  = getAccessUser;
 }
示例#10
0
        public void Dispose()
        {
            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.RunQuery("UPDATE `server_status` SET `users_online` = '0', `rooms_loaded` = '0'");
            }

            Timer.Dispose();
            GC.SuppressFinalize(this);
        }
示例#11
0
        public void CloseAll()
        {
            foreach (GameClient Client in GetClients.ToList())
            {
                if (Client == null)
                {
                    continue;
                }

                if (Client.GetHabbo() != null)
                {
                    try
                    {
                        using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
                        {
                            DbClient.RunQuery(Client.GetHabbo().GetQueryString);
                        }

                        Console.Clear();
                    }
                    catch
                    {
                    }
                }
            }

            try
            {
                foreach (GameClient Client in GetClients.ToList())
                {
                    if (Client == null || Client.GetConnection() == null)
                    {
                        continue;
                    }

                    try
                    {
                        Client.GetConnection().Dispose();
                    }
                    catch { }

                    Console.Clear();
                }
            }
            catch (Exception e)
            {
                Logging.LogError(e.ToString());
            }

            if (Clients.Count > 0)
            {
                Clients.Clear();
            }
        }
示例#12
0
 private void ParserOnNewPacket(ClientPacket Message)
 {
     try
     {
         ProjectHub.GetGame().GetPacketManager().TryExecutePacket(this, Message);
     }
     catch (Exception Error)
     {
         Logging.LogError(Error.ToString());
     }
 }
示例#13
0
 public Logger(string Type, string Command, string Extra, int UserId = 0)
 {
     using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
     {
         DbClient.SetQuery("INSERT INTO " + ProjectHub.DbPrefix + "logs VALUES (NULL, @type, @command, @extra, @user_id, UNIX_TIMESTAMP());");
         DbClient.AddParameter("type", Type);
         DbClient.AddParameter("command", Command);
         DbClient.AddParameter("extra", Extra);
         DbClient.AddParameter("user_id", UserId);
         DbClient.RunQuery();
     }
 }
示例#14
0
        public static bool CheckPetName(string PetName)
        {
            if (PetName.Length < 1 || PetName.Length > 16)
            {
                return(false);
            }

            if (!ProjectHub.IsValidAlphaNumeric(PetName))
            {
                return(false);
            }

            return(true);
        }
示例#15
0
        private void UpdateServerStatus()
        {
            TimeSpan Uptime = DateTime.Now - ProjectHub.ServerStarted;

            int UsersOnline = 0;
            int RoomCount   = 0;

            Console.Title = ProjectHub.PrettyVersion + ", " + UsersOnline + " users online, " + RoomCount + " rooms loaded, " + Uptime.Days + " day(s) " + Uptime.Hours + " hour(s) " + Uptime.Minutes + " minute(s) uptime";

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("UPDATE `server_status` SET `users_online` = @users, `rooms_loaded` = @rooms LIMIT 1;");
                DbClient.AddParameter("users", UsersOnline);
                DbClient.AddParameter("rooms", RoomCount);
                DbClient.RunQuery();
            }
        }
示例#16
0
        public void DoAdvertisingReport(GameClient Reporter, GameClient Target)
        {
            if (Reporter == null || Target == null || Reporter.GetHabbo() == null || Target.GetHabbo() == null)
            {
                return;
            }

            StringBuilder Builder = new StringBuilder();

            Builder.Append("New report submitted!\r\r");
            Builder.Append("Reporter: " + Reporter.GetHabbo().Username + "\r");
            Builder.Append("Reported User: "******"\r\r");
            Builder.Append(Target.GetHabbo().Username + "s last 10 messages:\r\r");

            DataTable GetLogs = null;

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT `message` FROM `" + ProjectHub.DbPrefix + "chatlogs` WHERE `user_id` = '" + Target.GetHabbo().Id + "' ORDER BY `id` DESC LIMIT 10");
                GetLogs = DbClient.getTable();

                if (GetLogs != null)
                {
                    int Number = 11;
                    foreach (DataRow Log in GetLogs.Rows)
                    {
                        Number -= 1;
                        Builder.Append(Number + ": " + Convert.ToString(Log["message"]) + "\r");
                    }
                }
            }

            foreach (GameClient Client in GetClients.ToList())
            {
                if (Client == null || Client.GetHabbo() == null)
                {
                    continue;
                }

                if (Client.GetHabbo().GetPermissions().HasRight("mod_tool") && !Client.GetHabbo().GetPermissions().HasRight("staff_ignore_advertisement_reports"))
                {
                    Client.SendMessage(new MOTDNotificationComposer(Builder.ToString()));
                }
            }
        }
示例#17
0
        public static Pet CreatePet(int UserId, string Name, int Type, string Race, string Color)
        {
            Pet Pet = new Pet(0, UserId, 0, Name, Type, Race, Color, 0, 100, 100, 0, ProjectHub.GetUnixTimestamp(), 0, 0, 0.0, 0, 0, 0, -1, "-1");

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("INSERT INTO " + ProjectHub.DbPrefix + "bots (user_id,name, ai_type) VALUES (" + Pet.OwnerId + ",@" + Pet.PetId + "name, 'pet')");
                DbClient.AddParameter(Pet.PetId + "name", Pet.Name);
                Pet.PetId = Convert.ToInt32(DbClient.InsertQuery());

                DbClient.SetQuery("INSERT INTO " + ProjectHub.DbPrefix + "bots_petdata (id,type,race,color,experience,energy,createstamp) VALUES (" + Pet.PetId + ", " + Pet.Type + ",@" + Pet.PetId + "race,@" + Pet.PetId + "color,0,100,UNIX_TIMESTAMP())");
                DbClient.AddParameter(Pet.PetId + "race", Pet.Race);
                DbClient.AddParameter(Pet.PetId + "color", Pet.Color);
                DbClient.RunQuery();
            }

            return(Pet);
        }
        private ContentResult Send(SendForm form, int?ProjectId, int?TaskId, int?TeamId, int?EmployeeId)
        {
            if (ModelState.IsValid)
            {
                int MyId         = SessionUser.GetUser().Id;
                int?newMessageId = MessageService.Create(new C.Message(form.Title, form.Message, MyId, form.ReplyTo), EmployeeId, ProjectId, TaskId, TeamId);
                if (newMessageId != null)
                {
                    if (EmployeeId != null)
                    {
                        EmployeeHub.Send((int)EmployeeId);
                        MailboxHub.Send((int)EmployeeId);
                    }
                    else
                    {
                        if (form.ReplyTo != null)
                        {
                            int ParentAuthor = MessageService.Get((int)form.ReplyTo).Author;
                            MailboxHub.Send(ParentAuthor);
                        }

                        if (ProjectId != null)
                        {
                            ProjectHub.Send((int)ProjectId);
                        }
                        else if (TaskId != null)
                        {
                            TaskHub.Send((int)TaskId);
                        }
                        else if (TeamId != null)
                        {
                            TeamHub.Send((int)TeamId);
                        }
                    }
                    return(new ContentResult {
                        Content = "success"
                    });
                }
            }
            return(new ContentResult {
                Content = "fail"
            });
        }
示例#19
0
        public UserCache GenerateUser(int Id)
        {
            UserCache User = null;

            if (UsersCached.ContainsKey(Id))
            {
                if (TryGetUser(Id, out User))
                {
                    return(User);
                }
            }

            GameClient Client = ProjectHub.GetGame().GetClientManager().GetClientByUserID(Id);

            if (Client != null)
            {
                if (Client.GetHabbo() != null)
                {
                    User = new UserCache(Id, Client.GetHabbo().Username, Client.GetHabbo().Motto, Client.GetHabbo().Look);
                    UsersCached.TryAdd(Id, User);

                    return(User);
                }
            }

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT `username`, `motto`, `look` FROM " + ProjectHub.DbPrefix + "users WHERE id = @id LIMIT 1");
                DbClient.AddParameter("id", Id);

                DataRow DataRow = DbClient.getRow();

                if (DataRow != null)
                {
                    User = new UserCache(Id, DataRow["username"].ToString(), DataRow["motto"].ToString(), DataRow["look"].ToString());
                    UsersCached.TryAdd(Id, User);
                }

                DataRow = null;
            }

            return(User);
        }
示例#20
0
        public TextsData()
        {
            Data = new Dictionary <string, string>();
            Data.Clear();

            using (IQueryAdapter dbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                dbClient.SetQuery("SELECT * FROM `" + ProjectHub.DbPrefix + "texts`");
                DataTable ConfigData = dbClient.getTable();

                if (ConfigData != null)
                {
                    foreach (DataRow Data2 in ConfigData.Rows)
                    {
                        Data.Add(Data2[1].ToString(), Data2[2].ToString());
                    }
                }
            }
            return;
        }
示例#21
0
        public BadgeManager()
        {
            Badges = new Dictionary <string, BadgeDefinition>();

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT * FROM `" + ProjectHub.DbPrefix + "badge_definitions`;");
                DataTable GetBadges = DbClient.getTable();

                foreach (DataRow Row in GetBadges.Rows)
                {
                    string BadgeCode = Convert.ToString(Row["code"]).ToUpper();

                    if (!Badges.ContainsKey(BadgeCode))
                    {
                        Badges.Add(BadgeCode, new BadgeDefinition(BadgeCode, Convert.ToString(Row["required_right"])));
                    }
                }
            }
        }
示例#22
0
        public string GetNameById(int Id)
        {
            GameClient Client = GetClientByUserID(Id);

            if (Client != null)
            {
                return(Client.GetHabbo().Username);
            }

            string Username;

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT username FROM " + ProjectHub.DbPrefix + "users WHERE id = @id LIMIT 1");
                DbClient.AddParameter("id", Id);
                Username = DbClient.getString();
            }

            return(Username);
        }
示例#23
0
        public static Bot CreateBot(ItemData Data, int OwnerId)
        {
            DataRow    BotData = null;
            CatalogBot CataBot = null;

            if (!ProjectHub.GetGame().GetCatalog().TryGetBot(Data.Id, out CataBot))
            {
                return(null);
            }

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("INSERT INTO " + ProjectHub.DbPrefix + "bots (`user_id`,`name`,`motto`,`look`,`gender`,`ai_type`) VALUES ('" + OwnerId + "', '" + CataBot.Name + "', '" + CataBot.Motto + "', '" + CataBot.Figure + "', '" + CataBot.Gender + "', '" + CataBot.AIType + "')");
                int Id = Convert.ToInt32(DbClient.InsertQuery());

                DbClient.SetQuery("SELECT `id`,`user_id`,`name`,`motto`,`look`,`gender` FROM `" + ProjectHub.DbPrefix + "bots` WHERE `user_id` = '" + OwnerId + "' AND `id` = '" + Id + "' LIMIT 1");
                BotData = DbClient.getRow();
            }

            return(new Bot(Convert.ToInt32(BotData["id"]), Convert.ToInt32(BotData["user_id"]), Convert.ToString(BotData["name"]), Convert.ToString(BotData["motto"]), Convert.ToString(BotData["look"]), Convert.ToString(BotData["gender"])));
        }
示例#24
0
        public void Init()
        {
            if (Responses.Count > 0)
            {
                Responses.Clear();
            }

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT `bot_ai`,`chat_keywords`,`response_text`,`response_mode`,`response_beverage` FROM `" + ProjectHub.DbPrefix + "bots_responses`");
                DataTable BotResponses = DbClient.getTable();

                if (BotResponses != null)
                {
                    foreach (DataRow Response in BotResponses.Rows)
                    {
                        Responses.Add(new BotResponse(Convert.ToString(Response["bot_ai"]), Convert.ToString(Response["chat_keywords"]), Convert.ToString(Response["response_text"]), Response["response_mode"].ToString(), Convert.ToString(Response["response_beverage"])));
                    }
                }
            }
        }
        public static void GetAchievementLevels(out Dictionary <string, Achievement> Achievements)
        {
            Achievements = new Dictionary <string, Achievement>();

            using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
            {
                DbClient.SetQuery("SELECT `id`,`category`,`group_name`,`level`,`reward_pixels`,`reward_points`,`progress_needed`,`game_id` FROM `" + ProjectHub.DbPrefix + "achievements`");
                DataTable DataTable = DbClient.getTable();

                if (DataTable != null)
                {
                    foreach (DataRow DataRow in DataTable.Rows)
                    {
                        int              Id               = Convert.ToInt32(DataRow["id"]);
                        string           Category         = Convert.ToString(DataRow["category"]);
                        string           GroupName        = Convert.ToString(DataRow["group_name"]);
                        int              Level            = Convert.ToInt32(DataRow["level"]);
                        int              RewardPixels     = Convert.ToInt32(DataRow["reward_pixels"]);
                        int              RewardPoints     = Convert.ToInt32(DataRow["reward_points"]);
                        int              ProgressNeeded   = Convert.ToInt32(DataRow["progress_needed"]);
                        AchievementLevel AchievementLevel = new AchievementLevel(Level, RewardPixels, RewardPoints, ProgressNeeded);

                        if (!Achievements.ContainsKey(GroupName))
                        {
                            Achievement Achievement = new Achievement(Id, GroupName, Category, Convert.ToInt32(DataRow["game_id"]));
                            Achievement.AddLevel(AchievementLevel);
                            Achievements.Add(GroupName, Achievement);
                        }
                        else
                        {
                            Achievements[GroupName].AddLevel(AchievementLevel);
                        }
                    }
                }
            }
        }
示例#26
0
 public string PopString()
 {
     return(ProjectHub.GetDefaultEncoding().GetString(ReadFixedValue()));
 }
示例#27
0
 public override string ToString()
 {
     return("[" + Header + "] BODY: " + (ProjectHub.GetDefaultEncoding().GetString(Body).Replace(Convert.ToChar(0).ToString(), "[0]")));
 }
示例#28
0
        public bool ProgressAchievement(GameClient Session, string AchievementGroup, int ProgressAmount, bool FromZero = false)
        {
            if (!Achievements.ContainsKey(AchievementGroup) || Session == null)
            {
                return(false);
            }

            Achievement AchievementData = null;

            AchievementData = Achievements[AchievementGroup];
            UserAchievement UserData = Session.GetHabbo().GetAchievementData(AchievementGroup);

            if (UserData == null)
            {
                UserData = new UserAchievement(AchievementGroup, 0, 0);
                Session.GetHabbo().Achievements.TryAdd(AchievementGroup, UserData);
            }

            int TotalLevels = AchievementData.Levels.Count;

            if (UserData != null && UserData.Level == TotalLevels)
            {
                return(false);
            }

            int TargetLevel = (UserData != null ? UserData.Level + 1 : 1);

            if (TargetLevel > TotalLevels)
            {
                TargetLevel = TotalLevels;
            }

            AchievementLevel TargetLevelData = AchievementData.Levels[TargetLevel];
            int NewProgress = 0;

            if (FromZero)
            {
                NewProgress = ProgressAmount;
            }
            else
            {
                NewProgress = (UserData != null ? UserData.Progress + ProgressAmount : ProgressAmount);
            }

            int NewLevel  = (UserData != null ? UserData.Level : 0);
            int NewTarget = NewLevel + 1;

            if (NewTarget > TotalLevels)
            {
                NewTarget = TotalLevels;
            }

            if (NewProgress >= TargetLevelData.Requirement)
            {
                NewLevel++;
                NewTarget++;
                int ProgressRemainder = NewProgress - TargetLevelData.Requirement;
                NewProgress = 0;

                if (TargetLevel == 1)
                {
                    Session.GetHabbo().GetBadgeComponent().GiveBadge(AchievementGroup + TargetLevel, true, Session);
                }
                else
                {
                    Session.GetHabbo().GetBadgeComponent().RemoveBadge(Convert.ToString(AchievementGroup + (TargetLevel - 1)));
                    Session.GetHabbo().GetBadgeComponent().GiveBadge(AchievementGroup + TargetLevel, true, Session);
                }

                if (NewTarget > TotalLevels)
                {
                    NewTarget = TotalLevels;
                }

                Session.SendMessage(new AchievementUnlockedComposer(AchievementData, TargetLevel, TargetLevelData.RewardPoints, TargetLevelData.RewardPixels));
                Session.GetHabbo().GetMessenger().BroadcastAchievement(Session.GetHabbo().Id, Users.Messenger.MessengerEventTypes.ACHIEVEMENT_UNLOCKED, AchievementGroup + TargetLevel);

                using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
                {
                    DbClient.SetQuery("REPLACE INTO `" + ProjectHub.DbPrefix + "user_achievements` VALUES ('" + Session.GetHabbo().Id + "', @group, '" + NewLevel + "', '" + NewProgress + "')");
                    DbClient.AddParameter("group", AchievementGroup);
                    DbClient.RunQuery();
                }

                UserData.Level    = NewLevel;
                UserData.Progress = NewProgress;
                Session.GetHabbo().Duckets += TargetLevelData.RewardPixels;
                Session.GetHabbo().GetStats().AchievementPoints += TargetLevelData.RewardPoints;
                Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, TargetLevelData.RewardPixels));
                Session.SendMessage(new AchievementScoreComposer(Session.GetHabbo().GetStats().AchievementPoints));
                AchievementLevel NewLevelData = AchievementData.Levels[NewTarget];
                Session.SendMessage(new AchievementProgressedComposer(AchievementData, NewTarget, NewLevelData, TotalLevels, Session.GetHabbo().GetAchievementData(AchievementGroup)));

                return(true);
            }
            else
            {
                UserData.Level    = NewLevel;
                UserData.Progress = NewProgress;

                using (IQueryAdapter DbClient = ProjectHub.GetDatabaseManager().GetQueryReactor())
                {
                    DbClient.SetQuery("REPLACE INTO `" + ProjectHub.DbPrefix + "user_achievements` VALUES ('" + Session.GetHabbo().Id + "', @group, '" + NewLevel + "', '" + NewProgress + "')");
                    DbClient.AddParameter("group", AchievementGroup);
                    DbClient.RunQuery();
                }

                Session.SendMessage(new AchievementProgressedComposer(AchievementData, TargetLevel, TargetLevelData, TotalLevels, Session.GetHabbo().GetAchievementData(AchievementGroup)));
            }

            return(false);
        }
示例#29
0
        public static void InvokeCommand(string Data)
        {
            try
            {
                string[] Params = Data.Split(' ');

                switch (Params[0].ToLower())
                {
                case "close":
                case "stop":
                case "shutdown":
                {
                    new Logger("console", Params[0], "NULL");
                    ProjectHub.Shutdown();
                    break;
                }

                case "commands":
                {
                    Logging.WriteLine("Current console command list:", ConsoleColor.DarkMagenta);
                    Logging.WriteLine("- commands - Lists all console commands!", ConsoleColor.DarkMagenta);
                    Logging.WriteLine("- close, stop, shutdown - Shuts down server securely!", ConsoleColor.DarkMagenta);
                    Logging.WriteLine("- update_settings, reload_settings - Reloads server settings from database!", ConsoleColor.DarkMagenta);
                    Logging.WriteLine("- update_texts, reload_texts - Reloads server texts from database!", ConsoleColor.DarkMagenta);
                    Logging.WriteLine("- update_wordfilter, reload_wordfilter - Reloads wordfilter from database!", ConsoleColor.DarkMagenta);
                    Logging.WriteLine("- uptime - Shows current uptime of server!", ConsoleColor.DarkMagenta);
                    new Logger("console", Params[0], "NULL");
                    break;
                }

                case "update_settings":
                case "reload_settings":
                {
                    Logging.Write("Updating server settings", ConsoleColor.DarkMagenta);
                    ProjectHub.SettingsData = new SettingsData();
                    new Logger("console", Params[0], "NULL");
                    Logging.WriteSimpleLine(" - Completed!", ConsoleColor.DarkMagenta);
                    break;
                }

                case "update_texts":
                case "reload_texts":
                {
                    Logging.Write("Updating server texts", ConsoleColor.DarkMagenta);
                    ProjectHub.TextsData = new TextsData();
                    new Logger("console", Params[0], "NULL");
                    Logging.WriteSimpleLine(" - Completed!", ConsoleColor.DarkMagenta);
                    break;
                }

                case "update_wordfilter":
                case "reload_wordfilter":
                {
                    Logging.Write("Updating wordfilter", ConsoleColor.DarkMagenta);
                    ProjectHub.GetGame().GetWordFilterManager();
                    new Logger("console", Params[0], "NULL");
                    Logging.WriteSimpleLine(" - Completed!", ConsoleColor.DarkMagenta);
                    break;
                }

                case "uptime":
                {
                    TimeSpan Uptime = DateTime.Now - ProjectHub.ServerStarted;
                    Logging.WriteLine("Uptime: Days: " + Uptime.Days + ", Hours: " + Uptime.Days + ", Minutes: " + Uptime.Minutes + ", Seconds: " + Uptime.Seconds);
                    new Logger("console", Params[0], "NULL");
                    break;
                }

                default:
                {
                    if (string.IsNullOrEmpty(Data))
                    {
                        Logging.WriteLine("Empty command data! Type commands for list of commands!");
                    }
                    else
                    {
                        Logging.WriteLine(Params[0].ToLower() + " is an unknown or unsupported command! Type commands for list of commands!");
                    }

                    break;
                }
                }
            }
            catch
            {
            }
        }
示例#30
0
 public double FormatTimestamp()
 {
     return(ProjectHub.GetUnixTimestamp() - 172800.0);
 }