public void Handle(GameClient session, ClientMessage message) { if (session != null && session.GetHabbo() != null && session.GetHabbo().GetRoomSession().RequestedRoomID > 0 && session.GetHabbo().GetRoomSession().LoadingRoom) { Room room = Skylight.GetGame().GetRoomManager().TryGetRoom(session.GetHabbo().GetRoomSession().RequestedRoomID); session.GetHabbo().GetRoomSession().ResetRequestedRoom(); if (room != null) { if (room.RoomGamemapManager.Model != null) { session.SendData(room.RoomGamemapManager.Model.GetHeightmap(session.Revision, room.RoomGamemapManager.Tiles)); session.SendData(room.RoomGamemapManager.Model.GetRelativeHeightmap(session.Revision)); //TODO: Fix public items ServerMessage publicItems = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); publicItems.Init(r63bOutgoing.PublicItems); publicItems.AppendInt32(0); session.SendMessage(publicItems); if (room.RoomData.Type == "private") { Dictionary <uint, string> floorItemOwners = new Dictionary <uint, string>(); List <byte> tempHolder = new List <byte>(); foreach (RoomItem item in room.RoomItemManager.FloorItems.Values) { if (!floorItemOwners.ContainsKey(item.UserID)) { floorItemOwners.Add(item.UserID, Skylight.GetGame().GetGameClientManager().GetUsernameByID(item.UserID)); } ServerMessage temp = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); temp.Init(); item.Serialize(temp); tempHolder.AddRange(temp.GetBytes()); } ServerMessage floorItems = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); floorItems.Init(r63bOutgoing.FloorItems); floorItems.AppendInt32(floorItemOwners.Count); foreach (KeyValuePair <uint, string> floorItemOwner in floorItemOwners) { floorItems.AppendUInt(floorItemOwner.Key); floorItems.AppendString(floorItemOwner.Value); } floorItems.AppendInt32(room.RoomItemManager.FloorItems.Values.Count); floorItems.AppendBytes(tempHolder); session.SendMessage(floorItems); tempHolder = new List <byte>(); Dictionary <uint, string> wallItemOwners = new Dictionary <uint, string>(); foreach (RoomItem item in room.RoomItemManager.WallItems.Values) { if (!wallItemOwners.ContainsKey(item.UserID)) { wallItemOwners.Add(item.UserID, Skylight.GetGame().GetGameClientManager().GetUsernameByID(item.UserID)); } ServerMessage temp = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); temp.Init(); item.Serialize(temp); tempHolder.AddRange(temp.GetBytes()); } ServerMessage wallItems = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); wallItems.Init(r63bOutgoing.WallItems); wallItems.AppendInt32(wallItemOwners.Count); foreach (KeyValuePair <uint, string> wallItemOwner in wallItemOwners) { wallItems.AppendUInt(wallItemOwner.Key); wallItems.AppendString(wallItemOwner.Value); } wallItems.AppendInt32(room.RoomItemManager.WallItems.Values.Count); wallItems.AppendBytes(tempHolder); session.SendMessage(wallItems); } room.RoomUserManager.EnterRoom(session); ICollection <RoomUnit> users = room.RoomUserManager.GetRoomUsers(); ServerMessage setRoomUsers = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); setRoomUsers.Init(r63bOutgoing.SetRoomUser); setRoomUsers.AppendInt32(users.Count); foreach (RoomUnit user in users) { user.Serialize(setRoomUsers); } session.SendMessage(setRoomUsers); ServerMessage roomVIPsetting = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); roomVIPsetting.Init(r63bOutgoing.RoomVIPSettings); roomVIPsetting.AppendBoolean(room.RoomData.Hidewalls); roomVIPsetting.AppendInt32(room.RoomData.Wallthick); roomVIPsetting.AppendInt32(room.RoomData.Floorthick); session.SendMessage(roomVIPsetting); if (room.RoomData.Type == "private") { ServerMessage roomOwner = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); roomOwner.Init(r63bOutgoing.RoomOwner); roomOwner.AppendBoolean(true); //is private room roomOwner.AppendUInt(room.ID); roomOwner.AppendBoolean(room.HaveOwnerRights(session)); //is roomowner session.SendMessage(roomOwner); ServerMessage roomData = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); roomData.Init(r63bOutgoing.RoomData); roomData.AppendBoolean(false); //entered room room.RoomData.Serialize(roomData, false); roomData.AppendBoolean(false); //forward roomData.AppendBoolean(room.RoomData.IsStaffPick); //is staff pick roomData.AppendBoolean(true); session.SendMessage(roomData); } else { ServerMessage roomOwner = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); roomOwner.Init(r63bOutgoing.RoomOwner); roomOwner.AppendBoolean(false); //is private room roomOwner.AppendString(room.RoomGamemapManager.Model.ID); roomOwner.AppendInt32(0); //unknwown session.SendMessage(roomOwner); } MultiRevisionServerMessage usersStatuses = room.RoomUserManager.GetUserStatus(true); if (usersStatuses != null) { session.SendData(usersStatuses.GetBytes(session.Revision)); } foreach (RoomUnitUser user in room.RoomUserManager.GetRealUsers()) { if (user.Dancing) { ServerMessage danceMessage = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); danceMessage.Init(r63bOutgoing.Dance); danceMessage.AppendInt32(user.VirtualID); danceMessage.AppendInt32(user.DanceID); session.SendMessage(danceMessage); } if (user.Sleeps) { ServerMessage sleeps = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); sleeps.Init(r63bOutgoing.Sleeps); sleeps.AppendInt32(user.VirtualID); sleeps.AppendBoolean(true); session.SendMessage(sleeps); } if (user.Handitem > 0 && user.HanditemTimer > 0) { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); message_.Init(r63bOutgoing.Handitem); message_.AppendInt32(user.VirtualID); message_.AppendInt32(user.Handitem); session.SendMessage(message_); } if (user.ActiveEffect > 0) { ServerMessage Message = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); Message.Init(r63bOutgoing.Effect); Message.AppendInt32(user.VirtualID); Message.AppendInt32(user.ActiveEffect); session.SendMessage(Message); } } room.RoomWiredManager.UserEnterRoom(session.GetHabbo().GetRoomSession().GetRoomUser()); if (session.GetHabbo().IsMuted()) { ServerMessage flood = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); flood.Init(r63bOutgoing.Flood); flood.AppendInt32(session.GetHabbo().MuteTimeLeft()); session.SendMessage(flood); } } else { session.SendNotif("Failed load room model!"); } } else { session.SendNotif("Room not found!"); } } }
public void Handle(GameClient session, ClientMessage message) { session.SendMessage(Skylight.GetGame().GetNavigatorManager().GetPopularRoomTags()); }
public void EnterRoom() { Room room = Skylight.GetGame().GetRoomManager().TryGetRoom(this.RequestedRoomID); if (room != null && this.LoadingRoom) { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.LoadingRoomInfo).Handle(new ValueHolder().AddValue("RoomModel", room.RoomData.Model).AddValue("RoomID", room.ID))); if (room.RoomData.Type == "private") { if (room.RoomData.Wallpaper != "0.0") { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.ApplyRoomEffect).Handle(new ValueHolder().AddValue("Type", "wallpaper").AddValue("Data", room.RoomData.Wallpaper))); } if (room.RoomData.Floor != "0.0") { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.ApplyRoomEffect).Handle(new ValueHolder().AddValue("Type", "floor").AddValue("Data", room.RoomData.Floor))); } if (room.RoomData.Landscape != "0.0") { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.ApplyRoomEffect).Handle(new ValueHolder().AddValue("Type", "landscape").AddValue("Data", room.RoomData.Landscape))); } if (room.GaveRoomRights(this.Habbo.GetSession())) { if (room.HaveOwnerRights(this.Habbo.GetSession())) { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.GiveRoomRights).Handle(new ValueHolder().AddValue("RightsLevel", 4))); this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.IsRoomOwner).Handle()); } else { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.GiveRoomRights).Handle(new ValueHolder().AddValue("RightsLevel", 1))); } } else { if (this.Habbo.GetSession().Revision >= Revision.RELEASE63_201211141113_913728051) //on r63a this is NOT send if the user DOSEN'T have rights { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.GiveRoomRights).Handle(new ValueHolder().AddValue("RightsLevel", 0))); } } if (this.Habbo.GetSession().Revision < Revision.RELEASE63_201211141113_913728051) { if (room.HaveOwnerRights(this.Habbo.GetSession()) || this.Habbo.RatedRooms.Contains(room.ID)) { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.RoomRating).Handle(new ValueHolder().AddValue("Score", room.RoomData.Score))); } else { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.RoomRating).Handle(new ValueHolder().AddValue("Score", -1))); } } else { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.RoomRating).Handle(new ValueHolder().AddValue("Score", room.RoomData.Score).AddValue("CanVote", !room.HaveOwnerRights(this.Habbo.GetSession()) && !this.Habbo.RatedRooms.Contains(room.ID)))); } if (this.Habbo.GetSession().Revision < Revision.RELEASE63_201211141113_913728051) { if (room.RoomEvent != null) { this.Habbo.GetSession().SendMessage(room.RoomEvent.Serialize()); } else { if (this.Habbo.GetSession().Revision > Revision.R26_20080915_0408_7984_61ccb5f8b8797a3aba62c1fa2ca80169) { ServerMessage roomEvent = BasicUtilies.GetRevisionServerMessage(this.Habbo.GetSession().Revision); roomEvent.Init(r63aOutgoing.RoomEvent); roomEvent.AppendString("-1"); //no event this.Habbo.GetSession().SendMessage(roomEvent); } else { ServerMessage roomEvent = BasicUtilies.GetRevisionServerMessage(this.Habbo.GetSession().Revision); roomEvent.Init(r63aOutgoing.RoomEvent); roomEvent.AppendString("-1", null); //no event this.Habbo.GetSession().SendMessage(roomEvent); } } } } } }
public void RequestPrivateRoom(uint id, string password) { this.ResetRequestedRoom(); if (Skylight.GetGame().GetRoomManager().TryGetAndLoadRoomData(id) != null) { if (this.IsInRoom) { Room oldRoom = Skylight.GetGame().GetRoomManager().TryGetRoom(this.CurrentRoomID); if (oldRoom != null) { oldRoom.RoomUserManager.LeaveRoom(this.Habbo.GetSession(), false); } } Room room = Skylight.GetGame().GetRoomManager().TryGetAndLoadRoom(id); if (room != null) { this.RequestedRoomID = id; if (room.RoomUserManager.UserHaveBan(this.Habbo.ID)) { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.RoomErrorOnEnter).Handle(new ValueHolder().AddValue("ErrorCode", 4))); this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.LeaveRoom).Handle()); } else { if (room.RoomData.UsersNow >= room.RoomData.UsersMax && !this.GetHabbo().HasPermission("acc_enter_fullrooms")) { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.RoomErrorOnEnter).Handle(new ValueHolder().AddValue("ErrorCode", 1))); this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.LeaveRoom).Handle()); } else { if (room.RoomData.Type == "public") { this.LoadingRoom = true; } else //private { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.EnterPrivateRoom).Handle()); if (!this.GetHabbo().HasPermission("acc_enter_anyroom")) { if (this.TargetTeleportID != 0) { RoomItem item = room.RoomItemManager.TryGetRoomItem(this.TargetTeleportID); if (item == null) { this.TargetTeleportID = 0; this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.DoorbellNoAnswer).Handle()); } else { this.LoadingRoom = true; } } else { if (room.RoomData.State == RoomStateType.OPEN) { this.LoadingRoom = true; } else if (room.RoomData.State == RoomStateType.LOCKED) { if (!room.HaveOwnerRights(this.Habbo.GetSession())) { if (room.RoomData.UsersNow == 0) { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.DoorbellNoAnswer).Handle()); } else { this.WaitingForDoorbellAnswer = true; this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.Doorbell).Handle()); room.SendToAllWhoHaveRights(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.Doorbell).Handle(new ValueHolder().AddValue("Username", this.Habbo.Username))); } } else { this.LoadingRoom = true; } } else //its locked ofc now { if (!room.HaveOwnerRights(this.Habbo.GetSession())) { if (password.ToLower() == room.RoomData.Password.ToLower()) { this.LoadingRoom = true; } else { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.RoomError).Handle(new ValueHolder().AddValue("ErrorCode", -100002))); this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.LeaveRoom).Handle()); } } else { this.LoadingRoom = true; } } } } else { this.LoadingRoom = true; } } this.EnterRoom(); } } } } }
public void GetRoomState(uint id) //r26 { this.ResetRequestedRoom(); if (Skylight.GetGame().GetRoomManager().TryGetAndLoadRoomData(id) != null) { if (this.IsInRoom) { Room oldRoom = Skylight.GetGame().GetRoomManager().TryGetRoom(this.CurrentRoomID); if (oldRoom != null) { oldRoom.RoomUserManager.LeaveRoom(this.Habbo.GetSession(), false); } } Room room = Skylight.GetGame().GetRoomManager().TryGetAndLoadRoom(id); if (room != null) { this.RequestedRoomID = id; if (room.RoomData.UsersNow >= room.RoomData.UsersMax && !this.GetHabbo().HasPermission("acc_enter_fullrooms")) { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.RoomErrorOnEnter).Handle(new ValueHolder().AddValue("ErrorCode", 1))); this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.LeaveRoom).Handle()); } else { if (room.RoomData.Type == "public") { this.LoadingRoom = true; this.EnterRoom(); } else //private { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.EnterPrivateRoom).Handle()); ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.R26_20080915_0408_7984_61ccb5f8b8797a3aba62c1fa2ca80169); message.Init(r26Outgoing.Unknown); message.AppendString("skylight", null); this.Habbo.GetSession().SendMessage(message); if (!this.GetHabbo().HasPermission("acc_enter_anyroom")) { if (this.TargetTeleportID != 0) { RoomItem item = room.RoomItemManager.TryGetRoomItem(this.TargetTeleportID); if (item == null) { this.TargetTeleportID = 0; this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.DoorbellNoAnswer).Handle()); } else { this.LoadingRoom = true; } } else { if (room.RoomData.State == RoomStateType.OPEN) { this.LoadingRoom = true; } } } else { this.LoadingRoom = true; } } } } } }
public void EnterCheckRoom(string password) //r26 { Room room = Skylight.GetGame().GetRoomManager().TryGetRoom(this.RequestedRoomID); if (room != null) { if (room.RoomUserManager.UserHaveBan(this.Habbo.ID)) { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.RoomErrorOnEnter).Handle(new ValueHolder().AddValue("ErrorCode", 4))); this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.LeaveRoom).Handle()); } else { if (!this.LoadingRoom) { if (room.RoomData.State == RoomStateType.LOCKED) { if (!room.HaveOwnerRights(this.Habbo.GetSession())) { if (room.RoomData.UsersNow == 0) { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.DoorbellNoAnswer).Handle()); } else { this.WaitingForDoorbellAnswer = true; this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.Doorbell).Handle()); room.SendToAllWhoHaveRights(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.Doorbell).Handle(new ValueHolder().AddValue("Username", this.Habbo.Username))); } } else { this.LoadingRoom = true; } } else //its locked ofc now { if (!room.HaveOwnerRights(this.Habbo.GetSession())) { if (password.ToLower() == room.RoomData.Password.ToLower()) { this.LoadingRoom = true; } else { this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.RoomError).Handle(new ValueHolder().AddValue("ErrorCode", -100002))); this.Habbo.GetSession().SendMessage(BasicUtilies.GetRevisionPacketManager(this.Habbo.GetSession().Revision).GetOutgoing(OutgoingPacketsEnum.LeaveRoom).Handle()); } } else { this.LoadingRoom = true; } } } if (this.LoadingRoom) { ServerMessage message = BasicUtilies.GetRevisionServerMessage(Revision.R26_20080915_0408_7984_61ccb5f8b8797a3aba62c1fa2ca80169); message.Init(r26Outgoing.EnterCheckRoom); this.Habbo.GetSession().SendMessage(message); } } } }
public void Handle(GameClient session, ClientMessage message) { int category = message.PopFixedInt32(); ServerMessage popularRooms = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_201211141113_913728051); popularRooms.Init(r63bOutgoing.Navigator); List <RoomData> rooms = new List <RoomData>(); switch (category) { case -1: { popularRooms.AppendInt32(1); popularRooms.AppendString("-1"); rooms = Skylight.GetGame().GetRoomManager().GetLoadedRooms().Where(r => r != null && r.RoomData != null && r.RoomData.Type == "private" && r.RoomData.UsersNow > 0).OrderByDescending(r => r.RoomData.UsersNow).Take(50).Select(r => r.RoomData).ToList(); break; } case -2: { popularRooms.AppendInt32(2); popularRooms.AppendString(""); DataTable dataTable = null; using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dataTable = dbClient.ReadDataTable("SELECT * FROM rooms WHERE score > 0 AND type = 'private' ORDER BY score DESC LIMIT 50"); } if (dataTable != null && dataTable.Rows.Count > 0) { foreach (DataRow dataRow in dataTable.Rows) { rooms.Add(Skylight.GetGame().GetRoomManager().TryGetAndLoadRoomData((uint)dataRow["id"], dataRow)); } } break; } case -4: { popularRooms.AppendInt32(0); popularRooms.AppendString(""); foreach (Room room in Skylight.GetGame().GetRoomManager().GetLoadedRooms().Where(r => r.RoomData.UsersNow > 0).OrderByDescending(r => r.RoomData.UsersNow)) { if (session.GetHabbo().GetMessenger().GetFriends().Any(f => f.ID == room.RoomData.OwnerID)) { rooms.Add(room.RoomData); if (rooms.Count >= 50) { break; } } } break; } case -5: { popularRooms.AppendInt32(0); popularRooms.AppendString(""); foreach (MessengerFriend friend in session.GetHabbo().GetMessenger().GetFriends()) { if (friend.InRoom) { GameClient friend_ = Skylight.GetGame().GetGameClientManager().GetGameClientById(friend.ID); rooms.Add(friend_.GetHabbo().GetRoomSession().GetRoom().RoomData); if (rooms.Count >= 50) { break; } } } break; } default: { //category search if (category > -1) { popularRooms.AppendInt32(1); popularRooms.AppendString(category.ToString()); rooms = Skylight.GetGame().GetRoomManager().GetLoadedRooms().Where(r => r.RoomData.Type == "private" && r.RoomData.UsersNow > 0 && r.RoomData.Category == category).OrderByDescending(r => r.RoomData.UsersNow).Take(50).Select(r => r.RoomData).ToList(); } break; } } popularRooms.AppendInt32(rooms.Count); foreach (RoomData room in rooms) { room.Serialize(popularRooms, false); } List <PublicItem> itemsThatsNotCategory = Skylight.GetGame().GetNavigatorManager().GetPublicRoomItems().Where(i => i.Type != PublicItemType.CATEGORY).ToList(); if (itemsThatsNotCategory.Count > 0) { popularRooms.AppendBoolean(true); itemsThatsNotCategory.ElementAt(new Random().Next(0, itemsThatsNotCategory.Count)).Serialize(popularRooms); } else { popularRooms.AppendBoolean(false); } session.SendMessage(popularRooms); }
public void AddFriendToBoth(uint userId) { this.AddFriend(userId); Skylight.GetGame().GetGameClientManager().GetGameClientById(userId)?.GetHabbo()?.GetMessenger()?.AddFriend(new MessengerFriend(this.Habbo.ID, 0, this.Habbo.Look, this.Habbo.Motto, this.Habbo.LastOnline, MessengerFriendRelation.None)); }
/// <summary> /// Removes the friend from this user and from the partner /// </summary> /// <param name="userId">Friend user id</param> public void RemoveFriendFromBoth(uint userId) { this.RemoveFriend(userId); Skylight.GetGame().GetGameClientManager().GetGameClientById(userId)?.GetHabbo()?.GetMessenger()?.RemoveFriend(this.ID); }
public void Handle(GameClient session, ClientMessage message) { Room room = session.GetHabbo().GetRoomSession().GetRoom(); if (room != null) { if (!session.GetHabbo().GetRoomSession().GetRoom().RoomMute || session.GetHabbo().HasPermission("acc_ignore_roommute")) { if (!session.GetHabbo().IsMuted()) { session.GetHabbo().GetRoomSession().GetRoomUser().Unidle(); if (session.GetHabbo().GetRoomSession().GetRoomUser().CheckForFloor()) { session.GetHabbo().GetRoomSession().GetRoomUser().FloodUser(); } else { session.GetHabbo().LastRoomMessage = DateTime.Now; session.GetHabbo().FloodCounter++; string[] data = message.PopFixedString().Split(new char[] { ' ' }, 2); string username = data[0]; string message_ = data[1]; if (message_.Length > 300) { message_ = message_.Substring(0, 300); } message_ = TextUtilies.FilterString(message_); RoomUnitUser user = room.RoomUserManager.GetUserByName(username); if (user != null) { if (!session.GetHabbo().HasPermission("acc_nochatlog_whisper")) { Skylight.GetGame().GetChatlogManager().LogRoomMessage(session, "Whisper" + (char)9 + user.Session.GetHabbo().ID + (char)9 + message_); } message_ = TextUtilies.CheckBlacklistedWords(message_); ServerMessage message_2 = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_2.Init(r63aOutgoing.Whisper); message_2.AppendInt32(session.GetHabbo().GetRoomSession().GetRoomUser().VirtualID); Dictionary <int, string> links = new Dictionary <int, string>(); if (message_.Contains("http://") || message_.Contains("www.") || message_.Contains("https://")) { string[] words = message_.Split(' '); message_ = ""; foreach (string word in words) { if (TextUtilies.ValidURL(word)) { int index = links.Count; links.Add(index, word); message_ += " {" + index + "}"; } else { message_ += " " + word; } } } message_2.AppendString(message_); message_2.AppendInt32(RoomUnit.GetGesture(message_.ToLower())); //gesture message_2.AppendInt32(links.Count); //links count foreach (KeyValuePair <int, string> link in links) { message_2.AppendString("/redirect.php?url=" + link.Value); message_2.AppendString(link.Value); message_2.AppendBoolean(true); //trushed, can link be opened } user.Session.SendMessage(message_2); session.SendMessage(message_2); } } } } } }
public override bool OnUse(GameClients.GameClient session, string[] args) { if (args.Length >= 2) { if (session.GetHabbo().HasPermission("cmd_ban")) { GameClient target = Skylight.GetGame().GetGameClientManager().GetGameClientByUsername(args[1]); if (target != null) { if (target.GetHabbo().Rank < session.GetHabbo().Rank) { string banLenghtString = "P"; if (args.Length >= 3) { banLenghtString = args[2]; if (banLenghtString != "P") { if (!Char.IsNumber(banLenghtString.Substring(banLenghtString.Length - 1)[0])) { int lenght; if (!int.TryParse(banLenghtString.Substring(0, banLenghtString.Length - 1), out lenght)) { return(false); } } else { int lenght; if (!int.TryParse(banLenghtString, out lenght)) { return(false); } } } } string banReason = "No reason"; if (args.Length >= 4) { banReason = TextUtilies.MergeArrayToString(args, 3); } return(Skylight.GetGame().GetBanManager().BanUser(session, target, BanType.User, target.GetHabbo().ID.ToString(), banReason, banLenghtString)); } else { session.SendNotif("You are not allowed to ban that user."); } } else { session.SendNotif("User not found."); } return(true); } } return(false); }