public void OnChat(int Colour, string Message, bool Shout) { if (GetClient() == null || GetClient().GetHabbo() == null || mRoom == null) { return; } if (mRoom.GetWired().TriggerEvent(Items.Wired.WiredBoxType.TriggerUserSays, GetClient().GetHabbo(), Message)) { return; } if (UsingColourCode(Message)) { if (GetClient().GetHabbo().VIPRank < 1) { Message = ReplaceColourCode(Message); } } GetClient().GetHabbo().HasSpoken = true; if (mRoom.WordFilterList.Count > 0 && !GetClient().GetHabbo().GetPermissions().HasRight("word_filter_override")) { Message = mRoom.GetFilter().CheckMessage(Message); } ServerPacket Packet = null; if (GetClient().GetHabbo().Translating) { string LG1 = GetClient().GetHabbo().FromLanguage.ToLower(); string LG2 = GetClient().GetHabbo().ToLanguage.ToLower(); if (Shout) { Packet = new ShoutComposer(VirtualId, PlusEnvironment.TranslateText(Message, LG1 + "|" + LG2) + " [" + LG1.ToUpper() + " -> " + LG2.ToUpper() + "]", PlusEnvironment.GetGame().GetChatManager().GetEmotions().GetEmotionsForText(Message), Colour); } else { Packet = new ChatComposer(VirtualId, PlusEnvironment.TranslateText(Message, LG1 + "|" + LG2) + " [" + LG1.ToUpper() + " -> " + LG2.ToUpper() + "]", PlusEnvironment.GetGame().GetChatManager().GetEmotions().GetEmotionsForText(Message), Colour); } } else { if (Shout) { Packet = new ShoutComposer(VirtualId, Message, PlusEnvironment.GetGame().GetChatManager().GetEmotions().GetEmotionsForText(Message), Colour); } else { Packet = new ChatComposer(VirtualId, Message, PlusEnvironment.GetGame().GetChatManager().GetEmotions().GetEmotionsForText(Message), Colour); } } if (GetClient().GetHabbo().TentId > 0) { mRoom.SendToTent(GetClient().GetHabbo().Id, GetClient().GetHabbo().TentId, Packet); Packet = new WhisperComposer(this.VirtualId, "[Chat da Tenda] " + Message, 0, Colour); List <RoomUser> ToNotify = mRoom.GetRoomUserManager().GetRoomUserByRank(2); if (ToNotify.Count > 0) { SendNameColourPacket(); foreach (RoomUser user in ToNotify) { if (user == null || user.GetClient() == null || user.GetClient().GetHabbo() == null || user.GetClient().GetHabbo().TentId == GetClient().GetHabbo().TentId) { continue; } user.GetClient().SendMessage(Packet); } SendNamePacket(); } } else { if (mRoom.TutorialEnabled) { this.GetClient().SendMessage(Packet); } else { SendNameColourPacket(); foreach (RoomUser User in mRoom.GetRoomUserManager().GetRoomUsers().ToList()) { if (User == null || User.GetClient() == null || User.GetClient().GetHabbo() == null || User.GetClient().GetHabbo().MutedUsers.Contains(mClient.GetHabbo().Id)) { continue; } if (GetClient().GetRoleplay().Invisible) { if (!User.GetClient().GetRoleplay().Invisible) { continue; } } User.GetClient().SendMessage(Packet); } SendNamePacket(); } } #region Pets/Bots responces if (Shout) { foreach (RoomUser User in mRoom.GetRoomUserManager().GetUserList().ToList()) { if (!User.IsBot) { continue; } if (User.IsBot) { if (User.GetBotRoleplayAI() != null) { User.GetBotRoleplayAI().OnUserShout(this, Message); } else { User.BotAI.OnUserShout(this, Message); } } } } else { foreach (RoomUser User in mRoom.GetRoomUserManager().GetUserList().ToList()) { if (!User.IsBot) { continue; } if (User.GetBotRoleplayAI() != null) { User.GetBotRoleplayAI().OnUserSay(this, Message); } else { User.BotAI.OnUserSay(this, Message); } } } #endregion }
public void LoadFurniture() { if (_floorItems.Count > 0) { _floorItems.Clear(); } if (_wallItems.Count > 0) { _wallItems.Clear(); } List <Item> Items = ItemLoader.GetItemsForRoom(_room.Id, _room); foreach (Item Item in Items.ToList()) { if (Item == null) { continue; } if (Item.UserID == 0) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `items` SET `user_id` = @UserId WHERE `id` = @ItemId LIMIT 1"); dbClient.AddParameter("ItemId", Item.Id); dbClient.AddParameter("UserId", _room.OwnerId); dbClient.RunQuery(); } } if (Item.IsFloorItem) { if (!_room.GetGameMap().ValidTile(Item.GetX, Item.GetY)) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.RunQuery("UPDATE `items` SET `room_id` = '0' WHERE `id` = '" + Item.Id + "' LIMIT 1"); } GameClient Client = PlusEnvironment.GetGame().GetClientManager().GetClientByUserId(Item.UserID); if (Client != null) { Client.Habbo.GetInventoryComponent().AddNewItem(Item.Id, Item.BaseItem, Item.ExtraData, Item.GroupId, true, true, Item.LimitedNo, Item.LimitedTot); Client.Habbo.GetInventoryComponent().UpdateItems(false); } continue; } if (!_floorItems.ContainsKey(Item.Id)) { _floorItems.TryAdd(Item.Id, Item); } } else if (Item.IsWallItem) { if (string.IsNullOrWhiteSpace(Item.wallCoord)) { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `items` SET `wall_pos` = @WallPosition WHERE `id` = '" + Item.Id + "' LIMIT 1"); dbClient.AddParameter("WallPosition", ":w=0,2 l=11,53 l"); dbClient.RunQuery(); } Item.wallCoord = ":w=0,2 l=11,53 l"; } try { Item.wallCoord = WallPositionCheck(":" + Item.wallCoord.Split(':')[1]); } catch { using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `items` SET `wall_pos` = @WallPosition WHERE `id` = '" + Item.Id + "' LIMIT 1"); dbClient.AddParameter("WallPosition", ":w=0,2 l=11,53 l"); dbClient.RunQuery(); } Item.wallCoord = ":w=0,2 l=11,53 l"; } if (!_wallItems.ContainsKey(Item.Id)) { _wallItems.TryAdd(Item.Id, Item); } } } foreach (Item Item in _floorItems.Values.ToList()) { if (Item.IsRoller) { mGotRollers = true; } else if (Item.GetBaseItem().InteractionType == InteractionType.MOODLIGHT) { if (_room.MoodlightData == null) { _room.MoodlightData = new MoodlightData(Item.Id); } } else if (Item.GetBaseItem().InteractionType == InteractionType.TONER) { if (_room.TonerData == null) { _room.TonerData = new TonerData(Item.Id); } } else if (Item.IsWired) { if (_room == null) { continue; } if (_room.GetWired() == null) { continue; } _room.GetWired().LoadWiredBox(Item); } else if (Item.GetBaseItem().InteractionType == InteractionType.HOPPER) { HopperCount++; } } }
public void OnChat(int Colour, string Message, bool Shout) { if (GetClient() == null || GetClient().GetHabbo() == null || mRoom == null) { return; } if (mRoom.GetWired().TriggerEvent(Items.Wired.WiredBoxType.TriggerUserSays, GetClient().GetHabbo(), Message)) { return; } GetClient().GetHabbo().HasSpoken = true; if (mRoom.WordFilterList.Count > 0 && !GetClient().GetHabbo().GetPermissions().HasRight("word_filter_override")) { Message = mRoom.GetFilter().CheckMessage(Message); } ServerPacket Packet = null; if (Shout) { Packet = new ShoutComposer(VirtualId, Message, PlusEnvironment.GetGame().GetChatManager().GetEmotions().GetEmotionsForText(Message), Colour); } else { Packet = new ChatComposer(VirtualId, Message, PlusEnvironment.GetGame().GetChatManager().GetEmotions().GetEmotionsForText(Message), Colour); } if (GetClient().GetHabbo().TentId > 0) { mRoom.SendToTent(GetClient().GetHabbo().Id, GetClient().GetHabbo().TentId, Packet); Packet = new WhisperComposer(this.VirtualId, "[Tent Chat] " + Message, 0, Colour); List <RoomUser> ToNotify = mRoom.GetRoomUserManager().GetRoomUserByRank(2); if (ToNotify.Count > 0) { foreach (RoomUser user in ToNotify) { if (user == null || user.GetClient() == null || user.GetClient().GetHabbo() == null || user.GetClient().GetHabbo().TentId == GetClient().GetHabbo().TentId) { continue; } user.GetClient().SendPacket(Packet); } } } else { foreach (RoomUser User in mRoom.GetRoomUserManager().GetRoomUsers().ToList()) { if (User == null || User.GetClient() == null || User.GetClient().GetHabbo() == null || User.GetClient().GetHabbo().GetIgnores().IgnoredUserIds().Contains(mClient.GetHabbo().Id)) { continue; } if (mRoom.chatDistance > 0 && Gamemap.TileDistance(this.X, this.Y, User.X, User.Y) > mRoom.chatDistance) { continue; } User.GetClient().SendPacket(Packet); } } #region Pets/Bots responces if (Shout) { foreach (RoomUser User in mRoom.GetRoomUserManager().GetUserList().ToList()) { if (!User.IsBot) { continue; } if (User.IsBot) { User.BotAI.OnUserShout(this, Message); } } } else { foreach (RoomUser User in mRoom.GetRoomUserManager().GetUserList().ToList()) { if (!User.IsBot) { continue; } if (User.IsBot) { User.BotAI.OnUserSay(this, Message); } } } #endregion }