Guest User

Untitled

a guest
Dec 18th, 2015
23
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 56.07 KB | None | 0 0
  1. #region
  2.  
  3. using System;
  4. using System.Collections.Generic;
  5. using System.Data;
  6. using System.Linq;
  7. using Azure.Configuration;
  8. using Azure.HabboHotel.Quests;
  9. using Azure.HabboHotel.Quests.Composer;
  10. using Azure.HabboHotel.Rooms;
  11. using Azure.HabboHotel.Users;
  12. using Azure.HabboHotel.Users.Badges;
  13. using Azure.HabboHotel.Users.Relationships;
  14. using Azure.Messages.Parsers;
  15. using Azure.Util;
  16.  
  17. #endregion
  18.  
  19. namespace Azure.Messages.Handlers
  20. {
  21. /// <summary>
  22. /// Class GameClientMessageHandler.
  23. /// </summary>
  24. partial class GameClientMessageHandler
  25. {
  26. /// <summary>
  27. /// Sends the bully report.
  28. /// </summary>
  29. public void SendBullyReport()
  30. {
  31. //var reportedId = Request.GetUInteger();
  32. //AzureEmulator.GetGame()
  33. // .GetModerationTool()
  34. // .SendNewTicket(Session, 104, 9, reportedId, "", new List<string>());
  35.  
  36. //Response.Init(LibraryParser.OutgoingRequest("BullyReportSentMessageComposer"));
  37. //Response.AppendInteger(0);
  38. //SendResponse();
  39. Session.SendNotif("Oeps, dit werkt nog niet! We zijn ermee bezig.");
  40. }
  41.  
  42. /// <summary>
  43. /// Opens the bully reporting.
  44. /// </summary>
  45. public void OpenBullyReporting()
  46. {
  47. Response.Init(LibraryParser.OutgoingRequest("OpenBullyReportMessageComposer"));
  48. Response.AppendInteger(0);
  49. SendResponse();
  50. }
  51.  
  52. /// <summary>
  53. /// Opens the quests.
  54. /// </summary>
  55. public void OpenQuests()
  56. {
  57. AzureEmulator.GetGame().GetQuestManager().GetList(Session, Request);
  58. }
  59.  
  60. /// <summary>
  61. /// Retrieves the citizenship.
  62. /// </summary>
  63. internal void RetrieveCitizenship()
  64. {
  65. GetResponse().Init(LibraryParser.OutgoingRequest("CitizenshipStatusMessageComposer"));
  66. GetResponse().AppendString(Request.GetString());
  67. GetResponse().AppendInteger(4);
  68. GetResponse().AppendInteger(4);
  69. }
  70.  
  71. /// <summary>
  72. /// Loads the club gifts.
  73. /// </summary>
  74. internal void LoadClubGifts()
  75. {
  76. if (Session == null || Session.GetHabbo() == null)
  77. return;
  78. //var i = 0;
  79. //var i2 = 0;
  80. Session.GetHabbo().GetSubscriptionManager().GetSubscription();
  81. var serverMessage = new ServerMessage();
  82. serverMessage.Init(LibraryParser.OutgoingRequest("CatalogueClubPageMessageComposer"));
  83. serverMessage.AppendInteger(0); // i
  84. serverMessage.AppendInteger(0); // i2
  85. serverMessage.AppendInteger(1);
  86. }
  87.  
  88. /// <summary>
  89. /// Chooses the club gift.
  90. /// </summary>
  91. internal void ChooseClubGift()
  92. {
  93. if (Session == null || Session.GetHabbo() == null)
  94. return;
  95. Request.GetString();
  96. }
  97.  
  98. /// <summary>
  99. /// Gets the user tags.
  100. /// </summary>
  101. internal void GetUserTags()
  102. {
  103. var room = AzureEmulator.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
  104. if (room == null)
  105. return;
  106. var roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabbo(Request.GetUInteger());
  107. if (roomUserByHabbo == null || roomUserByHabbo.IsBot)
  108. return;
  109. Response.Init(LibraryParser.OutgoingRequest("UserTagsMessageComposer"));
  110. Response.AppendInteger(roomUserByHabbo.GetClient().GetHabbo().Id);
  111. Response.AppendInteger(roomUserByHabbo.GetClient().GetHabbo().Tags.Count);
  112. foreach (string current in roomUserByHabbo.GetClient().GetHabbo().Tags)
  113. Response.AppendString(current);
  114. SendResponse();
  115.  
  116. if (Session != roomUserByHabbo.GetClient())
  117. return;
  118. if (Session.GetHabbo().Tags.Count >= 5)
  119. AzureEmulator.GetGame()
  120. .GetAchievementManager()
  121. .ProgressUserAchievement(roomUserByHabbo.GetClient(), "ACH_UserTags", 5, false);
  122. }
  123.  
  124. /// <summary>
  125. /// Gets the user badges.
  126. /// </summary>
  127. internal void GetUserBadges()
  128. {
  129. var room = AzureEmulator.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
  130. if (room == null)
  131. return;
  132. var roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabbo(Request.GetUInteger());
  133. if (roomUserByHabbo == null || roomUserByHabbo.IsBot)
  134. return;
  135. if (roomUserByHabbo.GetClient() == null)
  136. return;
  137.  
  138. Session.GetHabbo().LastSelectedUser = roomUserByHabbo.UserId;
  139. Response.Init(LibraryParser.OutgoingRequest("UserBadgesMessageComposer"));
  140. Response.AppendInteger(roomUserByHabbo.GetClient().GetHabbo().Id);
  141.  
  142. Response.StartArray();
  143. foreach (
  144. var badge in
  145. roomUserByHabbo.GetClient()
  146. .GetHabbo()
  147. .GetBadgeComponent()
  148. .BadgeList.Values.Cast<Badge>()
  149. .Where(badge => badge.Slot > 0).Take(5))
  150. {
  151. Response.AppendInteger(badge.Slot);
  152. Response.AppendString(badge.Code);
  153.  
  154. Response.SaveArray();
  155. }
  156.  
  157. Response.EndArray();
  158. SendResponse();
  159. }
  160.  
  161. /// <summary>
  162. /// Gives the respect.
  163. /// </summary>
  164. internal void GiveRespect()
  165. {
  166. var room = AzureEmulator.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId);
  167. if (room == null || Session.GetHabbo().DailyRespectPoints <= 0)
  168. return;
  169. var roomUserByHabbo = room.GetRoomUserManager().GetRoomUserByHabbo(Request.GetUInteger());
  170. if (roomUserByHabbo == null || roomUserByHabbo.GetClient().GetHabbo().Id == Session.GetHabbo().Id ||
  171. roomUserByHabbo.IsBot)
  172. return;
  173. AzureEmulator.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.SocialRespect, 0);
  174. AzureEmulator.GetGame().GetAchievementManager().ProgressUserAchievement(Session, "ACH_RespectGiven", 1, false);
  175. AzureEmulator.GetGame()
  176. .GetAchievementManager()
  177. .ProgressUserAchievement(roomUserByHabbo.GetClient(), "ACH_RespectEarned", 1, false);
  178.  
  179. {
  180. Session.GetHabbo().DailyRespectPoints--;
  181. roomUserByHabbo.GetClient().GetHabbo().Respect++;
  182. using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  183. queryReactor.RunFastQuery("UPDATE users_stats SET respect = respect + 1 WHERE id = " + roomUserByHabbo.GetClient().GetHabbo().Id + " LIMIT 1;UPDATE users_stats SET daily_respect_points = daily_respect_points - 1 WHERE id= " + Session.GetHabbo().Id + " LIMIT 1");
  184. var serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("GiveRespectsMessageComposer"));
  185. serverMessage.AppendInteger(roomUserByHabbo.GetClient().GetHabbo().Id);
  186. serverMessage.AppendInteger(roomUserByHabbo.GetClient().GetHabbo().Respect);
  187. room.SendMessage(serverMessage);
  188.  
  189. var thumbsUp = new ServerMessage();
  190. thumbsUp.Init(LibraryParser.OutgoingRequest("RoomUserActionMessageComposer"));
  191. thumbsUp.AppendInteger(
  192. room.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().UserName).VirtualId);
  193. thumbsUp.AppendInteger(7);
  194. room.SendMessage(thumbsUp);
  195. }
  196. }
  197.  
  198. /// <summary>
  199. /// Applies the effect.
  200. /// </summary>
  201. internal void ApplyEffect()
  202. {
  203. var effectId = Request.GetInteger();
  204. var roomUserByHabbo =
  205. AzureEmulator.GetGame()
  206. .GetRoomManager()
  207. .GetRoom(Session.GetHabbo().CurrentRoomId)
  208. .GetRoomUserManager()
  209. .GetRoomUserByHabbo(Session.GetHabbo().UserName);
  210. if (!roomUserByHabbo.RidingHorse)
  211. Session.GetHabbo().GetAvatarEffectsInventoryComponent().ActivateCustomEffect(effectId);
  212. }
  213.  
  214. /// <summary>
  215. /// Enables the effect.
  216. /// </summary>
  217. internal void EnableEffect()
  218. {
  219. var currentRoom = Session.GetHabbo().CurrentRoom;
  220. if (currentRoom == null)
  221. return;
  222. var roomUserByHabbo = currentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
  223. if (roomUserByHabbo == null)
  224. return;
  225. var num = Request.GetInteger();
  226. if (roomUserByHabbo.RidingHorse)
  227. return;
  228. if (num == 0)
  229. {
  230. Session.GetHabbo()
  231. .GetAvatarEffectsInventoryComponent()
  232. .StopEffect(Session.GetHabbo().GetAvatarEffectsInventoryComponent().CurrentEffect);
  233. return;
  234. }
  235. Session.GetHabbo().GetAvatarEffectsInventoryComponent().ActivateEffect(num);
  236. }
  237.  
  238. /// <summary>
  239. /// Mutes the user.
  240. /// </summary>
  241. internal void MuteUser()
  242. {
  243. var num = Request.GetUInteger();
  244. Request.GetUInteger();
  245. var num2 = Request.GetUInteger();
  246. var currentRoom = Session.GetHabbo().CurrentRoom;
  247. if (currentRoom == null || (currentRoom.RoomData.WhoCanBan == 0 && !currentRoom.CheckRights(Session, true, false)) ||
  248. (currentRoom.RoomData.WhoCanBan == 1 && !currentRoom.CheckRights(Session)) || Session.GetHabbo().Rank < Convert.ToUInt32(AzureEmulator.GetDbConfig().DbData["ambassador.minrank"]))
  249. return;
  250. var roomUserByHabbo = currentRoom.GetRoomUserManager()
  251. .GetRoomUserByHabbo(AzureEmulator.GetHabboById(num).UserName);
  252. if (roomUserByHabbo == null)
  253. return;
  254. if (roomUserByHabbo.GetClient().GetHabbo().Rank >= Session.GetHabbo().Rank)
  255. return;
  256. if (currentRoom.MutedUsers.ContainsKey(num))
  257. {
  258. if (currentRoom.MutedUsers[num] >= (ulong)AzureEmulator.GetUnixTimeStamp())
  259. return;
  260. currentRoom.MutedUsers.Remove(num);
  261. }
  262. currentRoom.MutedUsers.Add(num,
  263. uint.Parse(
  264. ((AzureEmulator.GetUnixTimeStamp()) + unchecked(checked(num2 * 60))).ToString()));
  265.  
  266. roomUserByHabbo.GetClient()
  267. .SendNotif(string.Format(TextManager.GetText("room_owner_has_mute_user"), num2));
  268. }
  269.  
  270. /// <summary>
  271. /// Gets the user information.
  272. /// </summary>
  273. internal void GetUserInfo()
  274. {
  275. GetResponse().Init(LibraryParser.OutgoingRequest("UpdateUserDataMessageComposer"));
  276. GetResponse().AppendInteger(-1);
  277. GetResponse().AppendString(Session.GetHabbo().Look);
  278. GetResponse().AppendString(Session.GetHabbo().Gender.ToLower());
  279. GetResponse().AppendString(Session.GetHabbo().Motto);
  280. GetResponse().AppendInteger(Session.GetHabbo().AchievementPoints);
  281. SendResponse();
  282. GetResponse().Init(LibraryParser.OutgoingRequest("AchievementPointsMessageComposer"));
  283. GetResponse().AppendInteger(Session.GetHabbo().AchievementPoints);
  284. SendResponse();
  285. }
  286.  
  287. /// <summary>
  288. /// Gets the balance.
  289. /// </summary>
  290. internal void GetBalance()
  291. {
  292. if (Session == null || Session.GetHabbo() == null) return;
  293.  
  294. Session.GetHabbo().UpdateCreditsBalance();
  295. Session.GetHabbo().UpdateSeasonalCurrencyBalance();
  296. }
  297.  
  298. /// <summary>
  299. /// Gets the subscription data.
  300. /// </summary>
  301. internal void GetSubscriptionData()
  302. {
  303. Session.GetHabbo().SerializeClub();
  304. }
  305.  
  306. /// <summary>
  307. /// Loads the settings.
  308. /// </summary>
  309. internal void LoadSettings()
  310. {
  311. var preferences = Session.GetHabbo().Preferences;
  312. var serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("LoadVolumeMessageComposer"));
  313.  
  314. serverMessage.AppendIntegersArray(preferences.Volume, ',', 3, 0, 100);
  315.  
  316. serverMessage.AppendBool(preferences.PreferOldChat);
  317. serverMessage.AppendBool(preferences.IgnoreRoomInvite);
  318. serverMessage.AppendBool(preferences.DisableCameraFollow);
  319. serverMessage.AppendInteger(0); // collapse friends (3 = no)
  320. serverMessage.AppendInteger(preferences.ChatColor); //bubble
  321. Session.SendMessage(serverMessage);
  322. }
  323.  
  324. /// <summary>
  325. /// Saves the settings.
  326. /// </summary>
  327. internal void SaveSettings()
  328. {
  329. var num = Request.GetInteger();
  330. var num2 = Request.GetInteger();
  331. var num3 = Request.GetInteger();
  332. Session.GetHabbo().Preferences.Volume = num + "," + num2 + "," + num3;
  333. Session.GetHabbo().Preferences.Save();
  334. }
  335.  
  336. /// <summary>
  337. /// Sets the chat preferrence.
  338. /// </summary>
  339. internal void SetChatPreferrence()
  340. {
  341. bool enable = Request.GetBool();
  342. Session.GetHabbo().Preferences.PreferOldChat = enable;
  343. Session.GetHabbo().Preferences.Save();
  344. }
  345.  
  346. internal void SetInvitationsPreference()
  347. {
  348. bool enable = Request.GetBool();
  349. Session.GetHabbo().Preferences.IgnoreRoomInvite = enable;
  350. Session.GetHabbo().Preferences.Save();
  351. }
  352. internal void SetRoomCameraPreferences()
  353. {
  354. bool enable = Request.GetBool();
  355. Session.GetHabbo().Preferences.DisableCameraFollow = enable;
  356. Session.GetHabbo().Preferences.Save();
  357. }
  358.  
  359. /// <summary>
  360. /// Gets the badges.
  361. /// </summary>
  362. internal void GetBadges()
  363. {
  364. Session.SendMessage(Session.GetHabbo().GetBadgeComponent().Serialize());
  365. }
  366.  
  367. /// <summary>
  368. /// Updates the badges.
  369. /// </summary>
  370. internal void UpdateBadges()
  371. {
  372. Session.GetHabbo().GetBadgeComponent().ResetSlots();
  373. using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  374. queryReactor.RunFastQuery(string.Format("UPDATE users_badges SET badge_slot = 0 WHERE user_id = {0}",
  375. Session.GetHabbo().Id));
  376. for (var i = 0; i < 5; i++)
  377. {
  378. var slot = Request.GetInteger();
  379. var code = Request.GetString();
  380. if (code.Length == 0) continue;
  381. if (!Session.GetHabbo().GetBadgeComponent().HasBadge(code) || slot < 1 || slot > 5) return;
  382. Session.GetHabbo().GetBadgeComponent().GetBadge(code).Slot = slot;
  383. using (var queryreactor2 = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  384. {
  385. queryreactor2.SetQuery("UPDATE users_badges SET badge_slot = " + slot +
  386. " WHERE badge_id = @badge AND user_id = " + Session.GetHabbo().Id);
  387. queryreactor2.AddParameter("badge", code);
  388. queryreactor2.RunQuery();
  389. }
  390. }
  391. AzureEmulator.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.ProfileBadge, 0);
  392. var serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("UserBadgesMessageComposer"));
  393. serverMessage.AppendInteger(Session.GetHabbo().Id);
  394.  
  395. serverMessage.StartArray();
  396. foreach (
  397. var badge in
  398. Session.GetHabbo()
  399. .GetBadgeComponent()
  400. .BadgeList.Values.Cast<Badge>()
  401. .Where(badge => badge.Slot > 0))
  402. {
  403. serverMessage.AppendInteger(badge.Slot);
  404. serverMessage.AppendString(badge.Code);
  405.  
  406. serverMessage.SaveArray();
  407. }
  408.  
  409. serverMessage.EndArray();
  410. if (Session.GetHabbo().InRoom &&
  411. AzureEmulator.GetGame().GetRoomManager().GetRoom(Session.GetHabbo().CurrentRoomId) != null)
  412. {
  413. AzureEmulator.GetGame()
  414. .GetRoomManager()
  415. .GetRoom(Session.GetHabbo().CurrentRoomId)
  416. .SendMessage(serverMessage);
  417. return;
  418. }
  419. Session.SendMessage(serverMessage);
  420. }
  421.  
  422. /// <summary>
  423. /// Gets the achievements.
  424. /// </summary>
  425. internal void GetAchievements()
  426. {
  427. AzureEmulator.GetGame().GetAchievementManager().GetList(Session, Request);
  428. }
  429.  
  430. /// <summary>
  431. /// Prepares the campaing.
  432. /// </summary>
  433. internal void PrepareCampaing()
  434. {
  435. var text = Request.GetString();
  436. Response.Init(LibraryParser.OutgoingRequest("SendCampaignBadgeMessageComposer"));
  437. Response.AppendString(text);
  438. Response.AppendBool(Session.GetHabbo().GetBadgeComponent().HasBadge(text));
  439. SendResponse();
  440. }
  441.  
  442. /// <summary>
  443. /// Loads the profile.
  444. /// </summary>
  445. internal void LoadProfile()
  446. {
  447. var userId = Request.GetUInteger();
  448. Request.GetBool();
  449.  
  450. var habbo = AzureEmulator.GetHabboById(userId);
  451. if (habbo == null)
  452. {
  453. Session.SendNotif(TextManager.GetText("user_not_found"));
  454. return;
  455. }
  456. var createTime = new DateTime(1970, 1, 1, 0, 0, 0, 0).AddSeconds(habbo.CreateDate);
  457.  
  458. Response.Init(LibraryParser.OutgoingRequest("UserProfileMessageComposer"));
  459. Response.AppendInteger(habbo.Id);
  460. Response.AppendString(habbo.UserName);
  461. Response.AppendString(habbo.Look);
  462. Response.AppendString(habbo.Motto);
  463.  
  464. Response.AppendString(createTime.ToString("dd/MM/yyyy"));
  465. Response.AppendInteger(habbo.AchievementPoints);
  466. Response.AppendInteger(GetFriendsCount(userId));
  467. Response.AppendBool(habbo.Id != Session.GetHabbo().Id &&
  468. Session.GetHabbo().GetMessenger().FriendshipExists(habbo.Id));
  469. Response.AppendBool(habbo.Id != Session.GetHabbo().Id &&
  470. !Session.GetHabbo().GetMessenger().FriendshipExists(habbo.Id) &&
  471. Session.GetHabbo().GetMessenger().RequestExists(habbo.Id));
  472. Response.AppendBool(AzureEmulator.GetGame().GetClientManager().GetClientByUserId(habbo.Id) != null);
  473. var groups = AzureEmulator.GetGame().GetGroupManager().GetUserGroups(habbo.Id);
  474. Response.AppendInteger(groups.Count);
  475. foreach (var @group in groups.Select(groupUs => AzureEmulator.GetGame().GetGroupManager().GetGroup(groupUs.GroupId))
  476. )
  477. if (@group != null)
  478. {
  479. Response.AppendInteger(@group.Id);
  480. Response.AppendString(@group.Name);
  481. Response.AppendString(@group.Badge);
  482. Response.AppendString(AzureEmulator.GetGame().GetGroupManager().GetGroupColour(@group.Colour1, true));
  483. Response.AppendString(AzureEmulator.GetGame().GetGroupManager().GetGroupColour(@group.Colour2, false));
  484. Response.AppendBool(@group.Id == habbo.FavouriteGroup);
  485. Response.AppendInteger(-1);
  486. Response.AppendBool(@group.HasForum);
  487. }
  488. else
  489. {
  490. Response.AppendInteger(1);
  491. Response.AppendString("THIS GROUP IS INVALID");
  492. Response.AppendString("");
  493. Response.AppendString("");
  494. Response.AppendString("");
  495. Response.AppendBool(false);
  496. Response.AppendInteger(-1);
  497. Response.AppendBool(false);
  498. }
  499. if (habbo.PreviousOnline == 0)
  500. Response.AppendInteger(-1);
  501. else if (AzureEmulator.GetGame().GetClientManager().GetClientByUserId(habbo.Id) == null)
  502. Response.AppendInteger((AzureEmulator.GetUnixTimeStamp() - habbo.PreviousOnline));
  503. else
  504. Response.AppendInteger((AzureEmulator.GetUnixTimeStamp() - habbo.LastOnline));
  505.  
  506. Response.AppendBool(true);
  507. SendResponse();
  508. Response.Init(LibraryParser.OutgoingRequest("UserBadgesMessageComposer"));
  509. Response.AppendInteger(habbo.Id);
  510. Response.StartArray();
  511.  
  512. foreach (
  513. var badge in habbo.GetBadgeComponent().BadgeList.Values.Cast<Badge>().Where(badge => badge.Slot > 0))
  514. {
  515. Response.AppendInteger(badge.Slot);
  516. Response.AppendString(badge.Code);
  517.  
  518. Response.SaveArray();
  519. }
  520.  
  521. Response.EndArray();
  522. SendResponse();
  523. }
  524.  
  525. /// <summary>
  526. /// Changes the look.
  527. /// </summary>
  528. internal void ChangeLook()
  529. {
  530. var text = Request.GetString().ToUpper();
  531. var text2 = Request.GetString();
  532.  
  533. if (!AzureEmulator.GetGame().GetAntiMutant().Check(text2, text)) return;
  534.  
  535. AzureEmulator.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.ProfileChangeLook, 0);
  536. Session.GetHabbo().Look = text2;
  537. Session.GetHabbo().Gender = text.ToLower();
  538. using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  539. {
  540. queryReactor.SetQuery($"UPDATE users SET look = @look, gender = @gender WHERE id = {Session.GetHabbo().Id}");
  541. queryReactor.AddParameter("look", text2);
  542. queryReactor.AddParameter("gender", text);
  543. queryReactor.RunQuery();
  544. }
  545. AzureEmulator.GetGame().GetAchievementManager().ProgressUserAchievement(Session, "ACH_AvatarLooks", 1, false);
  546. if (Session.GetHabbo().Look.Contains("ha-1006")) AzureEmulator.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.WearHat, 0);
  547. Session.GetMessageHandler().GetResponse().Init(LibraryParser.OutgoingRequest("UpdateAvatarAspectMessageComposer"));
  548. Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look);
  549. Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToUpper());
  550. Session.GetMessageHandler().SendResponse();
  551. Session.GetMessageHandler().GetResponse().Init(LibraryParser.OutgoingRequest("UpdateUserDataMessageComposer"));
  552. Session.GetMessageHandler().GetResponse().AppendInteger(-1);
  553. Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Look);
  554. Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Gender.ToLower());
  555. Session.GetMessageHandler().GetResponse().AppendString(Session.GetHabbo().Motto);
  556. Session.GetMessageHandler().GetResponse().AppendInteger(Session.GetHabbo().AchievementPoints);
  557. Session.GetMessageHandler().SendResponse();
  558. if (!Session.GetHabbo().InRoom) return;
  559. var currentRoom = Session.GetHabbo().CurrentRoom;
  560. if (currentRoom == null) return;
  561. var roomUserByHabbo = currentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
  562. if (roomUserByHabbo == null) return;
  563. var serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("UpdateUserDataMessageComposer"));
  564. serverMessage.AppendInteger(roomUserByHabbo.VirtualId); //BUGG
  565. //serverMessage.AppendInt32(-1);
  566. serverMessage.AppendString(Session.GetHabbo().Look);
  567. serverMessage.AppendString(Session.GetHabbo().Gender.ToLower());
  568. serverMessage.AppendString(Session.GetHabbo().Motto);
  569. serverMessage.AppendInteger(Session.GetHabbo().AchievementPoints);
  570. currentRoom.SendMessage(serverMessage);
  571.  
  572. if (Session.GetHabbo().GetMessenger() != null) Session.GetHabbo().GetMessenger().OnStatusChanged(true);
  573. }
  574.  
  575. /// <summary>
  576. /// Changes the motto.
  577. /// </summary>
  578. internal void ChangeMotto()
  579. {
  580. var text = Request.GetString();
  581. if (text == Session.GetHabbo().Motto)
  582. return;
  583. Session.GetHabbo().Motto = text;
  584. using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  585. {
  586. queryReactor.SetQuery(string.Format("UPDATE users SET motto = @motto WHERE id = '{0}'",
  587. Session.GetHabbo().Id));
  588. queryReactor.AddParameter("motto", text);
  589. queryReactor.RunQuery();
  590. }
  591. AzureEmulator.GetGame().GetQuestManager().ProgressUserQuest(Session, QuestType.ProfileChangeMotto, 0);
  592. if (Session.GetHabbo().InRoom)
  593. {
  594. var currentRoom = Session.GetHabbo().CurrentRoom;
  595. if (currentRoom == null)
  596. return;
  597. var roomUserByHabbo = currentRoom.GetRoomUserManager().GetRoomUserByHabbo(Session.GetHabbo().Id);
  598. if (roomUserByHabbo == null)
  599. return;
  600. var serverMessage = new ServerMessage(LibraryParser.OutgoingRequest("UpdateUserDataMessageComposer"));
  601. serverMessage.AppendInteger(roomUserByHabbo.VirtualId); //BUGG
  602. //serverMessage.AppendInt32(-1);
  603. serverMessage.AppendString(Session.GetHabbo().Look);
  604. serverMessage.AppendString(Session.GetHabbo().Gender.ToLower());
  605. serverMessage.AppendString(Session.GetHabbo().Motto);
  606. serverMessage.AppendInteger(Session.GetHabbo().AchievementPoints);
  607. currentRoom.SendMessage(serverMessage);
  608. }
  609. AzureEmulator.GetGame().GetAchievementManager().ProgressUserAchievement(Session, "ACH_Motto", 1, false);
  610. }
  611.  
  612. /// <summary>
  613. /// Gets the wardrobe.
  614. /// </summary>
  615. internal void GetWardrobe()
  616. {
  617. GetResponse().Init(LibraryParser.OutgoingRequest("LoadWardrobeMessageComposer"));
  618. GetResponse().AppendInteger(0);
  619. using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  620. {
  621. queryReactor.SetQuery(
  622. string.Format("SELECT slot_id, look, gender FROM users_wardrobe WHERE user_id = {0}",
  623. Session.GetHabbo().Id));
  624. var table = queryReactor.GetTable();
  625. if (table == null)
  626. GetResponse().AppendInteger(0);
  627. else
  628. {
  629. GetResponse().AppendInteger(table.Rows.Count);
  630. foreach (DataRow dataRow in table.Rows)
  631. {
  632. GetResponse().AppendInteger(Convert.ToUInt32(dataRow["slot_id"]));
  633. GetResponse().AppendString((string)dataRow["look"]);
  634. GetResponse().AppendString(dataRow["gender"].ToString().ToUpper());
  635. }
  636. }
  637. SendResponse();
  638. }
  639. }
  640.  
  641. /// <summary>
  642. /// Saves the wardrobe.
  643. /// </summary>
  644. internal void SaveWardrobe()
  645. {
  646. var num = Request.GetUInteger();
  647. var text = Request.GetString();
  648. var text2 = Request.GetString();
  649.  
  650. text = AzureEmulator.FilterFigure(text);
  651.  
  652. using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  653. {
  654. queryReactor.SetQuery(string.Concat("SELECT null FROM users_wardrobe WHERE user_id = ", Session.GetHabbo().Id, " AND slot_id = ", num));
  655. queryReactor.AddParameter("look", text);
  656. queryReactor.AddParameter("gender", text2.ToUpper());
  657. if (queryReactor.GetRow() != null)
  658. {
  659. queryReactor.SetQuery(string.Concat("UPDATE users_wardrobe SET look = @look, gender = @gender WHERE user_id = ", Session.GetHabbo().Id, " AND slot_id = ", num, ";"));
  660. queryReactor.AddParameter("look", text);
  661. queryReactor.AddParameter("gender", text2.ToUpper());
  662. queryReactor.RunQuery();
  663. }
  664. else
  665. {
  666. queryReactor.SetQuery(string.Concat("INSERT INTO users_wardrobe (user_id,slot_id,look,gender) VALUES (", Session.GetHabbo().Id, ",", num, ",@look,@gender)"));
  667. queryReactor.AddParameter("look", text);
  668. queryReactor.AddParameter("gender", text2.ToUpper());
  669. queryReactor.RunQuery();
  670. }
  671. }
  672. AzureEmulator.GetGame()
  673. .GetQuestManager()
  674. .ProgressUserQuest(Session, QuestType.ProfileChangeLook);
  675. }
  676.  
  677. /// <summary>
  678. /// Gets the pets inventory.
  679. /// </summary>
  680. internal void GetPetsInventory()
  681. {
  682. if (Session.GetHabbo().GetInventoryComponent() == null)
  683. return;
  684. Session.SendMessage(Session.GetHabbo().GetInventoryComponent().SerializePetInventory());
  685. }
  686.  
  687. /// <summary>
  688. /// Gets the bots inventory.
  689. /// </summary>
  690. internal void GetBotsInventory()
  691. {
  692. Session.SendMessage(Session.GetHabbo().GetInventoryComponent().SerializeBotInventory());
  693. SendResponse();
  694. }
  695.  
  696. /// <summary>
  697. /// Checks the name.
  698. /// </summary>
  699. internal void CheckName()
  700. {
  701. var text = Request.GetString();
  702. if (text.ToLower() == Session.GetHabbo().UserName.ToLower())
  703. {
  704. Response.Init(LibraryParser.OutgoingRequest("NameChangedUpdatesMessageComposer"));
  705. Response.AppendInteger(0);
  706. Response.AppendString(text);
  707. Response.AppendInteger(0);
  708. SendResponse();
  709. return;
  710. }
  711. using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  712. {
  713. queryReactor.SetQuery("SELECT username FROM users WHERE Username=@name LIMIT 1");
  714. queryReactor.AddParameter("name", text);
  715. var @string = queryReactor.GetString();
  716. var array = text.ToLower().ToCharArray();
  717. const string source = "abcdefghijklmnopqrstuvwxyz1234567890.,_-;:?!@áéíóúÁÉÍÓÚñÑÜüÝý ";
  718. var array2 = array;
  719. if (array2.Any(c => !source.Contains(char.ToLower(c))))
  720. {
  721. Response.Init(LibraryParser.OutgoingRequest("NameChangedUpdatesMessageComposer"));
  722. Response.AppendInteger(4);
  723. Response.AppendString(text);
  724. Response.AppendInteger(0);
  725. SendResponse();
  726. return;
  727. }
  728. if (text.ToLower().Contains("mod") || text.ToLower().Contains("m0d") || text.Contains(" ") ||
  729. text.ToLower().Contains("admin"))
  730. {
  731. Response.Init(LibraryParser.OutgoingRequest("NameChangedUpdatesMessageComposer"));
  732. Response.AppendInteger(4);
  733. Response.AppendString(text);
  734. Response.AppendInteger(0);
  735. SendResponse();
  736. }
  737. else if (text.Length > 15)
  738. {
  739. Response.Init(LibraryParser.OutgoingRequest("NameChangedUpdatesMessageComposer"));
  740. Response.AppendInteger(3);
  741. Response.AppendString(text);
  742. Response.AppendInteger(0);
  743. SendResponse();
  744. }
  745. else if (text.Length < 3)
  746. {
  747. Response.Init(LibraryParser.OutgoingRequest("NameChangedUpdatesMessageComposer"));
  748. Response.AppendInteger(2);
  749. Response.AppendString(text);
  750. Response.AppendInteger(0);
  751. SendResponse();
  752. }
  753. else if (string.IsNullOrWhiteSpace(@string))
  754. {
  755. Response.Init(LibraryParser.OutgoingRequest("NameChangedUpdatesMessageComposer"));
  756. Response.AppendInteger(0);
  757. Response.AppendString(text);
  758. Response.AppendInteger(0);
  759. SendResponse();
  760. }
  761. else
  762. {
  763. queryReactor.SetQuery("SELECT tag FROM users_tags ORDER BY RAND() LIMIT 3");
  764. var table = queryReactor.GetTable();
  765. Response.Init(LibraryParser.OutgoingRequest("NameChangedUpdatesMessageComposer"));
  766. Response.AppendInteger(5);
  767. Response.AppendString(text);
  768. Response.AppendInteger(table.Rows.Count);
  769. foreach (DataRow dataRow in table.Rows)
  770. Response.AppendString(string.Format("{0}{1}", text, dataRow[0]));
  771. SendResponse();
  772. }
  773. }
  774. }
  775.  
  776. /// <summary>
  777. /// Changes the name.
  778. /// </summary>
  779. internal void ChangeName()
  780. {
  781. var text = Request.GetString();
  782. var userName = Session.GetHabbo().UserName;
  783.  
  784. {
  785. using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  786. {
  787. queryReactor.SetQuery("SELECT username FROM users WHERE Username=@name LIMIT 1");
  788. queryReactor.AddParameter("name", text);
  789. var @String = queryReactor.GetString();
  790.  
  791. if (!string.IsNullOrWhiteSpace(String) &&
  792. !String.Equals(userName, text, StringComparison.CurrentCultureIgnoreCase))
  793. return;
  794. queryReactor.SetQuery("UPDATE rooms_data SET owner = @newowner WHERE owner = @oldowner");
  795. queryReactor.AddParameter("newowner", text);
  796. queryReactor.AddParameter("oldowner", Session.GetHabbo().UserName);
  797. queryReactor.RunQuery();
  798.  
  799. queryReactor.SetQuery(
  800. "UPDATE users SET Username = @newname, last_name_change = @timestamp WHERE id = @userid");
  801. queryReactor.AddParameter("newname", text);
  802. queryReactor.AddParameter("timestamp", AzureEmulator.GetUnixTimeStamp() + 43200);
  803. queryReactor.AddParameter("userid", Session.GetHabbo().UserName);
  804. queryReactor.RunQuery();
  805.  
  806. Session.GetHabbo().LastChange = AzureEmulator.GetUnixTimeStamp() + 43200;
  807. Session.GetHabbo().UserName = text;
  808. Response.Init(LibraryParser.OutgoingRequest("UpdateUsernameMessageComposer"));
  809. Response.AppendInteger(0);
  810. Response.AppendString(text);
  811. Response.AppendInteger(0);
  812. SendResponse();
  813. Response.Init(LibraryParser.OutgoingRequest("UpdateUserDataMessageComposer"));
  814. Response.AppendInteger(-1);
  815. Response.AppendString(Session.GetHabbo().Look);
  816. Response.AppendString(Session.GetHabbo().Gender.ToLower());
  817. Response.AppendString(Session.GetHabbo().Motto);
  818. Response.AppendInteger(Session.GetHabbo().AchievementPoints);
  819. SendResponse();
  820. Session.GetHabbo().CurrentRoom.GetRoomUserManager().UpdateUser(userName, text);
  821. if (Session.GetHabbo().CurrentRoom != null)
  822. {
  823. Response.Init(LibraryParser.OutgoingRequest("UserUpdateNameInRoomMessageComposer"));
  824. Response.AppendInteger(Session.GetHabbo().Id);
  825. Response.AppendInteger(Session.GetHabbo().CurrentRoom.RoomId);
  826. Response.AppendString(text);
  827. }
  828. foreach (var current in Session.GetHabbo().UsersRooms)
  829. {
  830. current.Owner = text;
  831. current.SerializeRoomData(Response, Session, false, true);
  832. var room = AzureEmulator.GetGame().GetRoomManager().GetRoom(current.Id);
  833. if (room != null)
  834. room.RoomData.Owner = text;
  835. }
  836. foreach (var current2 in Session.GetHabbo().GetMessenger().Friends.Values)
  837. if (current2.Client != null)
  838. foreach (
  839. var current3 in
  840. current2.Client.GetHabbo()
  841. .GetMessenger()
  842. .Friends.Values.Where(current3 => current3.UserName == userName))
  843. {
  844. current3.UserName = text;
  845. current3.Serialize(Response, Session);
  846. }
  847. }
  848. }
  849. }
  850.  
  851. /// <summary>
  852. /// Gets the relationships.
  853. /// </summary>
  854. internal void GetRelationships()
  855. {
  856. var userId = Request.GetUInteger();
  857. var habboForId = AzureEmulator.GetHabboById(userId);
  858. if (habboForId == null)
  859. return;
  860. var rand = new Random();
  861. habboForId.Relationships = (
  862. from x in habboForId.Relationships
  863. orderby rand.Next()
  864. select x).ToDictionary(item => item.Key,
  865. item => item.Value);
  866. var num = habboForId.Relationships.Count(x => x.Value.Type == 1);
  867. var num2 = habboForId.Relationships.Count(x => x.Value.Type == 2);
  868. var num3 = habboForId.Relationships.Count(x => x.Value.Type == 3);
  869. Response.Init(LibraryParser.OutgoingRequest("RelationshipMessageComposer"));
  870. Response.AppendInteger(habboForId.Id);
  871. Response.AppendInteger(habboForId.Relationships.Count);
  872. foreach (var current in habboForId.Relationships.Values)
  873. {
  874. var habboForId2 = AzureEmulator.GetHabboById(Convert.ToUInt32(current.UserId));
  875. if (habboForId2 == null)
  876. {
  877. Response.AppendInteger(0);
  878. Response.AppendInteger(0);
  879. Response.AppendInteger(0);
  880. Response.AppendString("Placeholder");
  881. Response.AppendString("hr-115-42.hd-190-1.ch-215-62.lg-285-91.sh-290-62");
  882. }
  883. else
  884. {
  885. Response.AppendInteger(current.Type);
  886. Response.AppendInteger((current.Type == 1) ? num : ((current.Type == 2) ? num2 : num3));
  887. Response.AppendInteger(current.UserId);
  888. Response.AppendString(habboForId2.UserName);
  889. Response.AppendString(habboForId2.Look);
  890. }
  891. }
  892. SendResponse();
  893. }
  894.  
  895. /// <summary>
  896. /// Sets the relationship.
  897. /// </summary>
  898. internal void SetRelationship()
  899. {
  900. var num = Request.GetUInteger();
  901. var num2 = Request.GetInteger();
  902.  
  903. {
  904. using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  905. {
  906. if (num2 == 0)
  907. {
  908. queryReactor.SetQuery(
  909. "SELECT id FROM users_relationships WHERE user_id=@id AND target=@target LIMIT 1");
  910. queryReactor.AddParameter("id", Session.GetHabbo().Id);
  911. queryReactor.AddParameter("target", num);
  912. var integer = queryReactor.GetInteger();
  913. queryReactor.SetQuery(
  914. "DELETE FROM users_relationships WHERE user_id=@id AND target=@target LIMIT 1");
  915. queryReactor.AddParameter("id", Session.GetHabbo().Id);
  916. queryReactor.AddParameter("target", num);
  917. queryReactor.RunQuery();
  918. if (Session.GetHabbo().Relationships.ContainsKey(integer))
  919. Session.GetHabbo().Relationships.Remove(integer);
  920. }
  921. else
  922. {
  923. queryReactor.SetQuery(
  924. "SELECT id FROM users_relationships WHERE user_id=@id AND target=@target LIMIT 1");
  925. queryReactor.AddParameter("id", Session.GetHabbo().Id);
  926. queryReactor.AddParameter("target", num);
  927. var integer2 = queryReactor.GetInteger();
  928. if (integer2 > 0)
  929. {
  930. queryReactor.SetQuery(
  931. "DELETE FROM users_relationships WHERE user_id=@id AND target=@target LIMIT 1");
  932. queryReactor.AddParameter("id", Session.GetHabbo().Id);
  933. queryReactor.AddParameter("target", num);
  934. queryReactor.RunQuery();
  935. if (Session.GetHabbo().Relationships.ContainsKey(integer2))
  936. Session.GetHabbo().Relationships.Remove(integer2);
  937. }
  938. queryReactor.SetQuery(
  939. "INSERT INTO users_relationships (user_id, target, type) VALUES (@id, @target, @type)");
  940. queryReactor.AddParameter("id", Session.GetHabbo().Id);
  941. queryReactor.AddParameter("target", num);
  942. queryReactor.AddParameter("type", num2);
  943. var num3 = (int)queryReactor.InsertQuery();
  944. Session.GetHabbo().Relationships.Add(num3, new Relationship(num3, (int)num, num2));
  945. }
  946. var clientByUserId = AzureEmulator.GetGame().GetClientManager().GetClientByUserId(num);
  947. Session.GetHabbo().GetMessenger().UpdateFriend(num, clientByUserId, true);
  948. }
  949. }
  950. }
  951.  
  952. /// <summary>
  953. /// Starts the quest.
  954. /// </summary>
  955. public void StartQuest()
  956. {
  957. AzureEmulator.GetGame().GetQuestManager().ActivateQuest(Session, Request);
  958. }
  959.  
  960. /// <summary>
  961. /// Stops the quest.
  962. /// </summary>
  963. public void StopQuest()
  964. {
  965. AzureEmulator.GetGame().GetQuestManager().CancelQuest(Session, Request);
  966. }
  967.  
  968. /// <summary>
  969. /// Gets the current quest.
  970. /// </summary>
  971. public void GetCurrentQuest()
  972. {
  973. AzureEmulator.GetGame().GetQuestManager().GetCurrentQuest(Session, Request);
  974. }
  975.  
  976. /// <summary>
  977. /// Starts the seasonal quest.
  978. /// </summary>
  979. public void StartSeasonalQuest()
  980. {
  981. RoomData roomData;
  982. using (var queryReactor = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  983. {
  984. var quest = AzureEmulator.GetGame().GetQuestManager().GetQuest(Request.GetUInteger());
  985. if (quest == null)
  986. return;
  987. queryReactor.RunFastQuery(string.Concat("REPLACE INTO users_quests_data(user_id,quest_id) VALUES (", Session.GetHabbo().Id, ", ", quest.Id, ")"));
  988. queryReactor.RunFastQuery(string.Concat("UPDATE users_stats SET quest_id = ", quest.Id, " WHERE id = ", Session.GetHabbo().Id));
  989. Session.GetHabbo().CurrentQuestId = quest.Id;
  990. Session.SendMessage(QuestStartedComposer.Compose(Session, quest));
  991. AzureEmulator.GetGame().GetQuestManager().ActivateQuest(Session, Request);
  992. queryReactor.SetQuery("SELECT id FROM rooms_data WHERE state='open' ORDER BY users_now DESC LIMIT 1");
  993. var @string = queryReactor.GetString();
  994. roomData = AzureEmulator.GetGame().GetRoomManager().GenerateRoomData(uint.Parse(@string));
  995. }
  996. if (roomData != null)
  997. {
  998. roomData.SerializeRoomData(Response, Session, true, false);
  999. Session.GetMessageHandler().PrepareRoomForUser(roomData.Id, "");
  1000. return;
  1001. }
  1002. Session.SendNotif(TextManager.GetText("start_quest_need_room"));
  1003. }
  1004.  
  1005. /// <summary>
  1006. /// Receives the nux gifts.
  1007. /// </summary>
  1008. public void ReceiveNuxGifts()
  1009. {
  1010. if (!ExtraSettings.NEW_users_gifts_ENABLED)
  1011. {
  1012. Session.SendNotif(TextManager.GetText("nieuwe_gebruiker_kado_error_1"));
  1013. return;
  1014. }
  1015. if (Session.GetHabbo().NuxPassed)
  1016. {
  1017. Session.SendNotif(TextManager.GetText("nieuwe_gebruiker_kado_error_2"));
  1018. return;
  1019. }
  1020.  
  1021. var item = Session.GetHabbo().GetInventoryComponent().AddNewItem(0, ExtraSettings.NEW_USER_GIFT_YTTV2_ID, "", 0, true, false, 0, 0);
  1022. Session.GetHabbo().GetInventoryComponent().UpdateItems(false);
  1023.  
  1024. Session.GetHabbo().Diamonds += 25;
  1025. Session.GetHabbo().UpdateSeasonalCurrencyBalance();
  1026. if (item != null)
  1027. Session.GetHabbo().GetInventoryComponent().SendNewItems(item.Id);
  1028.  
  1029. using (var dbClient = AzureEmulator.GetDatabaseManager().GetQueryReactor())
  1030. if (Session.GetHabbo().VIP)
  1031. dbClient.RunFastQuery(
  1032. string.Format(
  1033. "UPDATE users SET vip = '1', vip_expire = DATE_ADD(vip_expire, INTERVAL 1 DAY), nux_passed = '1' WHERE id = {0}",
  1034. Session.GetHabbo().Id));
  1035. else
  1036. dbClient.RunFastQuery(
  1037. string.Format(
  1038. "UPDATE users SET vip = '1', vip_expire = DATE_ADD(NOW(), INTERVAL 1 DAY), nux_passed = '1' WHERE id = {0}",
  1039. Session.GetHabbo().Id));
  1040.  
  1041. Session.GetHabbo().NuxPassed = true;
  1042. Session.GetHabbo().VIP = true;
  1043. }
  1044.  
  1045. /// <summary>
  1046. /// Accepts the nux gifts.
  1047. /// </summary>
  1048. public void AcceptNuxGifts()
  1049. {
  1050. if (ExtraSettings.NEW_users_gifts_ENABLED == false || Request.GetInteger() != 0)
  1051. return;
  1052.  
  1053. var nuxGifts = new ServerMessage(LibraryParser.OutgoingRequest("NuxListGiftsMessageComposer"));
  1054. nuxGifts.AppendInteger(3); //Cantidad
  1055.  
  1056. nuxGifts.AppendInteger(0);
  1057. nuxGifts.AppendInteger(0);
  1058. nuxGifts.AppendInteger(1); //Cantidad
  1059. // ahora nuevo bucle
  1060. nuxGifts.AppendString("");
  1061. nuxGifts.AppendString("nux/gift_yttv2.png");
  1062. nuxGifts.AppendInteger(1); //cantidad
  1063. //Ahora nuevo bucle...
  1064. nuxGifts.AppendString("yttv2");
  1065. nuxGifts.AppendString("");
  1066.  
  1067. nuxGifts.AppendInteger(2);
  1068. nuxGifts.AppendInteger(1);
  1069. nuxGifts.AppendInteger(1);
  1070. nuxGifts.AppendString("");
  1071. nuxGifts.AppendString("nux/gift_diamonds.png");
  1072. nuxGifts.AppendInteger(1);
  1073. nuxGifts.AppendString("nux_gift_diamonds");
  1074. nuxGifts.AppendString("");
  1075.  
  1076. nuxGifts.AppendInteger(3);
  1077. nuxGifts.AppendInteger(1);
  1078. nuxGifts.AppendInteger(1);
  1079. nuxGifts.AppendString("");
  1080. nuxGifts.AppendString("nux/gift_vip1day.png");
  1081. nuxGifts.AppendInteger(1);
  1082. nuxGifts.AppendString("nux_gift_vip_1_day");
  1083. nuxGifts.AppendString("");
  1084.  
  1085. Session.SendMessage(nuxGifts);
  1086. }
  1087.  
  1088. /// <summary>
  1089. /// Talentses this instance.
  1090. /// </summary>
  1091. /// <exception cref="System.NullReferenceException"></exception>
  1092. internal void Talents()
  1093. {
  1094. var trackType = Request.GetString();
  1095. var talents = AzureEmulator.GetGame().GetTalentManager().GetTalents(trackType, -1);
  1096. var failLevel = -1;
  1097. if (talents == null)
  1098. return;
  1099. Response.Init(LibraryParser.OutgoingRequest("TalentsTrackMessageComposer"));
  1100. Response.AppendString(trackType);
  1101. Response.AppendInteger(talents.Count);
  1102. foreach (var current in talents)
  1103. {
  1104. Response.AppendInteger(current.Level);
  1105. var nm = (failLevel == -1) ? 1 : 0;
  1106. Response.AppendInteger(nm);
  1107. var talents2 = AzureEmulator.GetGame().GetTalentManager().GetTalents(trackType, current.Id);
  1108. Response.AppendInteger(talents2.Count);
  1109. foreach (var current2 in talents2)
  1110. {
  1111. if (current2.GetAchievement() == null)
  1112. throw new NullReferenceException(
  1113. string.Format("The following talent achievement can't be found: {0}",
  1114. current2.AchievementGroup));
  1115.  
  1116. var num = (failLevel != -1 && failLevel < current2.Level)
  1117. ? 0
  1118. : (Session.GetHabbo().GetAchievementData(current2.AchievementGroup) == null)
  1119. ? 1
  1120. : (Session.GetHabbo().GetAchievementData(current2.AchievementGroup).Level >=
  1121. current2.AchievementLevel)
  1122. ? 2
  1123. : 1;
  1124. Response.AppendInteger(current2.GetAchievement().Id);
  1125. Response.AppendInteger(0);
  1126. Response.AppendString(string.Format("{0}{1}", current2.AchievementGroup, current2.AchievementLevel));
  1127. Response.AppendInteger(num);
  1128. Response.AppendInteger((Session.GetHabbo().GetAchievementData(current2.AchievementGroup) != null)
  1129. ? Session.GetHabbo().GetAchievementData(current2.AchievementGroup).Progress
  1130. : 0);
  1131. Response.AppendInteger((current2.GetAchievement() == null)
  1132. ? 0
  1133. : current2.GetAchievement().Levels[current2.AchievementLevel].Requirement);
  1134. if (num != 2 && failLevel == -1)
  1135. failLevel = current2.Level;
  1136. }
  1137. Response.AppendInteger(0);
  1138. if (current.Type == "citizenship" && current.Level == 4)
  1139. {
  1140. Response.AppendInteger(2);
  1141. Response.AppendString("HABBO_CLUB_VIP_7_DAYS");
  1142. Response.AppendInteger(7);
  1143. Response.AppendString(current.Prize);
  1144. Response.AppendInteger(0);
  1145. }
  1146. else
  1147. {
  1148. Response.AppendInteger(1);
  1149. Response.AppendString(current.Prize);
  1150. Response.AppendInteger(0);
  1151. }
  1152. }
  1153. SendResponse();
  1154. }
  1155.  
  1156. /// <summary>
  1157. /// Completes the safety quiz.
  1158. /// </summary>
  1159. internal void CompleteSafetyQuiz()
  1160. {
  1161. AzureEmulator.GetGame().GetAchievementManager().ProgressUserAchievement(Session, "ACH_SafetyQuizGraduate", 1, false);
  1162. }
  1163.  
  1164. /// <summary>
  1165. /// Hotels the view countdown.
  1166. /// </summary>
  1167. internal void HotelViewCountdown()
  1168. {
  1169. string time = Request.GetString();
  1170. DateTime date;
  1171. DateTime.TryParse(time, out date);
  1172. TimeSpan diff = date - DateTime.Now;
  1173. Response.Init(LibraryParser.OutgoingRequest("HotelViewCountdownMessageComposer"));
  1174. Response.AppendString(time);
  1175. Response.AppendInteger(Convert.ToInt32(diff.TotalSeconds));
  1176. SendResponse();
  1177. Console.WriteLine(diff.TotalSeconds);
  1178. }
  1179.  
  1180. /// <summary>
  1181. /// Hotels the view dailyquest.
  1182. /// </summary>
  1183. internal void HotelViewDailyquest()
  1184. {
  1185. }
  1186.  
  1187. internal void FindMoreFriends()
  1188. {
  1189. var allRooms = AzureEmulator.GetGame().GetRoomManager().GetActiveRooms();
  1190. Random rnd = new Random();
  1191. var randomRoom = allRooms[rnd.Next(allRooms.Length)].Key;
  1192. var success = new ServerMessage(LibraryParser.OutgoingRequest("FindMoreFriendsSuccessMessageComposer"));
  1193. if (randomRoom == null)
  1194. {
  1195. success.AppendBool(false);
  1196. Session.SendMessage(success);
  1197. return;
  1198. }
  1199. success.AppendBool(true);
  1200. Session.SendMessage(success);
  1201. var roomFwd = new ServerMessage(LibraryParser.OutgoingRequest("RoomForwardMessageComposer"));
  1202. roomFwd.AppendInteger(randomRoom.Id);
  1203. Session.SendMessage(roomFwd);
  1204. }
  1205. internal void HotelViewRequestBadge()
  1206. {
  1207. string name = Request.GetString();
  1208. var hotelViewBadges = AzureEmulator.GetGame().GetHotelView().HotelViewBadges;
  1209. if (!hotelViewBadges.ContainsKey(name))
  1210. return;
  1211. var badge = hotelViewBadges[name];
  1212. Session.GetHabbo().GetBadgeComponent().GiveBadge(badge, true, Session, true);
  1213. }
  1214. internal void GetCameraPrice()
  1215. {
  1216. GetResponse().Init(LibraryParser.OutgoingRequest("SetCameraPriceMessageComposer"));
  1217. GetResponse().AppendInteger(500);//credits
  1218. GetResponse().AppendInteger(1000);//duckets
  1219. SendResponse();
  1220. }
  1221. internal void GetHotelViewHallOfFame()
  1222. {
  1223. string code = Request.GetString();
  1224. GetResponse().Init(LibraryParser.OutgoingRequest("HotelViewHallOfFameMessageComposer"));
  1225. GetResponse().AppendString(code);
  1226. IEnumerable<HallOfFameElement> Rankings = AzureEmulator.GetGame().GetHallOfFame().Rankings.Where(e => e.Competition == code);
  1227. GetResponse().StartArray();
  1228. int rank = 1;
  1229. foreach (HallOfFameElement element in Rankings)
  1230. {
  1231. Habbo user = AzureEmulator.GetHabboById(element.UserId);
  1232. if (user == null) continue;
  1233.  
  1234. GetResponse().AppendInteger(user.Id);
  1235. GetResponse().AppendString(user.UserName);
  1236. GetResponse().AppendString(user.Look);
  1237. GetResponse().AppendInteger(rank);
  1238. GetResponse().AppendInteger(element.Score);
  1239. rank++;
  1240. GetResponse().SaveArray();
  1241. }
  1242. GetResponse().EndArray();
  1243. SendResponse();
  1244. }
  1245. internal void FriendRequestListLoad()
  1246. {
  1247. }
  1248. }
  1249. }
Add Comment
Please, Sign In to add comment