Advertisement
Guest User

CatalogPageComposer.cs

a guest
Jan 5th, 2017
130
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
  1. using log4net;
  2. using System;
  3. using System.Linq;
  4. using Plus.Core;
  5. using Plus.HabboHotel.Items;
  6. using Plus.HabboHotel.Catalog;
  7. using Plus.HabboHotel.Items.Utilities;
  8. using Plus.HabboHotel.Catalog.Utilities;
  9. using Plus.Database.Interfaces;
  10. using System.Data;
  11. using Plus.Utilities;
  12. namespace Plus.Communication.Packets.Outgoing.Catalog
  13. {
  14.     public class CatalogPageComposer : ServerPacket
  15.     {
  16.         public CatalogPageComposer(CatalogPage Page, string CataMode)
  17.             : base(ServerPacketHeader.CatalogPageMessageComposer)
  18.         {
  19.             base.WriteInteger(Page.Id);
  20.             base.WriteString(CataMode);
  21.             base.WriteString(Page.Template);
  22.             base.WriteInteger(Page.PageStrings1.Count);
  23.             foreach (string s in Page.PageStrings1)
  24.             {
  25.                 base.WriteString(s);
  26.             }
  27.             base.WriteInteger(Page.PageStrings2.Count);
  28.             foreach (string s in Page.PageStrings2)
  29.             {
  30.                 base.WriteString(s);
  31.             }
  32.             if (!Page.Template.Equals("frontpage") && !Page.Template.Equals("club_buy"))
  33.             {
  34.                 base.WriteInteger(Page.Items.Count);
  35.                 foreach (CatalogItem Item in Page.Items.Values)
  36.                 {
  37.                     base.WriteInteger(Item.Id);
  38.                     base.WriteString(Item.Name);
  39.                     base.WriteBoolean(false);
  40.                     base.WriteInteger(Item.CostCredits);
  41.                     if (Item.CostDiamonds > 0)
  42.                     {
  43.                         base.WriteInteger(Item.CostDiamonds);
  44.                         base.WriteInteger(5);
  45.                     }
  46.                     else
  47.                     {
  48.                         base.WriteInteger(Item.CostPixels);
  49.                         base.WriteInteger(0);
  50.                     }
  51.                     if (Item.CostDiamonds > 0)
  52.                     {
  53.                         base.WriteInteger(Item.CostDiamonds);
  54.                         base.WriteInteger(0);
  55.                     }
  56.                     base.WriteBoolean(ItemUtility.CanGiftItem(Item));
  57.                     if (Item.Data.InteractionType == InteractionType.DEAL)
  58.                     {
  59.                         foreach (CatalogDeal Deal in Page.Deals.Values)
  60.                         {
  61.                             base.WriteInteger(Deal.ItemDataList.Count);
  62.                             foreach (CatalogItem DealItem in Deal.ItemDataList.ToList())
  63.                             {
  64.                                 base.WriteString(DealItem.Data.Type.ToString());
  65.                                 base.WriteInteger(DealItem.Data.SpriteId);
  66.                                 base.WriteString("");
  67.                                 base.WriteInteger(1);
  68.                                 base.WriteBoolean(false);
  69.                             }
  70.                             base.WriteInteger(0);
  71.                             base.WriteBoolean(ItemUtility.CanSelectAmount(Item));
  72.                         }
  73.                     }
  74.                     else
  75.                     {
  76.                         base.WriteInteger(string.IsNullOrEmpty(Item.Badge) ? 1 : 2);
  77.                         {
  78.                             if (!string.IsNullOrEmpty(Item.Badge))
  79.                             {
  80.                                 base.WriteString("b");
  81.                                 base.WriteString(Item.Badge);
  82.                             }
  83.                             base.WriteString(Item.Data.Type.ToString());
  84.                             if (Item.Data.Type.ToString().ToLower() == "b")
  85.                             {
  86.                                 base.WriteString(Item.Data.ItemName);
  87.                             }
  88.                             else
  89.                             {
  90.                                 base.WriteInteger(Item.Data.SpriteId);
  91.                                 if (Item.Data.InteractionType == InteractionType.WALLPAPER || Item.Data.InteractionType == InteractionType.FLOOR || Item.Data.InteractionType == InteractionType.LANDSCAPE)
  92.                                 {
  93.                                     base.WriteString(Item.Name.Split('_')[2]);
  94.                                 }
  95.                                 else if (Item.Data.InteractionType == InteractionType.BOT)
  96.                                 {
  97.                                     CatalogBot CatalogBot = null;
  98.                                     if (!PlusEnvironment.GetGame().GetCatalog().TryGetBot(Item.ItemId, out CatalogBot))
  99.                                         base.WriteString("hd-180-7.ea-1406-62.ch-210-1321.hr-831-49.ca-1813-62.sh-295-1321.lg-285-92");
  100.                                     else
  101.                                         base.WriteString(CatalogBot.Figure);
  102.                                 }
  103.                                 else if (Item.ExtraData != null)
  104.                                 {
  105.                                     base.WriteString(Item.ExtraData != null ? Item.ExtraData : string.Empty);
  106.                                 }
  107.                                 base.WriteInteger(Item.Amount);
  108.                                 base.WriteBoolean(Item.IsLimited);
  109.                                 if (Item.IsLimited)
  110.                                 {
  111.                                     base.WriteInteger(Item.LimitedEditionStack);
  112.                                     base.WriteInteger(Item.LimitedEditionStack - Item.LimitedEditionSells);
  113.                                 }
  114.                             }
  115.                             base.WriteInteger(0);
  116.                             base.WriteBoolean(ItemUtility.CanSelectAmount(Item));
  117.                             base.WriteBoolean(true);
  118.                             base.WriteString("");
  119.                         }
  120.                     }
  121.                 }
  122.             }
  123.             else
  124.                 base.WriteInteger(0);
  125.             base.WriteInteger(-1);
  126.             base.WriteBoolean(false);
  127.             if (Page.Template.Equals("frontpage4"))
  128.             {
  129.                 base.WriteInteger(4);
  130.                 using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
  131.                 {
  132.                     DataRow Catalog = null;
  133.                     dbClient.SetQuery("SELECT * FROM `catalog_settings` WHERE `id` = '1';");
  134.                     Catalog = dbClient.getRow();
  135.                     if (Catalog == null)
  136.                     {
  137.                         Console.WriteLine("Erreur -> catalog_settings -> id 1 non trouvé !", ConsoleColor.Red);
  138.                     }
  139.                     else
  140.                     {
  141.                         base.WriteInteger(1);
  142.                         base.WriteString(Convert.ToString(Catalog["title"]));
  143.                         base.WriteString(Convert.ToString(Catalog["image"]));
  144.                         base.WriteInteger(0);
  145.                         base.WriteString(Convert.ToString(Catalog["page_link"]));
  146.                         base.WriteInteger(Convert.ToInt32(Catalog["page_id"]));
  147.                     }
  148.                 }
  149.  
  150.                 using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
  151.                 {
  152.                     DataRow Catalog = null;
  153.                     dbClient.SetQuery("SELECT * FROM `catalog_settings` WHERE `id` = '2';");
  154.                     Catalog = dbClient.getRow();
  155.                     if (Catalog == null)
  156.                     {
  157.                         Console.WriteLine("Erreur -> catalog_settings-> id 2 non trouvé !", ConsoleColor.Red);
  158.                     }
  159.                     else
  160.                     {
  161.                         base.WriteInteger(2);
  162.                         base.WriteString(Convert.ToString(Catalog["title"]));
  163.                         base.WriteString(Convert.ToString(Catalog["image"]));
  164.                         base.WriteInteger(0);
  165.                         base.WriteString(Convert.ToString(Catalog["page_link"]));
  166.                         base.WriteInteger(Convert.ToInt32(Catalog["page_id"]));
  167.                     }
  168.                 }
  169.                 using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
  170.                 {
  171.                     DataRow Catalog = null;
  172.                     dbClient.SetQuery("SELECT * FROM `catalog_settings` WHERE `id` = '3';");
  173.                     Catalog = dbClient.getRow();
  174.                     if (Catalog == null)
  175.                     {
  176.                         Console.WriteLine("Erreur -> catalog_settings -> id 3 non trouvé!", ConsoleColor.Red);
  177.                     }
  178.                     else
  179.                     {
  180.                         base.WriteInteger(3);
  181.                         base.WriteString(Convert.ToString(Catalog["title"]));
  182.                         base.WriteString(Convert.ToString(Catalog["image"]));
  183.                         base.WriteInteger(0);
  184.                         base.WriteString(Convert.ToString(Catalog["page_link"]));
  185.                         base.WriteInteger(Convert.ToInt32(Catalog["page_id"]));
  186.                     }
  187.                 }
  188.                 using (IQueryAdapter dbClient = PlusEnvironment.GetDatabaseManager().GetQueryReactor())
  189.                 {
  190.                     DataRow Catalog = null;
  191.                     dbClient.SetQuery("SELECT * FROM `catalog_settings` WHERE `id` = '4';");
  192.                     Catalog = dbClient.getRow();
  193.                     if (Catalog == null)
  194.                     {
  195.                         Console.WriteLine("Erreur -> catalog_settings -> id 4 non trouvé !", ConsoleColor.Red);
  196.                     }
  197.                     else
  198.                     {
  199.                         base.WriteInteger(4);
  200.                         base.WriteString(Convert.ToString(Catalog["title"]));
  201.                         base.WriteString(Convert.ToString(Catalog["image"]));
  202.                         base.WriteInteger(0);
  203.                         base.WriteString(Convert.ToString(Catalog["page_link"]));
  204.                         base.WriteInteger(Convert.ToInt32(Catalog["page_id"]));
  205.                     }
  206.                 }
  207.             }
  208.         }
  209.     }
  210. }
Advertisement
RAW Paste Data Copied
Advertisement