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); } } } } }
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()))); } } } }
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"]))); } } }
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); }
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; } }
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); }
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(); } }
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(); } }
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(); } }
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())); } } }
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); }
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); }
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; }
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); }
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"]))); } } } }
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"]))); }
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); } } } } }
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); }