public override void HandlePacket(BinaryReader reader, int whoAmI)
        {
            //In case i f*ck the code
            try
            {
                string type = reader.ReadString();
#if DEBUG
                Main.NewText($"Received packet: [c/ff3333:{type}]");
#endif
                switch (type)
                {
                case SpawnStarterPacket.NAME:
                {
                    //Server can't have any UI
                    if (whoAmI == 256)
                    {
                        return;
                    }
                    SpawnStarterPacket packet = new SpawnStarterPacket();
                    packet.HandleFromClient(reader, whoAmI);
                }
                break;

                case BaseCatchPacket.NAME:
                {
                    //Server should handle it from client
                    if (whoAmI == 256)
                    {
                        return;
                    }
                    BaseCatchPacket packet = new BaseCatchPacket();
                    packet.HandleFromClient(reader, whoAmI);
                }
                break;

                default:
                    if (packetStore.ContainsKey(type))
                    {
                        if (whoAmI == 256)
                        {
                            packetStore[type].HandleFromServer(reader);
                        }
                        else
                        {
                            packetStore[type].HandleFromClient(reader, whoAmI);
                        }
                    }
                    break;
                }
            }
            catch (Exception e)
            {
                Logger.ErrorFormat(
                    "Exception appear in HandlePacket. Please, contact mod devs with folowing stacktrace:\n\n{0}\n\n{1}",
                    e.Message, e.StackTrace);
#if DEBUG
                Main.NewText($"[c/ff3322:{e.Message}]");
#endif
            }
        }
        private void Chosen(UIMouseEvent evt, UIElement listeningElement)
        {
            TerramonPlayer TerramonPlayer = Main.LocalPlayer.GetModPlayer <TerramonPlayer>();
            Mod            mod            = ModContent.GetInstance <TerramonMod>();
            Player         player         = Main.LocalPlayer;

            Main.PlaySound(SoundID.MenuOpen);
            ModContent.GetInstance <TerramonMod>()._exampleUserInterface.SetState(null);
            Main.PlaySound(SoundID.Coins);
            TerramonPlayer.StarterChosen = true;
            if (Main.netMode == NetmodeID.MultiplayerClient)
            {
                SpawnStarterPacket packet = new SpawnStarterPacket();
                packet.Send((TerramonMod)mod, SpawnStarterPacket.BULBASAUR);
            }
            else
            {
                int index = Item.NewItem(player.getRect(), ModContent.ItemType <PokeballCaught>());
                if (index >= 400)
                {
                    return;
                }
                (Main.item[index].modItem as PokeballCaught).PokemonNPC      = ModContent.NPCType <BulbasaurNPC>();
                (Main.item[index].modItem as PokeballCaught).PokemonName     = "Bulbasaur";
                (Main.item[index].modItem as PokeballCaught).SmallSpritePath = "Terramon/Minisprites/Regular/miniBulbasaur";
            }
            Main.NewText("You chose [c/33FF33:Bulbasaur, the Seed Pokemon.] Great choice!");
            ChooseStarter.Visible = false;
            UISidebar.Visible     = true;
        }
        public override void HandlePacket(BinaryReader reader, int whoAmI)
        {
            //In case i f*ck the code
            try
            {
                string type = reader.ReadString();
                switch (type)
                {
                case SpawnStarterPacket.NAME:
                {
                    //Server can't have any UI
                    if (whoAmI == 256)
                    {
                        return;
                    }
                    SpawnStarterPacket packet = new SpawnStarterPacket();
                    packet.HandleFromClient(reader, whoAmI);
                }
                break;

                case BaseCatchPacket.NAME:
                {
                    //Server should handle it from client
                    if (whoAmI == 256)
                    {
                        return;
                    }
                    BaseCatchPacket packet = new BaseCatchPacket();
                    packet.HandleFromClient(reader, whoAmI);
                }
                break;
                }
            }
            catch (Exception e)
            {
                Logger.ErrorFormat(
                    "Exception appear in HandlePacket. Please, contact mod devs with folowing stacktrace:\n\n{0}\n\n{1}",
                    e.Message, e.StackTrace);
            }
        }