public void Parse(GameClient Session, ClientPacket Packet) { int userID = Packet.PopInt(); Boolean IsMe = Packet.PopBoolean(); Habbo targetData = ButterflyEnvironment.GetHabboById(userID); if (targetData == null) { return; } List <Group> Groups = ButterflyEnvironment.GetGame().GetGroupManager().GetGroupsForUser(targetData.MyGroups); int friendCount = 0; if (targetData.GetMessenger() != null) { friendCount = targetData.GetMessenger().Count; } else { using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("SELECT COUNT(0) FROM `messenger_friendships` WHERE (`user_one_id` = @userid);"); dbClient.AddParameter("userid", userID); friendCount = dbClient.GetInteger(); } } Session.SendPacket(new ProfileInformationComposer(targetData, Session, Groups, friendCount)); }
public void Parse(GameClient Session, ClientPacket Packet) { int GroupId = Packet.PopInt(); int UserId = Packet.PopInt(); Group Group = null; if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group)) { return; } if ((Session.GetHabbo().Id != Group.CreatorId && !Group.IsAdmin(Session.GetHabbo().Id)) && !Session.GetHabbo().HasFuse("fuse_group_accept_any")) { return; } if (!Group.HasRequest(UserId)) { return; } Habbo Habbo = ButterflyEnvironment.GetHabboById(UserId); if (Habbo == null) { return; } Group.HandleRequest(UserId, true); Habbo.MyGroups.Add(Group.Id); Session.SendPacket(new GroupMemberUpdatedComposer(GroupId, Habbo, 4)); }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo() == null) { return; } int UserId = Packet.PopInt(); Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (room == null) { return; } if (room == null || !room.CheckRights(Session, true)) { return; } if (room.UsersWithRights.Contains(UserId)) { Session.SendNotification(ButterflyEnvironment.GetLanguageManager().TryGetValue("user.giverights.error", Session.Langue)); } else { Habbo Userright = ButterflyEnvironment.GetHabboById(UserId); if (Userright == null) { return; } room.UsersWithRights.Add(UserId); using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor()) queryreactor.RunQuery("INSERT INTO room_rights (room_id,user_id) VALUES (" + room.Id + "," + UserId + ")"); ServerPacket Response = new ServerPacket(ServerPacketHeader.FlatControllerAddedMessageComposer); Response.WriteInteger(room.Id); Response.WriteInteger(UserId); Response.WriteString(Userright.Username); Session.SendPacket(Response); RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabboId(UserId); if (roomUserByHabbo == null || roomUserByHabbo.IsBot) { return; } roomUserByHabbo.RemoveStatus("flatctrl 0"); roomUserByHabbo.SetStatus("flatctrl 1", ""); roomUserByHabbo.UpdateNeeded = true; roomUserByHabbo.GetClient().SendPacket(new YouAreControllerComposer(1)); } }
public void Parse(GameClient Session, ClientPacket Packet) { int GroupId = Packet.PopInt(); int UserId = Packet.PopInt(); Group Group = null; if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group)) { return; } if (Session.GetHabbo().Id != Group.CreatorId || !Group.IsMember(UserId)) { return; } Habbo Habbo = ButterflyEnvironment.GetHabboById(UserId); if (Habbo == null) { return; } Group.TakeAdmin(UserId); Room Room = null; if (ButterflyEnvironment.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room)) { RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabboId(UserId); if (User != null) { if (User.Statusses.ContainsKey("flatctrl 3")) { User.RemoveStatus("flatctrl 3"); } User.UpdateNeeded = true; if (User.GetClient() != null) { User.GetClient().SendPacket(new YouAreControllerComposer(0)); } } } Session.SendPacket(new GroupMemberUpdatedComposer(GroupId, Habbo, 2)); }
public ServerPacket Serialize() { ServerPacket serverMessage = new ServerPacket(ServerPacketHeader.ModeratorSupportTicketMessageComposer); serverMessage.WriteInteger(this.Id); serverMessage.WriteInteger(this.TabId); serverMessage.WriteInteger(3); serverMessage.WriteInteger(this.Type); serverMessage.WriteInteger((int)(ButterflyEnvironment.GetUnixTimestamp() - this.Timestamp) * 1000); serverMessage.WriteInteger(this.Score); serverMessage.WriteInteger(this.SenderId); serverMessage.WriteInteger(this.SenderId); if (ButterflyEnvironment.GetHabboById(this.SenderId) != null) { serverMessage.WriteString(this.SenderName.Equals("") ? ButterflyEnvironment.GetHabboById(this.SenderId).Username : this.SenderName); } else { serverMessage.WriteString(this.SenderName); } serverMessage.WriteInteger(this.ReportedId); if (ButterflyEnvironment.GetHabboById(this.ReportedId) != null) { serverMessage.WriteString(this.ReportedName.Equals("") ? ButterflyEnvironment.GetHabboById(this.ReportedId).Username : this.ReportedName); } else { serverMessage.WriteString(this.ReportedName); } serverMessage.WriteInteger(this.Status == TicketStatus.PICKED ? this.ModeratorId : 0); if (ButterflyEnvironment.GetHabboById(this.ModeratorId) != null) { serverMessage.WriteString(this.Status == TicketStatus.PICKED ? (this.ModName.Equals("") ? ButterflyEnvironment.GetHabboById(this.ModeratorId).Username : this.ModName) : ""); } else { serverMessage.WriteString(this.ModName); } serverMessage.WriteString(this.Message); serverMessage.WriteInteger(0); serverMessage.WriteInteger(0); return(serverMessage); }
public RoomRightsListComposer(Room Instance) : base(ServerPacketHeader.RoomRightsListMessageComposer) { WriteInteger(Instance.Id); WriteInteger(Instance.UsersWithRights.Count); foreach (int Id in Instance.UsersWithRights.ToList()) { Habbo Data = ButterflyEnvironment.GetHabboById(Id); if (Data == null) { WriteInteger(0); WriteString("Unknown Error"); } else { WriteInteger(Data.Id); WriteString(Data.Username); } } }
public GetRoomBannedUsersComposer(Room instance) : base(ServerPacketHeader.GetRoomBannedUsersMessageComposer) { WriteInteger(instance.Id); WriteInteger(instance.getBans().Count);//Count foreach (int Id in instance.getBans().Keys) { Habbo Data = ButterflyEnvironment.GetHabboById(Id); if (Data == null) { WriteInteger(0); WriteString("Unknown Error"); } else { WriteInteger(Data.Id); WriteString(Data.Username); } } }
public void ApplySanction(GameClient Session, int ReportedUser) { if (ReportedUser == 0) { return; } Habbo UserReport = ButterflyEnvironment.GetHabboById(ReportedUser); if (UserReport == null) { return; } Session.GetHabbo().GetMessenger().DestroyFriendship(UserReport.Id); ServerPacket Response = new ServerPacket(ServerPacketHeader.IgnoreStatusMessageComposer); Response.WriteInteger(1); Response.WriteString(UserReport.Username); Session.SendPacket(Response); Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (room == null || (room.RoomData.BanFuse != 1 || !room.CheckRights(Session)) && !room.CheckRights(Session, true)) { return; } RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabboId(UserReport.Id); if (roomUserByHabbo == null || roomUserByHabbo.IsBot || (room.CheckRights(roomUserByHabbo.GetClient(), true) || roomUserByHabbo.GetClient().GetHabbo().HasFuse("fuse_mod") || roomUserByHabbo.GetClient().GetHabbo().HasFuse("fuse_no_kick"))) { return; } room.AddBan(UserReport.Id, 429496729); room.GetRoomUserManager().RemoveUserFromRoom(roomUserByHabbo.GetClient(), true, true); }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session.GetHabbo() == null) { return; } Room room = ButterflyEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (room == null || !room.CheckRights(Session, true)) { return; } StringBuilder DeleteParams = new StringBuilder(); int Amount = Packet.PopInt(); for (int index = 0; index < Amount; ++index) { if (index > 0) { DeleteParams.Append(" OR "); } int UserId = Packet.PopInt(); if (room.UsersWithRights.Contains(UserId)) { room.UsersWithRights.Remove(UserId); } DeleteParams.Append("room_id = '" + room.Id + "' AND user_id = '" + UserId + "'"); RoomUser roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabboId(UserId); if (roomUserByHabbo != null && !roomUserByHabbo.IsBot) { roomUserByHabbo.GetClient().SendPacket(new YouAreControllerComposer(0)); roomUserByHabbo.RemoveStatus("flatctrl 1"); roomUserByHabbo.SetStatus("flatctrl 0", ""); roomUserByHabbo.UpdateNeeded = true; } ServerPacket Response2 = new ServerPacket(ServerPacketHeader.FlatControllerRemovedMessageComposer); Response2.WriteInteger(room.Id); Response2.WriteInteger(UserId); Session.SendPacket(Response2); if (room.UsersWithRights.Count <= 0) { ServerPacket Response3 = new ServerPacket(ServerPacketHeader.RoomRightsListMessageComposer); Response3.WriteInteger(room.RoomData.Id); Response3.WriteInteger(0); Session.SendPacket(Response3); } else { ServerPacket Response = new ServerPacket(ServerPacketHeader.RoomRightsListMessageComposer); Response.WriteInteger(room.RoomData.Id); Response.WriteInteger(room.UsersWithRights.Count); foreach (int UserId2 in room.UsersWithRights) { Habbo habboForId = ButterflyEnvironment.GetHabboById(UserId2); Response.WriteInteger(UserId2); Response.WriteString((habboForId == null) ? "Undefined (error)" : habboForId.Username); } Session.SendPacket(Response); } } using (IQueryAdapter queryreactor = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor()) queryreactor.RunQuery("DELETE FROM room_rights WHERE " + (DeleteParams).ToString()); }
public void Parse(GameClient Session, ClientPacket Packet) { int GroupId = Packet.PopInt(); int UserId = Packet.PopInt(); Group Group = null; if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group)) { return; } if (UserId == Session.GetHabbo().Id) { if (Group.IsMember(UserId)) { Group.DeleteMember(UserId); } Session.GetHabbo().MyGroups.Remove(Group.Id); if (Group.IsAdmin(UserId)) { if (Group.IsAdmin(UserId)) { Group.TakeAdmin(UserId); } Room Room; if (!ButterflyEnvironment.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room)) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabboId(Session.GetHabbo().Id); if (User != null) { User.RemoveStatus("flatctrl 1"); User.UpdateNeeded = true; if (User.GetClient() != null) { User.GetClient().SendPacket(new YouAreControllerComposer(0)); } } } using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("DELETE FROM `group_memberships` WHERE `group_id` = @GroupId AND `user_id` = @UserId"); dbClient.AddParameter("GroupId", GroupId); dbClient.AddParameter("UserId", UserId); dbClient.RunQuery(); } Session.SendPacket(new GroupInfoComposer(Group, Session)); if (Session.GetHabbo().FavouriteGroupId == GroupId) { Session.GetHabbo().FavouriteGroupId = 0; using (IQueryAdapter dbClient = ButterflyEnvironment.GetDatabaseManager().GetQueryReactor()) { dbClient.SetQuery("UPDATE `user_stats` SET `groupid` = '0' WHERE `id` = @userId LIMIT 1"); dbClient.AddParameter("userId", UserId); dbClient.RunQuery(); } if (Group.AdminOnlyDeco == 0) { Room Room; if (!ButterflyEnvironment.GetGame().GetRoomManager().TryGetRoom(Group.RoomId, out Room)) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabboId(Session.GetHabbo().Id); if (User != null) { User.RemoveStatus("flatctrl 1"); User.UpdateNeeded = true; if (User.GetClient() != null) { User.GetClient().SendPacket(new YouAreControllerComposer(0)); } } } if (Session.GetHabbo().InRoom&& Session.GetHabbo().CurrentRoom != null) { RoomUser User = Session.GetHabbo().CurrentRoom.GetRoomUserManager().GetRoomUserByHabboId(Session.GetHabbo().Id); if (User != null) { Session.GetHabbo().CurrentRoom.SendPacket(new UpdateFavouriteGroupComposer(Group, User.VirtualId)); } Session.GetHabbo().CurrentRoom.SendPacket(new RefreshFavouriteGroupComposer(Session.GetHabbo().Id)); } else { Session.SendPacket(new RefreshFavouriteGroupComposer(Session.GetHabbo().Id)); } } return; } else { if (Group.CreatorId == Session.GetHabbo().Id || Group.IsAdmin(Session.GetHabbo().Id)) { if (!Group.IsMember(UserId)) { return; } if (Group.IsAdmin(UserId) && Group.CreatorId != Session.GetHabbo().Id) { Session.SendNotification(ButterflyEnvironment.GetLanguageManager().TryGetValue("notif.groupremoveuser.error", Session.Langue)); return; } if (Group.IsAdmin(UserId)) { Group.TakeAdmin(UserId); } if (Group.IsMember(UserId)) { Group.DeleteMember(UserId); } Habbo Habbo = ButterflyEnvironment.GetHabboById(UserId); Habbo.MyGroups.Remove(Group.Id); int StartIndex = (1 - 1) * 14 + 14; List <Habbo> Members = new List <Habbo>(); List <int> MemberIds = Group.GetMembers.Skip(StartIndex).Take(14).ToList(); foreach (int Id in MemberIds.ToList()) { Habbo GroupMember = ButterflyEnvironment.GetHabboById(Id); if (GroupMember == null) { continue; } if (!Members.Contains(GroupMember)) { Members.Add(GroupMember); } } int FinishIndex = 14 < Members.Count ? 14 : Members.Count; int MembersCount = Group.GetMembers.Count; Session.SendPacket(new GroupMembersComposer(Group, Members.Take(FinishIndex).ToList(), MembersCount, 1, (Group.CreatorId == Session.GetHabbo().Id || Group.IsAdmin(Session.GetHabbo().Id)), 0, "")); } } }
public void Parse(GameClient Session, ClientPacket Packet) { int Id = Packet.PopInt(); GameClient Client = ButterflyEnvironment.GetGame().GetClientManager().GetClientByUserID(Id); if (Client == null || Client.GetHabbo() == null) { ServerPacket ResponseOff = new ServerPacket(ServerPacketHeader.GetRelationshipsMessageComposer); ResponseOff.WriteInteger(Id); ResponseOff.WriteInteger(0); Session.SendPacket(ResponseOff); return; } Habbo habbo = Client.GetHabbo(); if (habbo == null || habbo.GetMessenger() == null) { ServerPacket ResponseOff = new ServerPacket(ServerPacketHeader.GetRelationshipsMessageComposer); ResponseOff.WriteInteger(Id); ResponseOff.WriteInteger(0); Session.SendPacket(ResponseOff); return; } Dictionary <int, Relationship> Loves = habbo.GetMessenger().relation.Where(x => x.Value.Type == 1).ToDictionary(item => item.Key, item => item.Value); Dictionary <int, Relationship> Likes = habbo.GetMessenger().relation.Where(x => x.Value.Type == 2).ToDictionary(item => item.Key, item => item.Value); Dictionary <int, Relationship> Hates = habbo.GetMessenger().relation.Where(x => x.Value.Type == 3).ToDictionary(item => item.Key, item => item.Value); int Nbrela = 0; if (Loves.Count > 0) { Nbrela++; } if (Likes.Count > 0) { Nbrela++; } if (Hates.Count > 0) { Nbrela++; } ServerPacket Response = new ServerPacket(ServerPacketHeader.GetRelationshipsMessageComposer); Response.WriteInteger(habbo.Id); Response.WriteInteger(Nbrela); // Count //Habbo.Relationships.Count if (Loves.Count > 0) { //Loves Response.WriteInteger(1); //type Response.WriteInteger(Loves.Count); //Total personne love Random randlove = new Random(); int useridlove = Loves.ElementAt(randlove.Next(0, Loves.Count)).Value.UserId; //Loves[randlove.Next(Loves.Count)].UserId; Habbo HHablove = ButterflyEnvironment.GetHabboById(Convert.ToInt32(useridlove)); Response.WriteInteger(useridlove); // UserId Response.WriteString((HHablove == null) ? "" : HHablove.Username); Response.WriteString((HHablove == null) ? "" : HHablove.Look); // look } if (Likes.Count > 0) { //Likes Response.WriteInteger(2); //type Response.WriteInteger(Likes.Count); //Total personne Like Random randLikes = new Random(); int useridLikes = Likes.ElementAt(randLikes.Next(0, Likes.Count)).Value.UserId; //Likes[randLikes.Next(Likes.Count)].UserId; Habbo HHabLikes = ButterflyEnvironment.GetHabboById(Convert.ToInt32(useridLikes)); Response.WriteInteger(useridLikes); // UserId Response.WriteString((HHabLikes == null) ? "" : HHabLikes.Username); Response.WriteString((HHabLikes == null) ? "" : HHabLikes.Look); // look } if (Hates.Count > 0) { //Hates Response.WriteInteger(3); //type Response.WriteInteger(Hates.Count); //Total personne hates Random randHates = new Random(); int useridHates = Hates.ElementAt(randHates.Next(0, Hates.Count)).Value.UserId; //Hates[randHates.Next(Hates.Count)].UserId; Habbo HHabHates = ButterflyEnvironment.GetHabboById(Convert.ToInt32(useridHates)); Response.WriteInteger(useridHates); // UserId Response.WriteString((HHabHates == null) ? "" : HHabHates.Username); Response.WriteString((HHabHates == null) ? "" : HHabHates.Look); // look } Session.SendPacket(Response); }
public void Parse(GameClient Session, ClientPacket Packet) { if (Session == null || Session.GetHabbo() == null) { return; } int GroupId = Packet.PopInt(); int Page = Packet.PopInt(); string SearchVal = Packet.PopString(); int RequestType = Packet.PopInt(); Group Group = null; if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(GroupId, out Group)) { return; } int StartIndex = (Page - 1) * 14 + 14; List <Habbo> Members = new List <Habbo>(); int MemberCount = 0; switch (RequestType) { case 0: MemberCount = Group.GetAllMembers.Count(); List <int> MemberIds = null; if (!string.IsNullOrEmpty(SearchVal)) { MemberIds = this.GetSearchMembres(Group.Id, SearchVal); } else { MemberIds = Group.GetAllMembers.Skip(StartIndex).Take(14).ToList(); } foreach (int Id in MemberIds.ToList()) { Habbo GroupMember = ButterflyEnvironment.GetHabboById(Id); if (GroupMember == null) { continue; } if (!Members.Contains(GroupMember)) { Members.Add(GroupMember); } } break; case 1: MemberCount = Group.GetAdministrators.Count(); List <int> AdminIds = null; if (!string.IsNullOrEmpty(SearchVal)) { AdminIds = this.GetSearchAdmins(Group.Id, SearchVal); } else { AdminIds = Group.GetAdministrators.Skip(StartIndex).Take(14).ToList(); } foreach (int User in AdminIds.ToList()) { Habbo GroupMember = ButterflyEnvironment.GetHabboById(User); if (GroupMember == null) { continue; } if (!Members.Contains(GroupMember)) { Members.Add(GroupMember); } } break; case 2: MemberCount = Group.GetRequests.Count(); List <int> RequestIds = null; if (!string.IsNullOrEmpty(SearchVal)) { RequestIds = this.GetSearchRequests(Group.Id, SearchVal); } else { RequestIds = Group.GetRequests.Skip(StartIndex).Take(14).ToList(); } foreach (int Id in RequestIds.ToList()) { Habbo GroupMember = ButterflyEnvironment.GetHabboById(Id); if (GroupMember == null) { continue; } if (!Members.Contains(GroupMember)) { Members.Add(GroupMember); } } break; } //if (!string.IsNullOrEmpty(SearchVal)) //{ //Members = Members.Where(x => x.Username.StartsWith(SearchVal)).ToList(); //} Session.SendPacket(new GroupMembersComposer(Group, Members.ToList(), MemberCount, Page, (Group.CreatorId == Session.GetHabbo().Id || Group.IsAdmin(Session.GetHabbo().Id)), RequestType, SearchVal)); }
public static void GenerateExtradata(Item Item, ServerPacket Message) { switch (Item.GetBaseItem().InteractionType) { default: Message.WriteInteger(1); Message.WriteInteger(0); Message.WriteString((Item.GetBaseItem().InteractionType != InteractionType.TONER && Item.GetBaseItem().InteractionType != InteractionType.fbgate) ? Item.ExtraData : string.Empty); break; case InteractionType.WALLPAPER: Message.WriteInteger(2); Message.WriteInteger(0); Message.WriteString(Item.ExtraData); break; case InteractionType.FLOOR: Message.WriteInteger(3); Message.WriteInteger(0); Message.WriteString(Item.ExtraData); break; case InteractionType.LANDSCAPE: Message.WriteInteger(4); Message.WriteInteger(0); Message.WriteString(Item.ExtraData); break; case InteractionType.GUILD_ITEM: case InteractionType.GUILD_GATE: Group Group = null; if (!ButterflyEnvironment.GetGame().GetGroupManager().TryGetGroup(Item.GroupId, out Group)) { Message.WriteInteger(0); Message.WriteInteger(0); Message.WriteString(Item.ExtraData); } else { Message.WriteInteger(0); Message.WriteInteger(2); Message.WriteInteger(5); Message.WriteString(Item.ExtraData.Split(new char[1] { ';' })[0]); Message.WriteString(Group.Id.ToString()); Message.WriteString(Group.Badge); Message.WriteString(ButterflyEnvironment.GetGame().GetGroupManager().GetColourCode(Group.Colour1, true)); Message.WriteString(ButterflyEnvironment.GetGame().GetGroupManager().GetColourCode(Group.Colour2, false)); } break; case InteractionType.highscore: case InteractionType.highscorepoints: Message.WriteInteger(0); Message.WriteInteger(6); //Type Message.WriteString(Item.ExtraData); Message.WriteInteger(2); //Type de victoire Message.WriteInteger(0); //Type de duré Message.WriteInteger((Item.Scores.Count > 20) ? 20 : Item.Scores.Count); //count foreach (KeyValuePair <string, int> score in Item.Scores.OrderByDescending(x => x.Value).Take(20)) { Message.WriteInteger(score.Value); //score Message.WriteInteger(1); //(score.Key.Count); //count //foreach(string UsernameScore in score.Key) //Message.AppendString(UsernameScore); Message.WriteString(score.Key); } break; case InteractionType.LOVELOCK: if (Item.ExtraData.Contains(Convert.ToChar(5).ToString())) { string[] EData = Item.ExtraData.Split((char)5); int I = 0; Message.WriteInteger(0); Message.WriteInteger(2); Message.WriteInteger(EData.Length); while (I < EData.Length) { Message.WriteString(EData[I]); I++; } } else { Message.WriteInteger(0); Message.WriteInteger(0); Message.WriteString("0"); } break; case InteractionType.crackable: Message.WriteInteger(0); Message.WriteInteger(7); //Type int NombreClick = 0; int.TryParse(Item.ExtraData, out NombreClick); Message.WriteString(Item.ExtraData); Message.WriteInteger(NombreClick); //Nombre de click Message.WriteInteger(Item.GetBaseItem().Modes - 1); //Type de duré break; case InteractionType.adsbackground: if (!String.IsNullOrEmpty(Item.ExtraData)) { Message.WriteInteger(0); Message.WriteInteger(1); string ExtraDatabackground = "state" + Convert.ToChar(9) + "0" + Convert.ToChar(9) + Item.ExtraData; ExtraDatabackground = ExtraDatabackground.Replace('=', Convert.ToChar(9)); Message.WriteInteger(ExtraDatabackground.Split(Convert.ToChar(9)).Length / 2); for (int i = 0; i <= ExtraDatabackground.Split(Convert.ToChar(9)).Length - 1; i++) { string Data = ExtraDatabackground.Split(Convert.ToChar(9))[i]; Message.WriteString(Data); } } else { Message.WriteInteger(0); Message.WriteInteger(0); Message.WriteString(""); } break; case InteractionType.EXTRABOX: { Message.WriteInteger(0); Message.WriteInteger(1); Message.WriteInteger(4); Message.WriteString("MESSAGE"); Message.WriteString("Bravo tu as reçu une ExtraBox ! Ouvre-là pour y découvrir ton lot"); Message.WriteString("PURCHASER_NAME"); Message.WriteString("Wibbo"); Message.WriteString("PRODUCT_CODE"); Message.WriteString("A1 KUMIANKKA"); Message.WriteString("PURCHASER_FIGURE"); Message.WriteString(""); } break; case InteractionType.BADGEBOX: { Message.WriteInteger(0); Message.WriteInteger(1); Message.WriteInteger(4); Message.WriteString("MESSAGE"); Message.WriteString("Bravo tu as reçu une BadgeBox ! Ouvre-là pour y découvrir ton lot"); Message.WriteString("PURCHASER_NAME"); Message.WriteString("Wibbo"); Message.WriteString("PRODUCT_CODE"); Message.WriteString("A1 KUMIANKKA"); Message.WriteString("PURCHASER_FIGURE"); Message.WriteString(""); } break; case InteractionType.LEGENDBOX: { Message.WriteInteger(0); Message.WriteInteger(1); Message.WriteInteger(4); Message.WriteString("MESSAGE"); Message.WriteString("Bravo tu as reçu une magnifique LegendBox ! Ouvre-là pour y décrouvrir tes lots !"); Message.WriteString("PURCHASER_NAME"); Message.WriteString("Wibbo"); Message.WriteString("PRODUCT_CODE"); Message.WriteString("A1 KUMIANKKA"); Message.WriteString("PURCHASER_FIGURE"); Message.WriteString(""); } break; case InteractionType.GIFT: { if (!Item.ExtraData.Contains(Convert.ToChar(5).ToString())) { Message.WriteInteger(0); Message.WriteInteger(0); Message.WriteString(Item.ExtraData); } else { string[] ExtraData = Item.ExtraData.Split(Convert.ToChar(5)); int Style = int.Parse(Item.ExtraData.Split(new char[1] { '\x0005' })[1]) * 1000 + int.Parse(Item.ExtraData.Split(new char[1] { '\x0005' })[2]); Habbo Purchaser = ButterflyEnvironment.GetHabboById(int.Parse(Item.ExtraData.Split(new char[1] { ';' })[0])); Message.WriteInteger(0); Message.WriteInteger(1); Message.WriteInteger(6); Message.WriteString("EXTRA_PARAM"); Message.WriteString(""); Message.WriteString("MESSAGE"); Message.WriteString(Item.ExtraData.Split(new char[1] { ';' })[1].Split(new char[1] { '\x0005' })[0]); Message.WriteString("PURCHASER_NAME"); Message.WriteString(Purchaser == null ? "" : Purchaser.Username); Message.WriteString("PURCHASER_FIGURE"); Message.WriteString(Purchaser == null ? "" : Purchaser.Look); Message.WriteString("PRODUCT_CODE"); Message.WriteString("A1 KUMIANKKA"); Message.WriteString("state"); Message.WriteString(Style.ToString()); } } break; case InteractionType.MANNEQUIN: Message.WriteInteger(0); Message.WriteInteger(1); Message.WriteInteger(3); if (Item.ExtraData.Contains(";")) { string[] Stuff = Item.ExtraData.Split(new char[1] { ';' }); Message.WriteString("GENDER"); Message.WriteString(Stuff[0].ToUpper() == "M" ? "M" : "F"); Message.WriteString("FIGURE"); Message.WriteString(Stuff[1]); Message.WriteString("OUTFIT_NAME"); Message.WriteString(Stuff[2]); } else { Message.WriteString("GENDER"); Message.WriteString("M"); Message.WriteString("FIGURE"); Message.WriteString(""); Message.WriteString("OUTFIT_NAME"); Message.WriteString(""); } break; case InteractionType.TONER: if (Item.ExtraData.Contains(",")) { Message.WriteInteger(0); Message.WriteInteger(5); Message.WriteInteger(4); Message.WriteInteger(Item.ExtraData.StartsWith("on") ? 1 : 0); Message.WriteInteger(int.Parse(Item.ExtraData.Split(new char[1] { ',' })[1])); Message.WriteInteger(int.Parse(Item.ExtraData.Split(new char[1] { ',' })[2])); Message.WriteInteger(int.Parse(Item.ExtraData.Split(new char[1] { ',' })[3])); } else { Message.WriteInteger(0); Message.WriteInteger(0); Message.WriteString(string.Empty); } break; case InteractionType.BADGE_DISPLAY: case InteractionType.BADGE_TROC: Message.WriteInteger(0); Message.WriteInteger(2); Message.WriteInteger(4); if (Item.ExtraData.Contains(Convert.ToChar(9).ToString())) { string[] BadgeData = Item.ExtraData.Split(Convert.ToChar(9)); Message.WriteString("0"); //No idea Message.WriteString(BadgeData[0]); //Badge name Message.WriteString(BadgeData[1]); //Owner Message.WriteString(BadgeData[2]); //Date } else { Message.WriteString("0"); //No idea Message.WriteString(Item.ExtraData); //Badge name Message.WriteString(""); //Owner Message.WriteString(""); //Date } break; case InteractionType.tvyoutube: Message.WriteInteger(0); Message.WriteInteger(1); Message.WriteInteger(2); Message.WriteString("THUMBNAIL_URL"); Message.WriteString((string.IsNullOrEmpty(Item.ExtraData)) ? "" : "https://cdn.wibbo.me/youtubethumbnail.php?videoid=" + Item.ExtraData); //"https://i1.ytimg.com/vi/" + Item.ExtraData + "/default.jpg") Message.WriteString("VideoId"); Message.WriteString(Item.ExtraData); break; } }