public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session.GetHabbo().TimeMuted > 0) { Session.SendNotification("Oops, estas muteado - No puedes enviar invitaciones a salas"); return; } int Amount = Packet.PopInt(); if (Amount > 500) { return; // don't send at all } List <int> Targets = new List <int>(); for (int i = 0; i < Amount; i++) { int uid = Packet.PopInt(); if (i < 100) // limit to 100 people, keep looping until we fulfil the request though { Targets.Add(uid); } } string Message = StringCharFilter.Escape(Packet.PopString()); if (Message.Length > 121) { Message = Message.Substring(0, 121); } if (Message.Contains("º;") || Message.Contains("º") || Message.Contains("&#")) { Session.SendMessage(new MassEventComposer("habbopages/spammer.txt")); return; } if (!Session.GetHabbo().GetPermissions().HasRight("word_filter_override") && NeonEnvironment.GetGame().GetChatManager().GetFilter().IsUnnaceptableWord(Message, out string word)) { Session.GetHabbo().BannedPhraseCount++; if (Session.GetHabbo().BannedPhraseCount >= 1) { Session.GetHabbo().TimeMuted = 25; Session.SendNotification("¡Has sido silenciad@ mientras un moderador revisa tu caso, al parecer nombraste un hotel! Aviso " + Session.GetHabbo().BannedPhraseCount + "/3"); NeonEnvironment.GetGame().GetClientManager().StaffAlert1(new RoomInviteComposer(int.MinValue, "Spammer: " + Session.GetHabbo().Username + " / Frase: " + Message + " / Palabra: " + word.ToUpper() + " / Fase: " + Session.GetHabbo().BannedPhraseCount + " / 10.")); NeonEnvironment.GetGame().GetClientManager().StaffAlert2(new RoomNotificationComposer("Alerta de publicista:", "<b><font color=\"#B40404\">Por favor, recuerda investigar bien antes de recurrir a una sanción.</font></b><br><br>Palabra: <b>" + word.ToUpper() + "</b>.<br><br><b>Frase:</b><br><i>" + Message + "</i>.<br><br><b>Tipo:</b><br>Chat de sala.\r\n" + "<b>Usuario: " + Session.GetHabbo().Username + "</b><br><b>Secuencia:</b> " + Session.GetHabbo().BannedPhraseCount + "/ 10.", "foto", "Investigar", "event:navigator/goto/" + Session.GetHabbo().CurrentRoomId)); return; } if (Session.GetHabbo().BannedPhraseCount >= 10) { NeonEnvironment.GetGame().GetModerationManager().BanUser("System", HabboHotel.Moderation.ModerationBanType.USERNAME, Session.GetHabbo().Username, "Baneado por hacer Spam con la Frase (" + Message + ")", (NeonEnvironment.GetUnixTimestamp() + 78892200)); Session.Disconnect(); return; } return; } foreach (int UserId in Targets) { if (!Session.GetHabbo().GetMessenger().FriendshipExists(UserId)) { continue; } GameClient Client = NeonEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId); if (Client == null || Client.GetHabbo() == null || Client.GetHabbo().AllowMessengerInvites == true || Client.GetHabbo().AllowConsoleMessages == false) { continue; } Client.SendMessage(new RoomInviteComposer(Session.GetHabbo().Id, Message)); Client.SendMessage(RoomNotificationComposer.SendBubble("eventoxx", "" + Session.GetHabbo().Username + " te invita a un nuevo evento en su sala. Su mensaje es " + Message + ".", "event:navigator/goto/" + Session.GetHabbo().CurrentRoomId)); } using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `chatlogs_console_invitations` (`user_id`,`message`,`timestamp`) VALUES ('" + Session.GetHabbo().Id + "', @message, UNIX_TIMESTAMP())"); dbClient.AddParameter("message", Message); dbClient.RunQuery(); } }
private bool CanChangeName(Habbo Habbo) { if (Habbo.Rank == 1 && Habbo.VIPRank == 0 && Habbo.LastNameChange == 0) { return(true); } else if (Habbo.Rank == 2 && Habbo.VIPRank == 1 && (Habbo.LastNameChange == 0 || (NeonEnvironment.GetUnixTimestamp() + 604800) > Habbo.LastNameChange)) { return(true); } else if (Habbo.Rank == 1 && Habbo.VIPRank == 2 && (Habbo.LastNameChange == 0 || (NeonEnvironment.GetUnixTimestamp() + 86400) > Habbo.LastNameChange)) { return(true); } else if (Habbo.Rank == 1 && Habbo.VIPRank == 3) { return(true); } else if (Habbo.GetPermissions().HasRight("mod_tool")) { return(true); } return(false); }
public int GetExpireSeconds() { int i = ExpireStamp - (int)NeonEnvironment.GetUnixTimestamp(); return(i > 0 ? i : 0); }
public MarketPlaceOwnOffersComposer(int UserId) : base(ServerPacketHeader.MarketPlaceOwnOffersMessageComposer) { int i = 0; DataTable table = null; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT timestamp, state, offer_id, item_type, sprite_id, total_price, limited_number, limited_stack FROM catalog_marketplace_offers WHERE user_id = '" + UserId + "'"); table = dbClient.getTable(); dbClient.SetQuery("SELECT SUM(asking_price) FROM catalog_marketplace_offers WHERE state = '2' AND user_id = '" + UserId + "'"); i = dbClient.getInteger(); base.WriteInteger(i); if (table != null) { base.WriteInteger(table.Rows.Count); foreach (DataRow row in table.Rows) { int num2 = Convert.ToInt32(Math.Floor((double)(((((double)row["timestamp"]) + 172800.0) - NeonEnvironment.GetUnixTimestamp()) / 60.0))); int num3 = int.Parse(row["state"].ToString()); if ((num2 <= 0) && (num3 != 2)) { num3 = 3; num2 = 0; } base.WriteInteger(Convert.ToInt32(row["offer_id"])); base.WriteInteger(num3); base.WriteInteger(1); base.WriteInteger(Convert.ToInt32(row["sprite_id"])); base.WriteInteger(256); base.WriteString(""); base.WriteInteger(Convert.ToInt32(row["limited_number"])); base.WriteInteger(Convert.ToInt32(row["limited_stack"])); base.WriteInteger(Convert.ToInt32(row["total_price"])); base.WriteInteger(num2); base.WriteInteger(Convert.ToInt32(row["sprite_id"])); } } else { base.WriteInteger(0); } } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (User == null) { return; } string NewName = Packet.PopString(); string OldName = Session.GetHabbo().Username; if (NewName == OldName) { Session.GetHabbo().ChangeName(OldName); Session.SendMessage(new UpdateUsernameComposer(NewName)); return; } if (!CanChangeName(Session.GetHabbo())) { Session.SendNotification("Oops, al parecer en este momento no puede cambiar su nombre!"); return; } bool InUse = false; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT COUNT(0) FROM `users` WHERE `username` = @name LIMIT 1"); dbClient.AddParameter("name", NewName); InUse = dbClient.getInteger() == 1; } char[] Letters = NewName.ToLower().ToCharArray(); string AllowedCharacters = "abcdefghijklmnopqrstuvwxyz.,_-;:?!1234567890"; foreach (char Chr in Letters) { if (!AllowedCharacters.Contains(Chr)) { return; } } if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool") && NewName.ToLower().Contains("mod") || NewName.ToLower().Contains("adm") || NewName.ToLower().Contains("admin") || NewName.ToLower().Contains("m0d") || NewName.ToLower().Contains("mob") || NewName.ToLower().Contains("m0b")) { return; } else if (NewName.Length > 15) { return; } else if (NewName.Length < 3) { return; } else if (InUse) { return; } else { if (!NeonEnvironment.GetGame().GetClientManager().UpdateClientUsername(Session, OldName, NewName)) { Session.SendNotification("Oops! ha ocurrido un problema mientras se actualizaba su nuevo nombre."); return; } Session.GetHabbo().ChangingName = false; Room.GetRoomUserManager().RemoveUserFromRoom(Session, true, false); Session.GetHabbo().ChangeName(NewName); Session.GetHabbo().GetMessenger().OnStatusChanged(true); Session.SendMessage(new UpdateUsernameComposer(NewName)); Room.SendMessage(new UserNameChangeComposer(Room.Id, User.VirtualId, NewName)); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `logs_client_namechange` (`user_id`,`new_name`,`old_name`,`timestamp`) VALUES ('" + Session.GetHabbo().Id + "', @name, '" + OldName + "', '" + NeonEnvironment.GetUnixTimestamp() + "')"); dbClient.AddParameter("name", NewName); dbClient.RunQuery(); } ICollection <RoomData> Rooms = Session.GetHabbo().UsersRooms; foreach (RoomData Data in Rooms) { if (Data == null) { continue; } Data.OwnerName = NewName; } foreach (Room UserRoom in NeonEnvironment.GetGame().GetRoomManager().GetRooms().ToList()) { if (UserRoom == null || UserRoom.RoomData.OwnerName != NewName) { continue; } UserRoom.OwnerName = NewName; UserRoom.RoomData.OwnerName = NewName; UserRoom.SendMessage(new RoomInfoUpdatedComposer(UserRoom.RoomId)); } NeonEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Session, "ACH_Name", 1); Session.SendMessage(new RoomForwardComposer(Room.Id)); } }
public void OnTrigger(GameClient Session, Item Item, int Request, bool HasRights) { if (Session == null) { return; } RoomUser User = Item.GetRoom().GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (Item.InteractingUser2 != User.UserId) { Item.InteractingUser2 = User.UserId; } if (User == null) { return; } if (Item.GetBaseItem().InteractionType == InteractionType.ONE_WAY_GATE) { if (User.Coordinate != Item.SquareInFront && User.CanWalk) { User.MoveTo(Item.SquareInFront); return; } if (!Item.GetRoom().GetGameMap().ValidTile(Item.SquareBehind.X, Item.SquareBehind.Y) || !Item.GetRoom().GetGameMap().CanWalk(Item.SquareBehind.X, Item.SquareBehind.Y, false) || !Item.GetRoom().GetGameMap().SquareIsOpen(Item.SquareBehind.X, Item.SquareBehind.Y, false)) { return; } if ((User.LastInteraction - NeonEnvironment.GetUnixTimestamp() < 0) && User.InteractingGate && User.GateId == Item.Id) { User.InteractingGate = false; User.GateId = 0; } if (!Item.GetRoom().GetGameMap().CanWalk(Item.SquareBehind.X, Item.SquareBehind.Y, User.AllowOverride)) { return; } if (Item.InteractingUser == 0) { User.InteractingGate = true; User.GateId = Item.Id; Item.InteractingUser = User.HabboId; User.CanWalk = false; if (User.IsWalking && (User.GoalX != Item.SquareInFront.X || User.GoalY != Item.SquareInFront.Y)) { User.ClearMovement(true); } User.AllowOverride = true; User.MoveTo(Item.Coordinate); Item.RequestUpdate(4, true); } } }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().GetPermissions().HasRight("mod_soft_ban")) { return; } int UserId = Packet.PopInt(); string Message = Packet.PopString(); double Length = (Packet.PopInt() * 3600) + NeonEnvironment.GetUnixTimestamp(); string Unknown1 = Packet.PopString(); string Unknown2 = Packet.PopString(); bool IPBan = Packet.PopBoolean(); bool MachineBan = Packet.PopBoolean(); if (MachineBan) { IPBan = false; } Habbo Habbo = NeonEnvironment.GetHabboById(UserId); if (Habbo == null) { Session.SendWhisper("Ocurrio un error mientras se buscaba este usuario en la base de datos", 34); return; } if (Habbo.GetPermissions().HasRight("mod_tool") && !Session.GetHabbo().GetPermissions().HasRight("mod_ban_any")) { Session.SendWhisper("Oops, no se puede banear a este usuario", 34); return; } Message = (Message != null ? Message : "sin razon."); string Username = Habbo.Username; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `bans` = `bans` + '1' WHERE `user_id` = '" + Habbo.Id + "' LIMIT 1"); } if (IPBan == false && MachineBan == false) { NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.USERNAME, Habbo.Username, Message, Length); } else if (IPBan == true) { NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.IP, Habbo.Username, Message, Length); } else if (MachineBan == true) { NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.IP, Habbo.Username, Message, Length); NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.USERNAME, Habbo.Username, Message, Length); NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.MACHINE, Habbo.Username, Message, Length); } GameClient TargetClient = NeonEnvironment.GetGame().GetClientManager().GetClientByUsername(Habbo.Username); if (TargetClient != null) { TargetClient.Disconnect(); } }
public void SendInstantMessage(int ToId, string Message) { if (ToId == 0) { return; } if (GetClient() == null) { return; } if (GetClient().GetHabbo() == null) { return; } #region Custom Chats List <Groups.Group> Group = NeonEnvironment.GetGame().GetGroupManager().GetGroupsForUser(GetClient().GetHabbo().Id).Where(c => c.HasChat).ToList(); foreach (Groups.Group gp in Group) { if (ToId == int.MinValue + gp.Id) // int.MaxValue { //NeonEnvironment.GetGame().GetClientManager().SendMessaget(new FuckingConsoleMessageComposer(ToId, Message, GetClient().GetHabbo().Username + "/" + GetClient().GetHabbo().Look + "/" + GetClient().GetHabbo().Id), GetClient().GetHabbo().Id); NeonEnvironment.GetGame().GetClientManager().GroupChatAlert(new FuckingConsoleMessageComposer(int.MinValue + gp.Id, Message, GetClient().GetHabbo().Username + "/" + GetClient().GetHabbo().Look + "/" + GetClient().GetHabbo().Id), gp, GetClient().GetHabbo().Id); return; } } if (GetClient().GetHabbo().Rank >= 5 && ToId == int.MinValue) // int.MaxValue { NeonEnvironment.GetGame().GetClientManager().StaffAlert(new FuckingConsoleMessageComposer(ToId, Message, GetClient().GetHabbo().Username + "/" + GetClient().GetHabbo().Look + "/" + GetClient().GetHabbo().Id), GetClient().GetHabbo().Id); return; } else if (GetClient().GetHabbo()._guidelevel >= 1 && ToId == (int.MinValue + 1)) { NeonEnvironment.GetGame().GetClientManager().GuideAlert(new FuckingConsoleMessageComposer(ToId, Message, GetClient().GetHabbo().Username + "/" + GetClient().GetHabbo().Look + "/" + GetClient().GetHabbo().Id), GetClient().GetHabbo().Id); return; } #endregion if (!FriendshipExists(ToId)) { GetClient().SendMessage(new InstantMessageErrorComposer(MessengerMessageErrors.YOUR_NOT_FRIENDS, ToId)); return; } if (GetClient().GetHabbo().MessengerSpamCount >= 12) { GetClient().GetHabbo().MessengerSpamTime = NeonEnvironment.GetUnixTimestamp() + 60; GetClient().GetHabbo().MessengerSpamCount = 0; GetClient().SendNotification("You cannot send a message, you have flooded the console.\n\nYou can send a message in 60 seconds."); return; } else if (GetClient().GetHabbo().MessengerSpamTime > NeonEnvironment.GetUnixTimestamp()) { double Time = GetClient().GetHabbo().MessengerSpamTime - NeonEnvironment.GetUnixTimestamp(); GetClient().SendNotification("You cannot send a message, you have flooded the console.\n\nYou can send a message in " + Time + " seconds."); return; } GetClient().GetHabbo().MessengerSpamCount++; GameClient Client = NeonEnvironment.GetGame().GetClientManager().GetClientByUserID(ToId); if (Client == null || Client.GetHabbo() == null || Client.GetHabbo().GetMessenger() == null) { using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `messenger_offline_messages` (`to_id`, `from_id`, `message`, `timestamp`) VALUES (@tid, @fid, @msg, UNIX_TIMESTAMP())"); dbClient.AddParameter("tid", ToId); dbClient.AddParameter("fid", GetClient().GetHabbo().Id); dbClient.AddParameter("msg", Message); dbClient.RunQuery(); } return; } if (!Client.GetHabbo().AllowConsoleMessages || Client.GetHabbo().MutedUsers.Contains(GetClient().GetHabbo().Id)) { GetClient().SendMessage(new InstantMessageErrorComposer(MessengerMessageErrors.FRIEND_BUSY, ToId)); return; } if (GetClient().GetHabbo().TimeMuted > 0) { GetClient().SendMessage(new InstantMessageErrorComposer(MessengerMessageErrors.YOUR_MUTED, ToId)); return; } if (Client.GetHabbo().TimeMuted > 0) { GetClient().SendMessage(new InstantMessageErrorComposer(MessengerMessageErrors.FRIEND_MUTED, ToId)); } if (string.IsNullOrEmpty(Message)) { return; } Client.SendMessage(new NewConsoleMessageComposer(_userId, Message)); LogPM(_userId, ToId, Message); }
public void BanUser(string Mod, ModerationBanType Type, string BanValue, string Reason, double ExpireTimestamp) { string BanType = (Type == ModerationBanType.IP ? "ip" : Type == ModerationBanType.MACHINE ? "machine" : "user"); using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("REPLACE INTO `bans` (`bantype`, `value`, `reason`, `expire`, `added_by`,`added_date`) VALUES ('" + BanType + "', '" + BanValue + "', @reason, " + ExpireTimestamp + ", '" + Mod + "', '" + NeonEnvironment.GetUnixTimestamp() + "');"); dbClient.AddParameter("reason", Reason); dbClient.RunQuery(); } if (Type == ModerationBanType.MACHINE || Type == ModerationBanType.USERNAME) { if (!_bans.ContainsKey(BanValue)) { _bans.Add(BanValue, new ModerationBan(Type, BanValue, Reason, ExpireTimestamp)); } } }
internal bool IsValid() { return(TimeExpire > NeonEnvironment.GetUnixTimestamp()); }
public int GetUnlockDays() { int Time = (int)(NeonEnvironment.GetUnixTimestamp() - StartUnix); return(((Time / 60) / 60) / 24); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } if (Session.GetHabbo().InRoom) { if (!NeonEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room OldRoom)) { return; } if (OldRoom.GetRoomUserManager() != null) { OldRoom.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); } } if (!Session.GetHabbo().BlnInv) { if (!Room.GetRoomUserManager().AddAvatarToRoom(Session)) { Room.GetRoomUserManager().RemoveUserFromRoom(Session, false, false); return;//TODO: Remove? } } else { Session.GetHabbo().BlnInv = !Session.GetHabbo().BlnInv; } Room.SendObjects(Session); try { if (Session.GetHabbo().GetMessenger() != null) { Session.GetHabbo().GetMessenger().OnStatusChanged(true); } } catch { } if (Session.GetHabbo().GetStats().QuestID > 0) { NeonEnvironment.GetGame().GetQuestManager().QuestReminder(Session, Session.GetHabbo().GetStats().QuestID); } Session.SendMessage(new RoomEntryInfoComposer(Room.RoomId, Room.CheckRights(Session, true))); Session.SendMessage(new RoomVisualizationSettingsComposer(Room.WallThickness, Room.FloorThickness, NeonEnvironment.EnumToBool(Room.Hidewall.ToString()))); RoomUser ThisUser = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Username); if (ThisUser != null && Session.GetHabbo().PetId == 0) { Room.SendMessage(new UserChangeComposer(ThisUser, false)); } if (!Session.GetHabbo().Effects().HasEffect(0) && Session.GetHabbo().Rank < 2) { Session.GetHabbo().Effects().ApplyEffect(0); } Session.SendMessage(new RoomEventComposer(Room.RoomData, Room.RoomData.Promotion)); if (Session.GetHabbo().Rank > 7 && !Session.GetHabbo().StaffOk) { Session.SendMessage(new GnomeBoxComposer(0)); } if (Room.poolQuestion != string.Empty) { Session.SendMessage(new QuickPollMessageComposer(Room.poolQuestion)); if (Room.yesPoolAnswers.Contains(Session.GetHabbo().Id) || Room.noPoolAnswers.Contains(Session.GetHabbo().Id)) { Session.SendMessage(new QuickPollResultsMessageComposer(Room.yesPoolAnswers.Count, Room.noPoolAnswers.Count)); } } if (Room.GetWired() != null) { Room.GetWired().TriggerEvent(WiredBoxType.TriggerRoomEnter, Session.GetHabbo()); } if (Room.ForSale && Room.SalePrice > 0 && (Room.GetRoomUserManager().GetRoomUserByHabbo(Room.OwnerName) != null)) { Session.SendWhisper("Esta Sala esta en venta, en " + Room.SalePrice + " Duckets. Escribe :buyroom si deseas comprarla!"); } else if (Room.ForSale && Room.GetRoomUserManager().GetRoomUserByHabbo(Room.OwnerName) == null) { foreach (RoomUser _User in Room.GetRoomUserManager().GetRoomUsers()) { if (_User.GetClient() != null && _User.GetClient().GetHabbo() != null && _User.GetClient().GetHabbo().Id != Session.GetHabbo().Id) { _User.GetClient().SendWhisper("Esta Sala ya no se encuentra a la venta."); } } Room.ForSale = false; Room.SalePrice = 0; } if (NeonEnvironment.GetGame().GetPollManager().TryGetPollForRoom(Room.Id, out RoomPoll poll)) { if (poll.Type == RoomPollType.Poll) { Session.SendMessage(new PollOfferComposer(poll)); } } if (NeonEnvironment.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { Session.SendMessage(new FloodControlComposer((int)Session.GetHabbo().FloodTime - (int)NeonEnvironment.GetUnixTimestamp())); } }
public void Parse(GameClient Session, ClientPacket Packet) { int int1 = Packet.PopInt(); // View Order ID int int2 = Packet.PopInt(); // Forum List Index int int3 = Packet.PopInt(); //Forum List Length /* * My groups = 2 * Most Active = 0 * Most views = 1 */ List <GroupForum> forums = new List <GroupForum>(); DataTable table; switch (int1) { case 2: List <GroupForum> Forums = NeonEnvironment.GetGame().GetGroupForumManager().GetForumsByUserId(Session.GetHabbo().Id); if (Forums.Count - 1 >= int2) { Forums = Forums.GetRange(int2, Math.Min(int3, Forums.Count)); } Session.SendMessage(new ForumsListDataComposer(Forums, Session, int1, int2, int3)); return; case 0: using (Database.Interfaces.IQueryAdapter adap = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { adap.SetQuery("SELECT g.id FROM groups as g INNER JOIN group_forums_thread_posts as posts, group_forums_threads as threads WHERE posts.thread_id = threads.id AND @now - posts.`timestamp`<= @sdays AND threads.forum_id = g.id GROUP BY g.id ORDER BY posts.`timestamp` DESC LIMIT @index, @limit"); adap.AddParameter("limit", int3); adap.AddParameter("index", int2); adap.AddParameter("now", (int)NeonEnvironment.GetUnixTimestamp()); adap.AddParameter("sdays", (60 * 60 * 24 * 7)); table = adap.getTable(); } foreach (DataRow Row in table.Rows) { if (NeonEnvironment.GetGame().GetGroupForumManager().TryGetForum(Convert.ToInt32(Row["id"]), out GroupForum forum)) { forums.Add(forum); } } break; case 1: using (Database.Interfaces.IQueryAdapter adap = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { adap.SetQuery("SELECT g.id FROM groups as g INNER JOIN group_forums_thread_views as v, group_forums_threads as threads WHERE v.thread_id = threads.id AND threads.forum_id = g.id AND @now - v.`timestamp` <= @sdays GROUP BY g.id ORDER BY v.`timestamp` DESC LIMIT @index, @limit"); adap.AddParameter("limit", int3); adap.AddParameter("index", int2); adap.AddParameter("now", (int)NeonEnvironment.GetUnixTimestamp()); adap.AddParameter("sdays", (60 * 60 * 24 * 7)); table = adap.getTable(); } foreach (DataRow Row in table.Rows) { if (NeonEnvironment.GetGame().GetGroupForumManager().TryGetForum(Convert.ToInt32(Row["id"]), out GroupForum forum)) { forums.Add(forum); } } break; } Session.SendMessage(new ForumsListDataComposer(forums, Session, int1, int2, int3)); }
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; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } string Message = StringCharFilter.Escape(Packet.PopString()); if (Message.Length > 100) { Message = Message.Substring(0, 100); } int Colour = Packet.PopInt(); if (!NeonEnvironment.GetGame().GetChatManager().GetChatStyles().TryGetStyle(Colour, out ChatStyle Style) || (Style.RequiredRight.Length > 0 && !Session.GetHabbo().GetPermissions().HasRight(Style.RequiredRight))) { Colour = 0; } User.LastBubble = Session.GetHabbo().CustomBubbleId == 0 ? Colour : Session.GetHabbo().CustomBubbleId; if (NeonEnvironment.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { return; } if (Session.GetHabbo().TimeMuted > 0) { Session.SendMessage(new MutedComposer(Session.GetHabbo().TimeMuted)); return; } if (!Room.CheckRights(Session, false) && Room.muteSignalEnabled == true) { Session.SendWhisper("La sala está silenciada, no puedes hablar en ella hasta tanto el dueño o alguien con permisos en ella lo permita.", 34); return; } if (!Session.GetHabbo().GetPermissions().HasRight("room_ignore_mute") && Room.CheckMute(Session)) { Session.SendWhisper("Oops, usted se encuentra silenciad@.", 34); return; } if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool")) { if (User.IncrementAndCheckFlood(out int MuteTime)) { Session.SendMessage(new FloodControlComposer(MuteTime)); return; } } if (Session.GetHabbo().LastMessage == Message) { Session.GetHabbo().LastMessageCount++; if (Session.GetHabbo().LastMessageCount > 3) { NeonEnvironment.GetGame().GetClientManager().RepeatAlert(new RoomInviteComposer(int.MinValue, "Repeat: " + Session.GetHabbo().Username + " / Frase: " + Message + " / Veces: " + Session.GetHabbo().LastMessageCount + ".")); Session.GetHabbo().LastMessageCount = 0; } } if (Message.Contains("º;") || Message.Contains("º") || Message.Contains("&#")) { Session.SendMessage(new MassEventComposer("habbopages/spammer.txt")); return; } Room.GetFilter().CheckMessage(Message); if (Room.GetWired().TriggerEvent(HabboHotel.Items.Wired.WiredBoxType.TriggerUserSays, Session.GetHabbo(), Message.ToLower())) { return; } if (Room.GetWired().TriggerEvent(HabboHotel.Items.Wired.WiredBoxType.TriggerUserSaysCommand, Session.GetHabbo(), Message.ToLower())) { return; } if (Message.StartsWith(":", StringComparison.CurrentCulture) && NeonEnvironment.GetGame().GetChatManager().GetCommands().Parse(Session, Message)) { return; } NeonEnvironment.GetGame().GetChatManager().GetLogs().StoreChatlog(new Neon.HabboHotel.Rooms.Chat.Logs.ChatlogEntry(Session.GetHabbo().Id, Room.Id, Message, UnixTimestamp.GetNow(), Session.GetHabbo(), Room)); if (!Session.GetHabbo().GetPermissions().HasRight("word_filter_override") && NeonEnvironment.GetGame().GetChatManager().GetFilter().IsUnnaceptableWord(Message, out string word)) { Session.GetHabbo().BannedPhraseCount++; if (Session.GetHabbo().BannedPhraseCount >= 1) { Session.SendWhisper("¡Has mencionado una palabra no apta para el código de " + NeonEnvironment.GetDBConfig().DBData["hotel.name"] + "! Aviso " + Session.GetHabbo().BannedPhraseCount + "/10", 34); NeonEnvironment.GetGame().GetClientManager().StaffAlert1(new RoomInviteComposer(int.MinValue, "Spammer: " + Session.GetHabbo().Username + " / Frase: " + Message + " / Palabra: " + word.ToUpper() + " / Fase: " + Session.GetHabbo().BannedPhraseCount + " / 10.")); NeonEnvironment.GetGame().GetClientManager().StaffAlert2(new RoomNotificationComposer("Alerta de publicista:", "<b><font color=\"#B40404\">Por favor, recuerda investigar bien antes de recurrir a una sanción.</font></b><br><br>Palabra: <b>" + word.ToUpper() + "</b>.<br><br><b>Frase:</b><br><i>" + Message + "</i>.<br><br><b>Tipo:</b><br>Chat de sala.\r\n" + "<b>Usuario: " + Session.GetHabbo().Username + "</b><br><b>Secuencia:</b> " + Session.GetHabbo().BannedPhraseCount + "/10.", "foto", "Investigar", "event:navigator/goto/" + Session.GetHabbo().CurrentRoomId)); return; } if (Session.GetHabbo().BannedPhraseCount >= 10) { NeonEnvironment.GetGame().GetModerationManager().BanUser("System", HabboHotel.Moderation.ModerationBanType.USERNAME, Session.GetHabbo().Username, "Baneado por hacer spam con la frase (" + Message + ")", (NeonEnvironment.GetUnixTimestamp() + 78892200)); Session.Disconnect(); return; } Session.SendMessage(new ShoutComposer(User.VirtualId, "Mensaje Inapropiado", 0, Colour)); return; } Session.GetHabbo().LastMessage = Message; NeonEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SOCIAL_CHAT); User.UnIdle(); User.OnChat(User.LastBubble, Message, true); }
public void Parse(GameClient Session, ClientPacket Packet) { List <RoomData> Rooms = Session.GetHabbo().UsersRooms; Rooms = Rooms.Where(x => (x.Promotion == null || x.Promotion.TimestampExpires < NeonEnvironment.GetUnixTimestamp())).ToList(); Session.SendMessage(new PromotableRoomsComposer(Rooms)); }
public void Init() { if (_userPresets.Count > 0) { _userPresets.Clear(); } if (_moderationCFHTopics.Count > 0) { _moderationCFHTopics.Clear(); } if (_moderationCFHTopicActions.Count > 0) { _moderationCFHTopicActions.Clear(); } if (_bans.Count > 0) { _bans.Clear(); } using (IQueryAdapter dbClient = NeonEnvironment.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": _userPresets.Add(Convert.ToString(Row["message"])); break; case "room": _roomPresets.Add(Convert.ToString(Row["message"])); break; } } } } using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { DataTable ModerationTopics = null; dbClient.SetQuery("SELECT * FROM `moderation_topics`;"); ModerationTopics = dbClient.getTable(); if (ModerationTopics != null) { foreach (DataRow Row in ModerationTopics.Rows) { if (!_moderationCFHTopics.ContainsKey(Convert.ToInt32(Row["id"]))) { _moderationCFHTopics.Add(Convert.ToInt32(Row["id"]), Convert.ToString(Row["caption"])); } } } } using (IQueryAdapter dbClient = NeonEnvironment.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 (!_moderationCFHTopicActions.ContainsKey(ParentId)) { _moderationCFHTopicActions.Add(ParentId, new List <ModerationPresetActions>()); } _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 = NeonEnvironment.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) { _userActionPresetCategories.Add(Convert.ToInt32(Row["id"]), Convert.ToString(Row["caption"])); } } } using (IQueryAdapter dbClient = NeonEnvironment.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 (!_userActionPresetMessages.ContainsKey(ParentId)) { _userActionPresetMessages.Add(ParentId, new List <ModerationPresetActionMessages>()); } _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 = NeonEnvironment.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 > NeonEnvironment.GetUnixTimestamp()) { if (!_bans.ContainsKey(value)) { _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!"); }
internal void SerializeClub(ServerPacket Message, GameClients.GameClient Session) { Message.WriteInteger(Id); Message.WriteString(Name); Message.WriteBoolean(false); Message.WriteInteger(CostCredits); //Message.WriteInteger((CostGOTWPoints > 0) ? CostGOTWPoints : 0); //Message.WriteInteger((CostGOTWPoints > 0) ? 103 : 0); Message.WriteInteger((CostDiamonds > 0) ? CostDiamonds : CostDiamonds); Message.WriteInteger((CostDiamonds > 0) ? 105 : 0); Message.WriteBoolean(true); // don't know int Days = 0; int Months = 0; if (GetBaseItem(ItemId).InteractionType == InteractionType.club_1_month || GetBaseItem(ItemId).InteractionType == InteractionType.club_3_month || GetBaseItem(ItemId).InteractionType == InteractionType.club_6_month || GetBaseItem(ItemId).InteractionType == InteractionType.club_vip) { switch (GetBaseItem(ItemId).InteractionType) { case InteractionType.club_1_month: Months = 1; break; case InteractionType.club_vip: Months = 1; break; case InteractionType.club_3_month: Months = 3; break; case InteractionType.club_6_month: Months = 6; break; } Days = 31 * Months; } DateTime future = DateTime.Now; if (PageID == 699 && Session.GetHabbo().GetClubManager().HasSubscription("habbo_vip")) { double Expire = Session.GetHabbo().GetClubManager().GetSubscription("habbo_vip").ExpireTime; double TimeLeft = Expire - NeonEnvironment.GetUnixTimestamp(); int TotalDaysLeft = (int)Math.Ceiling(TimeLeft / 86400); future = DateTime.Now.AddDays(TotalDaysLeft); } else if (Session.GetHabbo().GetClubManager().HasSubscription("club_vip")) { double Expire = Session.GetHabbo().GetClubManager().GetSubscription("club_vip").ExpireTime; double TimeLeft = Expire - NeonEnvironment.GetUnixTimestamp(); int TotalDaysLeft = (int)Math.Ceiling(TimeLeft / 86400); future = DateTime.Now.AddDays(TotalDaysLeft); } future = future.AddDays(Days); Message.WriteInteger(Months); // months Message.WriteInteger(Days); // days Message.WriteBoolean(true); Message.WriteInteger(Days); // wtf Message.WriteInteger(future.Year); // year Message.WriteInteger(future.Month); // month Message.WriteInteger(future.Day); // day }
public void Parse(GameClient Session, ClientPacket Packet) { if (!Session.GetHabbo().InRoom) { return; } Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } if (Session.GetHabbo().Rank > 8 && !Session.GetHabbo().StaffOk) { return; } if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool") && Room.CheckMute(Session)) { Session.SendWhisper("Oops, usted se encuentra silenciad@", 34); return; } if (NeonEnvironment.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { return; } string Params = Packet.PopString(); string ToUser = Params.Split(' ')[0]; string Message = Params.Substring(ToUser.Length + 1); int Colour = Packet.PopInt(); if (Message.Contains("º;") || Message.Contains("º") || Message.Contains("&#")) { Session.SendMessage(new MassEventComposer("habbopages/spammer.txt")); return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } RoomUser User2 = Room.GetRoomUserManager().GetRoomUserByHabbo(ToUser); if (User2 == null) { return; } if (Session.GetHabbo().TimeMuted > 0) { Session.SendMessage(new MutedComposer(Session.GetHabbo().TimeMuted)); return; } if (!NeonEnvironment.GetGame().GetChatManager().GetChatStyles().TryGetStyle(Colour, out ChatStyle Style) || (Style.RequiredRight.Length > 0 && !Session.GetHabbo().GetPermissions().HasRight(Style.RequiredRight))) { Colour = 0; } User.LastBubble = Session.GetHabbo().CustomBubbleId == 0 ? Colour : Session.GetHabbo().CustomBubbleId; if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool")) { if (User.IncrementAndCheckFlood(out int MuteTime)) { Session.SendMessage(new FloodControlComposer(MuteTime)); return; } } if (!User2.GetClient().GetHabbo().ReceiveWhispers&& !Session.GetHabbo().GetPermissions().HasRight("room_whisper_override")) { Session.SendWhisper("Oops, este usuario no permite susurros.", 34); return; } if (Session.GetHabbo().LastMessage == Message) { Session.GetHabbo().LastMessageCount++; if (Session.GetHabbo().LastMessageCount > 3) { NeonEnvironment.GetGame().GetClientManager().RepeatAlert(new RoomInviteComposer(int.MinValue, "Repeat: " + Session.GetHabbo().Username + " / Frase: " + Message + " / Veces: " + Session.GetHabbo().LastMessageCount + ".")); Session.GetHabbo().LastMessageCount = 0; } } Room.GetFilter().CheckMessage(Message); NeonEnvironment.GetGame().GetChatManager().GetLogs().StoreChatlog(new Neon.HabboHotel.Rooms.Chat.Logs.ChatlogEntry(Session.GetHabbo().Id, Room.Id, ": " + Message, UnixTimestamp.GetNow(), Session.GetHabbo(), Room)); Room.AddChatlog(Session.GetHabbo().Id, ": " + Message); if (!Session.GetHabbo().GetPermissions().HasRight("word_filter_override") && NeonEnvironment.GetGame().GetChatManager().GetFilter().IsUnnaceptableWord(Message, out string word)) { Session.GetHabbo().BannedPhraseCount++; if (Session.GetHabbo().BannedPhraseCount >= 1) { Session.SendWhisper("¡Has mencionado una palabra no apta para el hotel! Aviso " + Session.GetHabbo().BannedPhraseCount + "/10", 34); DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, System.DateTimeKind.Utc); _ = dtDateTime.AddSeconds(NeonEnvironment.GetUnixTimestamp()).ToLocalTime(); NeonEnvironment.GetGame().GetClientManager().StaffAlert1(new RoomInviteComposer(int.MinValue, "Spammer: " + Session.GetHabbo().Username + " / Frase: " + Message + " / Palabra: " + word.ToUpper() + " / Fase: " + Session.GetHabbo().BannedPhraseCount + " / 10.")); NeonEnvironment.GetGame().GetClientManager().StaffAlert2(new RoomNotificationComposer("Alerta de publicista:", "<b><font color=\"#B40404\">Por favor, recuerda investigar bien antes de recurrir a una sanción.</font></b><br><br>Palabra: <b>" + word.ToUpper() + "</b>.<br><br><b>Frase:</b><br><i>" + Message + "</i>.<br><br><b>Tipo:</b><br>Chat de sala.\r\n" + "<b>Usuario: " + Session.GetHabbo().Username + "</b><br><b>Secuencia:</b> " + Session.GetHabbo().BannedPhraseCount + "/10.", "foto", "Investigar", "event:navigator/goto/" + Session.GetHabbo().CurrentRoomId)); return; } if (Session.GetHabbo().BannedPhraseCount >= 10) { NeonEnvironment.GetGame().GetModerationManager().BanUser("System", HabboHotel.Moderation.ModerationBanType.USERNAME, Session.GetHabbo().Username, "Baneado por hacer Spam con la Frase (" + Message + ")", (NeonEnvironment.GetUnixTimestamp() + 78892200)); Session.Disconnect(); return; } Session.SendMessage(new WhisperComposer(User.VirtualId, "Mensaje inapropiado.", 0, User.LastBubble)); return; } List <RoomUser> MultiW = Session.GetHabbo().MultiWhispers; if (MultiW.Count > 0) { foreach (RoomUser user in MultiW) { if (user != null && user.HabboId != User2.HabboId && user.HabboId != User.HabboId) { if (user.GetClient() != null && user.GetClient().GetHabbo() != null && !user.GetClient().GetHabbo().IgnorePublicWhispers) { user.GetClient().SendMessage(new WhisperComposer(User.VirtualId, "@blue@" + Message, 0, User.LastBubble)); } } } } Session.GetHabbo().LastMessage = Message; NeonEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SOCIAL_CHAT); User.UnIdle(); User.GetClient().SendMessage(new WhisperComposer(User.VirtualId, Message, 0, User.LastBubble)); if (User2 != null && !User2.IsBot && User2.UserId != User.UserId) { if (!User2.GetClient().GetHabbo().MutedUsers.Contains(Session.GetHabbo().Id)) { User2.GetClient().SendMessage(new WhisperComposer(User.VirtualId, Message, 0, User.LastBubble)); } } List <RoomUser> ToNotify = Room.GetRoomUserManager().GetRoomUserByRank(8); if (ToNotify.Count > 0) { foreach (RoomUser user in ToNotify) { if (user != null && user.HabboId != User2.HabboId && user.HabboId != User.HabboId) { if (user.GetClient() != null && user.GetClient().GetHabbo() != null && !user.GetClient().GetHabbo().IgnorePublicWhispers) { user.GetClient().SendMessage(new WhisperComposer(User.VirtualId, "@red@ [" + ToUser + "] " + Message, 0, User.LastBubble)); } } } } }
public ModeratorUserChatlogComposer(int UserId) : base(ServerPacketHeader.ModeratorUserChatlogMessageComposer) { base.WriteInteger(UserId); base.WriteString(NeonEnvironment.GetGame().GetClientManager().GetNameById(UserId)); using (IQueryAdapter dbClient = NeonEnvironment.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 = NeonEnvironment.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"] = NeonEnvironment.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 = NeonEnvironment.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 Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || Session.GetHabbo().GetMessenger() == null) { return; } int userId = Packet.PopInt(); if (userId == 0 || userId == Session.GetHabbo().Id) { return; } string message = Packet.PopString(); if (string.IsNullOrWhiteSpace(message)) { return; } if (Session.GetHabbo().TimeMuted > 0) { Session.SendWhisper("Oops, has sido silenciado durante 15 segundos, no podrás enviar mensajes durante este lapso de tiempo.", 34); return; } if (message.Contains("º;") || message.Contains("º") || message.Contains("&#")) { Session.SendMessage(new MassEventComposer("habbopages/spammer.txt")); return; } if (Session.GetHabbo().LastMessage == message) { Session.GetHabbo().LastMessageCount++; if (Session.GetHabbo().LastMessageCount > 3) { NeonEnvironment.GetGame().GetClientManager().RepeatAlert(new RoomInviteComposer(int.MinValue, "Repeat: " + Session.GetHabbo().Username + " / Frase: " + message + " / Veces: " + Session.GetHabbo().LastMessageCount + ".")); Session.GetHabbo().LastMessageCount = 0; } } if (!Session.GetHabbo().GetPermissions().HasRight("word_filter_override") && NeonEnvironment.GetGame().GetChatManager().GetFilter().IsUnnaceptableWord(message, out string word)) { Session.GetHabbo().BannedPhraseCount++; if (Session.GetHabbo().BannedPhraseCount >= 1) { Session.GetHabbo().TimeMuted = 15; Session.SendNotification("Acabas de mencionar una palabra prohibida en el filtro de " + NeonEnvironment.GetDBConfig().DBData["hotel.name"] + ", tal vez pueda tratarse de un error. Asegúrate de no volver a repetirla, este sistema está hecho para evitar publicistas. Recuerda que se acaba de advertir a los miembros del equipo, si no se trata de un caso de publicidad no te asustes. Aviso " + Session.GetHabbo().BannedPhraseCount + " / 10"); NeonEnvironment.GetGame().GetClientManager().StaffAlert1(new RoomInviteComposer(int.MinValue, "Spammer: " + Session.GetHabbo().Username + " / Frase: " + message + " / Palabra: " + word.ToUpper() + " / Fase: " + Session.GetHabbo().BannedPhraseCount + " / 10.")); NeonEnvironment.GetGame().GetClientManager().StaffAlert2(new RoomNotificationComposer("Alerta de publicista:", "<b><font color=\"#B40404\">Por favor, recuerda investigar bien antes de recurrir a una sanción.</font></b><br><br>Palabra: <b>" + word.ToUpper() + "</b>.<br><br><b>Frase:</b><br><i>" + message + "</i>.<br><br><b>Tipo:</b><br>Chat de sala.\r\n" + "<b>Usuario: " + Session.GetHabbo().Username + "</b><br><b>Secuencia:</b> " + Session.GetHabbo().BannedPhraseCount + "/ 10.", "foto", "Investigar", "event:navigator/goto/" + Session.GetHabbo().CurrentRoomId)); return; } if (Session.GetHabbo().BannedPhraseCount >= 10) { NeonEnvironment.GetGame().GetModerationManager().BanUser("Neon", HabboHotel.Moderation.ModerationBanType.USERNAME, Session.GetHabbo().Username, "Baneado por hacer spam con la Frase (" + message + ")", (NeonEnvironment.GetUnixTimestamp() + 78892200)); Session.Disconnect(); return; } return; } Session.GetHabbo().LastMessage = message; Session.GetHabbo().GetMessenger().SendInstantMessage(userId, message); }
public void Execute(GameClients.GameClient Session, Rooms.Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Por favor introduce el Nombre o la IP del usuario a Banear."); return; } Habbo Habbo = NeonEnvironment.GetHabboByUsername(Params[1]); if (Habbo == null) { Session.SendWhisper("Ocurrio un error en la busqueda por la base de datos."); return; } if (Habbo.GetPermissions().HasRight("mod_tool") && !Session.GetHabbo().GetPermissions().HasRight("mod_ban_any")) { Session.SendWhisper("Oops, you cannot ban that user."); return; } string IPAddress = string.Empty; double Expire = NeonEnvironment.GetUnixTimestamp() + 78892200; string Username = Habbo.Username; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `bans` = `bans` + '1' WHERE `user_id` = '" + Habbo.Id + "' LIMIT 1"); dbClient.SetQuery("SELECT `ip_last` FROM `users` WHERE `id` = '" + Habbo.Id + "' LIMIT 1"); IPAddress = dbClient.getString(); } string Reason = null; if (Params.Length >= 3) { Reason = CommandManager.MergeParams(Params, 2); } else { Reason = "No se especifico la razon"; } if (!string.IsNullOrEmpty(IPAddress)) { NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.IP, IPAddress, Reason, Expire); } NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.USERNAME, Habbo.Username, Reason, Expire); if (!string.IsNullOrEmpty(Habbo.MachineId)) { NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.MACHINE, Habbo.MachineId, Reason, Expire); } GameClient TargetClient = NeonEnvironment.GetGame().GetClientManager().GetClientByUsername(Username); if (TargetClient != null) { TargetClient.Disconnect(); } Session.SendWhisper("Se ha baneado exitosamente al usuario '" + Username + "' por la siguiente razon: '" + Reason + "'!"); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { int SellingPrice = Packet.PopInt(); int ComissionPrice = Packet.PopInt(); int ItemId = Packet.PopInt(); Item Item = Session.GetHabbo().GetInventoryComponent().GetItem(ItemId); if (Item == null) { Session.SendMessage(new MarketplaceMakeOfferResultComposer(0)); return; } if (!ItemUtility.IsRare(Item)) { Session.SendNotification("Lo siento, solo los rares y LTD estan permitidos en nuestro mercadillo!"); return; } if (SellingPrice > 70000000 || SellingPrice == 0) { Session.SendMessage(new MarketplaceMakeOfferResultComposer(0)); return; } int Comission = NeonEnvironment.GetGame().GetCatalog().GetMarketplace().CalculateComissionPrice(SellingPrice); int TotalPrice = SellingPrice + Comission; int ItemType = 1; if (Item.GetBaseItem().Type == 'i') { ItemType++; } using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("INSERT INTO `catalog_marketplace_offers` (`furni_id`,`item_id`,`user_id`,`asking_price`,total_price,public_name,sprite_id,item_type,timestamp,extra_data,limited_number,limited_stack) VALUES ('" + ItemId + "','" + Item.BaseItem + "','" + Session.GetHabbo().Id + "','" + SellingPrice + "','" + TotalPrice + "',@public_name,'" + Item.GetBaseItem().SpriteId + "','" + ItemType + "','" + NeonEnvironment.GetUnixTimestamp() + "',@extra_data, '" + Item.LimitedNo + "', '" + Item.LimitedTot + "')"); dbClient.AddParameter("public_name", Item.GetBaseItem().PublicName); dbClient.AddParameter("extra_data", Item.ExtraData); dbClient.RunQuery(); dbClient.RunQuery("DELETE FROM `items` WHERE `id` = '" + ItemId + "' AND `user_id` = '" + Session.GetHabbo().Id + "' LIMIT 1"); } Session.GetHabbo().GetInventoryComponent().RemoveItem(ItemId); Session.SendMessage(new MarketplaceMakeOfferResultComposer(1)); }
public double FormatTimestamp() { return(NeonEnvironment.GetUnixTimestamp() - 172800.0); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null || !Session.GetHabbo().InRoom) { return; } if (!NeonEnvironment.GetGame().GetRoomManager().TryGetRoom(Session.GetHabbo().CurrentRoomId, out Room Room)) { return; } if (!Room.CanTradeInRoom || NeonStaticGameSettings.IsGoingToBeClose) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } if (Session.GetHabbo().TradingLockExpiry > 0) { if (Session.GetHabbo().TradingLockExpiry > NeonEnvironment.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 = NeonEnvironment.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 Execute(GameClient Session, Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Por favor introduzca el nombre del usuario."); return; } Habbo Habbo = NeonEnvironment.GetHabboByUsername(Params[1]); if (Habbo == null) { Session.SendWhisper("El usuario " + Params[1] + " no existe."); return; } if (Habbo.GetPermissions().HasRight("mod_soft_ban") && !Session.GetHabbo().GetPermissions().HasRight("mod_ban_any")) { Session.SendWhisper("Vaya... al parecer no puedes banear a " + Params[1] + "."); return; } string Hours = Params[2]; double Expire; if (string.IsNullOrEmpty(Hours) || Hours == "perm") { Expire = NeonEnvironment.GetUnixTimestamp() + 78892200; } else { Expire = (NeonEnvironment.GetUnixTimestamp() + (Convert.ToDouble(Hours) * 3600)); } string Reason; if (Params.Length >= 4) { Reason = CommandManager.MergeParams(Params, 3); } else { Reason = "Sin razón."; } string Username = Habbo.Username; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `bans` = `bans` + '1' WHERE `user_id` = '" + Habbo.Id + "' LIMIT 1"); } NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.USERNAME, Habbo.Username, Reason, Expire); GameClient TargetClient = NeonEnvironment.GetGame().GetClientManager().GetClientByUsername(Username); if (TargetClient != null) { TargetClient.Disconnect(); } Session.SendWhisper("Excelente, ha sido baneado el usuario '" + Username + "' por " + Hours + " hhora(s) con la razon '" + Reason + "'!"); }
public void Parse(HabboHotel.GameClients.GameClient Session, ClientPacket Packet) { //0 = sent, 1 = blocked, 2 = no chat, 3 = already reported. if (Session == null) { return; } int UserId = Packet.PopInt(); if (UserId == Session.GetHabbo().Id)//Hax { return; } if (Session.GetHabbo().AdvertisingReportedBlocked) { Session.SendMessage(new SubmitBullyReportComposer(1));//This user is blocked from reporting. return; } GameClient Client = NeonEnvironment.GetGame().GetClientManager().GetClientByUserID(Convert.ToInt32(UserId)); if (Client == null) { Session.SendMessage(new SubmitBullyReportComposer(0));//Just say it's sent, the user isn't found. return; } if (Session.GetHabbo().LastAdvertiseReport > NeonEnvironment.GetUnixTimestamp()) { Session.SendNotification("Solo puedes realizar reportes cada 5 minutos"); return; } if (Client.GetHabbo().GetPermissions().HasRight("mod_tool"))//Reporting staff, nope! { Session.SendNotification("En este momento, no se puede informar de los miembros del personal a través de esta herramienta ."); return; } //This user hasn't even said a word, nope! if (!Client.GetHabbo().HasSpoken) { Session.SendMessage(new SubmitBullyReportComposer(2)); return; } //Already reported, nope. if (Client.GetHabbo().AdvertisingReported&& Session.GetHabbo().Rank < 2) { Session.SendMessage(new SubmitBullyReportComposer(3)); return; } if (Session.GetHabbo().Rank <= 1) { Session.GetHabbo().LastAdvertiseReport = NeonEnvironment.GetUnixTimestamp() + 300; } else { Session.GetHabbo().LastAdvertiseReport = NeonEnvironment.GetUnixTimestamp(); } Client.GetHabbo().AdvertisingReported = true; Session.SendMessage(new SubmitBullyReportComposer(0)); //NeonEnvironment.GetGame().GetClientManager().ModAlert("New advertising report! " + Client.GetHabbo().Username + " has been reported for advertising by " + Session.GetHabbo().Username +"."); NeonEnvironment.GetGame().GetClientManager().DoAdvertisingReport(Session, Client); return; }
public bool IsRented() { return(ExpireStamp > NeonEnvironment.GetUnixTimestamp()); }
public void Execute(GameClient Session, Room Room, string[] Params) { if (Params.Length == 1) { Session.SendWhisper("Please enter the username of the user you'd like to IP ban & account ban."); return; } Habbo Habbo = NeonEnvironment.GetHabboByUsername(Params[1]); if (Habbo == null) { Session.SendWhisper("An error occoured whilst finding that user in the database."); return; } if (Habbo.GetPermissions().HasRight("mod_tool") && !Session.GetHabbo().GetPermissions().HasRight("mod_ban_any")) { Session.SendWhisper("Oops, you cannot ban that user."); return; } string IPAddress = string.Empty; double Expire = NeonEnvironment.GetUnixTimestamp() + 78892200; string Username = Habbo.Username; using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `user_info` SET `bans` = `bans` + '1' WHERE `user_id` = '" + Habbo.Id + "' LIMIT 1"); dbClient.SetQuery("SELECT `ip_last` FROM `users` WHERE `id` = '" + Habbo.Id + "' LIMIT 1"); IPAddress = dbClient.getString(); } string Reason; if (Params.Length >= 3) { Reason = CommandManager.MergeParams(Params, 2); } else { Reason = "No reason specified."; } if (!string.IsNullOrEmpty(IPAddress)) { NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.IP, IPAddress, Reason, Expire); } NeonEnvironment.GetGame().GetModerationManager().BanUser(Session.GetHabbo().Username, ModerationBanType.USERNAME, Habbo.Username, Reason, Expire); GameClient TargetClient = NeonEnvironment.GetGame().GetClientManager().GetClientByUsername(Username); if (TargetClient != null) { TargetClient.Disconnect(); } Session.SendWhisper("Success, you have IP and account banned the user '" + Username + "' for '" + Reason + "'!"); }
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; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } if (Session.GetHabbo().Rank > 8 && !Session.GetHabbo().StaffOk) { return; } string Message = StringCharFilter.Escape(Packet.PopString()); if (Message.Length > 100) { Message = Message.Substring(0, 100); } int Colour = Packet.PopInt(); if (Message.Contains("º;") || Message.Contains("º") || Message.Contains("&#")) { Session.SendMessage(new MassEventComposer("habbopages/spammer.txt")); return; } if (!NeonEnvironment.GetGame().GetChatManager().GetChatStyles().TryGetStyle(Colour, out ChatStyle Style) || (Style.RequiredRight.Length > 0 && !Session.GetHabbo().GetPermissions().HasRight(Style.RequiredRight))) { Colour = 0; } User.UnIdle(); if (NeonEnvironment.GetUnixTimestamp() < Session.GetHabbo().FloodTime&& Session.GetHabbo().FloodTime != 0) { return; } if (Session.GetHabbo().TimeMuted > 0) { Session.SendMessage(new MutedComposer(Session.GetHabbo().TimeMuted)); return; } if (!Room.CheckRights(Session, false) && Room.muteSignalEnabled == true) { Session.SendWhisper("La sala está silenciada, no puedes hablar en ella hasta tanto el dueño o alguien con permisos en ella lo permita.", 34); return; } if (!Session.GetHabbo().GetPermissions().HasRight("room_ignore_mute") && Room.CheckMute(Session)) { Session.SendWhisper("Oops, usted se encuentra silenciad@", 34); return; } User.LastBubble = Session.GetHabbo().CustomBubbleId == 0 ? Colour : Session.GetHabbo().CustomBubbleId; if (Room.GetWired().TriggerEvent(HabboHotel.Items.Wired.WiredBoxType.TriggerUserSays, Session.GetHabbo(), Message)) { return; } else if (Room.GetWired().TriggerEvent(HabboHotel.Items.Wired.WiredBoxType.TriggerUserSaysCommand, Session.GetHabbo(), Message.ToLower())) { return; } else if (!Session.GetHabbo().GetPermissions().HasRight("mod_tool")) { if (User.IncrementAndCheckFlood(out int MuteTime)) { Session.SendMessage(new FloodControlComposer(MuteTime)); return; } } Room.GetFilter().CheckMessage(Message); if (Message.StartsWith(":", StringComparison.CurrentCulture) && NeonEnvironment.GetGame().GetChatManager().GetCommands().Parse(Session, Message)) { return; } if (Session.GetHabbo().LastMessage == Message) { Session.GetHabbo().LastMessageCount++; if (Session.GetHabbo().LastMessageCount > 3) { NeonEnvironment.GetGame().GetClientManager().RepeatAlert(new RoomInviteComposer(int.MinValue, "Repeat: " + Session.GetHabbo().Username + " / Frase: " + Message + " / Veces: " + Session.GetHabbo().LastMessageCount + ".")); Session.GetHabbo().LastMessageCount = 0; } } NeonEnvironment.GetGame().GetChatManager().GetLogs().StoreChatlog(new ChatlogEntry(Session.GetHabbo().Id, Room.Id, Message, UnixTimestamp.GetNow(), Session.GetHabbo(), Room)); if (!Session.GetHabbo().GetPermissions().HasRight("word_filter_override") && NeonEnvironment.GetGame().GetChatManager().GetFilter().IsUnnaceptableWord(Message, out string word)) { Session.GetHabbo().BannedPhraseCount++; if (Session.GetHabbo().BannedPhraseCount >= 1) { Session.SendWhisper("¡Has mencionado una palabra no apta para el hotel! Aviso " + Session.GetHabbo().BannedPhraseCount + "/10", 34); DateTime dtDateTime = new DateTime(1970, 1, 1, 0, 0, 0, 0, DateTimeKind.Utc); dtDateTime = dtDateTime.AddSeconds(NeonEnvironment.GetUnixTimestamp()).ToLocalTime(); NeonEnvironment.GetGame().GetClientManager().StaffAlert1(new RoomInviteComposer(int.MinValue, "Spammer: " + Session.GetHabbo().Username + " / Frase: " + Message + " / Palabra: " + word.ToUpper() + " / Fase: " + Session.GetHabbo().BannedPhraseCount + " / 10.")); NeonEnvironment.GetGame().GetClientManager().StaffAlert2(new RoomNotificationComposer("Alerta de publicista:", "<b><font color=\"#B40404\">Por favor, recuerda investigar bien antes de recurrir a una sanción.</font></b><br><br>Palabra: <b>" + word.ToUpper() + "</b>.<br><br><b>Frase:</b><br><i>" + Message + "</i>.<br><br><b>Tipo:</b><br>Chat de sala.\r\n" + "<b>Usuario: " + Session.GetHabbo().Username + "</b><br><b>Secuencia:</b> " + Session.GetHabbo().BannedPhraseCount + "/10.", "foto", "Investigar", "event:navigator/goto/" + Session.GetHabbo().CurrentRoomId)); if (Session.GetHabbo().BannedPhraseCount >= 10) { NeonEnvironment.GetGame().GetClientManager().StaffAlert(RoomNotificationComposer.SendBubble("commandsupdated", "El usuario " + Session.GetHabbo().Username + " ha sido baneado de manera automática por el sistema.", "")); NeonEnvironment.GetGame().GetModerationManager().BanUser("System", HabboHotel.Moderation.ModerationBanType.USERNAME, Session.GetHabbo().Username, "Baneado por hacer Spam con la Frase (" + word + ")", (NeonEnvironment.GetUnixTimestamp() + 78892200)); Session.Disconnect(); return; } return; } Session.SendMessage(new ChatComposer(User.VirtualId, "Mensaje inapropiado.", 0, Colour)); return; } if (Session.GetHabbo().MultiWhisper) { Session.SendMessage(new WhisperComposer(User.VirtualId, "@blue@ [MULTI] " + Message, 0, User.LastBubble)); List <RoomUser> MultiW = Session.GetHabbo().MultiWhispers; if (MultiW.Count > 0) { foreach (RoomUser user in MultiW) { if (user != null) { if (user.GetClient() != null && user.GetClient().GetHabbo() != null && !user.GetClient().GetHabbo().IgnorePublicWhispers) { user.GetClient().SendMessage(new WhisperComposer(User.VirtualId, "@blue@ [MULTI] " + Message, 0, User.LastBubble)); } } } } return; } //if (Session.GetHabbo().IsBeingAsked == true && Message.ToLower().Contains("s")) //{ // Session.GetHabbo().SecureTradeEnabled = true; // Session.GetHabbo().IsBeingAsked = false; // Session.SendMessage(new WiredSmartAlertComposer("Acabas de activar el modo seguro de tradeo para dados.")); //} //else if (Session.GetHabbo().IsBeingAsked == true && !Message.ToLower().Contains("s")) //{ // Session.GetHabbo().SecureTradeEnabled = false; // Session.GetHabbo().IsBeingAsked = false; // Session.SendMessage(new WiredSmartAlertComposer("Has dejado el tradeo en modo normal.")); //} Session.GetHabbo().LastMessage = Message; NeonEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SOCIAL_CHAT); User.OnChat(User.LastBubble, Message, false); }
public void Pick(int pModeratorId, bool UpdateInDb) { Status = TicketStatus.PICKED; ModeratorId = pModeratorId; ModName = NeonEnvironment.GetHabboById(pModeratorId).Username; if (UpdateInDb) { using (IQueryAdapter dbClient = NeonEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE moderation_tickets SET status = 'picked', moderator_id = " + pModeratorId + ", timestamp = '" + NeonEnvironment.GetUnixTimestamp() + "' WHERE id = " + Id + ""); } } }