public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().GetPermissions().HasRight("mod_caution")) { return; } int UserId = Packet.PopInt(); String Message = Packet.PopString(); GameClient Client = RavenEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId); if (Client == null || Client.GetHabbo() == null) { return; } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `cautions` = `cautions` + '1' WHERE `user_id` = '" + Client.GetHabbo().Id + "' LIMIT 1"); } Client.SendNotification(Message); }
internal void Init() { using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { CraftingRecipes.Clear(); dbClient.SetQuery("SELECT * FROM crafting_recipes"); var recipes = dbClient.getTable(); foreach (DataRow recipe in recipes.Rows) { CraftingRecipe value = new CraftingRecipe((string)recipe["id"], (string)recipe["items"], (string)recipe["result"], (int)recipe["type"]); CraftingRecipes.Add((string)recipe["id"], value); } CraftableItems.Clear(); dbClient.SetQuery("SELECT * FROM crafting_items"); var items = dbClient.getTable(); foreach (DataRow item in items.Rows) { CraftableItems.Add((string)item["itemName"]); } } log.Info(">> Crafting Manager -> READY!"); }
public void LoadPromotions() { if (this._promotionItems.Count > 0) { this._promotionItems.Clear(); } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM `server_landing` ORDER BY `id` DESC"); DataTable GetData = dbClient.getTable(); if (GetData != null) { foreach (DataRow Row in GetData.Rows) { this._promotionItems.Add(Convert.ToInt32(Row[0]), new Promotion((int)Row[0], Row[1].ToString(), Row[2].ToString(), Row[3].ToString(), Convert.ToInt32(Row[4]), Row[5].ToString(), Row[6].ToString())); } } } log.Info(">> LandingView Manager -> READY! "); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int GroupId = Packet.PopInt(); string word; string Name = Packet.PopString(); Name = RavenEnvironment.GetGame().GetChatManager().GetFilter().IsUnnaceptableWord(Name, out word) ? "Spam" : Name; string Desc = Packet.PopString(); Desc = RavenEnvironment.GetGame().GetChatManager().GetFilter().IsUnnaceptableWord(Desc, out word) ? "Spam" : Desc; Group Group = null; if (!RavenEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group)) { return; } if (Group.CreatorId != Session.GetHabbo().Id) { return; } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `groups` SET `name`= @name, `desc` = @desc WHERE `id` = '" + GroupId + "' LIMIT 1"); dbClient.AddParameter("name", Name); dbClient.AddParameter("desc", Desc); dbClient.RunQuery(); } Group.Name = Name; Group.Description = Desc; Session.SendMessage(new GroupInfoComposer(Group, Session)); }
public List <Group> GetGroupsForUser(int UserId) { List <Group> Groups = new List <Group>(); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT g.id FROM `group_memberships` AS m RIGHT JOIN `groups` AS g ON m.group_id = g.id WHERE m.user_id = @user"); dbClient.AddParameter("user", UserId); DataTable GetGroups = dbClient.getTable(); if (GetGroups != null) { foreach (DataRow Row in GetGroups.Rows) { Group Group = null; if (this.TryGetGroup(Convert.ToInt32(Row["id"]), out Group)) { Groups.Add(Group); } } } } return(Groups); }
public void Init() { if (this._quests.Count > 0) { _quests.Clear(); } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `id`,`type`,`level_num`,`goal_type`,`goal_data`,`action`,`pixel_reward`,`data_bit`,`reward_type`,`timestamp_unlock`,`timestamp_lock` FROM `quests`"); DataTable dTable = dbClient.getTable(); if (dTable != null) { foreach (DataRow dRow in dTable.Rows) { int id = Convert.ToInt32(dRow["id"]); string category = Convert.ToString(dRow["type"]); int num = Convert.ToInt32(dRow["level_num"]); int type = Convert.ToInt32(dRow["goal_type"]); int goalData = Convert.ToInt32(dRow["goal_data"]); string name = Convert.ToString(dRow["action"]); int reward = Convert.ToInt32(dRow["pixel_reward"]); string dataBit = Convert.ToString(dRow["data_bit"]); int rewardtype = Convert.ToInt32(dRow["reward_type"].ToString()); int time = Convert.ToInt32(dRow["timestamp_unlock"]); int locked = Convert.ToInt32(dRow["timestamp_lock"]); _quests.Add(id, new Quest(id, category, num, (QuestType)type, goalData, name, reward, dataBit, rewardtype, time, locked)); AddToCounter(category); } } } log.Info(">> Quest Manager -> READY!"); }
public Game2LastWeekLeaderboardMessageComposer(int GameId, int Week) : base(ServerPacketHeader.Game2LastWeekLeaderboardMessageComposer) { base.WriteInteger(2018); base.WriteInteger(1); base.WriteInteger(0); base.WriteInteger(1); base.WriteInteger(1581); int count = 0; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT COUNT(0) FROM `games_leaderboard` WHERE game_id = " + GameId + " AND week = " + Week + " LIMIT 5"); count = dbClient.getInteger(); } base.WriteInteger(count);//Count int id = 1; using (IQueryAdapter dbClient2 = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { DataTable GetLeaderData = null; dbClient2.SetQuery("SELECT * FROM `games_leaderboard` WHERE game_id = " + GameId + " AND week = " + Week + " LIMIT 5"); GetLeaderData = dbClient2.getTable(); if (GetLeaderData != null) { foreach (DataRow Rows in GetLeaderData.Rows) { Habbo habbo = RavenEnvironment.GetHabboById(Convert.ToInt32(Rows["user_id"])); base.WriteInteger(habbo.Id); //Id base.WriteInteger(Convert.ToInt32(Rows["points"])); //Score base.WriteInteger(id++); //Rank base.WriteString(habbo.Username); //Username base.WriteString(habbo.Look); //Figure base.WriteString(habbo.Gender.ToLower()); //Gender .ToLower() } } } base.WriteInteger(0); // base.WriteInteger(GameId); //Game Id? //int count = 0; //if (Game.LeaderBoard.Count() > 5) { count = 5; } else { count = Game.LeaderBoard.Count(); } //base.WriteInteger(2018); //base.WriteInteger(1); //base.WriteInteger(0); //base.WriteInteger(1); //base.WriteInteger(1581); //base.WriteInteger(count);//Count //Console.WriteLine(Game.GameName + ":" + Game.LeaderBoard.Count()); //int id = 0; //foreach (var Data in Game.LeaderBoard) //{ // if(Data.Value.Week != Week) { return; } // id++; // Habbo habbo = RavenEnvironment.GetHabboById(Data.Value.UserId); // base.WriteInteger(habbo.Id);//Id // base.WriteInteger(id);//Rank // base.WriteInteger(Data.Value.Points);//Score // base.WriteString(habbo.Username);//Username // base.WriteString(habbo.Look);//Figure // base.WriteString(habbo.Gender.ToLower());//Gender .ToLower() // if(id == 5) { break; } //} //Used to generate the ranking numbers. //int num = 0; //base.WriteInteger(Habbos.Count);//Count //foreach (Habbo Habbo in Habbos.ToList()) //{ // num++; // base.WriteInteger(Habbo.Id);//Id // base.WriteInteger(Habbo.FastfoodScore);//Score // base.WriteInteger(num);//Rank // base.WriteString(Habbo.Username);//Username // base.WriteString(Habbo.Look);//Figure // base.WriteString(Habbo.Gender.ToLower());//Gender .ToLower() //} //base.WriteInteger(0);// //base.WriteInteger(GameData.GameId);//Game Id? /*base.WriteInteger(5);//Count * * base.WriteInteger(1);//Id * base.WriteInteger(10);//Rank * base.WriteInteger(1);//Score * base.WriteString("Custom - Derecha");//Username * base.WriteString("ch-235-1408.hd-3095-14.lg-3116-85-1408.sh-3115-1408-1408.ca-1805-64.ha-1002-1408");//Figure * base.WriteString("m");//Gender .ToLower() * * base.WriteInteger(2);//Id * base.WriteInteger(19999);//Score * base.WriteInteger(2);//Rank * base.WriteString("Salinas");//Username * base.WriteString("ch-255-96.sh-3115-1408-1408.lg-3116-85-1408.ea-1404-1194.fa-1203-1189.hr-831-1041.hd-3103-1389");//Figure * base.WriteString("m");//Gender .ToLower() * * base.WriteInteger(3);//Id * base.WriteInteger(1232);//Score * base.WriteInteger(3);//Rank * base.WriteString("HiddenKey");//Username * base.WriteString("ch-235-1408.fa-1208-1189.lg-3116-85-1408.cc-886-62.ea-1404-1194.ha-3086-96-1194.sh-3115-1408-1408.hr-100-1041.hd-3103-1389");//Figure * base.WriteString("m");//Gender .ToLower() * * base.WriteInteger(4);//Id * base.WriteInteger(1000);//Score * base.WriteInteger(4);//Rank * base.WriteString("Custom");//Username * base.WriteString("fa-1201-62.sh-6102459-96-62.hr-831-1031.ch-804-1201.lg-281-110.ha-1012-78.hd-180-11");//Figure * base.WriteString("m");//Gender .ToLower() * * base.WriteInteger(5);//Id * base.WriteInteger(1000);//Score * base.WriteInteger(5);//Rank * base.WriteString("Custom");//Username * base.WriteString("hd-180-11.hr-828-55.ch-804-96.sh-3089-1186.lg-281-110");//Figure * base.WriteString("m");//Gender .ToLower()*/ //base.WriteInteger(0);// //base.WriteInteger(Game.GameId);//Game Id? }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) { return; } Room Room; if (!RavenEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room)) { return; } int ItemId = Packet.PopInt(); Item Item = Room.GetRoomItemHandler().GetItem(ItemId); if (Item == null) { return; } int PetId = Packet.PopInt(); RoomUser PetUser = null; if (!Room.GetRoomUserManager().TryGetPet(PetId, out PetUser)) { return; } if (PetUser.PetData == null || PetUser.PetData.OwnerId != Session.GetHabbo().Id) { return; } if (Item.Data.InteractionType == InteractionType.HORSE_SADDLE_1) { PetUser.PetData.Saddle = 9; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `bots_petdata` SET `have_saddle` = '9' WHERE `id` = '" + PetUser.PetData.PetId + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Item.Id + "' LIMIT 1"); } //We only want to use this if we're successful. Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id, false); } else if (Item.Data.InteractionType == InteractionType.HORSE_SADDLE_2) { PetUser.PetData.Saddle = 10; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `bots_petdata` SET `have_saddle` = '10' WHERE `id` = '" + PetUser.PetData.PetId + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Item.Id + "' LIMIT 1"); } //We only want to use this if we're successful. Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id, false); } else if (Item.Data.InteractionType == InteractionType.HORSE_HAIRSTYLE) { int Parse = 100; string HairType = Item.GetBaseItem().ItemName.Split('_')[2]; Parse = Parse + int.Parse(HairType); PetUser.PetData.PetHair = Parse; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `bots_petdata` SET `pethair` = '" + PetUser.PetData.PetHair + "' WHERE `id` = '" + PetUser.PetData.PetId + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Item.Id + "' LIMIT 1"); } //We only want to use this if we're successful. Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id, false); } else if (Item.Data.InteractionType == InteractionType.HORSE_HAIR_DYE) { int HairDye = 48; string HairType = Item.GetBaseItem().ItemName.Split('_')[2]; HairDye = HairDye + int.Parse(HairType); PetUser.PetData.HairDye = HairDye; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `bots_petdata` SET `hairdye` = '" + PetUser.PetData.HairDye + "' WHERE `id` = '" + PetUser.PetData.PetId + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Item.Id + "' LIMIT 1"); } //We only want to use this if we're successful. Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id, false); } else if (Item.Data.InteractionType == InteractionType.HORSE_BODY_DYE) { string Race = Item.GetBaseItem().ItemName.Split('_')[2]; int Parse = int.Parse(Race); int RaceLast = 2 + (Parse * 4) - 4; if (Parse == 13) { RaceLast = 61; } else if (Parse == 14) { RaceLast = 65; } else if (Parse == 15) { RaceLast = 69; } else if (Parse == 16) { RaceLast = 73; } PetUser.PetData.Race = RaceLast.ToString(); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `bots_petdata` SET `race` = '" + PetUser.PetData.Race + "' WHERE `id` = '" + PetUser.PetData.PetId + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Item.Id + "' LIMIT 1"); } //We only want to use this if we're successful. Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id, false); } //Update the Pet and the Pet figure information. Room.SendMessage(new UsersComposer(PetUser)); Room.SendMessage(new PetHorseFigureInformationComposer(PetUser)); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int craftingTable = Packet.PopInt(); string RecetaFinal = Packet.PopString(); CraftingRecipe recipe = RavenEnvironment.GetGame().GetCraftingManager().GetRecipeByPrize(RecetaFinal); if (recipe == null) { return; } ItemData resultItem = RavenEnvironment.GetGame().GetItemManager().GetItemByName(recipe.Result); if (resultItem == null) { return; } bool success = true; foreach (var need in recipe.ItemsNeeded) { for (var i = 1; i <= need.Value; i++) { ItemData item = RavenEnvironment.GetGame().GetItemManager().GetItemByName(need.Key); if (item == null) { success = false; continue; } var inv = Session.GetHabbo().GetInventoryComponent().GetFirstItemByBaseId(item.Id); if (inv == null) { success = false; continue; } using (var dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + inv.Id + "' AND `user_id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); Session.GetHabbo().GetInventoryComponent().RemoveItem(inv.Id); } } Session.GetHabbo().GetInventoryComponent().UpdateItems(true); if (success) { Session.GetHabbo().GetInventoryComponent().AddNewItem(0, resultItem.Id, "", 0, true, false, 0, 0); Session.GetHabbo().GetInventoryComponent().UpdateItems(true); Session.SendMessage(new FurniListUpdateComposer()); switch (recipe.Type) { case 1: RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_CrystalCracker", 1); break; case 2: RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_PetLover", 1); break; case 3: RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_PetLover", 1); break; } } Session.SendMessage(new CraftingResultComposer(recipe, success)); Room room = Session.GetHabbo().CurrentRoom; Item table = room.GetRoomItemHandler().GetItem(craftingTable); Session.SendMessage(new CraftableProductsComposer(table)); return; }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().UsersRooms == null) { return; } int RoomId = Packet.PopInt(); if (RoomId == 0) { return; } if (Session.GetHabbo().Rank > 3 && !Session.GetHabbo().StaffOk) { return; } Room Room; if (!RavenEnvironment.GetGame().GetRoomManager().TryGetRoom(RoomId, out Room)) { return; } RoomData data = Room.RoomData; if (data == null) { return; } if (Room.OwnerId != Session.GetHabbo().Id&& !Session.GetHabbo().GetPermissions().HasRight("room_delete_any") || RavenStaticGameSettings.IsGoingToBeClose) { return; } List <Item> ItemsToRemove = new List <Item>(); foreach (Item Item in Room.GetRoomItemHandler().GetWallAndFloor.ToList()) { if (Item == null) { continue; } if (Item.GetBaseItem().InteractionType == InteractionType.MOODLIGHT) { using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `room_items_moodlight` WHERE `item_id` = '" + Item.Id + "' LIMIT 1"); } } ItemsToRemove.Add(Item); } foreach (Item Item in ItemsToRemove) { GameClient targetClient = RavenEnvironment.GetGame().GetClientManager().GetClientByUserID(Item.UserID); if (targetClient != null && targetClient.GetHabbo() != null)//Again, do we have an active client? { Room.GetRoomItemHandler().RemoveFurniture(targetClient, Item.Id); targetClient.GetHabbo().GetInventoryComponent().AddNewItem(Item.Id, Item.BaseItem, Item.ExtraData, Item.GroupId, true, true, Item.LimitedNo, Item.LimitedTot); targetClient.GetHabbo().GetInventoryComponent().UpdateItems(false); } else//No, query time. { Room.GetRoomItemHandler().RemoveFurniture(null, Item.Id); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `items` SET `room_id` = '0' WHERE `id` = '" + Item.Id + "' LIMIT 1"); } } } RavenEnvironment.GetGame().GetRoomManager().UnloadRoom(Room, true); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `user_roomvisits` WHERE `room_id` = '" + RoomId + "'"); dbClient.RunQuery("DELETE FROM `rooms` WHERE `id` = '" + RoomId + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `user_favorites` WHERE `room_id` = '" + RoomId + "'"); dbClient.RunQuery("DELETE FROM `items` WHERE `room_id` = '" + RoomId + "'"); dbClient.RunQuery("DELETE FROM `room_rights` WHERE `room_id` = '" + RoomId + "'"); dbClient.RunQuery("UPDATE `users` SET `home_room` = '0' WHERE `home_room` = '" + RoomId + "'"); } RoomData removedRoom = (from p in Session.GetHabbo().UsersRooms where p.Id == RoomId select p).SingleOrDefault(); if (removedRoom != null) { Session.GetHabbo().UsersRooms.Remove(removedRoom); } }
public void Parse(GameClient Session, ClientPacket Packet) { int pollId = Packet.PopInt(); int questionId = Packet.PopInt(); int count = Packet.PopInt(); RoomPoll poll = null; if (Session == null || Session.GetHabbo() == null) { return; } Room room = Session.GetHabbo().CurrentRoom; if (room == null) { return; } if (questionId == -1) { String answer = Packet.PopString(); if (room.poolQuestion != string.Empty) { if (room.yesPoolAnswers.Contains(Session.GetHabbo().Id) || room.noPoolAnswers.Contains(Session.GetHabbo().Id)) { return; } if (answer.Equals("1")) { room.yesPoolAnswers.Add(Session.GetHabbo().Id); RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_PollVote", 1); } else { room.noPoolAnswers.Add(Session.GetHabbo().Id); RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_PollVote", 1); } room.SendMessage(new QuickPollResultMessageComposer(Session.GetHabbo().Id, answer, room.yesPoolAnswers.Count, room.noPoolAnswers.Count)); return; } } else if (RavenEnvironment.GetGame().GetPollManager().TryGetPollForRoom(room.Id, out poll)) { RoomPollQuestion question = null; if (!poll.Questions.TryGetValue(questionId, out question)) { return; } string answer = ""; switch (question.Type) { case RoomPollQuestionType.Textbox: answer = "" + Packet.PopString(); break; case RoomPollQuestionType.Radio: answer = "" + Packet.PopString(); break; case RoomPollQuestionType.Checkbox: for (int i = 0; i < count; ++i) { answer = "" + answer + ":" + Packet.PopString(); } break; } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `user_room_poll_results` (`user_id`,`poll_id`,`question_id`,`answer`,`timestamp`) VALUES (@uid,@pid,@qid,@answer,@timestamp);"); dbClient.AddParameter("uid", Session.GetHabbo().Id); dbClient.AddParameter("pid", poll.Id); dbClient.AddParameter("qid", question.Id); dbClient.AddParameter("answer", answer); dbClient.AddParameter("timestamp", UnixTimestamp.GetNow()); dbClient.RunQuery(); } if (question.SeriesOrder >= poll.LastQuestionId) { Session.GetHabbo().GetPolls().TryAdd(poll.Id); if (!string.IsNullOrEmpty(poll.BadgeReward)) { if (!Session.GetHabbo().GetBadgeComponent().HasBadge(poll.BadgeReward)) { Session.GetHabbo().GetBadgeComponent().GiveBadge(poll.BadgeReward, true, Session); } } if (poll.CreditReward > 0) { Session.GetHabbo().Credits += poll.CreditReward; Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); } if (poll.PixelReward > 0) { Session.GetHabbo().Duckets += poll.PixelReward; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, poll.PixelReward)); } } } else { return; } }
public void Execute(GameClient Session, Room Room, string[] Params) { if (Params.Length == 1) { Session.SendMessage(new MassEventComposer("habbopages/chat/giverankinfo.txt")); return; } GameClient Target = RavenEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (Target == null) { Session.SendWhisper("Oops, no se ha conseguido este usuario."); return; } string RankType = Params[2]; switch (RankType.ToLower()) { case "guia": case "guide": { if (Session.GetHabbo().Rank < 6) { Session.SendWhisper("Oops, usted no tiene los permisos necesarios para usar este comando!"); break; } else { int Rank; if (int.TryParse(Params[3], out Rank)) { byte RankByte = Convert.ToByte(Rank); if (Rank > 4 || Rank < 0) { Session.SendWhisper("No puedes superar la cifra de 4 o colocar una cifra inferior a 0.", 1); return; } Target.GetHabbo()._guidelevel = RankByte; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `users` SET `guia` = '" + RankByte + "' WHERE `id` = '" + Target.GetHabbo().Id + "' LIMIT 1"); } switch (RankByte) { case 0: Target.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", Session.GetHabbo().Username + " acaba de retirarte del departamento de soporte. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango retirado satisfactoriamente a " + Target.GetHabbo().Username + "."); Target.Disconnect(); break; case 1: Target.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", Session.GetHabbo().Username + " acaba de darte el rango de guía conejo. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango entregado satisfactoriamente a " + Target.GetHabbo().Username + "."); break; case 2: Target.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", Session.GetHabbo().Username + " acaba de darte el rango de guía búho. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango entregado satisfactoriamente a " + Target.GetHabbo().Username + "."); break; case 3: Target.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", Session.GetHabbo().Username + " acaba de darte el rango de encargado de guías. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango entregado satisfactoriamente a " + Target.GetHabbo().Username + "."); break; case 4: Target.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", Session.GetHabbo().Username + " acaba de darte el rango de encargado de guías oculto. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango entregado satisfactoriamente a " + Target.GetHabbo().Username + "."); break; } break; } else { Session.SendWhisper("Oops, " + RankType + " no es un valor válido para otorgar."); break; } } } case "publi": case "publicista": { if (Session.GetHabbo().Rank < 6) { Session.SendWhisper("Oops, usted no tiene los permisos necesarios para usar este comando!"); break; } else { int Rank; if (int.TryParse(Params[3], out Rank)) { byte RankByte = Convert.ToByte(Rank); if (Rank > 4 || Rank < 0) { Session.SendWhisper("No puedes superar la cifra de 4 o colocar una cifra inferior a 0.", 1); return; } Target.GetHabbo()._publicistalevel = RankByte; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `users` SET `publi` = '" + RankByte + "' WHERE `id` = '" + Target.GetHabbo().Id + "' LIMIT 1"); } switch (RankByte) { case 0: Target.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", Session.GetHabbo().Username + " acaba de retirarte del departamento de publicistas. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango retirado satisfactoriamente a " + Target.GetHabbo().Username + "."); Target.Disconnect(); break; case 1: Target.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", Session.GetHabbo().Username + " acaba de darte el rango de publicista a prueba. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango entregado satisfactoriamente a " + Target.GetHabbo().Username + "."); break; case 2: Target.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", Session.GetHabbo().Username + " acaba de darte el rango de publicista. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango entregado satisfactoriamente a " + Target.GetHabbo().Username + "."); break; case 3: Target.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", Session.GetHabbo().Username + " acaba de darte el rango de encargado de publicidad. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango entregado satisfactoriamente a " + Target.GetHabbo().Username + "."); break; case 4: Target.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", Session.GetHabbo().Username + " acaba de darte el rango de encargado de publicidad oculto. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango entregado satisfactoriamente a " + Target.GetHabbo().Username + "."); break; } break; } else { Session.SendWhisper("Oops, " + Rank + " no es un valor válido para otorgar."); break; } } } case "inter": case "croupier": { if (Session.GetHabbo().Rank < 6) { Session.SendWhisper("Oops, usted no tiene los permisos necesarios para usar este comando!"); break; } else { int Rank; if (int.TryParse(Params[3], out Rank)) { byte RankByte = Convert.ToByte(Rank); if (Rank > 1 || Rank < 0) { Session.SendWhisper("No puedes superar la cifra de 1 o colocar una cifra inferior a 0.", 1); return; } Target.GetHabbo()._croupier = RankByte; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `users` SET `croupier` = '" + RankByte + "' WHERE `id` = '" + Target.GetHabbo().Id + "' LIMIT 1"); } switch (RankByte) { case 0: Target.SendMessage(RoomNotificationComposer.SendBubble("inters", Session.GetHabbo().Username + " acaba de retirarte del departamento de intermediarios. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango retirado satisfactoriamente a " + Target.GetHabbo().Username + "."); Target.Disconnect(); break; case 1: Target.SendMessage(RoomNotificationComposer.SendBubble("inters", Session.GetHabbo().Username + " acaba de darte el cargo de intermediario. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango entregado satisfactoriamente a " + Target.GetHabbo().Username + "."); if (!Target.GetHabbo().GetBadgeComponent().HasBadge("INT3")) { Target.GetHabbo().GetBadgeComponent().GiveBadge("INT3", true, Target); } break; } break; } else { Session.SendWhisper("Oops, " + Rank + " no es un valor válido para otorgar."); break; } } } case "builder": { if (Session.GetHabbo().Rank < 6) { Session.SendWhisper("Oops, usted no tiene los permisos necesarios para usar este comando!"); break; } else { int Rank; if (int.TryParse(Params[3], out Rank)) { byte RankByte = Convert.ToByte(Rank); if (Rank > 1 || Rank < 0) { Session.SendWhisper("No puedes superar la cifra de 1 o colocar una cifra inferior a 0.", 1); return; } Target.GetHabbo()._builder = RankByte; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `users` SET `builder` = '" + RankByte + "' WHERE `id` = '" + Target.GetHabbo().Id + "' LIMIT 1"); } switch (RankByte) { case 0: Target.SendMessage(RoomNotificationComposer.SendBubble("builder", Session.GetHabbo().Username + " acaba de retirarte del departamento de BAW. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango retirado satisfactoriamente a " + Target.GetHabbo().Username + "."); Target.Disconnect(); break; case 1: Target.SendMessage(RoomNotificationComposer.SendBubble("builder", Session.GetHabbo().Username + " acaba de darte el cargo de BAW. Reinicia para aplicar los cambios respectivos.\n\nRecuerda que hemos depositado nuestra confianza en tí y que todo esfuerzo tiene su recompensa.", "")); Session.SendWhisper("Rango entregado satisfactoriamente a " + Target.GetHabbo().Username + "."); Target.GetHabbo().Effects().ApplyEffect(599); //Target.GetHabbo().GetBadgeComponent().GiveBadge("BU1LD", true, Target); break; } break; } else { Session.SendWhisper("Oops, " + Rank + " no es un valor válido para otorgar."); break; } } } default: Session.SendWhisper(RankType + "' no es un rango disponible para otorgar."); break; } }
/// <summary> /// Called for each time the timer ticks. /// </summary> /// <param name="State"></param> public void Run(object State) { try { if (this._disabled) { return; } if (this._timerRunning) { this._timerLagging = true; log.Warn("<Player " + this._player.Id + "> Server can't keep up, Player timer is lagging behind."); return; } this._resetEvent.Reset(); #region Muted Checks if (this._player.TimeMuted > 0) { this._player.TimeMuted -= 60; } #endregion #region Console Checks if (this._player.MessengerSpamTime > 0) { this._player.MessengerSpamTime -= 60; } if (this._player.MessengerSpamTime <= 0) { this._player.MessengerSpamCount = 0; } #endregion this._player.TimeAFK += 1; #region Respect checking if (this._player.GetStats().RespectsTimestamp != DateTime.Today.ToString("MM/dd")) { this._player.GetStats().RespectsTimestamp = DateTime.Today.ToString("MM/dd"); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_stats` SET `dailyRespectPoints` = '" + (this._player.Rank == 1 && this._player.VIPRank == 0 ? 10 : this._player.VIPRank == 1 ? 15 : 20) + "', `dailyPetRespectPoints` = '" + (this._player.Rank == 1 && this._player.VIPRank == 0 ? 10 : this._player.VIPRank == 1 ? 15 : 20) + "', `respectsTimestamp` = '" + DateTime.Today.ToString("MM/dd") + "' WHERE `id` = '" + this._player.Id + "' LIMIT 1"); } this._player.GetStats().DailyRespectPoints = (this._player.Rank == 1 && this._player.VIPRank == 0 ? 10 : this._player.VIPRank == 1 ? 15 : 20); this._player.GetStats().DailyPetRespectPoints = (this._player.Rank == 1 && this._player.VIPRank == 0 ? 10 : this._player.VIPRank == 1 ? 15 : 20); if (this._player.GetClient() != null) { this._player.GetClient().SendMessage(new UserObjectComposer(this._player)); } } #endregion #region Reset Scripting Warnings if (this._player.GiftPurchasingWarnings < 15) { this._player.GiftPurchasingWarnings = 0; } if (this._player.MottoUpdateWarnings < 15) { this._player.MottoUpdateWarnings = 0; } if (this._player.ClothingUpdateWarnings < 15) { this._player.ClothingUpdateWarnings = 0; } #endregion if (this._player.GetClient() != null) { RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(this._player.GetClient(), "ACH_AllTimeHotelPresence", 1); } this._player.CheckCreditsTimer(); this._player.Effects().CheckEffectExpiry(this._player); this._timerRunning = false; this._timerLagging = false; this._resetEvent.Set(); } catch { } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (!Room.CheckRights(Session, true)) { Session.SendWhisper("Oops, only the room owner can run this command!"); return; } if (Room.GetRoomUserManager().GetPets().Count > 0) { foreach (RoomUser Pet in Room.GetRoomUserManager().GetUserList().ToList()) { if (Pet == null) { continue; } if (Pet.RidingHorse) { RoomUser UserRiding = Room.GetRoomUserManager().GetRoomUserByVirtualId(Pet.HorseID); if (UserRiding != null) { UserRiding.RidingHorse = false; UserRiding.ApplyEffect(-1); UserRiding.MoveTo(new Point(UserRiding.X + 1, UserRiding.Y + 1)); } else { Pet.RidingHorse = false; } } Pet.PetData.RoomId = 0; Pet.PetData.PlacedInRoom = false; Pet pet = Pet.PetData; if (pet != null) { using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `bots` SET `room_id` = '0', `x` = '0', `Y` = '0', `Z` = '0' WHERE `id` = '" + pet.PetId + "' LIMIT 1"); dbClient.RunQuery("UPDATE `bots_petdata` SET `experience` = '" + pet.experience + "', `energy` = '" + pet.Energy + "', `nutrition` = '" + pet.Nutrition + "', `respect` = '" + pet.Respect + "' WHERE `id` = '" + pet.PetId + "' LIMIT 1"); } } if (pet.OwnerId != Session.GetHabbo().Id) { GameClient Target = RavenEnvironment.GetGame().GetClientManager().GetClientByUserID(pet.OwnerId); if (Target != null) { Target.GetHabbo().GetInventoryComponent().TryAddPet(Pet.PetData); Room.GetRoomUserManager().RemoveBot(Pet.VirtualId, false); Target.SendMessage(new PetInventoryComposer(Target.GetHabbo().GetInventoryComponent().GetPets())); return; } } Session.GetHabbo().GetInventoryComponent().TryAddPet(Pet.PetData); Room.GetRoomUserManager().RemoveBot(Pet.VirtualId, false); Session.SendMessage(new PetInventoryComposer(Session.GetHabbo().GetInventoryComponent().GetPets())); } Session.SendWhisper("Success, removed all pets."); } else { Session.SendWhisper("Oops, there isn't any pets in here!?"); } }
public static void Search(ServerPacket Message, SearchResultList SearchResult, string SearchData, GameClient Session, int FetchLimit) { //Switching by categorys. switch (SearchResult.CategoryType) { default: Message.WriteInteger(0); break; case NavigatorCategoryType.QUERY: { #region Query if (SearchData.ToLower().StartsWith("owner:")) { if (SearchData.Length > 0) { int UserId = 0; DataTable GetRooms = null; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { if (SearchData.ToLower().StartsWith("owner:")) { dbClient.SetQuery("SELECT `id` FROM `users` WHERE `username` = @username LIMIT 1"); dbClient.AddParameter("username", SearchData.Remove(0, 6)); UserId = dbClient.getInteger(); dbClient.SetQuery("SELECT * FROM `rooms` WHERE `owner` = '" + UserId + "' and `state` != 'invisible' ORDER BY `users_now` DESC LIMIT 50"); GetRooms = dbClient.getTable(); } } List <RoomData> Results = new List <RoomData>(); if (GetRooms != null) { foreach (DataRow Row in GetRooms.Rows) { RoomData RoomData = RavenEnvironment.GetGame().GetRoomManager().FetchRoomData(Convert.ToInt32(Row["id"]), Row); if (RoomData != null && !Results.Contains(RoomData)) { Results.Add(RoomData); } } } Message.WriteInteger(Results.Count); foreach (RoomData Data in Results.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } } } else if (SearchData.ToLower().StartsWith("tag:")) { SearchData = SearchData.Remove(0, 4); ICollection <RoomData> TagMatches = RavenEnvironment.GetGame().GetRoomManager().SearchTaggedRooms(SearchData); Message.WriteInteger(TagMatches.Count); foreach (RoomData Data in TagMatches.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } } else if (SearchData.ToLower().StartsWith("group:")) { SearchData = SearchData.Remove(0, 6); ICollection <RoomData> GroupRooms = RavenEnvironment.GetGame().GetRoomManager().SearchGroupRooms(SearchData); Message.WriteInteger(GroupRooms.Count); foreach (RoomData Data in GroupRooms.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } } else { if (SearchData.Length > 0) { DataTable Table = null; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM rooms WHERE caption LIKE @query ORDER BY users_now DESC LIMIT 50"); dbClient.AddParameter("query", "%" + SearchData + "%"); Table = dbClient.getTable(); } List <RoomData> Results = new List <RoomData>(); if (Table != null) { foreach (DataRow Row in Table.Rows) { if (Convert.ToString(Row["state"]) == "invisible") { continue; } RoomData RData = RavenEnvironment.GetGame().GetRoomManager().FetchRoomData(Convert.ToInt32(Row["id"]), Row); if (RData != null && !Results.Contains(RData)) { Results.Add(RData); } } } Message.WriteInteger(Results.Count); foreach (RoomData Data in Results.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } } } #endregion break; } case NavigatorCategoryType.FEATURED: { #region Featured List <RoomData> Rooms = new List <RoomData>(); ICollection <FeaturedRoom> Featured = RavenEnvironment.GetGame().GetNavigator().GetFeaturedRooms(SearchResult.Id); foreach (FeaturedRoom FeaturedItem in Featured.ToList()) { if (FeaturedItem == null) { continue; } RoomData Data = RavenEnvironment.GetGame().GetRoomManager().GenerateRoomData(FeaturedItem.RoomId); if (Data == null) { continue; } if (!Rooms.Contains(Data)) { Rooms.Add(Data); } } Message.WriteInteger(Rooms.Count); foreach (RoomData Data in Rooms.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } #endregion break; } case NavigatorCategoryType.STAFF_PICKS: { #region Featured List <RoomData> rooms = new List <RoomData>(); ICollection <StaffPick> picks = RavenEnvironment.GetGame().GetNavigator().GetStaffPicks(); foreach (StaffPick pick in picks.ToList()) { if (pick == null) { continue; } RoomData Data = RavenEnvironment.GetGame().GetRoomManager().GenerateRoomData(pick.RoomId); if (Data == null) { continue; } if (!rooms.Contains(Data)) { rooms.Add(Data); } } Message.WriteInteger(rooms.Count); foreach (RoomData data in rooms.ToList()) { RoomAppender.WriteRoom(Message, data, data.Promotion); } #endregion break; } case NavigatorCategoryType.POPULAR: { List <RoomData> PopularRooms = RavenEnvironment.GetGame().GetRoomManager().GetPopularRooms(-1, FetchLimit); Message.WriteInteger(PopularRooms.Count); foreach (RoomData Data in PopularRooms.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } break; } case NavigatorCategoryType.RECOMMENDED: { List <RoomData> RecommendedRooms = RavenEnvironment.GetGame().GetRoomManager().GetRecommendedRooms(FetchLimit); Message.WriteInteger(RecommendedRooms.Count); foreach (RoomData Data in RecommendedRooms.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } break; } case NavigatorCategoryType.CATEGORY: { List <RoomData> GetRoomsByCategory = RavenEnvironment.GetGame().GetRoomManager().GetRoomsByCategory(SearchResult.Id, FetchLimit); Message.WriteInteger(GetRoomsByCategory.Count); foreach (RoomData Data in GetRoomsByCategory.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } break; } case NavigatorCategoryType.MY_ROOMS: Message.WriteInteger(Session.GetHabbo().UsersRooms.Count); foreach (RoomData Data in Session.GetHabbo().UsersRooms.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } break; case NavigatorCategoryType.MY_FAVORITES: List <RoomData> Favourites = new List <RoomData>(); foreach (int Id in Session.GetHabbo().FavoriteRooms.ToArray()) { RoomData Room = RavenEnvironment.GetGame().GetRoomManager().GenerateRoomData(Id); if (Room == null) { continue; } if (!Favourites.Contains(Room)) { Favourites.Add(Room); } } Favourites = Favourites.Take(FetchLimit).ToList(); Message.WriteInteger(Favourites.Count); foreach (RoomData Data in Favourites.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } break; case NavigatorCategoryType.MY_GROUPS: List <RoomData> MyGroups = new List <RoomData>(); foreach (Group Group in RavenEnvironment.GetGame().GetGroupManager().GetGroupsForUser(Session.GetHabbo().Id).ToList()) { if (Group == null) { continue; } RoomData Data = RavenEnvironment.GetGame().GetRoomManager().GenerateRoomData(Group.RoomId); if (Data == null) { continue; } if (!MyGroups.Contains(Data)) { MyGroups.Add(Data); } } MyGroups = MyGroups.Take(FetchLimit).ToList(); Message.WriteInteger(MyGroups.Count); foreach (RoomData Data in MyGroups.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } break; case NavigatorCategoryType.MY_FRIENDS_ROOMS: List <RoomData> MyFriendsRooms = new List <RoomData>(); foreach (MessengerBuddy buddy in Session.GetHabbo().GetMessenger().GetFriends().Where(p => p.InRoom)) { if (buddy == null || !buddy.InRoom || buddy.UserId == Session.GetHabbo().Id) { continue; } if (!MyFriendsRooms.Contains(buddy.CurrentRoom.RoomData)) { MyFriendsRooms.Add(buddy.CurrentRoom.RoomData); } } Message.WriteInteger(MyFriendsRooms.Count); foreach (RoomData Data in MyFriendsRooms.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } break; case NavigatorCategoryType.MY_RIGHTS: List <RoomData> MyRights = new List <RoomData>(); DataTable GetRights = null; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `room_id` FROM `room_rights` WHERE `user_id` = @UserId LIMIT @FetchLimit"); dbClient.AddParameter("UserId", Session.GetHabbo().Id); dbClient.AddParameter("FetchLimit", FetchLimit); GetRights = dbClient.getTable(); foreach (DataRow Row in GetRights.Rows) { RoomData Data = RavenEnvironment.GetGame().GetRoomManager().GenerateRoomData(Convert.ToInt32(Row["room_id"])); if (Data == null) { continue; } if (!MyRights.Contains(Data)) { MyRights.Add(Data); } } } Message.WriteInteger(MyRights.Count); foreach (RoomData Data in MyRights.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } break; case NavigatorCategoryType.TOP_PROMOTIONS: { List <RoomData> GetPopularPromotions = RavenEnvironment.GetGame().GetRoomManager().GetOnGoingRoomPromotions(16, FetchLimit); Message.WriteInteger(GetPopularPromotions.Count); foreach (RoomData Data in GetPopularPromotions.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } break; } case NavigatorCategoryType.PROMOTION_CATEGORY: { List <RoomData> GetPromotedRooms = RavenEnvironment.GetGame().GetRoomManager().GetPromotedRooms(SearchResult.Id, FetchLimit); Message.WriteInteger(GetPromotedRooms.Count); foreach (RoomData Data in GetPromotedRooms.ToList()) { RoomAppender.WriteRoom(Message, Data, Data.Promotion); } break; } } }
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights) { if ((!string.IsNullOrEmpty(Item.FoundBy))) { if (Session.GetHabbo().Username != Item.FoundBy) { Session.SendMessage(RoomNotificationComposer.SendBubble("easteregg", "¡Este huevo ya ha sido encontrado por " + Item.FoundBy + "!", "")); return; } } else if (Session == null || Session.GetHabbo() == null || Item == null) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser Actor = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (Actor == null) { return; } if (Gamemap.TileDistance(Actor.X, Actor.Y, Item.GetX, Item.GetY) < 2) { Item.FoundBy = Session.GetHabbo().Username; } var tick = int.Parse(Item.ExtraData); if (tick < 19) { if (Gamemap.TileDistance(Actor.X, Actor.Y, Item.GetX, Item.GetY) < 2) { tick++; Item.ExtraData = tick.ToString(); Item.UpdateState(true, true); int X = Item.GetX, Y = Item.GetY, Rot = Item.Rotation; Double Z = Item.GetZ; if (tick == 19) { using (var dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id); dbClient.runFastQuery("DELETE FROM items WHERE id = " + Item.Id); } // Empezamos a generar el tipo de premio según lotería. int RewardType = RandomNumber.GenerateRandom(1, 20); switch (RewardType) { case 1: int RewardDiamonds = RandomNumber.GenerateRandom(1, 10); Session.GetHabbo().Diamonds += RewardDiamonds; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, RewardDiamonds, 5)); Session.SendWhisper("Acabas de ganar " + RewardDiamonds + " diamantes con este Huevo de Pascua, ¡qué suerte!.", 34); break; case 2: case 3: case 4: case 5: case 6: case 8: case 10: case 11: case 12: case 13: case 14: case 15: case 16: case 17: case 18: case 19: case 20: Session.GetHabbo().GOTWPoints += 1; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().GOTWPoints, 1, 103)); Session.SendMessage(RoomNotificationComposer.SendBubble("easteregg", "Acabas de conseguir un Huevo de Pascua, colecciona varios para canjearlos por premios.", "")); break; case 7: ItemData RewardItemPrize = null; if (!RavenEnvironment.GetGame().GetItemManager().GetItem(9780, out RewardItemPrize)) { return; } Item GiveItem = ItemFactory.CreateSingleItemNullable(RewardItemPrize, Session.GetHabbo(), "", ""); if (GiveItem != null) { Session.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem); Session.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1)); Session.SendMessage(new FurniListUpdateComposer()); Session.SendMessage(RoomNotificationComposer.SendBubble("easteregg", "Acabas de recibir un Huevo de Pascua raro.\n\n¡Corre, " + Session.GetHabbo().Username + ", haz click aquí y revisa tu inventario!", "inventory/open")); } Session.GetHabbo().GetInventoryComponent().UpdateItems(true); break; } RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Actor.GetClient(), "ACH_EggCracker", 1); } } } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool")) { return; } Room Room = null; if (!RavenEnvironment.GetGame().GetRoomManager().TryGetRoom(Packet.PopInt(), out Room)) { return; } bool SetLock = Packet.PopInt() == 1; bool SetName = Packet.PopInt() == 1; bool KickAll = Packet.PopInt() == 1; if (SetName) { Room.RoomData.Name = "Sala inapropiada, no cumple la manera"; Room.RoomData.Description = "Esta sala ha infringido la manera de Habbo hotel."; } if (SetLock) { Room.RoomData.Access = RoomAccess.DOORBELL; } if (Room.Tags.Count > 0) { Room.ClearTags(); } if (Room.RoomData.HasActivePromotion) { Room.RoomData.EndPromotion(); } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { if (SetName && SetLock) { dbClient.RunQuery("UPDATE `rooms` SET `caption` = 'Inappropriate to Hotel Management', `description` = 'Inappropriate to Hotel Management', `tags` = '', `state` = '1' WHERE `id` = '" + Room.RoomId + "' LIMIT 1"); } else if (SetName && !SetLock) { dbClient.RunQuery("UPDATE `rooms` SET `caption` = 'Inappropriate to Hotel Management', `description` = 'Inappropriate to Hotel Management', `tags` = '' WHERE `id` = '" + Room.RoomId + "' LIMIT 1"); } else if (!SetName && SetLock) { dbClient.RunQuery("UPDATE `rooms` SET `state` = '1', `tags` = '' WHERE `id` = '" + Room.RoomId + "' LIMIT 1"); } } Room.SendMessage(new RoomSettingsSavedComposer(Room.RoomId)); Room.SendMessage(new RoomInfoUpdatedComposer(Room.RoomId)); if (KickAll) { foreach (RoomUser RoomUser in Room.GetRoomUserManager().GetUserList().ToList()) { if (RoomUser == null || RoomUser.IsBot) { continue; } if (RoomUser.GetClient() == null || RoomUser.GetClient().GetHabbo() == null) { continue; } if (RoomUser.GetClient().GetHabbo().Rank >= Session.GetHabbo().Rank || RoomUser.GetClient().GetHabbo().Id == Session.GetHabbo().Id) { continue; } Room.GetRoomUserManager().RemoveUserFromRoom(RoomUser.GetClient(), true, false); } } }
public void DeliverItems() { // List items List <Item> ItemsOne = GetTradeUser(oneId).OfferedItems; List <Item> ItemsTwo = GetTradeUser(twoId).OfferedItems; string User1 = ""; string User2 = ""; // Verify they are still in user inventory foreach (Item I in ItemsOne.ToList()) { if (I == null) { continue; } if (GetTradeUser(oneId).GetClient().GetHabbo().GetInventoryComponent().GetItem(I.Id) == null) { GetTradeUser(oneId).GetClient().SendNotification(RavenEnvironment.GetGame().GetLanguageLocale().TryGetValue("trade_failed")); GetTradeUser(twoId).GetClient().SendNotification(RavenEnvironment.GetGame().GetLanguageLocale().TryGetValue("trade_failed")); return; } User1 += I.Id + ";"; } foreach (Item I in ItemsTwo.ToList()) { if (I == null) { continue; } if (GetTradeUser(twoId).GetClient().GetHabbo().GetInventoryComponent().GetItem(I.Id) == null) { GetTradeUser(oneId).GetClient().SendNotification(RavenEnvironment.GetGame().GetLanguageLocale().TryGetValue("trade_failed")); GetTradeUser(twoId).GetClient().SendNotification(RavenEnvironment.GetGame().GetLanguageLocale().TryGetValue("trade_failed")); return; } User2 += I.Id + ";"; } if (GetTradeUser(oneId).GetClient().GetHabbo().SecureTradeEnabled == false && GetTradeUser(twoId).GetClient().GetHabbo().SecureTradeEnabled == false) { // Deliver them using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { foreach (Item I in ItemsOne.ToList()) { if (I == null) { continue; } GetTradeUser(oneId).GetClient().GetHabbo().GetInventoryComponent().RemoveItem(I.Id); dbClient.SetQuery("UPDATE `items` SET `user_id` = @user WHERE `id` = @id LIMIT 1"); dbClient.AddParameter("user", twoId); dbClient.AddParameter("id", I.Id); dbClient.RunQuery(); GetTradeUser(twoId).GetClient().GetHabbo().GetInventoryComponent().AddNewItem(I.Id, I.BaseItem, I.ExtraData, I.GroupId, false, false, I.LimitedNo, I.LimitedTot); GetTradeUser(twoId).GetClient().SendMessage(new FurniListAddComposer(I)); GetTradeUser(twoId).GetClient().SendMessage(new FurniListNotificationComposer(I.Id, 1)); } foreach (Item I in ItemsTwo.ToList()) { if (I == null) { continue; } GetTradeUser(twoId).GetClient().GetHabbo().GetInventoryComponent().RemoveItem(I.Id); dbClient.SetQuery("UPDATE `items` SET `user_id` = @user WHERE `id` = @id LIMIT 1"); dbClient.AddParameter("user", oneId); dbClient.AddParameter("id", I.Id); dbClient.RunQuery(); GetTradeUser(oneId).GetClient().GetHabbo().GetInventoryComponent().AddNewItem(I.Id, I.BaseItem, I.ExtraData, I.GroupId, false, false, I.LimitedNo, I.LimitedTot); GetTradeUser(oneId).GetClient().SendMessage(new FurniListAddComposer(I)); GetTradeUser(oneId).GetClient().SendMessage(new FurniListNotificationComposer(I.Id, 1)); } } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `logs_client_trade` VALUES(null, @1id, @2id, @1items, @2items, UNIX_TIMESTAMP())"); dbClient.AddParameter("1id", oneId); dbClient.AddParameter("2id", twoId); dbClient.AddParameter("1items", User1); dbClient.AddParameter("2items", User2); dbClient.RunQuery(); } } GetTradeUser(oneId).GetClient().GetHabbo().GetInventoryComponent().UpdateItems(true); GetTradeUser(oneId).GetClient().SendMessage(new FurniListUpdateComposer()); GetTradeUser(twoId).GetClient().GetHabbo().GetInventoryComponent().UpdateItems(true); GetTradeUser(twoId).GetClient().SendMessage(new FurniListUpdateComposer()); // else if(GetTradeUser(oneId).GetClient().GetHabbo().SecureTradeEnabled == true && GetTradeUser(twoId).GetClient().GetHabbo().SecureTradeEnabled == true)// SISTEMA DE DADOS // { // using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) // { // foreach (Item I in ItemsOne.ToList()) // { // if (I == null) // continue; // GetTradeUser(oneId).GetClient().GetHabbo().GetInventoryComponent().RemoveItem(I.Id); // dbClient.SetQuery("UPDATE `items` SET `user_id` = @user WHERE `id` = @id LIMIT 1"); // dbClient.AddParameter("user", 3); // @ Security Account Dices // dbClient.AddParameter("id", I.Id); // dbClient.RunQuery(); // } // foreach (Item I in ItemsTwo.ToList()) // { // if (I == null) // continue; // GetTradeUser(twoId).GetClient().GetHabbo().GetInventoryComponent().RemoveItem(I.Id); // dbClient.SetQuery("UPDATE `items` SET `user_id` = @user WHERE `id` = @id LIMIT 1"); // dbClient.AddParameter("user", 3); // @ Security Account Dices // dbClient.AddParameter("id", I.Id); // dbClient.RunQuery(); // } // } // using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) // { // dbClient.SetQuery("INSERT INTO `logs_client_trade` VALUES(null, @1id, @2id, @1items, @2items, UNIX_TIMESTAMP())"); // dbClient.AddParameter("1id", oneId); // dbClient.AddParameter("2id", twoId); // dbClient.AddParameter("1items", User1); // dbClient.AddParameter("2items", User2); // dbClient.RunQuery(); // } // GetTradeUser(oneId).GetClient().GetHabbo().PlayingDice = true; // GetTradeUser(twoId).GetClient().GetHabbo().PlayingDice = true; // // Get each user - DICE SYSTEM BY CUSTOM // Room Room = GetRoom(); // RoomUser user1 = Room.GetRoomUserManager().GetRoomUserByHabbo(GetTradeUser(oneId).GetClient().GetHabbo().Id); // RoomUser user2 = Room.GetRoomUserManager().GetRoomUserByHabbo(GetTradeUser(twoId).GetClient().GetHabbo().Id); // // Notify rare count from each user - DICE SYSTEM BY CUSTOM // user1.OnChat(33, "Acabo de apostar un total de " + GetTradeUser(oneId).GetClient().GetHabbo().TradeItems.Count() + " rares en dados.", false); // user2.OnChat(33, "Acabo de apostar un total de " + GetTradeUser(twoId).GetClient().GetHabbo().TradeItems.Count() + " rares en dados.", false); // // Assign item list for each user - DICE SYSTEM BY CUSTOM // GetTradeUser(oneId).GetClient().GetHabbo().TradeItems = GetTradeUser(oneId).OfferedItems; // GetTradeUser(twoId).GetClient().GetHabbo().TradeItems = GetTradeUser(twoId).OfferedItems; // // Assign opponent username for the future foreach - DICE SYSTEM BY CUSTOM // GetTradeUser(oneId).GetClient().GetHabbo().Opponent = GetTradeUser(twoId).GetClient().GetHabbo().Username; // GetTradeUser(twoId).GetClient().GetHabbo().Opponent = GetTradeUser(oneId).GetClient().GetHabbo().Username; // } // else // { // GetTradeUser(oneId).GetClient().SendChat("Algo salió mal durante el tradeo, tienes el modo de seguridad" + (GetTradeUser(oneId).GetClient().GetHabbo().SecureTradeEnabled == true ? " activado." : " desactivado.") + "", 33); // GetTradeUser(twoId).GetClient().SendChat("Algo salió mal durante el tradeo, tienes el modo de seguridad" + (GetTradeUser(twoId).GetClient().GetHabbo().SecureTradeEnabled == true ? " activado." : " desactivado.") + "", 33); // } //} }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { bool InUse = false; string Name = Packet.PopString(); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT COUNT(0) FROM `users` WHERE `username` = @name LIMIT 1"); dbClient.AddParameter("name", Name); InUse = dbClient.getInteger() == 1; } char[] Letters = Name.ToLower().ToCharArray(); string AllowedCharacters = "abcdefghijklmnopqrstuvwxyz.,_-;!1234567890"; foreach (char Chr in Letters) { if (!AllowedCharacters.Contains(Chr)) { Session.SendMessage(new NameChangeUpdateComposer(Name, 4)); return; } } string word; if (RavenEnvironment.GetGame().GetChatManager().GetFilter().IsUnnaceptableWord(Name, out word)) { Session.SendMessage(new NameChangeUpdateComposer(Name, 4)); return; } if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool") && Name.ToLower().Contains("mod") || Name.ToLower().Contains("adm") || Name.ToLower().Contains("admin") || Name.ToLower().Contains("m0d")) { Session.SendMessage(new NameChangeUpdateComposer(Name, 4)); return; } else if (Name.Length > 15) { Session.SendMessage(new NameChangeUpdateComposer(Name, 3)); return; } else if (Name.Length < 3) { Session.SendMessage(new NameChangeUpdateComposer(Name, 2)); return; } else if (InUse) { ICollection <string> Suggestions = new List <string>(); for (int i = 100; i < 103; i++) { Suggestions.Add(i.ToString()); } Session.SendMessage(new NameChangeUpdateComposer(Name, 5, Suggestions)); return; } else { Session.SendMessage(new NameChangeUpdateComposer(Name, 0)); return; } }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().TimeMuted > 0) { Session.SendNotification("Oops, usted esta silenciado - no puede cambiar la mision."); return; } if ((DateTime.Now - Session.GetHabbo().LastMottoUpdateTime).TotalSeconds <= 2.0) { Session.GetHabbo().MottoUpdateWarnings += 1; if (Session.GetHabbo().MottoUpdateWarnings >= 25) { Session.GetHabbo().SessionMottoBlocked = true; } return; } if (Session.GetHabbo().SessionMottoBlocked) { return; } Session.GetHabbo().LastMottoUpdateTime = DateTime.Now; string newMotto = StringCharFilter.Escape(Packet.PopString().Trim()); if (newMotto.Length > 38) { newMotto = newMotto.Substring(0, 38); } if (newMotto == Session.GetHabbo().Motto) { return; } string word; if (!Session.GetHabbo().GetPermissions().HasRight("word_filter_override")) { newMotto = RavenEnvironment.GetGame().GetChatManager().GetFilter().IsUnnaceptableWord(newMotto, out word) ? "Spam" : newMotto; } Session.GetHabbo().Motto = newMotto; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `motto` = @motto WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); dbClient.AddParameter("motto", newMotto); dbClient.RunQuery(); } RavenEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.PROFILE_CHANGE_MOTTO); RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Motto", 1); if (Session.GetHabbo().InRoom) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null || User.GetClient() == null) { return; } Room.SendMessage(new UserChangeComposer(User, false)); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } int PresentId = Packet.PopInt(); Item Present = Room.GetRoomItemHandler().GetItem(PresentId); if (Present == null) { return; } if (Present.UserID != Session.GetHabbo().Id) { return; } DataRow Data = null; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `base_id`,`extra_data` FROM `user_presents` WHERE `item_id` = '" + Present.Id + "' LIMIT 1"); Data = dbClient.getRow(); } if (Data == null) { Session.SendNotification("Oops! al parecer hay un error con este regalo.\nNosotros nos encargaremos de deshacernos de este regalo."); Room.GetRoomItemHandler().RemoveFurniture(null, Present.Id, false); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Present.Id + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `user_presents` WHERE `item_id` = '" + Present.Id + "' LIMIT 1"); } Session.GetHabbo().GetInventoryComponent().RemoveItem(Present.Id); return; } int PurchaserId = 0; if (Present.GetBaseItem().ItemName == "matic_box") { PurchaserId = Session.GetHabbo().Id; } else { if (!int.TryParse(Present.ExtraData.Split(Convert.ToChar(5))[2], out PurchaserId)) { Session.SendNotification("Oops! al parecer hay un error con este regalo.\nNosotros nos encargaremos de deshacernos de este regalo."); Room.GetRoomItemHandler().RemoveFurniture(null, Present.Id, false); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Present.Id + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `user_presents` WHERE `item_id` = '" + Present.Id + "' LIMIT 1"); } Session.GetHabbo().GetInventoryComponent().RemoveItem(Present.Id); return; } } UserCache Purchaser = RavenEnvironment.GetGame().GetCacheManager().GenerateUser(PurchaserId); if (Purchaser == null) { Session.SendNotification("Oops! al parecer hay un error con este regalo.\nNosotros nos encargaremos de deshacernos de este regalo.."); Room.GetRoomItemHandler().RemoveFurniture(null, Present.Id, false); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Present.Id + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `user_presents` WHERE `item_id` = '" + Present.Id + "' LIMIT 1"); } Session.GetHabbo().GetInventoryComponent().RemoveItem(Present.Id); return; } ItemData BaseItem = null; if (!RavenEnvironment.GetGame().GetItemManager().GetItem(Convert.ToInt32(Data["base_id"]), out BaseItem)) { Session.SendNotification("Oops, al parecer este regalo ya no existe!"); Room.GetRoomItemHandler().RemoveFurniture(null, Present.Id, false); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Present.Id + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `user_presents` WHERE `item_id` = '" + Present.Id + "' LIMIT 1"); } Session.GetHabbo().GetInventoryComponent().RemoveItem(Present.Id); return; } Present.MagicRemove = true; Room.SendMessage(new ObjectUpdateComposer(Present, Convert.ToInt32(Session.GetHabbo().Id))); Thread thread = new Thread(() => FinishOpenGift(Session, BaseItem, Present, Room, Data)); thread.Start(); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int GroupId = Packet.PopInt(); int UserId = Packet.PopInt(); Group Group = null; if (!RavenEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group)) { return; } if (UserId == Session.GetHabbo().Id) { if (Group.IsMember(UserId)) { Group.DeleteMember(UserId); } if (Group.IsAdmin(UserId)) { if (Group.IsAdmin(UserId)) { Group.TakeAdmin(UserId); } Room Room; if (!RavenEnvironment.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room)) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User != null) { User.RemoveStatus("flatctrl 1"); User.UpdateNeeded = true; if (User.GetClient() != null) { User.GetClient().SendMessage(new YouAreControllerComposer(0)); } } } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("DELETE FROM `group_memberships` WHERE `group_id` = @GroupId AND `user_id` = @UserId"); dbClient.AddParameter("GroupId", GroupId); dbClient.AddParameter("UserId", UserId); dbClient.RunQuery(); } Session.SendMessage(new GroupInfoComposer(Group, Session)); if (Session.GetHabbo().GetStats().FavouriteGroupId == GroupId) { Session.GetHabbo().GetStats().FavouriteGroupId = 0; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_stats` SET `groupid` = '0' WHERE `id` = '" + UserId + "' LIMIT 1"); } if (Group.AdminOnlyDeco == 0) { Room Room; if (!RavenEnvironment.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room)) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User != null) { User.RemoveStatus("flatctrl 1"); User.UpdateNeeded = true; if (User.GetClient() != null) { User.GetClient().SendMessage(new YouAreControllerComposer(0)); } } } if (Session.GetHabbo().InRoom&& Session.GetHabbo().CurrentRoom != null) { RoomUser User = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User != null) { Session.GetHabbo().CurrentRoom.SendMessage(new UpdateFavouriteGroupComposer(Session.GetHabbo().Id, Group, User.VirtualId)); } Session.GetHabbo().CurrentRoom.SendMessage(new RefreshFavouriteGroupComposer(Session.GetHabbo().Id)); } else { Session.SendMessage(new RefreshFavouriteGroupComposer(Session.GetHabbo().Id)); } } if (Group.HasChat) { var Client = RavenEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId); if (Client != null) { Client.SendMessage(new FriendListUpdateComposer(Group, -1)); } } return; } else { if (Group.CreatorId == Session.GetHabbo().Id || Group.IsAdmin(Session.GetHabbo().Id)) { if (!Group.IsMember(UserId)) { return; } if (Group.IsAdmin(UserId) && Group.CreatorId != Session.GetHabbo().Id) { Session.SendNotification("Lo sentimos, sólo los creadores del grupo pueden eliminar otros administradores del grupo"); return; } if (Group.IsAdmin(UserId)) { Group.TakeAdmin(UserId); } if (Group.IsMember(UserId)) { Group.DeleteMember(UserId); } List <UserCache> Members = new List <UserCache>(); List <int> MemberIds = Group.GetAllMembers; foreach (int Id in MemberIds.ToList()) { UserCache GroupMember = RavenEnvironment.GetGame().GetCacheManager().GenerateUser(Id); if (GroupMember == null) { continue; } if (!Members.Contains(GroupMember)) { Members.Add(GroupMember); } } int FinishIndex = 14 < Members.Count ? 14 : Members.Count; int MembersCount = Members.Count; Session.SendMessage(new GroupMembersComposer(Group, Members.Take(FinishIndex).ToList(), MembersCount, 1, (Group.CreatorId == Session.GetHabbo().Id || Group.IsAdmin(Session.GetHabbo().Id)), 0, "")); if (Group.HasChat) { var Client = RavenEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId); if (Client != null) { Client.SendMessage(new FriendListUpdateComposer(Group, -1)); } } } } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom) { return; } Room Room; if (!RavenEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room)) { return; } if (!Room.CanTradeInRoom || RavenStaticGameSettings.IsGoingToBeClose) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } if (Session.GetHabbo().TradingLockExpiry > 0) { if (Session.GetHabbo().TradingLockExpiry > RavenEnvironment.GetUnixTimestamp()) { Session.SendNotification("Actualmente su cuenta tiene un Baneo para tradear."); return; } else { Session.GetHabbo().TradingLockExpiry = 0; Session.SendNotification("Su baneo para tradear ha expirado, por favor no lo vuelva a hacer."); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `trading_locked` = '0' WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); } } } RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByVirtualId(Packet.PopInt()); if (TargetUser == null || TargetUser.GetClient() == null || TargetUser.GetClient().GetHabbo() == null) { return; } if (TargetUser.IsTrading) { Session.SendMessage(new TradingErrorComposer(8, TargetUser.GetUsername())); return; } if (!Session.GetHabbo().GetPermissions().HasRight("room_trade_override")) { if (Room.TradeSettings == 1 && Room.OwnerId != Session.GetHabbo().Id)//Owner only. { Session.SendMessage(new TradingErrorComposer(6, TargetUser.GetUsername())); return; } else if (Room.TradeSettings == 0 && Room.OwnerId != Session.GetHabbo().Id)//Trading is disabled. { Session.SendMessage(new TradingErrorComposer(6, TargetUser.GetUsername())); return; } } if (TargetUser.GetClient().GetHabbo().TradingLockExpiry > 0) { Session.SendNotification("Oops, al parecer este usuario tiene un baneo para tradear!"); return; } Room.TryStartTrade(User, TargetUser); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } int ItemId = Packet.PopInt(); Item Item = Room.GetRoomItemHandler().GetItem(ItemId); if (Item == null) { return; } if (Item.Data == null) { return; } if (Item.UserID != Session.GetHabbo().Id) { return; } if (Item.Data.InteractionType != InteractionType.PURCHASABLE_CLOTHING) { Session.SendNotification("Oops, este artículo no se establece como una prenda de vestir vendible"); return; } if (Item.Data.ClothingId == 0) { Session.SendNotification("Oops, este item no tiene la configuracion como una ropa, por favor, reportalo!"); return; } ClothingItem Clothing = null; if (!RavenEnvironment.GetGame().GetCatalog().GetClothingManager().TryGetClothing(Item.Data.ClothingId, out Clothing)) { Session.SendNotification("Vaya.. no se ha podido encontrar esta parte de la ropa!"); return; } //Quickly delete it from the database. using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("DELETE FROM `items` WHERE `id` = @ItemId LIMIT 1"); dbClient.AddParameter("ItemId", Item.Id); dbClient.RunQuery(); } //Remove the item. Room.GetRoomItemHandler().RemoveFurniture(Session, Item.Id); Session.GetHabbo().GetClothing().AddClothing(Clothing.ClothingName, Clothing.PartIds); Session.SendMessage(new FigureSetIdsComposer(Session.GetHabbo().GetClothing().GetClothingAllParts)); Session.SendMessage(new RoomNotificationComposer("figureset.redeemed.success")); Session.SendWhisper("Si por alguna razon no ve su nueva ropa, recarga el client y vuelve a ingresar!"); }
public ModeratorUserChatlogComposer(int UserId) : base(ServerPacketHeader.ModeratorUserChatlogMessageComposer) { base.WriteInteger(UserId); base.WriteString(RavenEnvironment.GetGame().GetClientManager().GetNameById(UserId)); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT room_id,entry_timestamp,exit_timestamp FROM user_roomvisits WHERE `user_id` = " + UserId + " ORDER BY entry_timestamp DESC LIMIT 5"); DataTable Visits = dbClient.getTable(); if (Visits != null) { base.WriteInteger(Visits.Rows.Count); foreach (DataRow Visit in Visits.Rows) { string RoomName = "Unknown"; Room Room = RavenEnvironment.GetGame().GetRoomManager().LoadRoom(Convert.ToInt32(Visit["room_id"])); if (Room != null) { RoomName = Room.Name; } base.WriteByte(1); base.WriteShort(2);//Count base.WriteString("roomName"); base.WriteByte(2); base.WriteString(RoomName); // room name base.WriteString("roomId"); base.WriteByte(1); base.WriteInteger(Convert.ToInt32(Visit["room_id"])); DataTable Chatlogs = null; if ((Double)Visit["exit_timestamp"] <= 0) { Visit["exit_timestamp"] = RavenEnvironment.GetUnixTimestamp(); } dbClient.SetQuery("SELECT user_id,timestamp,message FROM `chatlogs` WHERE room_id = " + Convert.ToInt32(Visit["room_id"]) + " AND timestamp > " + (Double)Visit["entry_timestamp"] + " AND timestamp < " + (Double)Visit["exit_timestamp"] + " ORDER BY timestamp DESC LIMIT 150"); Chatlogs = dbClient.getTable(); if (Chatlogs != null) { base.WriteShort(Chatlogs.Rows.Count); foreach (DataRow Log in Chatlogs.Rows) { UserCache Habbo = RavenEnvironment.GetGame().GetCacheManager().GenerateUser(Convert.ToInt32(Log["user_id"])); if (Habbo == null) { continue; } DateTime dDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); dDateTime = dDateTime.AddSeconds(Convert.ToInt32(Log["timestamp"])).ToLocalTime(); base.WriteString(dDateTime.Hour + ":" + dDateTime.Minute); base.WriteInteger(Habbo.Id); base.WriteString(Habbo.Username); base.WriteString(string.IsNullOrWhiteSpace(Convert.ToString(Log["message"])) ? "*stemen*" : Convert.ToString(Log["message"])); base.WriteBoolean(false); } } else { base.WriteInteger(0); } } } else { base.WriteInteger(0); } } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { int TotalValue = 0; try { DataTable Table = null; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `id` FROM `items` WHERE `user_id` = '" + Session.GetHabbo().Id + "' AND (`room_id`= '0' OR `room_id` = '')"); Table = dbClient.getTable(); } if (Table == null) { Session.SendWhisper("De momento usted no tiene monedas en su inventario!"); return; } foreach (DataRow Row in Table.Rows) { Item Item = Session.GetHabbo().GetInventoryComponent().GetItem(Convert.ToInt32(Row[0])); if (Item == null) { continue; } if (!Item.GetBaseItem().ItemName.StartsWith("CF_")) { continue; } if (Item.RoomId > 0) { continue; } string[] Split = Item.GetBaseItem().ItemName.Split('_'); int Value = int.Parse(Split[1]); using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + Item.Id + "' LIMIT 1"); } Session.GetHabbo().GetInventoryComponent().RemoveItem(Item.Id); TotalValue += Value; if (Value > 0) { Session.GetHabbo().Credits += Value; Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); } } if (TotalValue > 0) { Session.SendNotification("Todos sus creditos en inventario se llevaron a su monedero con un !\r\r(Total de: " + TotalValue + " creditos!"); } else { Session.SendNotification("Al parecer no tiene ningun otro articulo intercambiable!"); } } catch { Session.SendNotification("Oops, ocurrio un error mientras se intercambiaban sus creditos, contacte un administrador!"); } }
public void Init() { if (this._userPresets.Count > 0) { this._userPresets.Clear(); } if (this._moderationCFHTopics.Count > 0) { this._moderationCFHTopics.Clear(); } if (this._moderationCFHTopicActions.Count > 0) { this._moderationCFHTopicActions.Clear(); } if (this._bans.Count > 0) { this._bans.Clear(); } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { DataTable PresetsTable = null; dbClient.SetQuery("SELECT * FROM `moderation_presets`;"); PresetsTable = dbClient.getTable(); if (PresetsTable != null) { foreach (DataRow Row in PresetsTable.Rows) { string Type = Convert.ToString(Row["type"]).ToLower(); switch (Type) { case "user": this._userPresets.Add(Convert.ToString(Row["message"])); break; case "room": this._roomPresets.Add(Convert.ToString(Row["message"])); break; } } } } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { DataTable ModerationTopics = null; dbClient.SetQuery("SELECT * FROM `moderation_topics`;"); ModerationTopics = dbClient.getTable(); if (ModerationTopics != null) { foreach (DataRow Row in ModerationTopics.Rows) { if (!this._moderationCFHTopics.ContainsKey(Convert.ToInt32(Row["id"]))) { this._moderationCFHTopics.Add(Convert.ToInt32(Row["id"]), Convert.ToString(Row["caption"])); } } } } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { DataTable ModerationTopicsActions = null; dbClient.SetQuery("SELECT * FROM `moderation_topic_actions`;"); ModerationTopicsActions = dbClient.getTable(); if (ModerationTopicsActions != null) { foreach (DataRow Row in ModerationTopicsActions.Rows) { int ParentId = Convert.ToInt32(Row["parent_id"]); if (!this._moderationCFHTopicActions.ContainsKey(ParentId)) { this._moderationCFHTopicActions.Add(ParentId, new List <ModerationPresetActions>()); } this._moderationCFHTopicActions[ParentId].Add(new ModerationPresetActions(Convert.ToInt32(Row["id"]), Convert.ToInt32(Row["parent_id"]), Convert.ToString(Row["type"]), Convert.ToString(Row["caption"]), Convert.ToString(Row["message_text"]), Convert.ToInt32(Row["mute_time"]), Convert.ToInt32(Row["ban_time"]), Convert.ToInt32(Row["ip_time"]), Convert.ToInt32(Row["trade_lock_time"]), Convert.ToString(Row["default_sanction"]))); } } } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { DataTable PresetsActionCats = null; dbClient.SetQuery("SELECT * FROM `moderation_preset_action_categories`;"); PresetsActionCats = dbClient.getTable(); if (PresetsActionCats != null) { foreach (DataRow Row in PresetsActionCats.Rows) { this._userActionPresetCategories.Add(Convert.ToInt32(Row["id"]), Convert.ToString(Row["caption"])); } } } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { DataTable PresetsActionMessages = null; dbClient.SetQuery("SELECT * FROM `moderation_preset_action_messages`;"); PresetsActionMessages = dbClient.getTable(); if (PresetsActionMessages != null) { foreach (DataRow Row in PresetsActionMessages.Rows) { int ParentId = Convert.ToInt32(Row["parent_id"]); if (!this._userActionPresetMessages.ContainsKey(ParentId)) { this._userActionPresetMessages.Add(ParentId, new List <ModerationPresetActionMessages>()); } this._userActionPresetMessages[ParentId].Add(new ModerationPresetActionMessages(Convert.ToInt32(Row["id"]), Convert.ToInt32(Row["parent_id"]), Convert.ToString(Row["caption"]), Convert.ToString(Row["message_text"]), Convert.ToInt32(Row["mute_hours"]), Convert.ToInt32(Row["ban_hours"]), Convert.ToInt32(Row["ip_ban_hours"]), Convert.ToInt32(Row["trade_lock_days"]), Convert.ToString(Row["notice"]))); } } } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { DataTable GetBans = null; dbClient.SetQuery("SELECT `bantype`,`value`,`reason`,`expire` FROM `bans` WHERE `bantype` = 'machine' OR `bantype` = 'user'"); GetBans = dbClient.getTable(); if (GetBans != null) { foreach (DataRow dRow in GetBans.Rows) { string value = Convert.ToString(dRow["value"]); string reason = Convert.ToString(dRow["reason"]); double expires = (double)dRow["expire"]; string type = Convert.ToString(dRow["bantype"]); ModerationBan Ban = new ModerationBan(BanTypeUtility.GetModerationBanType(type), value, reason, expires); if (Ban != null) { if (expires > RavenEnvironment.GetUnixTimestamp()) { if (!this._bans.ContainsKey(value)) { this._bans.Add(value, Ban); } } else { dbClient.SetQuery("DELETE FROM `bans` WHERE `bantype` = '" + BanTypeUtility.FromModerationBanType(Ban.Type) + "' AND `value` = @Key LIMIT 1"); dbClient.AddParameter("Key", value); dbClient.RunQuery(); } } } } } /*log.Info("Loaded " + (this._userPresets.Count + this._roomPresets.Count) + " moderation presets."); * log.Info("Loaded " + this._userActionPresetCategories.Count + " moderation categories."); * log.Info("Loaded " + this._userActionPresetMessages.Count + " moderation action preset messages."); * log.Info("Cached " + this._bans.Count + " username and machine bans.");*/ log.Info(">> Moderation Manager -> READY!"); }
public void Execute(GameClient Session, Room Room, string[] Params) { Room _Room = Session.GetHabbo().CurrentRoom; RoomUser RoomOwner = _Room.GetRoomUserManager().GetRoomUserByHabbo(_Room.OwnerName); if (_Room == null) { return; } if (_Room.OwnerName == Session.GetHabbo().Username) { Session.SendWhisper("Estás intentando comprar una sala que ya es tuya.", 34); return; } if (!Room.ForSale) { Session.SendWhisper("¡Esta sala no está en venta!", 34); return; } if (Session.GetHabbo().Diamonds < _Room.SalePrice) { Session.SendWhisper("¡No tiene suficientes Diamantes para comprar esta sala!", 34); return; } if (RoomOwner == null || RoomOwner.GetClient() == null) { Session.SendWhisper("Se ha producido un error. Esta sala no está en venta.", 34); _Room.ForSale = false; _Room.SalePrice = 0; return; } GameClient Owner = RoomOwner.GetClient(); Owner.GetHabbo().Diamonds += _Room.SalePrice; Owner.SendMessage(new HabboActivityPointNotificationComposer(Owner.GetHabbo().Diamonds, _Room.SalePrice)); Session.GetHabbo().Diamonds -= _Room.SalePrice; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, _Room.SalePrice)); _Room.OwnerName = Session.GetHabbo().Username; _Room.OwnerId = (int)Session.GetHabbo().Id; _Room.RoomData.OwnerName = Session.GetHabbo().Username; _Room.RoomData.OwnerId = (int)Session.GetHabbo().Id; int RoomId = _Room.RoomId; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE rooms SET owner='" + Session.GetHabbo().Id + "' WHERE id='" + Room.RoomId + "' LIMIT 1"); dbClient.RunQuery("UPDATE items SET user_id='" + Session.GetHabbo().Id + "' WHERE room_id='" + Room.RoomId + "'"); } Session.GetHabbo().UsersRooms.Add(_Room.RoomData); Owner.GetHabbo().UsersRooms.Remove(_Room.RoomData); RavenEnvironment.GetGame().GetRoomManager().UnloadRoom(_Room); RoomData Data = RavenEnvironment.GetGame().GetRoomManager().GenerateRoomData(RoomId); Session.GetHabbo().PrepareRoom(Session.GetHabbo().CurrentRoom.RoomId, ""); }
public void Parse(GameClient Session, ClientPacket Packet) { string CampaignName = Packet.PopString(); int CampaignDay = Packet.PopInt(); // INDEX VALUE. // Si no es el nombre de campaña actual. if (CampaignName != RavenEnvironment.GetGame().GetCalendarManager().GetCampaignName()) { return; } // Si es un día inválido. if (CampaignDay < 0 || CampaignDay > RavenEnvironment.GetGame().GetCalendarManager().GetTotalDays() - 1 || CampaignDay < RavenEnvironment.GetGame().GetCalendarManager().GetUnlockDays()) { // Mini fix return; } // Días próximos if (CampaignDay > RavenEnvironment.GetGame().GetCalendarManager().GetUnlockDays()) { return; } // Esta recompensa ya ha sido recogida. if (Session.GetHabbo().calendarGift[CampaignDay]) { return; } Session.GetHabbo().calendarGift[CampaignDay] = true; // PACKET PARA ACTUALIZAR? Session.SendMessage(new CalendarPrizesComposer(RavenEnvironment.GetGame().GetCalendarManager().GetCampaignDay(CampaignDay + 1))); Session.SendMessage(new CampaignCalendarDataComposer(Session.GetHabbo().calendarGift)); string Gift = RavenEnvironment.GetGame().GetCalendarManager().GetGiftByDay(CampaignDay + 1); string GiftType = Gift.Split(':')[0]; string GiftValue = Gift.Split(':')[1]; switch (GiftType.ToLower()) { case "itemid": { ItemData Item = null; if (!RavenEnvironment.GetGame().GetItemManager().GetItem(int.Parse(GiftValue), out Item)) { // No existe este ItemId. return; } Item GiveItem = ItemFactory.CreateSingleItemNullable(Item, Session.GetHabbo(), "", ""); if (GiveItem != null) { Session.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem); Session.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1)); Session.SendMessage(new FurniListUpdateComposer()); } Session.GetHabbo().GetInventoryComponent().UpdateItems(false); } break; case "badge": { Session.GetHabbo().GetBadgeComponent().GiveBadge(GiftValue, true, Session); } break; case "diamonds": { Session.GetHabbo().Diamonds += int.Parse(GiftValue); Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, 0, 5)); } break; case "gotwpoints": { Session.GetHabbo().GOTWPoints += int.Parse(GiftValue); Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().GOTWPoints, 0, 103)); } break; case "vip": { var IsVIP = Session.GetHabbo().GetClubManager().HasSubscription("club_vip"); if (IsVIP) { Session.SendMessage(new AlertNotificationHCMessageComposer(4)); } else { Session.SendMessage(new AlertNotificationHCMessageComposer(5)); } if (Session.GetHabbo().Rank > 2) { using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `users` SET `rank_vip` = '1' WHERE `user_id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); } } else { using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `users` SET `rank` = '2' WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); dbClient.RunQuery("UPDATE `users` SET `rank_vip` = '1' WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); } } Session.GetHabbo().GetClubManager().AddOrExtendSubscription("club_vip", int.Parse(GiftValue) * 24 * 3600, Session); Session.GetHabbo().GetBadgeComponent().GiveBadge("VIP", true, Session); RavenEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_VipClub", 1); Session.SendMessage(new ScrSendUserInfoComposer(Session.GetHabbo())); } break; } using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.runFastQuery("INSERT INTO user_campaign_gifts VALUES (NULL, '" + Session.GetHabbo().Id + "','" + CampaignName + "','" + (CampaignDay + 1) + "')"); } }
public void Parse(GameClient Session, ClientPacket Packet) { string VoucherCode = Packet.PopString().Replace("\r", ""); Voucher Voucher = null; if (!RavenEnvironment.GetGame().GetCatalog().GetVoucherManager().TryGetVoucher(VoucherCode, out Voucher)) { Session.SendMessage(new VoucherRedeemErrorComposer(0)); return; } if (Voucher.CurrentUses >= Voucher.MaxUses) { Session.SendNotification("¡Este Código voucher se ha usado en su maximo de veces Permitidas!"); return; } DataRow GetRow = null; using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM `user_vouchers` WHERE `user_id` = '" + Session.GetHabbo().Id + "' AND `voucher` = @Voucher LIMIT 1"); dbClient.AddParameter("Voucher", VoucherCode); GetRow = dbClient.getRow(); } if (GetRow != null) { Session.SendNotification("¡Ya usted ha usado este código Voucher!!"); return; } else { using (IQueryAdapter dbClient = RavenEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `user_vouchers` (`user_id`,`voucher`) VALUES ('" + Session.GetHabbo().Id + "', @Voucher)"); dbClient.AddParameter("Voucher", VoucherCode); dbClient.RunQuery(); } } Voucher.UpdateUses(); if (Voucher.Type == VoucherType.CREDIT) { Session.GetHabbo().Credits += Voucher.Value; Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits)); Session.SendMessage(RoomNotificationComposer.SendBubble("voucher", "Acabas de recibir un premio voucher por el valor de " + Voucher.Value + " créditos. ¡Úsalos con cabeza, " + Session.GetHabbo().Username + ".", "")); } else if (Voucher.Type == VoucherType.DUCKET) { Session.GetHabbo().Duckets += Voucher.Value; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, Voucher.Value)); Session.SendMessage(RoomNotificationComposer.SendBubble("voucher", "Acabas de recibir un premio voucher por el valor de " + Voucher.Value + " duckets. ¡Úsalos con cabeza, " + Session.GetHabbo().Username + ".", "")); } else if (Voucher.Type == VoucherType.DIAMOND) { Session.GetHabbo().Diamonds += Voucher.Value; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Diamonds, Voucher.Value, 5)); Session.SendMessage(RoomNotificationComposer.SendBubble("voucher", "Acabas de recibir un premio voucher por el valor de " + Voucher.Value + " diamantes. ¡Úsalos con cabeza, " + Session.GetHabbo().Username + ".", "")); } else if (Voucher.Type == VoucherType.HONOR) { Session.GetHabbo().GOTWPoints += Voucher.Value; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().GOTWPoints, Voucher.Value, 103)); Session.SendMessage(RoomNotificationComposer.SendBubble("voucher", "Acabas de recibir un premio voucher por el valor de " + Voucher.Value + " " + RavenEnvironment.GetDBConfig().DBData["seasonal.currency.name"] + ". ¡Úsalos con cabeza, " + Session.GetHabbo().Username + ".", "")); } else if (Voucher.Type == VoucherType.ITEM) { ItemData Item = null; if (!RavenEnvironment.GetGame().GetItemManager().GetItem((Voucher.Value), out Item)) { // No existe este ItemId. return; } Item GiveItem = ItemFactory.CreateSingleItemNullable(Item, Session.GetHabbo(), "", ""); if (GiveItem != null) { Session.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem); Session.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1)); Session.SendMessage(new FurniListUpdateComposer()); Session.SendMessage(RoomNotificationComposer.SendBubble("voucher", "Acabas de recibir un objeto raro desde un voucher. ¡Corre, " + Session.GetHabbo().Username + ", revisa tu inventario, hay algo nuevo al parecer!", "")); } Session.GetHabbo().GetInventoryComponent().UpdateItems(false); } Session.SendMessage(new VoucherRedeemOkComposer()); }