Guest User

Untitled

a guest
Feb 26th, 2019
81
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 41.84 KB | None | 0 0
  1. using System;
  2. using System.Linq;
  3. using System.Net;
  4. using System.Net.Sockets;
  5. using System.Collections.Generic;
  6.  
  7. using log4net;
  8. using Unicorn.Core;
  9. using System.Text;
  10. using Unicorn.HabboHotel.Rooms;
  11. using Unicorn.HabboHotel.GameClients;
  12.  
  13. using Unicorn.Communication.Packets.Outgoing.Catalog;
  14. using Unicorn.Communication.Packets.Outgoing.Moderation;
  15. using Unicorn.Communication.Packets.Outgoing.Inventory.Purse;
  16. using Unicorn.Communication.Packets.Outgoing.Inventory.Badges;
  17. using Unicorn.Communication.Packets.Outgoing.Rooms.Engine;
  18.  
  19. using Unicorn.Database.Interfaces;
  20. using Unicorn.Communication.Packets.Outgoing.Rooms.Session;
  21. using Unicorn.HabboHotel.Camera;
  22. using Unicorn.HabboHotel.Catalog;
  23. using Unicorn.HabboHotel.Items;
  24. using Unicorn.HabboHotel.Catalog.Utilities;
  25. using Unicorn.Communication.Packets.Outgoing.Inventory.Furni;
  26. using Unicorn.HabboHotel.Items.Wired;
  27.  
  28. namespace Unicorn.Messages.Net
  29. {
  30.  
  31. public class MusConnection
  32. {
  33. private Socket _socket;
  34. private byte[] _buffer = new byte[1024];
  35.  
  36. private static readonly ILog log = LogManager.GetLogger("Unicorn.Messages.Net.MusConnection");
  37.  
  38. public MusConnection(Socket Socket)
  39. {
  40. this._socket = Socket;
  41.  
  42. try
  43. {
  44. this._socket.BeginReceive(_buffer, 0, _buffer.Length, SocketFlags.None, OnEvent_RecieveData, _socket);
  45. }
  46. catch { this.tryClose(); }
  47. }
  48.  
  49. public void tryClose()
  50. {
  51. try
  52. {
  53. this._socket.Shutdown(SocketShutdown.Both);
  54. this._socket.Close();
  55. this._socket.Dispose();
  56. }
  57. catch
  58. {
  59. }
  60.  
  61. this._socket = null;
  62. this._buffer = null;
  63. }
  64.  
  65. public void OnEvent_RecieveData(IAsyncResult iAr)
  66. {
  67. try
  68. {
  69. int bytes = 0;
  70.  
  71. try
  72. {
  73. bytes = _socket.EndReceive(iAr);
  74. }
  75. catch
  76. {
  77. tryClose();
  78. return;
  79. }
  80.  
  81. String data = Encoding.Default.GetString(_buffer, 0, bytes);
  82.  
  83. if (data.Length > 0)
  84. processCommand(data);
  85. }
  86. catch (Exception e)
  87. {
  88. Console.WriteLine(e.ToString());
  89. }
  90.  
  91. tryClose();
  92. }
  93.  
  94. public void processCommand(String data)
  95. {
  96. GameClient Client = null;
  97.  
  98. String header = data.Split(Convert.ToChar(1))[0];
  99. String param = data.Split(Convert.ToChar(1))[1];
  100.  
  101. string[] Params = param.ToString().Split(':');
  102.  
  103. switch (header.ToLower())
  104. {
  105. #region User Related
  106. #region :reload_credits <UserID>
  107.  
  108.  
  109.  
  110. case "websocket":
  111. {
  112. // Console.WriteLine(param + "UID:" + Params[0]);
  113. int uid = Convert.ToInt32(Params[0]);
  114.  
  115. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(uid);
  116. if (Client == null || Client.GetHabbo() == null)
  117. break;
  118.  
  119. GameClient Session = Client;
  120.  
  121. //Session.SendNotification(param);
  122. string[] args = param.Replace(uid + ":","").Split('|');
  123. switch (int.Parse(args[0]))
  124. {
  125.  
  126.  
  127. case 6:
  128. {
  129. try
  130. {
  131. Room outroom;
  132. if (UnicornEnvironment.GetGame().GetRoomManager().TryGetRoom(int.Parse(args[1]), out outroom))
  133. {
  134. if (!Session.GetHabbo().InRoom)
  135. Session.SendMessage(new RoomForwardComposer(outroom.Id));
  136. else
  137. Session.GetHabbo().PrepareRoom(outroom.Id, "");
  138.  
  139.  
  140.  
  141. }
  142.  
  143. }
  144. catch { }
  145. break;
  146. }
  147.  
  148.  
  149.  
  150.  
  151. case 10101:
  152. {
  153. try
  154. {
  155.  
  156.  
  157. if (Session.GetHabbo().isInJail != 2)
  158. {
  159. Session.SendNotification("<font color = '#B40404'><font size= '16'><b>Nicht im Gefängnis!</b></font></font>\n\nDu bist nicht im Gefängnis, um dich freikaufen zu können!\n");
  160. break;
  161.  
  162. }
  163.  
  164.  
  165.  
  166.  
  167. int time_caution = int.Parse(args[1]); // Kaution in Sek
  168.  
  169. if (time_caution <= 0) break;
  170.  
  171. int rest_knast = 0;
  172.  
  173. if (time_caution >= Session.GetHabbo().jailtime)
  174. {
  175. rest_knast = 0;
  176. time_caution = Session.GetHabbo().jailtime;
  177. }
  178. else
  179. rest_knast = Session.GetHabbo().jailtime - time_caution;
  180.  
  181.  
  182. int preis = ((time_caution * 5000) / 60); // Preis berechnen 5.000Taler pro Min
  183.  
  184. if (preis > Session.GetHabbo().Credits)
  185. {
  186. Session.SendNotification("<font color = '#B40404'><font size= '16'><b>Nicht genügend Taler!</b></font></font>\n\nDu hast leider nicht genug Taler, um dich aus dem Gefängnis freikaufen zu können.\n");
  187. break;
  188. }
  189.  
  190. if (rest_knast == 0)
  191. {
  192. Session.GetHabbo().Credits -= preis;
  193. Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits));
  194.  
  195.  
  196. Session.GetHabbo().isInJail = 0;
  197. Session.GetHabbo().health = 100;
  198. Session.GetHabbo().jailtime = 0;
  199. // Update MySQL Database
  200. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  201. {
  202. dbClient.SetQuery("UPDATE users SET is_jail = '0', jailtime = '0', health = '100' WHERE id = @userId LIMIT 1");
  203. dbClient.AddParameter("userId", Session.GetHabbo().Id);
  204. dbClient.RunQuery();
  205. }
  206.  
  207. Room TargetRoom;
  208. if (!UnicornEnvironment.GetGame().GetRoomManager().TryGetRoom(134, out TargetRoom))
  209. { }
  210. else
  211. TargetRoom.GetRoomUserManager().RemoveUserFromRoom(Session, true, false);
  212.  
  213. Session.SendNotification("<font color = '#008000'><font size= '16'><b>Erfolgreich freigekauft!</b></font></font>\n\nDu hast für " + time_caution + " Sekunden " + preis + " Taler gezahlt!");
  214. try
  215. {
  216. //UnicornEnvironment.GetWebSocketManager().getWebSocketByName(Session.GetHabbo().Username).Send("kautionclose");
  217. Session.sendAjax("kautionclose");
  218. }
  219. catch { }
  220. break;
  221.  
  222.  
  223. }
  224. else
  225. {
  226. Session.GetHabbo().Credits -= preis;
  227. Session.SendMessage(new CreditBalanceComposer(Session.GetHabbo().Credits));
  228.  
  229.  
  230.  
  231. Session.GetHabbo().jailtime = rest_knast;
  232.  
  233. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  234. {
  235. dbClient.SetQuery("UPDATE users SET jailtime = @restzeit WHERE id = @userId LIMIT 1");
  236. dbClient.AddParameter("userId", Session.GetHabbo().Id);
  237. dbClient.AddParameter("restzeit", rest_knast);
  238.  
  239. dbClient.RunQuery();
  240. }
  241.  
  242.  
  243. Session.SendNotification("<font color = '#008000'><font size= '16'><b>Kaution bezahlt!</b></font></font>\n\nDu hast für " + time_caution + " Sekunden " + preis + " Taler gezahlt!");
  244. try
  245. {
  246. //UnicornEnvironment.GetWebSocketManager().getWebSocketByName(Session.GetHabbo().Username).Send("kautionclose");
  247. Session.sendAjax("kautionclose");
  248. }
  249. catch { }
  250.  
  251. break;
  252.  
  253. }
  254.  
  255.  
  256.  
  257.  
  258. }
  259.  
  260.  
  261. catch
  262. {
  263.  
  264. }
  265. break;
  266.  
  267.  
  268. }
  269.  
  270.  
  271. case 32:
  272. {
  273. if (Session.GetHabbo().CurrentRoom.CheckRights(Session, true))
  274. {
  275. try
  276. {
  277.  
  278. int itemid = Convert.ToInt32(args[1]);
  279. Unicorn.HabboHotel.Items.Item ri = Session.GetHabbo().CurrentRoom.GetRoomItemHandler().GetItem(itemid);
  280. if (ri != null && ri.GetBaseItem().WiredType == Unicorn.HabboHotel.Items.Wired.WiredBoxType.EffectYoutubeWired)
  281. {
  282. IWiredItem Box = null;
  283. if (ri.GetRoom().GetWired().TryGet(ri.Id, out Box))
  284. {
  285. string ytlink = args[2].Split('=')[1];
  286. Box.StringData = ytlink;
  287. ri.ExtraData = "1";
  288. ri.UpdateState(true, true);
  289. ri.RequestUpdate(2, true);
  290. }
  291. }
  292. }
  293. catch { }
  294. }
  295. break;
  296. }
  297.  
  298.  
  299. default:
  300. break;
  301. }
  302.  
  303. break;
  304.  
  305.  
  306.  
  307.  
  308.  
  309.  
  310.  
  311.  
  312.  
  313.  
  314.  
  315. }
  316.  
  317.  
  318.  
  319. case "update_angelpass":
  320. {
  321. int UserId = Convert.ToInt32(Params[0]);
  322. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  323. if (Client == null || Client.GetHabbo() == null)
  324. break;
  325.  
  326. int angeltime = 0;
  327. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  328. {
  329. dbClient.SetQuery("SELECT `angeltime` FROM `users` WHERE `id` = @id LIMIT 1");
  330. dbClient.AddParameter("id", UserId);
  331. angeltime = dbClient.getInteger();
  332. }
  333.  
  334.  
  335. Client.GetHabbo().angelpass = angeltime;
  336.  
  337. break;
  338.  
  339.  
  340.  
  341. }
  342.  
  343. case "update_angelstatus":
  344. {
  345. int UserId = Convert.ToInt32(Params[0]);
  346. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  347. if (Client == null || Client.GetHabbo() == null)
  348. break;
  349.  
  350. int angelstatus = 0;
  351. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  352. {
  353. dbClient.SetQuery("SELECT `angelstatus` FROM `users` WHERE `id` = @id LIMIT 1");
  354. dbClient.AddParameter("id", UserId);
  355. angelstatus = dbClient.getInteger();
  356. }
  357.  
  358.  
  359. Client.GetHabbo().angelstatus = angelstatus;
  360.  
  361. break;
  362.  
  363.  
  364.  
  365. }
  366.  
  367. case "update_wurm":
  368. {
  369. int UserId = Convert.ToInt32(Params[0]);
  370. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  371. if (Client == null || Client.GetHabbo() == null)
  372. break;
  373.  
  374. int wurm = 0;
  375. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  376. {
  377. dbClient.SetQuery("SELECT `count` FROM `cms_usernpcitems` WHERE `user_id` = @id AND `item_name` = 'wurm' LIMIT 1;");
  378. dbClient.AddParameter("id", UserId);
  379. wurm = dbClient.getInteger();
  380. }
  381.  
  382.  
  383. Client.GetHabbo().wurm = wurm;
  384.  
  385. break;
  386.  
  387.  
  388.  
  389. }
  390.  
  391. case "credits_indb":
  392. {
  393. int UserId = Convert.ToInt32(Params[0]);
  394. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  395. if (Client == null || Client.GetHabbo() == null)
  396. break;
  397.  
  398. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  399. {
  400. dbClient.runFastQuery("UPDATE `users` SET `credits` = "+ Client.GetHabbo().Credits + " WHERE `id` = "+ Client.GetHabbo().Id + " LIMIT 1");
  401.  
  402.  
  403. }
  404.  
  405.  
  406.  
  407. break;
  408. }
  409.  
  410.  
  411. case "reload_credits":
  412. {
  413. int UserId = Convert.ToInt32(Params[0]);
  414. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  415. if (Client == null || Client.GetHabbo() == null)
  416. break;
  417.  
  418. int Credits = 0;
  419. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  420. {
  421. dbClient.SetQuery("SELECT `credits` FROM `users` WHERE `id` = @id LIMIT 1");
  422. dbClient.AddParameter("id", UserId);
  423. Credits = dbClient.getInteger();
  424. }
  425.  
  426. Client.GetHabbo().Credits = Credits;
  427. Client.SendMessage(new CreditBalanceComposer(Client.GetHabbo().Credits));
  428. break;
  429. }
  430. #endregion
  431. #region :reload_pixels <UserID>
  432. case "reload_pixels":
  433. {
  434. int UserId = Convert.ToInt32(Params[0]);
  435. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  436. if (Client == null || Client.GetHabbo() == null)
  437. break;
  438.  
  439. int Pixels = 0;
  440. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  441. {
  442. dbClient.SetQuery("SELECT `activity_points` FROM `users` WHERE `id` = @id LIMIT 1");
  443. dbClient.AddParameter("id", UserId);
  444. Pixels = dbClient.getInteger();
  445. }
  446.  
  447. Client.GetHabbo().Duckets = Pixels;
  448. Client.SendMessage(new HabboActivityPointNotificationComposer(Client.GetHabbo().Duckets, Pixels));
  449. break;
  450. }
  451. #endregion
  452. #region :reload_diamonds <UserID>
  453. case "reload_diamonds":
  454. {
  455. int UserId = Convert.ToInt32(Params[0]);
  456. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  457. if (Client == null || Client.GetHabbo() == null)
  458. break;
  459.  
  460. int Diamonds = 0;
  461. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  462. {
  463. dbClient.SetQuery("SELECT `vip_points` FROM `users` WHERE `id` = @id LIMIT 1");
  464. dbClient.AddParameter("id", UserId);
  465. Diamonds = dbClient.getInteger();
  466. }
  467.  
  468. Client.GetHabbo().Diamonds = Diamonds;
  469. Client.SendMessage(new HabboActivityPointNotificationComposer(Diamonds, 0, 5));
  470. break;
  471. }
  472. #endregion
  473. #region :reload_gotw <UserID>
  474. case "reload_gotw":
  475. {
  476. int UserId = Convert.ToInt32(Params[0]);
  477. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  478. if (Client == null || Client.GetHabbo() == null)
  479. break;
  480.  
  481. int GOTWPoints = 0;
  482. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  483. {
  484. dbClient.SetQuery("SELECT `gotw_points` FROM `users` WHERE `id` = @id LIMIT 1");
  485. dbClient.AddParameter("id", UserId);
  486. GOTWPoints = dbClient.getInteger();
  487. }
  488.  
  489. Client.GetHabbo().GOTWPoints = GOTWPoints;
  490. Client.SendMessage(new HabboActivityPointNotificationComposer(GOTWPoints, 0, 103));
  491. break;
  492. }
  493. #endregion
  494. #region :reload_user_rank userID
  495. case "reload_user_rank":
  496. {
  497. int UserId = Convert.ToInt32(Params[0]);
  498.  
  499. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  500. if (Client == null || Client.GetHabbo() == null)
  501. break;
  502.  
  503. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  504. {
  505. dbClient.SetQuery("SELECT `rank` FROM `users` WHERE `id` = @userID LIMIT 1");
  506. dbClient.AddParameter("userID", UserId);
  507. Client.GetHabbo().Rank = dbClient.getInteger();
  508. }
  509. break;
  510. }
  511. #endregion
  512. #region :reload_user_vip userID
  513. case "reload_user_vip":
  514. {
  515. int UserId = Convert.ToInt32(Params[0]);
  516.  
  517. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  518. if (Client == null || Client.GetHabbo() == null)
  519. break;
  520.  
  521. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  522. {
  523. dbClient.SetQuery("SELECT `rank_vip` FROM `users` WHERE `id` = @userID LIMIT 1");
  524. dbClient.AddParameter("userID", UserId);
  525. Client.GetHabbo().VIPRank = dbClient.getInteger();
  526. }
  527. break;
  528. }
  529. #endregion
  530. #region :reload_motto userID
  531. case "reload_motto":
  532. {
  533. int UserId = Convert.ToInt32(Params[0]);
  534.  
  535. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  536. if (Client == null || Client.GetHabbo() == null)
  537. break;
  538.  
  539. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  540. {
  541. dbClient.SetQuery("SELECT `motto` FROM `users` WHERE `id` = @userID LIMIT 1");
  542. dbClient.AddParameter("userID", UserId);
  543. Client.GetHabbo().Motto = dbClient.getString();
  544. }
  545.  
  546. if (Client.GetHabbo().InRoom)
  547. {
  548. Room Room = Client.GetHabbo().CurrentRoom;
  549. if (Room == null)
  550. return;
  551.  
  552. RoomUser User = Room.GetRoomUserManager().GetRoomUserByHabbo(Client.GetHabbo().Id);
  553. if (User == null || User.GetClient() == null)
  554. return;
  555.  
  556. Room.SendMessage(new UserChangeComposer(User, false));
  557. }
  558. break;
  559. }
  560. #endregion
  561. #region :alert_user <userid> <message>
  562. case "alert":
  563. case "alert_user":
  564. {
  565. int UserId = Convert.ToInt32(Params[0]);
  566. string alertMessage = Convert.ToString(Params[1]);
  567.  
  568. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  569. if (Client == null || Client.GetHabbo() == null)
  570. break;
  571.  
  572. Client.SendMessage(new BroadcastMessageAlertComposer(alertMessage));
  573. break;
  574. }
  575. #endregion
  576. #region :whisper_user <userid> <message>
  577. case "whisper_user":
  578. {
  579. int UserId = Convert.ToInt32(Params[0]);
  580. string whisperMessage = Convert.ToString(Params[1]);
  581. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  582. if (Client == null || Client.GetHabbo() == null)
  583. break;
  584. Client.SendWhisper(whisperMessage, 1);
  585.  
  586. break;
  587. }
  588. #endregion
  589. #region :whisper_all <message>
  590. case "whisper_all":
  591. {
  592. string whisperMessage = Convert.ToString(Params[0]);
  593. UnicornEnvironment.GetGame().GetClientManager().Gc(whisperMessage);
  594.  
  595. break;
  596. }
  597. #endregion
  598. #region :whisper_staff <message>
  599. case "whisper_staff":
  600. {
  601. string whisperMessage = Convert.ToString(Params[0]);
  602. UnicornEnvironment.GetGame().GetClientManager().Whispersa(whisperMessage);
  603.  
  604. break;
  605. }
  606. #endregion
  607. #region :gift_item <userid> <pageid> <itemid> <giftid> <ribbon> <color> <message>
  608. case "gift_item":
  609. {
  610. int UserId = Convert.ToInt32(Params[0]);
  611. int PageId = Convert.ToInt32(Params[1]);
  612. int ItemId = Convert.ToInt32(Params[2]);
  613. int GiftId = Convert.ToInt32(Params[3]);
  614. string Ribbon = Convert.ToString(Params[4]);
  615. string Color = Convert.ToString(Params[5]);
  616. string Message = Convert.ToString(Params[6]);
  617. CatalogPage Page = null;
  618. if (!UnicornEnvironment.GetGame().GetCatalog().TryGetPage(PageId, out Page))
  619. break;
  620.  
  621.  
  622. CatalogItem Item = null;
  623. if (!Page.Items.TryGetValue(ItemId, out Item))
  624. {
  625. if (Page.ItemOffers.ContainsKey(ItemId))
  626. {
  627. Item = (CatalogItem)Page.ItemOffers[ItemId];
  628. if (Item == null)
  629. break;
  630. }
  631. else
  632. break;
  633. }
  634. if (!ItemUtility.CanGiftItem(Item))
  635. break;
  636.  
  637. ItemData PresentData = null;
  638. if (!UnicornEnvironment.GetGame().GetItemManager().GetGift(GiftId, out PresentData) || PresentData.InteractionType != InteractionType.GIFT)
  639. break;
  640.  
  641. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  642. if (Client.GetHabbo() == null)
  643. {
  644. break;
  645. }
  646.  
  647.  
  648. string ED = Client.GetHabbo().Id + Convert.ToChar(5) + Message + Convert.ToChar(5) + Client.GetHabbo().Id + Convert.ToChar(5) + Item.Data.Id + Convert.ToChar(5) + GiftId + Convert.ToChar(5) + Ribbon + Convert.ToChar(5) + Color;
  649. int NewItemId = 0;
  650. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  651. {
  652. //Insert the dummy item.
  653. dbClient.SetQuery("INSERT INTO `items` (`base_item`,`user_id`,`extra_data`) VALUES ('" + PresentData.Id + "', '" + Client.GetHabbo().Id + "', @extra_data)");
  654. dbClient.AddParameter("extra_data", ED);
  655. NewItemId = Convert.ToInt32(dbClient.InsertQuery());
  656.  
  657. string ItemExtraData = null;
  658.  
  659. dbClient.SetQuery("INSERT INTO `user_presents` (`item_id`,`base_id`,`extra_data`) VALUES ('" + NewItemId + "', '" + Item.Data.Id + "', @extra_data)");
  660. dbClient.AddParameter("extra_data", (string.IsNullOrEmpty(ItemExtraData) ? "" : ItemExtraData));
  661. dbClient.RunQuery();
  662.  
  663. }
  664. Item GiveItem = ItemFactory.CreateGiftItem(PresentData, Client.GetHabbo(), ED, ED, NewItemId, 0, 0);
  665. if (GiveItem != null)
  666. {
  667. GameClient Receiver = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(Client.GetHabbo().Id);
  668. if (Receiver != null)
  669. {
  670. if (Receiver.GetHabbo().Rank <= 5)
  671. {
  672.  
  673. Receiver.SendNotification("<font color = '#008000'><font size= '16'><b>Geschenk vom System</b></font></font>\n\nDu hast gerade ein Geschenk erhalten! Schaue in deinem Inventar nach, um es auszupacken.");
  674.  
  675. }
  676. {
  677.  
  678. Receiver.GetHabbo().GetInventoryComponent().TryAddItem(GiveItem);
  679. Receiver.SendMessage(new FurniListNotificationComposer(GiveItem.Id, 1));
  680. Receiver.SendMessage(new PurchaseOKComposer());
  681. Receiver.SendMessage(new FurniListAddComposer(GiveItem));
  682. Receiver.SendMessage(new FurniListUpdateComposer());
  683.  
  684. }
  685. }
  686. break;
  687. }
  688. break;
  689. }
  690.  
  691. #endregion
  692. #region :reload_badges <UserID>
  693. case "update_badges":
  694. case "reload_badges":
  695. {
  696. int UserId = Convert.ToInt32(Params[0]);
  697. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  698.  
  699. if (Client != null)
  700. {
  701. if (Client.GetHabbo() != null)
  702. {
  703. Client.SendMessage(new BadgesComposer(Client));
  704. }
  705. }
  706. break;
  707. }
  708. #endregion
  709. #region :givebadge <UserID> <badge>
  710. case "givebadge":
  711. {
  712. int UserId = Convert.ToInt32(Params[0]);
  713. string badgeCode = Convert.ToString(Params[1]);
  714. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  715.  
  716. if (Client != null)
  717. {
  718. if (Client.GetHabbo() != null)
  719. {
  720. UnicornEnvironment.GetGame().GetBadgeManager().Init();
  721. Client.GetHabbo().GetBadgeComponent().GiveBadge(badgeCode, true, Client);
  722. }
  723. }
  724. break;
  725. }
  726. #endregion
  727. #region :disconnect <username>
  728. case "disconnect":
  729. {
  730. try
  731. {
  732. GameClient TargetClient = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(Convert.ToInt32(Params[0]));
  733. if (TargetClient != null && TargetClient.GetConnection() != null)
  734. TargetClient.GetConnection().Dispose();
  735. }
  736. catch
  737. {
  738. log.Error("Error disconnecting user using MUS");
  739. }
  740. return;
  741. }
  742. #endregion
  743. #region :reload_last_change userID
  744. case "reload_last_change":
  745. {
  746. int UserId = Convert.ToInt32(Params[0]);
  747.  
  748. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  749. if (Client == null || Client.GetHabbo() == null)
  750. break;
  751.  
  752. using (IQueryAdapter dbClient = UnicornEnvironment.GetDatabaseManager().GetQueryReactor())
  753. {
  754. dbClient.SetQuery("SELECT `last_change` FROM `users` WHERE `id` = @userID LIMIT 1");
  755. dbClient.AddParameter("userID", UserId);
  756. Client.GetHabbo().LastNameChange = dbClient.getInteger();
  757. }
  758. break;
  759. }
  760. #endregion
  761. #region :goto <UserID> <RoomID>
  762. case "goto":
  763. {
  764. int UserId = Convert.ToInt32(Params[0]);
  765. int RoomId = Convert.ToInt32(Params[1]);
  766.  
  767. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  768. if (Client == null || Client.GetHabbo() == null)
  769. break;
  770.  
  771. if (!int.TryParse(Params[1], out RoomId))
  772. break;
  773. else
  774. {
  775. Room _room = UnicornEnvironment.GetGame().GetRoomManager().LoadRoom(RoomId);
  776. if (_room == null)
  777. Client.SendNotification("Failed to find the requested room!");
  778. else
  779. {
  780. if (!Client.GetHabbo().InRoom)
  781. Client.SendMessage(new RoomForwardComposer(_room.Id));
  782. else
  783. Client.GetHabbo().PrepareRoom(_room.Id, "");
  784. }
  785. }
  786. }
  787. break;
  788. #endregion
  789. #endregion
  790.  
  791.  
  792. #region Fastfood
  793. #region :progress_achievement
  794. case "progress_achievement":
  795. {
  796. int UserId = Convert.ToInt32(Params[0]);
  797. Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  798. if (Client == null || Client.GetHabbo() == null)
  799. break;
  800.  
  801. string Achievement = Convert.ToString(Params[1]);
  802. int Progress = Convert.ToInt32(Params[2]);
  803.  
  804. UnicornEnvironment.GetGame().GetAchievementManager().ProgressAchievement(Client, Achievement, Progress);
  805. break;
  806. }
  807. #endregion
  808. #endregion
  809.  
  810. #region Settings related
  811. #region :reload_filter/:update_filter
  812. case "update_filter":
  813. case "reload_filter":
  814. case "recache_filter":
  815. case "refresh_filter":
  816. {
  817. UnicornEnvironment.GetGame().GetChatManager().GetFilter().InitWords();
  818. UnicornEnvironment.GetGame().GetChatManager().GetFilter().InitCharacters();
  819. break;
  820. }
  821. #endregion
  822. #region :reload_badgedef/:update_badgedef
  823. case "update_badgedef":
  824. case "reload_badgedef":
  825. {
  826. UnicornEnvironment.GetGame().GetBadgeManager().Init();
  827. break;
  828. }
  829. #endregion
  830. #region :reload_catalog/:reload_catalog
  831. case "update_catalog":
  832. case "reload_catalog":
  833. case "recache_catalog":
  834. case "refresh_catalog":
  835. case "update_catalogue":
  836. case "reload_catalogue":
  837. case "recache_catalogue":
  838. case "refresh_catalogue":
  839. {
  840. UnicornEnvironment.GetGame().GetCatalog().Init(UnicornEnvironment.GetGame().GetItemManager());
  841. UnicornEnvironment.GetGame().GetClientManager().SendMessage(new CatalogUpdatedComposer());
  842. break;
  843. }
  844. #endregion
  845. #region :reload_items/:update_items
  846. case "update_items":
  847. case "reload_items":
  848. case "recache_items":
  849. case "refresh_items":
  850. {
  851. UnicornEnvironment.GetGame().GetItemManager().Init();
  852. break;
  853. }
  854. #endregion
  855. #region :reload_navigator/:update_navigator
  856. case "update_navigator":
  857. case "reload_navigator":
  858. case "recache_navigator":
  859. case "refresh_navigator":
  860. {
  861. UnicornEnvironment.GetGame().GetNavigator().Init();
  862. break;
  863. }
  864. #endregion
  865. #region :reload_ranks/:update_ranks
  866. case "update_ranks":
  867. case "reload_ranks":
  868. case "recache_ranks":
  869. case "refresh_ranks":
  870. {
  871. UnicornEnvironment.GetGame().GetPermissionManager().Init();
  872.  
  873. foreach (GameClient C in UnicornEnvironment.GetGame().GetClientManager().GetClients.ToList())
  874. {
  875. if (C == null || C.GetHabbo() == null || C.GetHabbo().GetPermissions() == null)
  876. continue;
  877.  
  878. C.GetHabbo().GetPermissions().Init(Client.GetHabbo());
  879. }
  880. break;
  881. }
  882. #endregion
  883. #region :reload_settings/:update_settings
  884. case "update_settings":
  885. case "reload_settings":
  886. case "recache_settings":
  887. case "refresh_settings":
  888. {
  889. UnicornEnvironment.ConfigData = new ConfigData();
  890. break;
  891. }
  892. #endregion
  893. #region :reload_quests/:update_quests
  894. case "reload_quests":
  895. case "update_quests":
  896. {
  897. UnicornEnvironment.GetGame().GetQuestManager().Init();
  898. break;
  899. }
  900. #endregion
  901. #region :reload_vouchers/:update_vouchers
  902. case "reload_vouchers":
  903. case "update_vouchers":
  904. {
  905. UnicornEnvironment.GetGame().GetCatalog().GetVoucherManager().Init();
  906. break;
  907. }
  908. #endregion
  909. #region :reload_bans/:update_bans
  910. case "update_bans":
  911. case "reload_bans":
  912. {
  913. UnicornEnvironment.GetGame().GetModerationManager().ReCacheBans();
  914. break;
  915. }
  916. #endregion
  917. #endregion
  918.  
  919.  
  920.  
  921. //#region Camera related
  922.  
  923. // #region :add_preview <photo_id> <user_id> <created_at>
  924. // case "add_preview":
  925. // {
  926. // int PhotoId = Convert.ToInt32(Params[0]);
  927. // int UserId = Convert.ToInt32(Params[1]);
  928. // long CreatedAt = Convert.ToInt64(Params[2]);
  929.  
  930. // Client = UnicornEnvironment.GetGame().GetClientManager().GetClientByUserID(UserId);
  931.  
  932. // if (Client == null || Client.GetHabbo() == null || Client.GetHabbo().CurrentRoomId < 1)
  933. // break;
  934.  
  935. // UnicornEnvironment.GetGame().GetCameraManager().AddPreview(new CameraPhotoPreview(PhotoId, UserId, CreatedAt));
  936. // break;
  937. // }
  938.  
  939. // #endregion
  940.  
  941. // #endregion
  942.  
  943. default:
  944. {
  945. log.Error("Nicht erkannter MUS-Command erreicht: '" + header + "'");
  946. return;
  947. }
  948. }
  949.  
  950. log.Info("MUS-Command erfolgreich ausgeführt: '" + header + "'");
  951. }
  952. }
  953. }
Add Comment
Please, Sign In to add comment