public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { Room Room = NeonEnvironment.GetGame().GetRoomManager().LoadRoom(Packet.PopInt()); if (Room == null || !Room.CheckRights(Session, true)) { return; } Session.SendMessage(new RoomSettingsDataComposer(Room)); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { Session.GetHabbo().AllowFriendRequests = !Session.GetHabbo().AllowFriendRequests; Session.SendWhisper("Ahora mismo " + (Session.GetHabbo().AllowFriendRequests == true ? "aceptas" : "no aceptas") + " nuevas peticiones de amistad"); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `block_newfriends` = '0' WHERE `id` = '" + Session.GetHabbo().Id + "'"); dbClient.RunQuery(); } }
public void Parse(GameClient Session, ClientPacket paket) { if (!Session.GetHabbo().lastPhotoPreview.Contains("-")) { return; } if (Session.GetHabbo().Duckets < 1) { Session.SendMessage(RoomNotificationComposer.SendBubble("camera", "Necesitas tener al menos 1 Ducket para adquirir una foto de Keko.", "")); return; } string roomId = Session.GetHabbo().lastPhotoPreview.Split('-')[0]; string timestamp = Session.GetHabbo().lastPhotoPreview.Split('-')[1]; string md5image = URLPost.GetMD5(Session.GetHabbo().lastPhotoPreview); if (!NeonEnvironment.GetGame().GetItemManager().GetItem(8763, out ItemData Item)) { return; } if (Item == null) { return; } Item photoPoster = ItemFactory.CreateSingleItemNullable(Item, Session.GetHabbo(), "{\"timestamp\":\"" + timestamp + "\", \"id\":\"" + md5image + "\"}", ""); if (photoPoster != null) { Session.GetHabbo().GetInventoryComponent().TryAddItem(photoPoster); Session.SendMessage(new FurniListAddComposer(photoPoster)); Session.SendMessage(new FurniListUpdateComposer()); Session.SendMessage(new FurniListNotificationComposer(photoPoster.Id, 1)); Session.GetHabbo().Duckets--; Session.SendMessage(new HabboActivityPointNotificationComposer(Session.GetHabbo().Duckets, -1)); NeonEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_CameraPhotoCount", 1); } Session.SendMessage(new BuyPhoto()); Session.GetHabbo().GetInventoryComponent().UpdateItems(false); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO items_camera VALUES (@id, '" + Session.GetHabbo().Id + "',@creator_name, '" + roomId + "','" + timestamp + "')"); dbClient.AddParameter("id", md5image); dbClient.AddParameter("creator_name", Session.GetHabbo().Username); dbClient.RunQuery(); } }
public static int GetAHopper(int CurRoom) { using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { int RoomId = 0; dbClient.SetQuery("SELECT room_id FROM items_hopper WHERE room_id <> @room ORDER BY room_id ASC LIMIT 1"); dbClient.AddParameter("room", CurRoom); RoomId = dbClient.getInteger(); return(RoomId); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!NeonEnvironment.GetGame().GetGroupManager().TryGetGroup(Packet.PopInt(), out Group Group)) { Session.SendMessage(new RoomNotificationComposer("Oops!", "¡No se ha encontrado este grupo!", "nothing", "")); return; } if (Group.CreatorId != Session.GetHabbo().Id&& !Session.GetHabbo().GetPermissions().HasRight("group_delete_override")) { Session.SendMessage(new RoomNotificationComposer("Oops!", "¡Sólo el dueño del grupo puede eliminarlo!", "nothing", "")); return; } if (Group.MemberCount >= NeonStaticGameSettings.GroupMemberDeletionLimit && !Session.GetHabbo().GetPermissions().HasRight("group_delete_limit_override")) { Session.SendMessage(new RoomNotificationComposer("Sucesso", "El grupo sobre pasa el límite de miembros permitido (" + NeonStaticGameSettings.GroupMemberDeletionLimit + "), contacta con uno de los miembros del equipo administrativo.", "nothing", "")); return; } Room Room = NeonEnvironment.GetGame().GetRoomManager().LoadRoom(Group.RoomId); if (Room != null) { Room.Group = null; Room.RoomData.Group = null;//Eu não tenho certeza se isso é necessário ou não, por causa da herança, mas tudo bem. } //Removê-lo do cache. NeonEnvironment.GetGame().GetGroupManager().DeleteGroup(Group.Id); //Agora as coisas. using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM `groups` WHERE `id` = '" + Group.Id + "'"); dbClient.RunQuery("DELETE FROM `group_memberships` WHERE `group_id` = '" + Group.Id + "'"); dbClient.RunQuery("DELETE FROM `group_requests` WHERE `group_id` = '" + Group.Id + "'"); dbClient.RunQuery("UPDATE `rooms` SET `group_id` = '0' WHERE `group_id` = '" + Group.Id + "' LIMIT 1"); dbClient.RunQuery("UPDATE `user_stats` SET `groupid` = '0' WHERE `groupid` = '" + Group.Id + "' LIMIT 1"); dbClient.RunQuery("DELETE FROM `items_groups` WHERE `group_id` = '" + Group.Id + "'"); } //Descarregá-lo pela última vez. NeonEnvironment.GetGame().GetRoomManager().UnloadRoom(Room, true); //Wulles Rainha Session.SendMessage(new RoomNotificationComposer("Sucesso", "¡Has borrado satisfactoriamente tu grupo!", "nothing", "")); return; }
public void Parse(GameClient Session, ClientPacket Packet) { int GroupForumId = Packet.PopInt(); if (!NeonEnvironment.GetGame().GetGroupForumManager().TryGetForum(GroupForumId, out GroupForum Forum)) { Session.SendNotification("Opss, Forum inexistente!"); return; } Session.SendMessage(new GetGroupForumsMessageEvent(Forum, Session)); }
public MarketplaceItemStatsComposer(int ItemId, int SpriteId, int AveragePrice) : base(ServerPacketHeader.MarketplaceItemStatsMessageComposer) { base.WriteInteger(AveragePrice);//Avg price in last 7 days. base.WriteInteger(NeonEnvironment.GetGame().GetCatalog().GetMarketplace().OfferCountForSprite(SpriteId)); base.WriteInteger(0); //No idea. base.WriteInteger(0); //No idea. base.WriteInteger(ItemId); base.WriteInteger(SpriteId); }
private void CloseConnection(ConnectionInformation Connection) { try { Connection.Dispose(); NeonEnvironment.GetGame().GetClientManager().DisposeConnection(Convert.ToInt32(Connection.getConnectionID())); } catch (Exception e) { Logging.LogException(e.ToString()); } }
public void Parse(GameClient Session, ClientPacket Packet) { int Id = Packet.PopInt(); Session.GetHabbo().FavoriteRooms.Remove(Id); Session.SendMessage(new UpdateFavouriteRoomComposer(Id, false)); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("DELETE FROM user_favorites WHERE user_id = " + Session.GetHabbo().Id + " AND room_id = " + Id + " LIMIT 1"); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } DataRow Row = null; int OfferId = Packet.PopInt(); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT furni_id, item_id, user_id, extra_data, offer_id, state, timestamp, limited_number, limited_stack FROM catalog_marketplace_offers WHERE offer_id = @OfferId LIMIT 1"); dbClient.AddParameter("OfferId", OfferId); Row = dbClient.getRow(); } if (Row == null) { Session.SendMessage(new MarketplaceCancelOfferResultComposer(OfferId, false)); return; } if (Convert.ToInt32(Row["user_id"]) != Session.GetHabbo().Id) { Session.SendMessage(new MarketplaceCancelOfferResultComposer(OfferId, false)); return; } if (!NeonEnvironment.GetGame().GetItemManager().GetItem(Convert.ToInt32(Row["item_id"]), out ItemData Item)) { Session.SendMessage(new MarketplaceCancelOfferResultComposer(OfferId, false)); return; } //NeonEnvironment.GetGame().GetCatalog().DeliverItems(Session, Item, 1, Convert.ToString(Row["extra_data"]), Convert.ToInt32(Row["limited_number"]), Convert.ToInt32(Row["limited_stack"]), Convert.ToInt32(Row["furni_id"])); Item GiveItem = ItemFactory.CreateSingleItem(Item, Session.GetHabbo(), Convert.ToString(Row["extra_data"]), Convert.ToString(Row["extra_data"]), Convert.ToInt32(Row["furni_id"]), Convert.ToInt32(Row["limited_number"]), Convert.ToInt32(Row["limited_stack"])); Session.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1)); Session.SendMessage(new FurniListUpdateComposer()); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("DELETE FROM `catalog_marketplace_offers` WHERE `offer_id` = @OfferId AND `user_id` = @UserId LIMIT 1"); dbClient.AddParameter("OfferId", OfferId); dbClient.AddParameter("UserId", Session.GetHabbo().Id); dbClient.RunQuery(); } Session.GetHabbo().GetInventoryComponent().UpdateItems(true); Session.SendMessage(new MarketplaceCancelOfferResultComposer(OfferId, true)); }
public ModeratorRoomChatlogComposer(Room Room) : base(ServerPacketHeader.ModeratorRoomChatlogMessageComposer) { base.WriteByte(1); base.WriteShort(2);//Count base.WriteString("roomName"); base.WriteByte(2); base.WriteString(Room.Name); base.WriteString("roomId"); base.WriteByte(1); base.WriteInteger(Room.Id); DataTable Table = null; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT * FROM `chatlogs` WHERE `room_id` = @rid ORDER BY `id` DESC LIMIT 250"); dbClient.AddParameter("rid", Room.Id); Table = dbClient.getTable(); } base.WriteShort(Table.Rows.Count); if (Table != null) { foreach (DataRow Row in Table.Rows) { UserCache Habbo = NeonEnvironment.GetGame().GetCacheManager().GenerateUser(Convert.ToInt32(Row["user_id"])); if (Habbo == null) { DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); dtDateTime = dtDateTime.AddSeconds(Convert.ToInt32(Row["timestamp"])).ToLocalTime(); base.WriteString(dtDateTime.Hour + ":" + dtDateTime.Minute); base.WriteInteger(-1); base.WriteString("Unknown User"); base.WriteString(string.IsNullOrWhiteSpace(Convert.ToString(Row["message"])) ? "*user sent a blank message*" : Convert.ToString(Row["message"])); base.WriteBoolean(false); } else { DateTime dDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); dDateTime = dDateTime.AddSeconds(Convert.ToInt32(Row["timestamp"])).ToLocalTime(); base.WriteString(dDateTime.Hour + ":" + dDateTime.Minute); base.WriteInteger(Habbo.Id); base.WriteString(Habbo.Username); base.WriteString(string.IsNullOrWhiteSpace(Convert.ToString(Row["message"])) ? "*user sent a blank message*" : Convert.ToString(Row["message"])); base.WriteBoolean(false); } } } }
public void Execute(GameClients.GameClient Session, Room Room, string[] Params) { if (Params[1] == "on") { NeonEnvironment.GetGame().GetClientManager().SendMessage(RoomNotificationComposer.SendBubble("DiceAlert", "¡El inter " + Session.GetHabbo().Username + " ha abierto los dados oficiales de Keko. Escribe :follow " + Session.GetHabbo().Username + "", "")); return; } else { Session.SendWhisper("Por favor escribe el mensaje a enviar"); } }
public void LogPM(int From_Id, int ToId, string Message) { int MyId = GetClient().GetHabbo().Id; DateTime Now = DateTime.Now; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO chatlogs_console VALUES (NULL, " + From_Id + ", " + ToId + ", @message, UNIX_TIMESTAMP())"); dbClient.AddParameter("message", Message); dbClient.RunQuery(); } }
public CampaignCalendarDataComposer(bool[] OpenedBoxes) : base(ServerPacketHeader.CampaignCalendarDataMessageComposer) { base.WriteString(NeonEnvironment.GetGame().GetCalendarManager().GetCampaignName()); // NOMBRE DE LA CAMPAÑA. base.WriteString("asd"); // NO TIENE FUNCIÓN EN LA SWF. base.WriteInteger(NeonEnvironment.GetGame().GetCalendarManager().GetUnlockDays()); // DÍAS ACTUAL (DESBLOQUEADOS). base.WriteInteger(NeonEnvironment.GetGame().GetCalendarManager().GetTotalDays()); // DÍAS TOTALES. int OpenedCount = 0; int LateCount = 0; for (int i = 0; i < OpenedBoxes.Length; i++) { if (OpenedBoxes[i]) { OpenedCount++; } else { // DÍA ACTUAL (EVITAMOS) if (NeonEnvironment.GetGame().GetCalendarManager().GetUnlockDays() == i) { continue; } LateCount++; } } // CAJAS ABIERTAS HASTA EL MOMENTO. base.WriteInteger(OpenedCount); for (int i = 0; i < OpenedBoxes.Length; i++) { if (OpenedBoxes[i]) { base.WriteInteger(i); } } // CAJAS QUE SE HAN PASADO DE FECHA. base.WriteInteger(LateCount); for (int i = 0; i < OpenedBoxes.Length; i++) { // DÍA ACTUAL (EVITAMOS) if (NeonEnvironment.GetGame().GetCalendarManager().GetUnlockDays() == i) { continue; } if (!OpenedBoxes[i]) { base.WriteInteger(i); } } }
public static Point HandleMovementDir(Point newCoordinate, MovementDirection state, int newRotation) { Point newPoint = new Point(newCoordinate.X, newCoordinate.Y); switch (state) { case MovementDirection.UP: case MovementDirection.DOWN: case MovementDirection.LEFT: case MovementDirection.RIGHT: case MovementDirection.DOWN_RIGHT: case MovementDirection.DOWN_LEFT: case MovementDirection.UP_RIGHT: case MovementDirection.UP_LEFT: { HandleMovementDir(ref newPoint, state); break; } case MovementDirection.RANDOM: { switch (NeonEnvironment.GetRandomNumber(1, 5)) { case 1: { HandleMovementDir(ref newPoint, MovementDirection.UP); break; } case 2: { HandleMovementDir(ref newPoint, MovementDirection.DOWN); break; } case 3: { HandleMovementDir(ref newPoint, MovementDirection.LEFT); break; } case 4: { HandleMovementDir(ref newPoint, MovementDirection.RIGHT); break; } } break; } } return(newPoint); }
public void Execute(GameClients.GameClient Session, Room Room, string[] Params) { Session.GetHabbo().DisableForcedEffects = !Session.GetHabbo().DisableForcedEffects; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `disable_forced_effects` = @DisableForcedEffects WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); dbClient.AddParameter("DisableForcedEffects", (Session.GetHabbo().DisableForcedEffects == true ? 1 : 0).ToString()); dbClient.RunQuery(); } Session.SendWhisper("Forced FX mode is now " + (Session.GetHabbo().DisableForcedEffects == true ? "disabled!" : "enabled!")); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int GroupId = Packet.PopInt(); bool NewWindow = Packet.PopBoolean(); if (!NeonEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group Group)) { return; } Session.SendMessage(new GroupInfoComposer(Group, Session, NewWindow)); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Por favor escribe el mensaje a enviar"); return; } string Message = CommandManager.MergeParams(Params, 1); NeonEnvironment.GetGame().GetClientManager().SendMessage(RoomNotificationComposer.SendBubble("DJAlertNEW", "¡DJ " + Session.GetHabbo().Username + " está emitiendo en vivo! Sintoniza RadioFM ahora mismo y disfruta al máximo.", "")); return; }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { bool Status = Packet.PopBoolean(); Session.GetHabbo().AllowMessengerInvites = Status; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `ignore_invites` = @MessengerInvites WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); dbClient.AddParameter("MessengerInvites", NeonEnvironment.BoolToEnum(Status)); dbClient.RunQuery(); } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { Session.GetHabbo().AllowGifts = !Session.GetHabbo().AllowGifts; Session.SendWhisper("Usted " + (Session.GetHabbo().AllowGifts == true ? "ahora" : "ya no") + " acepta regalos."); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `allow_gifts` = @AllowGifts WHERE `id` = '" + Session.GetHabbo().Id + "'"); dbClient.AddParameter("AllowGifts", NeonEnvironment.BoolToEnum(Session.GetHabbo().AllowGifts)); dbClient.RunQuery(); } }
public void Execute(GameClient Session, Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Ingrese el nombre de usuario de la persona con la que desea tener relaciones sexuales."); return; } GameClient TargetClient = NeonEnvironment.GetGame().GetClientManager().GetClientByUsername(Params[1]); if (TargetClient == null) { Session.SendWhisper("Esto es como necrofilia >:("); return; } RoomUser TargetUser = Room.GetRoomUserManager().GetRoomUserByHabbo(TargetClient.GetHabbo().Id); if (TargetUser == null) { Session.SendWhisper("Se produjo un error al encontrar a ese usuario, tal vez están fuera de línea o no en esta sala."); } if (TargetClient.GetHabbo().Username == Session.GetHabbo().Username) { Session.SendWhisper("El nombre de esto es masturbación. El amor propio es todo!"); return; } RoomUser ThisUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (ThisUser == null) { return; } if (!((Math.Abs(TargetUser.X - ThisUser.X) >= 2) || (Math.Abs(TargetUser.Y - ThisUser.Y) >= 2))) { Room.SendMessage(new ChatComposer(ThisUser.VirtualId, "*Gira " + Params[1] + " y comienza a tener sexo con ellos.*", 0, ThisUser.LastBubble)); System.Threading.Thread.Sleep(1000); Room.SendMessage(new ChatComposer(TargetUser.VirtualId, "Se inclina y comienza a tener relaciones sexuales con " + Session.GetHabbo().Username + "*", 0, ThisUser.LastBubble)); System.Threading.Thread.Sleep(1000); Room.SendMessage(new ChatComposer(ThisUser.VirtualId, "Golpea " + Params[1] + " culo y jalar el cabello*", 0, ThisUser.LastBubble)); System.Threading.Thread.Sleep(1000); Room.SendMessage(new ChatComposer(TargetUser.VirtualId, "Hay algo extraño en el aire, y hay algo mojado en el piso.", 0, ThisUser.LastBubble)); System.Threading.Thread.Sleep(1000); Room.SendMessage(new ChatComposer(TargetUser.VirtualId, "Se derrumba en el suelo, cansado y agotado..", 0, ThisUser.LastBubble)); TargetUser.Statusses.Add("lay", "0.1"); TargetUser.isLying = true; TargetUser.UpdateNeeded = true; } else { Session.SendWhisper("Nadie tiene un pene de ese tamaño, acércate."); return; } }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { Session.GetHabbo().AllowMimic = !Session.GetHabbo().AllowMimic; Session.SendWhisper("Usted " + (Session.GetHabbo().AllowMimic == true ? "ahora" : "ya no") + " protege su look."); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `allow_mimic` = @AllowMimic WHERE `id` = '" + Session.GetHabbo().Id + "'"); dbClient.AddParameter("AllowMimic", NeonEnvironment.BoolToEnum(Session.GetHabbo().AllowMimic)); dbClient.RunQuery(); } }
public void LogCommand(int UserId, string Data, string MachineId, string Username) { using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `logs_client_staff` (`user_id`,`data_string`,`machine_id`, `timestamp`) VALUES (@UserId,@Data,@MachineId,@Timestamp)"); dbClient.AddParameter("UserId", UserId); dbClient.AddParameter("Data", Data); dbClient.AddParameter("MachineId", MachineId); dbClient.AddParameter("Timestamp", NeonEnvironment.GetUnixTimestamp()); dbClient.RunQuery(); } }
/// <summary> /// Creates a new AvatarEffect with the specified details. /// </summary> /// <param name="Habbo"></param> /// <param name="SpriteId"></param> /// <param name="Duration"></param> /// <returns></returns> public static AvatarEffect CreateNullable(Habbo Habbo, int SpriteId, double Duration) { using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `user_effects` (`user_id`,`effect_id`,`total_duration`,`is_activated`,`activated_stamp`,`quantity`) VALUES(@uid,@sid,@dur,'0',0,1)"); dbClient.AddParameter("uid", Habbo.Id); dbClient.AddParameter("sid", SpriteId); dbClient.AddParameter("dur", Duration); return(new AvatarEffect(Convert.ToInt32(dbClient.InsertQuery()), Habbo.Id, SpriteId, Duration, false, 0, 1)); } }
public void Parse(GameClient Session, ClientPacket Packet) { bool FocusPreference = Packet.PopBoolean(); Session.GetHabbo().FocusPreference = FocusPreference; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `users` SET `focus_preference` = @focusPreference WHERE `id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); dbClient.AddParameter("focusPreference", NeonEnvironment.BoolToEnum(FocusPreference)); dbClient.RunQuery(); } }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } Dictionary <int, string> Badges = new Dictionary <int, string>(); foreach (RoomUser User in Room.GetRoomUserManager().GetRoomUsers().ToList()) { if (User.IsBot || User.IsPet || User.GetClient() == null || User.GetClient().GetHabbo() == null) { continue; } if (User.GetClient().GetHabbo().GetStats().FavouriteGroupId == 0 || Badges.ContainsKey(User.GetClient().GetHabbo().GetStats().FavouriteGroupId)) { continue; } if (!NeonEnvironment.GetGame().GetGroupManager().TryGetGroup(User.GetClient().GetHabbo().GetStats().FavouriteGroupId, out Group Group)) { continue; } if (!Badges.ContainsKey(Group.Id)) { Badges.Add(Group.Id, Group.Badge); } } if (Session.GetHabbo().GetStats().FavouriteGroupId > 0) { if (NeonEnvironment.GetGame().GetGroupManager().TryGetGroup(Session.GetHabbo().GetStats().FavouriteGroupId, out Group Group)) { if (!Badges.ContainsKey(Group.Id)) { Badges.Add(Group.Id, Group.Badge); } } } Room.SendMessage(new HabboGroupBadgesComposer(Badges)); Session.SendMessage(new HabboGroupBadgesComposer(Badges)); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().GetMessenger() == null) { return; } if (Session.GetHabbo().GetMessenger().RequestBuddy(Packet.PopString())) { NeonEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SOCIAL_FRIEND); } }
public override void OnUserSay(RoomUser User, string Message) { if (User == null || User.GetClient() == null || User.GetClient().GetHabbo() == null) { return; } if (Gamemap.TileDistance(GetRoomUser().X, GetRoomUser().Y, User.X, User.Y) > 8) { return; } long nowTime = NeonEnvironment.CurrentTimeMillis(); long timeBetween = nowTime - User.GetClient().GetHabbo()._lastTimeUsedHelpCommand; if (timeBetween < 60000 && Message.Length == 5) { User.GetClient().SendMessage(RoomNotificationComposer.SendBubble("abuse", "Espera al menos 1 minuto para volver a usar el sistema de revisión de rares.", "")); return; } User.GetClient().GetHabbo()._lastTimeUsedHelpCommand = nowTime; string Rare = Message.Split(' ')[2]; string Username = Message.Split(' ')[4]; GameClient Target = NeonEnvironment.GetGame().GetClientManager().GetClientByUsername(Message.Split(' ')[4]); if (Target == null) { GetRoomUser().Chat("Oops, no se ha encontrado a esta persona, asegúrate de escribir bien su nombre.", false, 34); return; } int itemstotal = 0; using (IQueryAdapter query = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { query.SetQuery("SELECT COUNT(*) FROM items i LEFT JOIN furniture f ON(i.base_item = f.id) WHERE f.item_name = @itemsito AND i.user_id = @id AND f.is_rare = '1'"); query.AddParameter("id", Target.GetHabbo().Id); query.AddParameter("itemsito", Message.Split(' ')[2]); itemstotal = query.getInteger(); } if (itemstotal == 0) { GetRoomUser().Chat("<font color=\"#DF3A01\"><b>" + Username + "</b> no tiene ningún " + Rare + ", por lo que no puede apostar ningun@.</font>", false, 33); return; } GetRoomUser().Chat("<font color=\"#DF3A01\"><b>" + Username + "</b> tiene un total de <b>" + itemstotal + "</b> " + Rare + "s.</font>", false, 33); }
public void Execute(GameClient Session, Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Introduce el nombre del usuario que deseas ver revisar su información."); return; } DataRow UserData = null; string Username = Params[1]; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `username` FROM users WHERE `username` = @Username LIMIT 1"); dbClient.AddParameter("Username", Username); UserData = dbClient.getRow(); } if (UserData == null) { Session.SendMessage(new RoomCustomizedAlertComposer("No existe ningún usuario con el nombre " + Username + ".")); return; } GameClient TargetClient = NeonEnvironment.GetGame().GetClientManager().GetClientByUsername(Username); StringBuilder HabboInfo = new StringBuilder(); HabboInfo.Append("Estos son los últimos mensajes del usuario sospechoso, recuerda revisar siempre estos casos antes de proceder a banear a menos que sea un caso evidente de spam.\n\n"); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT `message` FROM `chatlogs_console` WHERE `user_id` = '" + TargetClient.GetHabbo().Id + "' ORDER BY `id` DESC LIMIT 10"); DataTable GetLogs = dbClient.getTable(); if (GetLogs == null) { Session.SendMessage(new RoomCustomizedAlertComposer("Lamentablemente el usuario que has solicitado no tiene mensajes en el registro.")); } else if (GetLogs != null) { int Number = 11; foreach (DataRow Log in GetLogs.Rows) { Number -= 1; HabboInfo.Append("<font size ='8' color='#B40404'><b>[" + Number + "]</b></font>" + " " + Convert.ToString(Log["message"]) + "\r"); } } Session.SendMessage(new RoomNotificationComposer("Últimos mensajes de " + Username + ":", (HabboInfo.ToString()), "usr/body/" + Username + "", "", "")); } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) { return; } if (!NeonEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room Room)) { return; } if (!Room.CheckRights(Session, true)) { return; } int Amount = Packet.PopInt(); for (int i = 0; (i < Amount && i <= 100); i++) { int UserId = Packet.PopInt(); if (UserId > 0 && Room.UsersWithRights.Contains(UserId)) { RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(UserId); if (User != null && !User.IsBot) { User.RemoveStatus("flatctrl 1"); User.UpdateNeeded = true; User.GetClient().SendMessage(new YouAreControllerComposer(0)); } using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("DELETE FROM `room_rights` WHERE `user_id` = @uid AND `room_id` = @rid LIMIT 1"); dbClient.AddParameter("uid", UserId); dbClient.AddParameter("rid", Room.Id); dbClient.RunQuery(); } if (Room.UsersWithRights.Contains(UserId)) { Room.UsersWithRights.Remove(UserId); } Session.SendMessage(new FlatControllerRemovedComposer(Room, UserId)); } } }