public void Handle(GameClient session, ClientMessage message) { Room room = session.GetHabbo().GetRoomSession().GetRoom(); if (room != null) { uint itemId = message.PopWiredUInt(); RoomItem item = room.RoomItemManager.TryGetRoomItem(itemId); if (item != null) { string data = message.PopFixedString(); string[] dataSpllited = data.Split(new char[] { ' ' }, 2); string message_ = TextUtilies.FilterString(dataSpllited[1], false, true); if (room.GaveRoomRights(session) || data.StartsWith(item.ExtraData)) { string color = dataSpllited[0]; if (color == "FFFF33" || color == "FF9CFF" || color == "9CCEFF" || color == "9CFF9C") { item.ExtraData = color + " " + message_; item.UpdateState(true, true); } } } } }
public void Handle(GameClient session, ClientMessage message) { if (session != null && session.GetHabbo() != null) { RoomUnit roomUser = session.GetHabbo().GetRoomSession().GetRoomUser(); if (roomUser != null) { string motto = TextUtilies.FilterString(message.PopFixedString()); if (!TextUtilies.HaveBlacklistedWords(motto)) { session.GetHabbo().Motto = motto; using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dbClient.AddParamWithValue("userId", session.GetHabbo().ID); dbClient.AddParamWithValue("motto", motto); dbClient.ExecuteQuery("UPDATE users SET motto = @motto WHERE id = @userId LIMIT 1"); if (session.GetHabbo().GetUserSettings().FriendStream) { dbClient.ExecuteQuery("INSERT INTO user_friend_stream(type, user_id, timestamp, extra_data) VALUES('3', @userId, UNIX_TIMESTAMP(), @motto)"); } } session.SendMessage(OutgoingPacketsEnum.UpdateUser, new ValueHolder("VirtualID", -1, "Look", session.GetHabbo().Look, "Gender", session.GetHabbo().Gender, "Motto", session.GetHabbo().Motto, "AchievementPoints", session.GetHabbo().GetUserStats().AchievementPoints)); roomUser.Room.SendToAll(OutgoingPacketsEnum.UpdateUser, new ValueHolder("VirtualID", roomUser.VirtualID, "Look", session.GetHabbo().Look, "Gender", session.GetHabbo().Gender, "Motto", session.GetHabbo().Motto, "AchievementPoints", session.GetHabbo().GetUserStats().AchievementPoints)); Skylight.GetGame().GetAchievementManager().AddAchievement(session, "ChangeMotto", 1); } } } }
public virtual void Handle(GameClient session, ClientMessage message) { if (session?.GetHabbo()?.GetMessenger() != null) { string filteredMessage = TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(this.Message)); List <string> receiverUsernames = new List <string>(); List <int> receiverSessionIds = new List <int>(); foreach (uint userId in this.SendTo) { if (userId > 0) //real user { if (session.GetHabbo().GetMessenger().IsFriendWith(userId)) { Skylight.GetGame().GetGameClientManager().GetGameClientById(userId)?.SendMessage(new MessengerReceivedRoomInviteComposerHandler(session.GetHabbo().ID, filteredMessage)); } else { receiverUsernames.Add(Skylight.GetGame().GetGameClientManager().GetUsernameByID(userId)); receiverSessionIds.Add(-1); } } } Skylight.GetGame().GetChatlogManager().LogRoomInvite(session, this.SendTo.Where(u => u > 0).ToList(), receiverUsernames, receiverSessionIds, this.Message); } }
public void Handle(GameClient session, ClientMessage message) { if (session.FlagmeCommandUsed) { if (session.GetHabbo().HasPermission("cmd_flagme")) { string username = TextUtilies.FilterString(message.PopFixedString()); if (username.Length < 3) //to short { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.ValidUsername); message_.AppendInt32(2); //result message_.AppendString(username); message_.AppendInt32(0); //suggested names session.SendMessage(message_); } else if (username.Length > 15) // too long { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.ValidUsername); message_.AppendInt32(3); //result message_.AppendString(username); message_.AppendInt32(0); //suggested names session.SendMessage(message_); } else if (username.Contains(" ") || !Regex.IsMatch(username, "^[-a-zA-Z0-9._:,]+$") || TextUtilies.HaveBlacklistedWords(username)) //invalid name { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.ValidUsername); message_.AppendInt32(4); //result message_.AppendString(username); message_.AppendInt32(0); //suggested names session.SendMessage(message_); } else if (Skylight.GetGame().GetGameClientManager().UsernameExits(username)) //name already exits { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.ValidUsername); message_.AppendInt32(5); //result message_.AppendString(username); message_.AppendInt32(0); //suggested names session.SendMessage(message_); } else { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.ValidUsername); message_.AppendInt32(0); //result message_.AppendString(username); message_.AppendInt32(0); //suggested names session.SendMessage(message_); } } } else { } }
public void Handle(GameClient session, ClientMessage message) { int pageId = message.PopWiredInt32(); uint itemId = message.PopWiredUInt(); string extraData = message.PopFixedString(); string receiverUsername = TextUtilies.FilterString(message.PopFixedString()); string giftMessage = TextUtilies.FilterString(message.PopFixedString()); int giftSpriteId = message.PopWiredInt32(); //0 for no special gift int giftBoxId = message.PopWiredInt32(); int giftRibbonId = message.PopWiredInt32(); Skylight.GetGame().GetCatalogManager().BuyItem(session, pageId, itemId, extraData, 1, true, receiverUsername, giftMessage, giftSpriteId, giftBoxId, giftRibbonId); }
public void Handle(GameClient session, ClientMessage message) { if (session != null && session.GetHabbo() != null) { RoomUnit roomUser = session.GetHabbo().GetRoomSession().GetRoomUser(); if (roomUser != null) { string motto = TextUtilies.FilterString(message.PopFixedString()); if (!TextUtilies.HaveBlacklistedWords(motto)) { session.GetHabbo().Motto = motto; using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dbClient.AddParamWithValue("userId", session.GetHabbo().ID); dbClient.AddParamWithValue("motto", motto); dbClient.ExecuteQuery("UPDATE users SET motto = @motto WHERE id = @userId LIMIT 1"); if (session.GetHabbo().GetUserSettings().FriendStream) { dbClient.ExecuteQuery("INSERT INTO user_friend_stream(type, user_id, timestamp, extra_data) VALUES('3', @userId, UNIX_TIMESTAMP(), @motto)"); } } ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.UpdateUser); message_.AppendInt32(-1); message_.AppendString(session.GetHabbo().Look); message_.AppendString(session.GetHabbo().Gender.ToLower()); message_.AppendString(session.GetHabbo().Motto); message_.AppendInt32(session.GetHabbo().GetUserStats().AchievementPoints); session.SendMessage(message_); ServerMessage message_2 = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_2.Init(r63aOutgoing.UpdateUser); message_2.AppendInt32(roomUser.VirtualID); message_2.AppendString(session.GetHabbo().Look); message_2.AppendString(session.GetHabbo().Gender.ToLower()); message_2.AppendString(session.GetHabbo().Motto); message_2.AppendInt32(session.GetHabbo().GetUserStats().AchievementPoints); roomUser.Room.SendToAll(message_2); Skylight.GetGame().GetAchievementManager().AddAchievement(session, "ChangeMotto", 1); } } } }
void IncomingPacket.Handle(GameClient session, ClientMessage message) { if (session != null && session.GetHabbo() != null) { RoomUnit roomUser = session.GetHabbo().GetRoomSession().CurrentRoomRoomUser; if (roomUser != null) { string message_ = message.PopFixedString(); if (message_.Length > 300) { message_ = message_.Substring(0, 300); } roomUser.Speak(TextUtilies.FilterString(message_), true, session.GetHabbo().GetUserSettings().ChatColor = message.PopWiredInt32()); } } }
public void Handle(GameClient session, ClientMessage message) { if (session != null && session.GetHabbo() != null) { RoomUnit roomUser = session.GetHabbo().GetRoomSession().CurrentRoomRoomUser; if (roomUser != null) { string message_ = message.PopFixedString(); if (message_.Length > 300) { message_ = message_.Substring(0, 300); } roomUser.Speak(TextUtilies.FilterString(message_), true); } } }
public void Handle(GameClient session, ClientMessage message) { if (session != null && session.GetHabbo() != null) { RoomUnit roomUser = session.GetHabbo().GetRoomSession().CurrentRoomRoomUser; if (roomUser != null) { string message_ = message.PopFixedString(); if (message_.Length > 300) { message_ = message_.Substring(0, 300); } roomUser.Speak(TextUtilies.FilterString(message_), false); roomUser.Room.SendToAll(new MultiRevisionServerMessage(OutgoingPacketsEnum.TypingStatus, new ValueHolder().AddValue("VirtualID", roomUser.VirtualID).AddValue("Typing", false))); } } }
public RoomData CreateRoom(GameClient gameClient, string roomName, string roomDescription, string roomModel, int categoryId, int maxUsers, int tradeType, RoomStateType state) { roomName = TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(roomName)); if (this.RoomModels.ContainsKey(roomModel)) { string clubName = this.RoomModels[roomModel].ClubName; if (string.IsNullOrEmpty(clubName) || gameClient.GetHabbo().GetSubscriptionManager().HasSubscription(clubName)) //hc check { if (roomName.Length >= 1) { uint roomId = 0; using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dbClient.AddParamWithValue("name", roomName); dbClient.AddParamWithValue("description", roomDescription); dbClient.AddParamWithValue("model", roomModel); dbClient.AddParamWithValue("category", categoryId); dbClient.AddParamWithValue("usersMax", maxUsers); dbClient.AddParamWithValue("ownerid", gameClient.GetHabbo().ID); dbClient.ExecuteQuery("INSERT INTO rooms(type, name, description, model, category, users_max, trade, ownerid, data, state) VALUES('private', @name, @description, @model, @category, @usersMax, '" + tradeType + "', @ownerid, '', '" + (state == RoomStateType.PASSWORD ? "password" : state == RoomStateType.LOCKED ? "locked" : "open") + "')"); roomId = (uint)dbClient.GetID(); } gameClient.GetHabbo().AddRoom(roomId); return(this.TryGetAndLoadRoomData(roomId)); } else { gameClient.SendNotif("Room name is too short!"); return(null); } } else { gameClient.SendNotif("You need HC/VIP to use this room model!"); return(null); } } else { gameClient.SendNotif("This room model havent yet added! Please try again later!"); return(null); } }
public void Handle(GameClient session, ClientMessage message) { Room room = session.GetHabbo().GetRoomSession().GetRoom(); if (room != null) { uint itemId = message.PopWiredUInt(); RoomItem item = room.RoomItemManager.TryGetFloorItem(itemId); if (item != null && item is RoomItemFootballGate) { RoomItemFootballGate gate = (RoomItemFootballGate)item; string gender = message.PopFixedString(); string look = message.PopFixedString(); if (gender == "M" || gender == "F") { gate.SetFigure(gender, TextUtilies.FilterString(look)); } } } }
public void Handle(GameClient session, ClientMessage message) { if (!Skylight.GetGame().GetModerationToolManager().HaveOpenSupportTickets(session.GetHabbo().ID)) { string issue = TextUtilies.FilterString(message.PopFixedString()); message.PopWiredInt32(); //always 1 int topic = message.PopWiredInt32(); uint reportedId = message.PopWiredUInt(); Skylight.GetGame().GetModerationToolManager().CallForHelp(session, issue, topic, reportedId); ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.CallForHelpResult); message_.AppendBoolean(false); session.SendMessage(message_); } else { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.CallForHelpResult); message_.AppendBoolean(true); session.SendMessage(message_); } }
public void Handle(GameClient session, ClientMessage message) { if (session != null && session.GetHabbo() != null && session.GetHabbo().GetRoomSession() != null) { Room room = Skylight.GetGame().GetRoomManager().TryGetRoom(session.GetHabbo().GetRoomSession().CurrentRoomID); if (room != null && room.HaveOwnerRights(session)) { uint roomId = message.PopWiredUInt(); string name = TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(message.PopFixedString())); if (name.Length > 100) { name = name.Substring(0, 100); } string description = TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(message.PopFixedString())); if (description.Length > 255) { description = description.Substring(0, 255); } int state = message.PopWiredInt32(); if (state < 0 || state > 2) { state = (int)room.RoomData.State; } string password = TextUtilies.FilterString(message.PopFixedString()); if (password.Length > 30) { password = room.RoomData.Password; } int usersMax = message.PopWiredInt32(); if (usersMax < 0 || usersMax % 5 == 1 || usersMax > 100) { usersMax = room.RoomData.UsersMax; } int category = message.PopWiredInt32(); if (Skylight.GetGame().GetNavigatorManager().GetFlatCat(category) == null) //invalid category { category = room.RoomData.Category; } string tags = ""; int tagsCount = message.PopWiredInt32(); if (tagsCount >= 0 && tagsCount <= 2) { for (int i = 0; i < tagsCount; i++) { if (i > 0) { tags += ","; } tags += TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(message.PopFixedString())); } if (tags.Length > 100) { tags = string.Join(",", room.RoomData.Tags); } } else { tags = string.Join(",", room.RoomData.Tags); } bool allowPets = message.PopBase64Boolean(); bool allowPetsEat = message.PopBase64Boolean(); bool allowWalkthrough = message.PopBase64Boolean(); bool hidewalls = message.PopBase64Boolean(); int wallthick = message.PopWiredInt32(); if (wallthick < -2 || wallthick > 1) { wallthick = room.RoomData.Wallthick; } int floorthick = message.PopWiredInt32(); if (floorthick < -2 || floorthick > 1) { floorthick = room.RoomData.Floorthick; } room.RoomData.Name = name; room.RoomData.Description = description; room.RoomData.State = (RoomStateType)state; room.RoomData.Password = password; room.RoomData.UsersMax = usersMax; room.RoomData.Category = category; room.RoomData.Tags = tags.Split(',').ToList(); room.RoomData.AllowPets = allowPets; room.RoomData.AllowPetsEat = allowPetsEat; room.RoomData.AllowWalkthrough = allowWalkthrough; room.RoomData.Hidewalls = hidewalls; room.RoomData.Wallthick = wallthick; room.RoomData.Floorthick = floorthick; using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dbClient.AddParamWithValue("roomid", room.ID); dbClient.AddParamWithValue("name", name); dbClient.AddParamWithValue("description", description); dbClient.AddParamWithValue("state", room.RoomData.State == RoomStateType.PASSWORD ? "password" : room.RoomData.State == RoomStateType.LOCKED ? "locked" : "open"); dbClient.AddParamWithValue("password", password); dbClient.AddParamWithValue("users_max", usersMax); dbClient.AddParamWithValue("category", category); dbClient.AddParamWithValue("tags", tags); dbClient.AddParamWithValue("allow_pets", allowPets ? "1" : "0"); dbClient.AddParamWithValue("allow_pets_eat", allowPetsEat ? "1" : "0"); dbClient.AddParamWithValue("allow_walkthrough", allowWalkthrough ? "1" : "0"); dbClient.AddParamWithValue("hidewalls", hidewalls ? "1" : "0"); dbClient.AddParamWithValue("wallthick", wallthick); dbClient.AddParamWithValue("floorthick", floorthick); dbClient.ExecuteQuery("UPDATE rooms SET name = @name, description = @description, state = @state, password = @password, users_max = @users_max, category = @category, tags = @tags, allow_pets = @allow_pets, allow_pets_eat = @allow_pets_eat, allow_walkthrough = @allow_walkthrough, hidewalls = @hidewalls, wallthick = @wallthick, floorthick = @floorthick WHERE id = @roomid LIMIT 1"); } room.SendToAll(new MultiRevisionServerMessage(OutgoingPacketsEnum.RoomSettingsOK, new ValueHolder("RoomID", room.ID))); room.SendToAll(new MultiRevisionServerMessage(OutgoingPacketsEnum.RoomUpdateOK, new ValueHolder("RoomID", room.ID))); room.SendToAll(new MultiRevisionServerMessage(OutgoingPacketsEnum.RoomVIPSettings, new ValueHolder("Hidewalls", room.RoomData.Hidewalls, "Wallthick", room.RoomData.Wallthick, "Floorthick", room.RoomData.Floorthick))); room.SendToAll(new MultiRevisionServerMessage(OutgoingPacketsEnum.RoomData, new ValueHolder("Room", room.RoomData))); } } }
public virtual void Handle(GameClient session, ClientMessage message) { if (session?.GetHabbo()?.GetMessenger() != null) { if (this.UserID > 0) //Real user { if (!session.GetHabbo().GetMessenger().IsFriendWith(this.UserID)) { session.SendMessage(new MessengerSendPrivateMessageErrorComposerHandler(this.UserID, MessengerSendPrivateMessageErrorCode.NotFriend)); } else { if (session.GetHabbo().IsMuted()) { session.SendMessage(new MessengerSendPrivateMessageErrorComposerHandler(this.UserID, MessengerSendPrivateMessageErrorCode.SenderMuted)); } else { GameClient target = Skylight.GetGame().GetGameClientManager().GetGameClientById(this.UserID); if (target?.GetHabbo()?.GetMessenger() != null) { if (target.GetHabbo().IsMuted()) { session.SendMessage(new MessengerSendPrivateMessageErrorComposerHandler(this.UserID, MessengerSendPrivateMessageErrorCode.ReceiverMuted)); } else { string filteredMessage = TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(this.Message)); if (!session.GetHabbo().HasPermission("acc_nochatlog_pm")) { Skylight.GetGame().GetChatlogManager().LogPrivateMessage(session, target, this.Message); } target.SendMessage(new MessengerReceivePrivateMessageComposerHandler(session.GetHabbo().ID, filteredMessage)); } } else { session.SendMessage(new MessengerSendPrivateMessageErrorComposerHandler(this.UserID, MessengerSendPrivateMessageErrorCode.Offline)); } } } } else if (this.UserID == 0) //Staff chat { if (session.GetHabbo().HasPermission("acc_staffchat")) { List <uint> receiverIds = new List <uint>(); List <string> receiverUsernames = new List <string>(); List <int> receiverSessionIds = new List <int>(); foreach (GameClient session_ in Skylight.GetGame().GetGameClientManager().GetClients()) { if ((session_?.GetHabbo()?.HasPermission("acc_staffchat") ?? false) && session_.GetHabbo().ID != session.GetHabbo().ID) { receiverIds.Add(session_.GetHabbo().ID); receiverUsernames.Add(session_.GetHabbo().Username); receiverSessionIds.Add(session_.SessionID); session_.SendMessage(new MessengerReceivePrivateMessageComposerHandler(this.UserID, this.Message, 0, session.GetHabbo().Username, session.GetHabbo().Look, session.GetHabbo().ID)); } } Skylight.GetGame().GetChatlogManager().LogStaffChatMessage(session, receiverIds, receiverUsernames, receiverSessionIds, this.Message); } else { session.SendMessage(new MessengerSendPrivateMessageErrorComposerHandler(this.UserID, MessengerSendPrivateMessageErrorCode.NotFriend)); } } else //Group chats { //MUCH TODO session.SendMessage(new MessengerSendPrivateMessageErrorComposerHandler(this.UserID, MessengerSendPrivateMessageErrorCode.Offline)); } } }
public void Handle(GameClient session, ClientMessage message) { if (session != null && session.GetHabbo() != null && session.GetHabbo().GetRoomSession() != null) { uint roomId = message.PopWiredUInt(); Room room = Skylight.GetGame().GetRoomManager().TryGetRoom(session.GetHabbo().GetRoomSession().CurrentRoomID); if (room != null && room.HaveOwnerRights(session) && room.ID == roomId) { string name = TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(message.PopFixedString())); if (name.Length > 100) { name = name.Substring(0, 100); } string description = TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(message.PopFixedString())); if (description.Length > 255) { description = description.Substring(0, 255); } int state = message.PopWiredInt32(); if (state < 0 || state > 3) { state = (int)room.RoomData.State; } string password = TextUtilies.FilterString(message.PopFixedString()); if (password.Length > 30) { password = room.RoomData.Password; } int usersMax = message.PopWiredInt32(); if (usersMax < 0 || usersMax % 5 == 1 || usersMax > 100) { usersMax = room.RoomData.UsersMax; } int category = message.PopWiredInt32(); if (Skylight.GetGame().GetNavigatorManager().GetFlatCat(category) == null) //invalid category { category = room.RoomData.Category; // 0 = no category } string tags = ""; int tagsCount = message.PopWiredInt32(); if (tagsCount >= 0 && tagsCount <= 2) { for (int i = 0; i < tagsCount; i++) { if (i > 0) { tags += ","; } tags += TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(message.PopFixedString())); } if (tags.Length > 100) { tags = string.Join(",", room.RoomData.Tags); } } else { tags = string.Join(",", room.RoomData.Tags); } int allowTrade = message.PopWiredInt32(); if (allowTrade < 0 || allowTrade > 2) { allowTrade = (int)room.RoomData.AllowTrade; } bool allowPets = message.PopWiredBoolean(); bool allowPetsEat = message.PopWiredBoolean(); bool allowWalkthrough = message.PopWiredBoolean(); bool hidewalls = message.PopWiredBoolean(); int wallthick = message.PopWiredInt32(); if (wallthick < -2 || wallthick > 1) { wallthick = room.RoomData.Wallthick; } int floorthick = message.PopWiredInt32(); if (floorthick < -2 || floorthick > 1) { floorthick = room.RoomData.Floorthick; } int muteOption = message.PopWiredInt32(); if (muteOption < 0 || muteOption > 1) { muteOption = (int)room.RoomData.MuteOption; } int kickOption = message.PopWiredInt32(); if (kickOption < 0 || kickOption > 2) { kickOption = (int)room.RoomData.KickOption; } int banOption = message.PopWiredInt32(); if (banOption < 0 || banOption > 1) { banOption = (int)room.RoomData.BanOption; } int chatMode = message.PopWiredInt32(); if (chatMode < 0 || chatMode > 1) { chatMode = (int)room.RoomData.ChatMode; } int chatWeight = message.PopWiredInt32(); if (chatWeight < 0 || chatWeight > 2) { chatWeight = (int)room.RoomData.ChatWeight; } int chatSpeed = message.PopWiredInt32(); if (chatSpeed < 0 || chatSpeed > 2) { chatSpeed = (int)room.RoomData.ChatSpeed; } int chatDistance = message.PopWiredInt32(); if (chatDistance < 0 || chatDistance > 99) { chatDistance = room.RoomData.ChatDistance; } int chatProtection = message.PopWiredInt32(); if (chatProtection < 0 || chatProtection > 2) { chatProtection = (int)room.RoomData.ChatProtection; } room.RoomData.Name = name; room.RoomData.Description = description; room.RoomData.State = (RoomStateType)state; room.RoomData.Password = password; room.RoomData.UsersMax = usersMax; room.RoomData.Category = category; room.RoomData.Tags = tags.Split(',').ToList(); room.RoomData.AllowTrade = (RoomAllowTradeType)allowTrade; room.RoomData.AllowPets = allowPets; room.RoomData.AllowPetsEat = allowPetsEat; room.RoomData.AllowWalkthrough = allowWalkthrough; room.RoomData.Hidewalls = hidewalls; room.RoomData.Wallthick = wallthick; room.RoomData.Floorthick = floorthick; room.RoomData.MuteOption = (RoomWhoCanType)muteOption; room.RoomData.KickOption = (RoomWhoCanType)kickOption; room.RoomData.BanOption = (RoomWhoCanType)banOption; room.RoomData.ChatMode = (RoomChatModeType)chatMode; room.RoomData.ChatWeight = (RoomChatWeightType)chatWeight; room.RoomData.ChatSpeed = (RoomChatSpeedType)chatSpeed; room.RoomData.ChatDistance = chatDistance; room.RoomData.ChatProtection = (RoomChatProtectionType)chatProtection; using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dbClient.AddParamWithValue("roomid", room.ID); dbClient.AddParamWithValue("name", name); dbClient.AddParamWithValue("description", description); dbClient.AddParamWithValue("state", room.RoomData.State == RoomStateType.PASSWORD ? "password" : room.RoomData.State == RoomStateType.LOCKED ? "locked" : "open"); dbClient.AddParamWithValue("password", password); dbClient.AddParamWithValue("users_max", usersMax); dbClient.AddParamWithValue("category", category); dbClient.AddParamWithValue("tags", tags); dbClient.AddParamWithValue("allow_pets", allowPets ? "1" : "0"); dbClient.AddParamWithValue("allow_pets_eat", allowPetsEat ? "1" : "0"); dbClient.AddParamWithValue("allow_walkthrough", allowWalkthrough ? "1" : "0"); dbClient.AddParamWithValue("hidewalls", hidewalls ? "1" : "0"); dbClient.AddParamWithValue("wallthick", wallthick); dbClient.AddParamWithValue("floorthick", floorthick); dbClient.ExecuteQuery("UPDATE rooms SET name = @name, description = @description, state = @state, password = @password, users_max = @users_max, category = @category, tags = @tags, allow_pets = @allow_pets, allow_pets_eat = @allow_pets_eat, allow_walkthrough = @allow_walkthrough, hidewalls = @hidewalls, wallthick = @wallthick, floorthick = @floorthick, trade = '" + allowTrade + "', mute_option = '" + muteOption + "', kick_option = '" + kickOption + "', ban_option = '" + banOption + "', chat_mode = '" + chatMode + "', chat_weight = '" + chatWeight + "', chat_speed = '" + chatSpeed + "', chat_protection = '" + chatProtection + "' WHERE id = @roomid LIMIT 1"); } room.SendToAll(OutgoingPacketsEnum.RoomSettingsOK, new ValueHolder("RoomID", room.ID)); room.SendToAll(OutgoingPacketsEnum.RoomUpdateOK, new ValueHolder("RoomID", room.ID)); room.SendToAll(OutgoingPacketsEnum.RoomVIPSettings, new ValueHolder("Hidewalls", hidewalls, "Wallthick", wallthick, "Floorthick", floorthick)); room.SendToAll(OutgoingPacketsEnum.RoomChatSettings, new ValueHolder("ChatMod", chatMode, "ChatWeight", chatWeight, "ChatSpeed", chatSpeed, "ChatDistance", chatDistance, "ChatProtection", chatProtection)); room.SendToAll(OutgoingPacketsEnum.RoomData, new ValueHolder("Room", room.RoomData)); } } }
public void Handle(GameClient session, ClientMessage message) { string[] data = message.PopStringUntilBreak(null).Split(Convert.ToChar(13)); int pageId = int.Parse(data[1]); uint itemId = uint.Parse(data[3]); string extraData = data[4]; Skylight.GetGame().GetCatalogManager().BuyItem(session, pageId, itemId, extraData, session.GetHabbo().GetCommandCache().BuyCommandValue, data[5] == "1", data[6], TextUtilies.FilterString(data[7])); session.GetHabbo().GetCommandCache().BuyCommandValue = 1; }
public void Handle(GameClient session, ClientMessage message) { if (session.FlagmeCommandUsed) { if (session.GetHabbo().HasPermission("cmd_flagme")) { string username = TextUtilies.FilterString(message.PopFixedString()); if (username.Length < 3) //to short { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.ValidUsername); message_.AppendInt32(2); //result message_.AppendString(username); message_.AppendInt32(0); //suggested names session.SendMessage(message_); } else if (username.Length > 15) // too long { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.ValidUsername); message_.AppendInt32(3); //result message_.AppendString(username); message_.AppendInt32(0); //suggested names session.SendMessage(message_); } else if (username.Contains(" ") || !Regex.IsMatch(username, "^[-a-zA-Z0-9._:,]+$") || TextUtilies.HaveBlacklistedWords(username)) //invalid name { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.ValidUsername); message_.AppendInt32(4); //result message_.AppendString(username); message_.AppendInt32(0); //suggested names session.SendMessage(message_); } else if (Skylight.GetGame().GetGameClientManager().UsernameExits(username)) //name already exits { ServerMessage message_ = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); message_.Init(r63aOutgoing.ValidUsername); message_.AppendInt32(5); //result message_.AppendString(username); message_.AppendInt32(0); //suggested names session.SendMessage(message_); } else { //CHANGE THE DAMN NAME session.FlagmeCommandUsed = false; using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { dbClient.AddParamWithValue("userId", session.GetHabbo().ID); dbClient.AddParamWithValue("userName", session.GetHabbo().Username); dbClient.AddParamWithValue("command", "flagme"); dbClient.AddParamWithValue("extraData", "Old username: "******" | New username: "******"timestamp", TimeUtilies.GetUnixTimestamp()); dbClient.AddParamWithValue("userSessionId", session.SessionID); dbClient.ExecuteQuery("INSERT INTO cmdlogs(user_id, user_name, command, extra_data, timestamp, user_session_id) VALUES (@userId, @userName, @command, @extraData, @timestamp, @userSessionId)"); dbClient.AddParamWithValue("newUserName", username); dbClient.ExecuteQuery("UPDATE users SET username = @newUserName WHERE id = @userId LIMIT 1"); } foreach (Room room in Skylight.GetGame().GetRoomManager().GetLoadedRooms()) { if (room.RoomData.OwnerID == session.GetHabbo().ID) { Skylight.GetGame().GetRoomManager().UnloadRoom(room); } } session.GetHabbo().Username = username; Skylight.GetGame().GetAchievementManager().AddAchievement(session, "ChangeName", 1); session.Stop("Name changed"); } } } else { } }
public void BuyItem(GameClient session, int pageId, uint itemId, string extraData, int amountMultiplayer, bool asGift, string receiverUsername = "", string giftMessage = "", int giftSpriteId = 0, int giftBoxId = 0, int giftRibbonId = 0) { CatalogPage page = this.GetCatalogPage(pageId); if (page != null && page.Visible & page.Enabled && page.MinRank <= session.GetHabbo().Rank) { CatalogItem item = page.GetItem(itemId); if (item != null) { if (item.IsDeal) { if (amountMultiplayer > 1) { session.SendNotif("You can't buy multiple deals at once!"); return; } } Tuple <Item, int>[] products = item.GetItems(); uint giftReceiverId = 0; if (asGift) { foreach (Tuple <Item, int> data in products) { if (!data.Item1.AllowGift) { return; } } giftReceiverId = Skylight.GetGame().GetGameClientManager().GetIDByUsername(receiverUsername); if (giftReceiverId == 0) //not valid user { ServerMessage receiverNotFound = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); receiverNotFound.Init(r63aOutgoing.GiftReceiverNotFound); session.SendMessage(receiverNotFound); return; } } if (amountMultiplayer > 1 && products[0].Item2 * amountMultiplayer > 100) { session.SendNotif("You can't buy more then 100 at once with the buy command"); return; } int finalCredits = item.CostCredits * amountMultiplayer; int finalPixels = item.CostActivityPoints * amountMultiplayer; if (asGift && giftSpriteId > 0) //special gifts costs one credit more { finalCredits++; } bool noCredits = false; bool noActivityPoints = false; if (session.GetHabbo().Credits < finalCredits) { noCredits = true; } if (session.GetHabbo().TryGetActivityPoints(item.ActivityPointsType) < finalPixels) { noActivityPoints = true; } if (noCredits || noActivityPoints) { ServerMessage noEnoughtCash = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); noEnoughtCash.Init(r63aOutgoing.NoEnoughtCash); noEnoughtCash.AppendBoolean(noCredits); noEnoughtCash.AppendBoolean(noActivityPoints); session.SendMessage(noEnoughtCash); } else { if (asGift) { foreach (Tuple <Item, int> data in products) { if (data.Item1.Type == "e") { session.SendNotif("You can not send this item as a gift."); return; } } } if (!item.IsDeal) { switch (products[0].Item1.InteractionType.ToLower()) { case "pet": { string[] data = extraData.Split('\n'); string petName = data[0]; int petRace = int.Parse(data[1]); string color = data[2]; Regex regex = new Regex(@"^[A-Z0-9_-]+$", RegexOptions.IgnoreCase); if (petName.Length >= 2 && petName.Length <= 16 && regex.IsMatch(petName) && !TextUtilies.HaveBlacklistedWords(petName)) { //buy } else { return; } if (color.Length != 6) { return; } break; } case "roomeffect": { extraData = TextUtilies.DoubleWithDotDecimal(double.Parse(extraData)); } break; case "postit": { extraData = "FFFF33"; //if you leave extra data empty same result, but for sure } break; case "dimmer": { extraData = "1,1,1,#000000,255"; //current mode } break; case "trophy": { extraData = session.GetHabbo().ID.ToString() + (char)9 + DateTime.Now.Day + "-" + DateTime.Now.Month + "-" + DateTime.Now.Year + (char)9 + TextUtilies.FilterString(extraData, false, true); } break; default: { extraData = ""; break; } } } if (finalCredits > 0) { session.GetHabbo().Credits -= finalCredits; session.GetHabbo().UpdateCredits(true); } if (finalPixels > 0) { session.GetHabbo().RemoveActivityPoints(item.ActivityPointsType, finalPixels); session.GetHabbo().UpdateActivityPoints(item.ActivityPointsType, true); } session.SendMessage(BasicUtilies.GetRevisionPacketManager(session.Revision).GetOutgoing(OutgoingPacketsEnum.BuyInfo).Handle(new ValueHolder("Item", item, "Products", products, "Credits", finalCredits, "Pixels", finalPixels))); if (asGift) { Item gift = this.GetGiftLook(giftSpriteId); using (DatabaseClient dbClient = Skylight.GetDatabaseManager().GetClient()) { string giftData = TextUtilies.FilterString(giftMessage, false, true) + (char)9 + session.GetHabbo().ID + (char)9 + giftBoxId + (char)9 + giftRibbonId; dbClient.AddParamWithValue("giftData", giftData); dbClient.AddParamWithValue("receiverId", giftReceiverId); dbClient.AddParamWithValue("giftBaseItem", gift.ID); uint giftItemId = (uint)dbClient.ExecuteQuery("INSERT INTO items(user_id, base_item, extra_data) VALUES(@receiverId, @giftBaseItem, @giftData)"); string baseItems = ""; string amounts = ""; foreach (Tuple <Item, int> data in products) { if (baseItems.Length > 0) { baseItems += ","; amounts += ","; } baseItems += data.Item1.ID; amounts += data.Item2 * amountMultiplayer; } dbClient.AddParamWithValue("itemId", giftItemId); dbClient.AddParamWithValue("baseItems", baseItems); dbClient.AddParamWithValue("amounts", amounts); dbClient.AddParamWithValue("extraData", extraData); dbClient.ExecuteQuery("INSERT INTO items_presents(item_id, base_ids, amounts, extra_data) VALUES(@itemId, @baseItems, @amounts, @extraData)"); GameClient receiver = Skylight.GetGame().GetGameClientManager().GetGameClientById(giftReceiverId); if (receiver != null) { if (giftReceiverId != session.GetHabbo().ID) //do achievement progress { receiver.GetHabbo().GetUserStats().GiftsReceived++; receiver.GetHabbo().GetUserAchievements().CheckAchievement("GiftReceiver"); } receiver.GetHabbo().GetInventoryManager().AddItem(giftItemId, gift.ID, giftData, false); //add it to inventory first session.SendMessage(BasicUtilies.GetRevisionPacketManager(session.Revision).GetOutgoing(OutgoingPacketsEnum.UnseenItem).Handle(new ValueHolder("Type", 1, "ID", giftItemId))); //receiver one item in this case the gift //receiver.GetHabbo().GetInventoryManager().UpdateInventoryItems(true); //update inv } else { if (giftReceiverId != session.GetHabbo().ID) //do achievement progress { dbClient.ExecuteQuery("UPDATE user_stats SET gifts_received = gifts_received + 1 WHERE user_id = @receiverId LIMIT 1"); } } } if (giftReceiverId != session.GetHabbo().ID) //do achievement progress { session.GetHabbo().GetUserStats().GiftsGived++; session.GetHabbo().GetUserAchievements().CheckAchievement("GiftGiver"); } } else { session.GetHabbo().GetInventoryManager().SetQueueBytes(true); foreach (Tuple <Item, int> data in products) { this.AddItem(session, data.Item1, data.Item2 * amountMultiplayer, extraData, true, false); } session.GetHabbo().GetInventoryManager().SetQueueBytes(false); } } } } }
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 virtual void Handle(GameClient session, ClientMessage message) { Room room = session?.GetHabbo()?.GetRoomSession()?.GetRoom(); if (room != null) { if (!room.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++; } RoomUnitUser user = room.RoomUserManager.GetUserByName(this.Username); if (user != null) { string filteredMessage = TextUtilies.CheckBlacklistedWords(TextUtilies.FilterString(this.Message)); if (!session.GetHabbo().HasPermission("acc_nochatlog_whisper")) { Skylight.GetGame().GetChatlogManager().LogRoomMessage(session, "Whisper" + (char)9 + user.Session.GetHabbo().ID + (char)9 + this.Message); } session.GetHabbo().GetUserSettings().ChatColor = this.Bubble; session.SendMessage(new ReceiveWhisperComposerHandler(session.GetHabbo().GetRoomSession().GetRoomUser().VirtualID, filteredMessage, this.Bubble)); user.Session.SendMessage(new ReceiveWhisperComposerHandler(session.GetHabbo().GetRoomSession().GetRoomUser().VirtualID, filteredMessage, this.Bubble)); } } } } }
public void Handle(GameClient session, ClientMessage message) { if (session != null && session.GetHabbo() != null && session.GetHabbo().GetMessenger() != null) { int count = message.PopWiredInt32(); List <uint> users = new List <uint>(); for (int i = 0; i < count; i++) { uint userId = message.PopWiredUInt(); if (userId > 0) { users.Add(userId); } } if (users.Count <= 0) { return; } string text = TextUtilies.FilterString(message.PopFixedString(), false, false); string filteredMessage = TextUtilies.CheckBlacklistedWords(text); ServerMessage Message = BasicUtilies.GetRevisionServerMessage(Revision.RELEASE63_35255_34886_201108111108); Message.Init(r63aOutgoing.MessengerRoomInvite); Message.AppendUInt(session.GetHabbo().ID); Message.AppendString(filteredMessage); List <string> receiverUsernames = new List <string>(); List <int> receiverSessionIds = new List <int>(); foreach (uint userId in users) { if (session.GetHabbo().GetMessenger().IsFriendWith(userId)) { GameClient gameClient = Skylight.GetGame().GetGameClientManager().GetGameClientById(userId); if (gameClient != null) { if (gameClient.GetHabbo() != null) { receiverUsernames.Add(gameClient.GetHabbo().Username); if (gameClient.GetHabbo().GetMessenger() != null && gameClient.GetHabbo().GetMessenger().IsFriendWith(session.GetHabbo().ID)) { gameClient.SendMessage(Message); } } else { receiverUsernames.Add(Skylight.GetGame().GetGameClientManager().GetUsernameByID(userId)); } receiverSessionIds.Add(gameClient.SessionID); } else { receiverUsernames.Add(Skylight.GetGame().GetGameClientManager().GetUsernameByID(userId)); receiverSessionIds.Add(-1); } } else { receiverUsernames.Add(Skylight.GetGame().GetGameClientManager().GetUsernameByID(userId)); receiverSessionIds.Add(-1); } } Skylight.GetGame().GetChatlogManager().LogRoomInvite(session, users, receiverUsernames, receiverSessionIds, text); } }