internal static ServerMessage Compose(List<Achievement> Achievements) { ServerMessage Message = new ServerMessage(627); //627 Message.AppendInt32(Achievements.Count); foreach (Achievement Achievement in Achievements) { string DisplayName = Achievement.GroupName; if (DisplayName.StartsWith("ACH_")) { DisplayName = DisplayName.Substring(4); } Message.AppendString(DisplayName); Message.AppendInt32(Achievement.Levels.Count); foreach (AchievementLevel Level in Achievement.Levels.Values) { Message.AppendInt32(Level.Level); Message.AppendInt32(Level.Requirement); } } return Message; }
internal void Serialize(ref ServerMessage message) { foreach (ChatMessage chatMessage in listOfMessages) { chatMessage.Serialize(ref message); } }
internal Trade(int UserOneId, int UserTwoId, UInt32 RoomId) { this.oneId = UserOneId; this.twoId = UserTwoId; this.Users = new TradeUser[2]; this.Users[0] = new TradeUser(UserOneId, RoomId); this.Users[1] = new TradeUser(UserTwoId, RoomId); this.TradeStage = 1; this.RoomId = RoomId; foreach (TradeUser User in Users) { if (!User.GetRoomUser().Statuses.ContainsKey("trd")) { User.GetRoomUser().AddStatus("trd", ""); User.GetRoomUser().UpdateNeeded = true; } } ServerMessage Message = new ServerMessage(Outgoing.TradeStart); Message.AppendInt32(UserOneId); Message.AppendInt32(1); // ready Message.AppendInt32(UserTwoId); Message.AppendInt32(1); // ready SendMessageToUsers(Message); }
internal void Serialize(ref ServerMessage packet) { packet.AppendInt32(timeSpoken.Hour); packet.AppendInt32(timeSpoken.Minute); packet.AppendInt32(userID); packet.AppendString(username); packet.AppendString(message); }
internal void Serialize(ServerMessage Request) { // BDhqu@UMeth0d1322033860 Request.AppendInt32(FromUser); Request.AppendString(mUsername); Habbo user = FirewindEnvironment.getHabboForName(mUsername); Request.AppendString((user != null) ? user.Look : ""); }
public void AppendToMessage(ServerMessage message) { message.AppendInt32(Data.Count); foreach (KeyValuePair<string, string> pair in Data) { message.AppendString(pair.Key); message.AppendString(pair.Value); } }
internal static ServerMessage SerializeUpdate(MessengerBuddy friend) { ServerMessage reply = new ServerMessage(Outgoing.FriendUpdate); reply.AppendInt32(0); // category reply.AppendInt32(1); // number of updates reply.AppendInt32(0); // don't know friend.Serialize(reply); reply.AppendBoolean(false); return reply; }
internal static ServerMessage Compose(int PlaylistCapacity, List<SongInstance> Playlist) { ServerMessage Message = new ServerMessage(334); Message.AppendInt32(PlaylistCapacity); Message.AppendInt32(Playlist.Count); foreach (SongInstance Song in Playlist) { Message.AppendUInt(Song.DiskItem.itemID); Message.AppendUInt(Song.SongData.Id); } return Message; }
internal void SerializeTo(RoomData data, ServerMessage Message) { Message.AppendString(data.OwnerId + ""); Message.AppendString(data.Owner); Message.AppendString(RoomId + ""); Message.AppendInt32(Category); Message.AppendString(Name); Message.AppendString(Description); Message.AppendString(StartTime); Message.AppendInt32(Tags.Count); foreach (string Tag in Tags.ToArray()) { Message.AppendString(Tag); } }
public static ServerMessage Compose(List<SongData> Songs) { ServerMessage Message = new ServerMessage(300); Message.AppendInt32(Songs.Count); foreach (SongData Song in Songs) { Message.AppendUInt(Song.Id); Message.AppendString(Song.Name); Message.AppendString(Song.Data); Message.AppendInt32(Song.LengthMiliseconds); Message.AppendString(Song.Artist); } return Message; }
internal void Searialize(ServerMessage reply) { reply.AppendInt32(userID); reply.AppendString(username); reply.AppendString(motto); bool Online = (FirewindEnvironment.GetGame().GetClientManager().GetClientByUserID(userID) != null); reply.AppendBoolean(Online); reply.AppendBoolean(false); reply.AppendString(string.Empty); reply.AppendInt32(0); reply.AppendString(look); reply.AppendString(last_online); }
internal ServerMessage Serialize(GameClient Session) { ServerMessage Message = new ServerMessage(Outgoing.RoomEvent); Message.AppendString(Session.GetHabbo().Id + ""); Message.AppendString(Session.GetHabbo().Username); Message.AppendString(RoomId + ""); Message.AppendInt32(Category); Message.AppendString(Name); Message.AppendString(Description); Message.AppendString(StartTime); Message.AppendInt32(Tags.Count); foreach (string Tag in Tags.ToArray()) { Message.AppendString(Tag); } return Message; }
internal static ServerMessage Compose(Achievement Achievement, int Level, int PointReward, int PixelReward) { ServerMessage Message = new ServerMessage(Outgoing.UnlockAchievement); Message.AppendUInt(Achievement.Id); // Achievement ID Message.AppendInt32(Level); // Achieved level Message.AppendInt32(144); // Unknown. Random useless number. Message.AppendString(Achievement.GroupName + Level); // Achieved name Message.AppendInt32(PointReward); // Point reward Message.AppendInt32(PixelReward); // Pixel reward Message.AppendInt32(0); // Unknown. Message.AppendInt32(10); // Unknown. Message.AppendInt32(21); // Unknown. (Extra reward?) Message.AppendString(Level > 1 ? Achievement.GroupName + (Level - 1) : string.Empty); Message.AppendString(Achievement.Category); Message.AppendString(String.Empty); Message.AppendInt32(0); Message.AppendInt32(0); return Message; }
internal void SerializeFloor(ServerMessage Message, Boolean Inventory) { Message.AppendUInt(Id); Message.AppendString(mBaseItem.Type.ToString().ToUpper()); Message.AppendUInt(Id); Message.AppendInt32(GetBaseItem().SpriteId); Message.AppendInt32(Extra); // extra Message.AppendInt32(Data.GetTypeID()); Data.AppendToMessage(Message); Message.AppendBoolean(GetBaseItem().AllowRecycle); Message.AppendBoolean(GetBaseItem().AllowTrade); Message.AppendBoolean(GetBaseItem().AllowInventoryStack); Message.AppendBoolean(Marketplace.CanSellItem(this)); Message.AppendInt32(-1); Message.AppendString(""); Message.AppendInt32(0); }
internal static ServerMessage Compose(Achievement Achievement, int TargetLevel, AchievementLevel TargetLevelData, int TotalLevels, UserAchievement UserData) { ServerMessage Message = new ServerMessage(Outgoing.AchievementProgress); Message.AppendUInt(Achievement.Id); // Unknown (ID?) Message.AppendInt32(TargetLevel); // Target level Message.AppendString(Achievement.GroupName + TargetLevel); // Target name/desc/badge Message.AppendInt32(TargetLevelData.Requirement); // Progress req/target Message.AppendInt32(TargetLevelData.RewardPixels); // Pixel reward Message.AppendInt32(TargetLevelData.RewardPoints); // Unknown(??) Message.AppendInt32(0); // ? Message.AppendInt32(UserData != null ? UserData.Progress : 0); // Current progress Message.AppendBoolean(UserData != null ? (UserData.Level >= TotalLevels) : false); // Set 100% completed(??) Message.AppendString(Achievement.Category); // Category Message.AppendString(String.Empty); Message.AppendInt32(TotalLevels); // Total amount of levels Message.AppendInt32(0); return Message; }
public bool Handle(RoomUnit unit, Team team, RoomItem item) { RoomUser user = unit as RoomUser; if (user != null && user.GetClient() != null) { ServerMessage servermsg = new ServerMessage(); servermsg.Init(Outgoing.Whisp); servermsg.AppendInt32(user.VirtualID); servermsg.AppendString(message); servermsg.AppendInt32(0); servermsg.AppendInt32(0); servermsg.AppendInt32(-1); user.GetClient().SendMessage(servermsg); handler.OnEvent(itemID); return true; } return false; }
internal static void TryRedeemVoucher(GameClient Session, string Code) { if (!IsValidCode(Code)) { ServerMessage Error = new ServerMessage(Outgoing.VoucherRedeemError); Error.AppendRawInt32(0); // 0=invalid code,1=technical issue,3=redeem at webpage Session.SendMessage(Error); return; } int Value = GetVoucherValue(Code); TryDeleteVoucher(Code); Session.GetHabbo().Credits += Value; Session.GetHabbo().UpdateCreditsBalance(); ServerMessage message = new ServerMessage(Outgoing.VoucherRedeemOk); message.AppendString("Credits"); // productName message.AppendString("Awesome"); // productDescription Session.SendMessage(message); }
internal static ServerMessage Compose(uint SongId, int PlaylistItemNumber, int SyncTimestampMs) { ServerMessage Message = new ServerMessage(327); if (SongId == 0) { Message.AppendInt32(-1); Message.AppendInt32(-1); Message.AppendInt32(-1); Message.AppendInt32(-1); Message.AppendInt32(0); } else { Message.AppendUInt(SongId); Message.AppendInt32(PlaylistItemNumber); Message.AppendUInt(SongId); Message.AppendInt32(0); Message.AppendInt32(SyncTimestampMs); } return Message; }
internal static ServerMessage Compose(GameClient Session, List<Achievement> Achievements) { ServerMessage Message = new ServerMessage(Outgoing.AchievementList); //436 Message.AppendInt32(Achievements.Count); foreach (Achievement Achievement in Achievements) { UserAchievement UserData = Session.GetHabbo().GetAchievementData(Achievement.GroupName); int TargetLevel = (UserData != null ? UserData.Level + 1 : 1); int TotalLevels = Achievement.Levels.Count; if (TargetLevel > TotalLevels) { TargetLevel = TotalLevels; } AchievementLevel TargetLevelData = Achievement.Levels[TargetLevel]; Message.AppendUInt(Achievement.Id); // Unknown (ID?) Message.AppendInt32(TargetLevel); // Target level Message.AppendString(Achievement.GroupName + TargetLevel); // Target name/desc/badge Message.AppendInt32(TargetLevelData.Requirement); // Progress req/target Message.AppendInt32(TargetLevelData.RewardPixels); // Pixel reward Message.AppendInt32(TargetLevelData.RewardPoints); // Unknown(??) Message.AppendInt32(0); Message.AppendInt32(UserData != null ? UserData.Progress : 0); // Current progress Message.AppendBoolean(UserData != null ? (UserData.Level >= TotalLevels) : false); // Set 100% completed(??) Message.AppendString(Achievement.Category); // Category Message.AppendString(String.Empty); Message.AppendInt32(TotalLevels); // Total amount of levels Message.AppendInt32(0); } Message.AppendBoolean(false); Message.AppendBoolean(false); return Message; }
internal void massaction() { Room currentRoom = Session.GetHabbo().CurrentRoom; if (currentRoom != null) { if (currentRoom.Owner == Session.GetHabbo().Username && Session.GetHabbo().Rank >= 4) { string action = Params[1]; int ActionId = 0; switch(action) { case "wave": ActionId = 1; break; case "kiss": ActionId = 2; break; case "laugh": ActionId = 3; break; case "sleep": ActionId = 5; break; default: Session.SendNotif(":massaction wave\n:massaction kiss\n:massaction laugh\n:massaction sleep"); return; } List<RoomUser> roomUsers = currentRoom.GetRoomUserManager().GetRoomUsers(); foreach (RoomUser user in roomUsers) { user.DanceId = 0; ServerMessage message = new ServerMessage(Outgoing.Action); message.AppendInt32(user.VirtualId); message.AppendInt32(ActionId); currentRoom.SendMessage(message); if (ActionId == 5) { user.IsAsleep = true; ServerMessage message2 = new ServerMessage(Outgoing.IdleStatus); message2.AppendInt32(user.VirtualId); message2.AppendBoolean(user.IsAsleep); currentRoom.SendMessage(message2); } } } } }
internal void linkAlert() { Room TargetRoom = Session.GetHabbo().CurrentRoom; // Hotel Alert pluss link :hal <link> <message> string Link = Params[1]; string Message = MergeParams(Params, 2); ServerMessage nMessage = new ServerMessage(Outgoing.SendNotif); nMessage.AppendStringWithBreak(LanguageLocale.GetValue("hotelallert.notice") + "\r\n" + Message + "\r\n-" + Session.GetHabbo().Username); nMessage.AppendStringWithBreak(Link); FirewindEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(nMessage); //FirewindEnvironment.messagingBot.SendMassMessage(new PublicMessage(string.Format("[{0}] => [{1}] + [{2}]", Session.GetHabbo().Username, Link, Message)), true); }
internal void hotelalert() { string Notice = GetInput(Params).Substring(4); ServerMessage HotelAlert = new ServerMessage(Outgoing.BroadcastMessage); HotelAlert.AppendStringWithBreak(LanguageLocale.GetValue("hotelallert.notice") + "\r\n" + Notice + "\r\n" + "- " + Session.GetHabbo().Username); FirewindEnvironment.GetGame().GetClientManager().QueueBroadcaseMessage(HotelAlert); FirewindEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "HotelAlert", "Hotel alert [" + Notice + "]"); //FirewindEnvironment.messagingBot.SendMassMessage(new PublicMessage(string.Format("[{0}] => [{1}]", Session.GetHabbo().Username, Notice)), true); }
internal void deleteMission() { string TargetUser = Params[1]; GameClient TargetClient = null; Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetClient = FirewindEnvironment.GetGame().GetClientManager().GetClientByUsername(TargetUser); if (TargetClient == null) { Session.SendNotif(LanguageLocale.GetValue("input.usernotfound")); return; } if (Session.GetHabbo().Rank <= TargetClient.GetHabbo().Rank) { Session.SendNotif(LanguageLocale.GetValue("user.notpermitted")); return; } TargetClient.GetHabbo().Motto = LanguageLocale.GetValue("user.unacceptable_motto"); //TODO update motto FirewindEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, TargetClient.GetHabbo().Username, "mission removal", "removed mission"); Room Room = TargetClient.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } ServerMessage RoomUpdate = new ServerMessage(266); RoomUpdate.AppendInt32(User.VirtualId); RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Look); RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower()); RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Motto); Room.SendMessage(RoomUpdate); }
internal void copylook() { string copyTarget = Params[1]; bool findResult = false; string gender = null; string figure = null; DataRow dRow; using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("SELECT gender,look FROM users WHERE username = @username"); dbClient.addParameter("username", copyTarget); dRow = dbClient.getRow(); if (dRow != null) { findResult = true; gender = (string)dRow[0]; figure = (string)dRow[1]; dbClient.setQuery("UPDATE users SET gender = @gender, look = @look WHERE username = @username"); dbClient.addParameter("gender", gender); dbClient.addParameter("look", figure); dbClient.addParameter("username", Session.GetHabbo().Username); dbClient.runQuery(); } } if (findResult) { Session.GetHabbo().Gender = gender; Session.GetHabbo().Look = figure; Session.GetMessageHandler().GetResponse().Init(Outgoing.UpdateUserInformation); Session.GetMessageHandler().GetResponse().AppendInt32(-1); Session.GetMessageHandler().GetResponse().AppendStringWithBreak(Session.GetHabbo().Look); Session.GetMessageHandler().GetResponse().AppendStringWithBreak(Session.GetHabbo().Gender.ToLower()); Session.GetMessageHandler().GetResponse().AppendStringWithBreak(Session.GetHabbo().Motto); Session.GetMessageHandler().GetResponse().AppendInt32(Session.GetHabbo().AchievementPoints); Session.GetMessageHandler().SendResponse(); if (Session.GetHabbo().InRoom) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } ServerMessage RoomUpdate = new ServerMessage(Outgoing.UpdateUserInformation); RoomUpdate.AppendInt32(User.VirtualId); RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Look); RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Gender.ToLower()); RoomUpdate.AppendStringWithBreak(Session.GetHabbo().Motto); RoomUpdate.AppendInt32(Session.GetHabbo().AchievementPoints); Room.SendMessage(RoomUpdate); } } }
private void BroadcastMessage(ServerMessage message) { lock (broadcastQueue.SyncRoot) { broadcastQueue.Enqueue(message); } }
internal void UpdateBadges() { Session.GetHabbo().GetBadgeComponent().ResetSlots(); using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE user_badges SET badge_slot = 0 WHERE user_id = " + Session.GetHabbo().Id); } for (int i = 0; i < 5; i++) { int Slot = Request.ReadInt32(); string Badge = Request.ReadString(); if (Badge.Length == 0) { continue; } if (!Session.GetHabbo().GetBadgeComponent().HasBadge(Badge) || Slot < 1 || Slot > 5) { return; } Session.GetHabbo().GetBadgeComponent().GetBadge(Badge).Slot = Slot; using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("UPDATE user_badges SET badge_slot = " + Slot + " WHERE badge_id = @badge AND user_id = " + Session.GetHabbo().Id + ""); dbClient.addParameter("badge", Badge); dbClient.runQuery(); } } FirewindEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, HabboHotel.Quests.QuestType.PROFILE_BADGE); ServerMessage Message = new ServerMessage(Outgoing.UpdateBadges); Message.AppendUInt(Session.GetHabbo().Id); Message.AppendInt32(Session.GetHabbo().GetBadgeComponent().EquippedCount); foreach (Badge Badge in Session.GetHabbo().GetBadgeComponent().BadgeList.Values) { if (Badge.Slot <= 0) { continue; } Message.AppendInt32(Badge.Slot); Message.AppendString(Badge.Code); } if (Session.GetHabbo().InRoom&& FirewindEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId) != null) { FirewindEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId).SendMessage(Message); } else { Session.SendMessage(Message); } }
//private delegate void RequestHandler(); //private Dictionary<uint, RequestHandler> RequestHandlers; internal GameClientMessageHandler(GameClient Session) { this.Session = Session; //this.RequestHandlers = new Dictionary<uint, RequestHandler>(); this.Response = new ServerMessage(); }
internal void appendResponse(ServerMessage message) { appendBytes(message.GetBytes()); }
internal void QueueBroadcaseMessage(ServerMessage message) { lock (broadcastQueue.SyncRoot) { broadcastQueue.Enqueue(message); } }
internal void roomalert() { Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetRoom = FirewindEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); if (TargetRoom == null) return; if (TargetRoom.OwnerId == Session.GetHabbo().Id && Session.GetHabbo().Rank >= 2) { if(Session.GetHabbo().Rank < 5) { string Msg = MergeParams(Params, 1); ServerMessage nMessage = new ServerMessage(); nMessage.Init(Outgoing.SendNotif); nMessage.AppendString("Fra roomeier: (" + TargetRoom.Owner + ")\n" + Msg); nMessage.AppendString(""); TargetRoom.QueueRoomMessage(nMessage); } else { string Msg = MergeParams(Params, 1); ServerMessage nMessage = new ServerMessage(); nMessage.Init(Outgoing.SendNotif); nMessage.AppendString(Msg); nMessage.AppendString(""); FirewindEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Alert", "Room alert with message [" + Msg + "]"); TargetRoom.QueueRoomMessage(nMessage); } } else { if (Session.GetHabbo().Rank > 5) { string Msg = MergeParams(Params, 1); ServerMessage nMessage = new ServerMessage(); nMessage.Init(Outgoing.SendNotif); nMessage.AppendString(Msg); nMessage.AppendString(""); FirewindEnvironment.GetGame().GetModerationTool().LogStaffEntry(Session.GetHabbo().Username, string.Empty, "Alert", "Room alert with message [" + Msg + "]"); TargetRoom.QueueRoomMessage(nMessage); } } }
internal void QueueBroadcaseMessage(ServerMessage message, string requirements) { FusedPacket packet = new FusedPacket(message, requirements); lock (authorizedPacketSending.SyncRoot) { authorizedPacketSending.Enqueue(packet); } }
internal void close() { Room TargetRoom = Session.GetHabbo().CurrentRoom; TargetRoom = FirewindEnvironment.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId); TargetRoom.Name = LanguageLocale.GetValue("moderation.room.roomclosed"); TargetRoom.Description = LanguageLocale.GetValue("moderation.room.roomclosed"); TargetRoom.State = 1; ServerMessage nMessage = new ServerMessage(); nMessage.Init(Outgoing.SendNotif); nMessage.AppendString(LanguageLocale.GetValue("moderation.room.roomclosed")); nMessage.AppendString(""); TargetRoom.QueueRoomMessage(nMessage); using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.runFastQuery("UPDATE rooms SET state = 'locked', caption = '" + LanguageLocale.GetValue("moderation.room.roomclosed") + "', description = '" + LanguageLocale.GetValue("moderation.room.roomclosed") + "' WHERE id = " + TargetRoom.RoomId); } FirewindEnvironment.GetGame().GetRoomManager().UnloadRoom(TargetRoom); }
private void TestClientConnections() { try { DateTime startTaskTime; TimeSpan spentTime; startTaskTime = DateTime.Now; TimeSpan sinceLastTime = DateTime.Now - pingLastExecution; if (sinceLastTime.TotalMilliseconds >= pingInterval) { try { ServerMessage PingMessage = new ServerMessage(Outgoing.Ping); List<GameClient> ToPing = new List<GameClient>(); //List<GameClient> ToDisconnect = new List<GameClient>(); TimeSpan noise; TimeSpan sinceLastPing; foreach (GameClient client in clients.Values) { noise = DateTime.Now - pingLastExecution.AddMilliseconds(pingInterval); //For finding out if there is any lagg sinceLastPing = DateTime.Now - client.TimePingedReceived; if ((sinceLastPing.TotalMilliseconds - noise.TotalMilliseconds < pingInterval + 10000)) { ToPing.Add(client); } else { lock (timedOutConnections.SyncRoot) { timedOutConnections.Enqueue(client); } //ToDisconnect.Add(client); // pa ver los timeouts por si sale alguno mas por algun motivo Logging.WriteLine(client.ConnectionID + " => Connection timed out"); } } DateTime start = DateTime.Now; byte[] PingMessageBytes = PingMessage.GetBytes(); foreach (GameClient Client in ToPing) { try { Client.GetConnection().SendUnsafeData(PingMessageBytes); } catch { //Logging.LogCriticalException("Failed to send ping packet, possible fack up!"); //ToDisconnect.Add(Client); lock (timedOutConnections.SyncRoot) { timedOutConnections.Enqueue(Client); } } } TimeSpan spent = DateTime.Now - start; if (spent.TotalSeconds > 3) { Logging.WriteLine("Spent seconds on testing: " + (int)spent.TotalSeconds); } //start = DateTime.Now; //foreach (GameClient client in ToDisconnect) //{ // try // { // client.Disconnect(); // } // catch { } //} //spent = DateTime.Now - start; if (spent.TotalSeconds > 3) { Logging.WriteLine("Spent seconds on disconnecting: " + (int)spent.TotalSeconds); } //ToDisconnect.Clear(); //ToDisconnect = null; //ToPing.Clear(); //ToPing = null; } catch (Exception e) { Logging.LogThreadException(e.ToString(), "Connection checker task"); } pingLastExecution = DateTime.Now; } spentTime = DateTime.Now - startTaskTime; if (spentTime.TotalSeconds > 3) { Logging.WriteLine("GameClientManager.TestClientConnections spent: " + spentTime.TotalSeconds + " seconds in working."); } } catch (Exception e) { Logging.LogThreadException(e.ToString(), "GameClientManager.TestClientConnections Exception --> Not inclusive"); } }
internal void ChangeLook() { if (Session.GetHabbo().MutantPenalty) { Session.SendNotif("Because of a penalty or restriction on your account, you are not allowed to change your look."); return; } string Gender = Request.ReadString().ToUpper(); string Look = FirewindEnvironment.FilterInjectionChars(Request.ReadString()); //if (!AntiMutant.ValidateLook(Look, Gender)) //{ // return; //} FirewindEnvironment.GetGame().GetQuestManager().ProgressUserQuest(Session, HabboHotel.Quests.QuestType.PROFILE_CHANGE_LOOK); Session.GetHabbo().Look = FirewindEnvironment.FilterFigure(Look); Session.GetHabbo().Gender = Gender.ToLower(); using (IQueryAdapter dbClient = FirewindEnvironment.GetDatabaseManager().getQueryreactor()) { dbClient.setQuery("UPDATE users SET look = @look, gender = @gender WHERE id = " + Session.GetHabbo().Id); dbClient.addParameter("look", Look); dbClient.addParameter("gender", Gender); dbClient.runQuery(); } FirewindEnvironment.GetGame().GetAchievementManager().ProgressUserAchievement(Session, "ACH_AvatarLooks", 1); Session.GetMessageHandler().GetResponse().Init(Outgoing.UpdateUserInformation); Session.GetMessageHandler().GetResponse().AppendInt32(-1); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToLower()); Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Motto); Session.GetMessageHandler().GetResponse().AppendInt32(Session.GetHabbo().AchievementPoints); Session.GetMessageHandler().SendResponse(); if (Session.GetHabbo().InRoom) { Room Room = Session.GetHabbo().CurrentRoom; if (Room == null) { return; } RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id); if (User == null) { return; } ServerMessage RoomUpdate = new ServerMessage(Outgoing.UpdateUserInformation); RoomUpdate.AppendInt32(User.VirtualId); RoomUpdate.AppendString(Session.GetHabbo().Look); RoomUpdate.AppendString(Session.GetHabbo().Gender.ToLower()); RoomUpdate.AppendString(Session.GetHabbo().Motto); RoomUpdate.AppendInt32(Session.GetHabbo().AchievementPoints); Room.SendMessage(RoomUpdate); } }