public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer   b = new StreamBuffer();
            BafPacket p = new BafPacket(PacketId.InitialRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer     = packet.CreateBuffer();
            int     shopItemId = buffer.ReadInt32();

            Logger.Info(client, $"Purchase ShopItemId: {shopItemId}");

            ShopItem shopItem = _server.GetShopItem(shopItemId);

            if (shopItem == null)
            {
                Logger.Error(client, $"Invalid ShopItemId: {shopItemId}");
                return;
            }

            Character character = client.Character;

            if (character == null)
            {
                Logger.Error(client, $"Character is null");
                return;
            }



            IBuffer b = new StreamBuffer();

            BafPacket p = new BafPacket(PacketId.ShopBuyItemRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer b = new StreamBuffer();

            b.WriteInt32(0);
            b.WriteBytes(new byte[54]);

            BafPacket p = new BafPacket(PacketId.RoomStartSongRes, b.GetAllBytes());

            client.Send(p);
        }
Beispiel #4
0
 public void Exception(BafClient client, Exception exception)
 {
     if (exception == null)
     {
         Write(LogLevel.Error, $"{client.Identity} Exception was null.", null);
     }
     else
     {
         Write(LogLevel.Error, $"{client.Identity} {exception}", exception);
     }
 }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer   = packet.CreateBuffer();
            int     unk      = buffer.ReadInt32();
            string  bandName = buffer.ReadCString();
            byte    unk1     = buffer.ReadByte();

            Logger.Info(client, $"Create Band:{bandName}");

            IBuffer   b = new StreamBuffer();
            BafPacket p = new BafPacket(PacketId.CreateBandRes, b.GetAllBytes());

            client.Send(p);
        }
Beispiel #6
0
        public override void Handle(BafClient client, BafPacket packet)
        {
            // DateTime foo = DateTime.Now;
            // long unixTime = ((DateTimeOffset) foo).ToUnixTimeSeconds();
            // long ms = unixTime / 1000;
            // int ims = (int) ms;

            IBuffer b = new StreamBuffer();

            b.WriteInt64(0); // read 8bytes
            BafPacket p = new BafPacket(PacketId.RoomGameLoadingFinishedRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer            buffer         = packet.CreateBuffer();
            int                songId         = buffer.ReadInt32();
            byte               difficulty     = buffer.ReadByte();
            SongDifficultyType songDifficulty = (SongDifficultyType)difficulty;

            Logger.Info(client, $"Selected Song: Id:{songId} Difficulty:{songDifficulty}");

            IBuffer b = new StreamBuffer();

            b.WriteInt32(songId);
            BafPacket p = new BafPacket(PacketId.RoomSelectSongRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer        = packet.CreateBuffer();
            short   channelTab    = buffer.ReadInt16();
            short   channelNumber = buffer.ReadInt16();

            Channel channel = _server.GetChannel(channelTab, channelNumber);

            client.Channel = channel;

            IBuffer b = new StreamBuffer();

            b.WriteInt32(0); // unknown
            BafPacket p = new BafPacket(PacketId.JoinChannelRes, b.GetAllBytes());

            client.Send(p);
        }
Beispiel #9
0
        public override void Handle(BafClient client, BafPacket packet)
        {
            Character character = client.Character;

            if (character == null)
            {
                Logger.Error(client, "Character is null");
                return;
            }


            IBuffer b = new StreamBuffer();

            b.WriteInt32(1);
            b.WriteCString(character.Name);
            b.WriteByte((byte)character.Gender);
            b.WriteInt32(character.GCoins);
            b.WriteInt32(character.MCoins);
            b.WriteInt32(character.Level);
            b.WriteInt32(20); // cog Music
            b.WriteInt32(30);
            b.WriteInt32(40);
            b.WriteInt32(50);
            b.WriteByte(0);
            b.WriteInt32(0);
            b.WriteByte(0);
            b.WriteByte(0);
            b.WriteInt32(character.GetShopItemId(ItemType.Head));
            b.WriteInt32(character.GetShopItemId(ItemType.Hair));
            b.WriteInt32(character.GetShopItemId(ItemType.Chest));
            b.WriteInt32(character.GetShopItemId(ItemType.Pants));
            b.WriteInt32(character.GetShopItemId(ItemType.Hands));
            b.WriteInt32(character.GetShopItemId(ItemType.Shoes));
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            BafPacket p = new BafPacket(PacketId.LobbyProfileRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer b = new StreamBuffer();

            b.WriteInt32(1);
            b.WriteInt32(2);
            b.WriteInt32(3);
            b.WriteInt32(4);
            b.WriteInt32(5);
            b.WriteInt32(6);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            BafPacket p = new BafPacket(PacketId.Unknown2Res, b.GetAllBytes());
            // client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            List <Channel> channels = _server.GetChannels();

            IBuffer b = new StreamBuffer();

            b.WriteInt32(channels.Count);
            foreach (Channel channel in channels)
            {
                b.WriteInt16(channel.Tab);
                b.WriteInt16(channel.Number);
                b.WriteInt32(channel.MaxLoad);
                b.WriteInt32(channel.CurrentLoad);
            }

            BafPacket p = new BafPacket(PacketId.ChannelListRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            List <Room> rooms = client.Channel.GetRooms();

            IBuffer b = new StreamBuffer();

            b.WriteInt32(rooms.Count); // num of rooms
            b.WriteByte(0);
            for (int i = 0; i < rooms.Count; i++)
            {
                Room room = rooms[i];
                b.WriteInt32(room.Id);
                b.WriteInt32(1); //0 = invisible | 1 = wait | 2 = playing
                b.WriteCString(room.Name);
                b.WriteByte(room.HasPassword ? (byte)1 : (byte)0);
                b.WriteByte((byte)room.Team);
                b.WriteByte((byte)room.Key);
                b.WriteByte(room.AllowSpectators ? (byte)1 : (byte)0);
                b.WriteInt32(0);              // battery
                b.WriteByte(0);               // unknown
                b.WriteByte(6);               // slots available
                int numPlayer = 1;
                b.WriteByte((byte)numPlayer); // slots occupied
                for (int j = 0; j < numPlayer; j++)
                {
                    b.WriteInt32(j); // playerId ?
                }

                b.WriteByte(1);            // unknown
                int numUnk = 1;
                b.WriteByte((byte)numUnk); // perhaps num viewer ?
                for (int j = 0; j < numUnk; j++)
                {
                    b.WriteInt32(j); // playerId ?
                }
            }

            BafPacket p = new BafPacket(PacketId.RoomListRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer b = new StreamBuffer();

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteCString(client.Character.Name);
            b.WriteByte(0);
            b.WriteInt32(99); // level
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteCString("TITLE");
            b.WriteCString("SELF INTRODUCTION");
            b.WriteByte(0);
            b.WriteInt32(20); // friends
            b.WriteCString("AGE");
            b.WriteCString("START SIGN");
            b.WriteCString("CITY");
            b.WriteCString("DISCORD");
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            BafPacket p = new BafPacket(PacketId.ProfileRes, b.GetAllBytes());

            client.Send(p);
        }
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer  = packet.CreateBuffer();
            string  message = buffer.ReadCString();

            Logger.Info(client, $"ChannelChat Message: {message}");

            Character character = client.Character;

            if (character == null)
            {
                Logger.Error(client, "Character is null");
                return;
            }

            IBuffer b = new StreamBuffer();

            b.WriteCString(character.Name);
            b.WriteCString(message);
            BafPacket p = new BafPacket(PacketId.ChannelChatRes, b.GetAllBytes());

            client.Send(p);
        }
Beispiel #15
0
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer   = packet.CreateBuffer();
            string  account  = buffer.ReadCString();
            string  password = buffer.ReadCString();
            string  pin      = buffer.ReadCString();

            Logger.Debug(client, $"Login: Acc:{account} Pw:{password} Pin:{pin}");

            Character character = new Character();

            character.Name   = account;
            client.Character = character;

            IBuffer b = new StreamBuffer();

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteCString("TESTA");
            b.WriteCString(character.Name);
            b.WriteByte(0);
            b.WriteByte(0);

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            b.WriteCString("TESTC");
            b.WriteCString("TESTD");
            b.WriteCString("TESTE");
            b.WriteCString("TESTF");
            b.WriteCString("TESTG");

            b.WriteByte(0);
            b.WriteByte(0);

            b.WriteCString("TESTH");

            b.WriteByte(0);

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            b.WriteInt32(0);
            b.WriteInt32(0);
            b.WriteInt32(0);

            b.WriteByte(0);
            b.WriteByte(0);
            b.WriteByte(0);
            b.WriteByte(0);

            b.WriteByte(0);
            b.WriteByte(0);
            b.WriteByte(0);
            b.WriteByte(0);


            b.WriteCString("TESTI");
            b.WriteCString("TESTJ");

            b.WriteInt32(0);
            b.WriteInt32(0);

            BafPacket p = new BafPacket(PacketId.LoginRes, b.GetAllBytes());

            client.Send(p);
        }
Beispiel #16
0
 public override void Handle(BafClient client, BafPacket packet)
 {
     IBuffer   b = new StreamBuffer();
     BafPacket p = new BafPacket(PacketId.RoomSelectModeRes, b.GetAllBytes());
     //  client.Send(p);
 }
Beispiel #17
0
 public void Info(BafClient client, string message)
 {
     Info($"{client.Identity} {message}");
 }
Beispiel #18
0
 public void Debug(BafClient client, string message)
 {
     Debug($"{client.Identity} {message}");
 }
Beispiel #19
0
 public PacketFactory(BafClient client)
 {
     _client = client;
     _xor    = BafXor.CreateStatefulPacket();
     Reset();
 }
Beispiel #20
0
        public override void Handle(BafClient client, BafPacket packet)
        {
            IBuffer buffer           = packet.CreateBuffer();
            string  name             = buffer.ReadCString();
            byte    pTeamType        = buffer.ReadByte();
            byte    pKeyType         = buffer.ReadByte();
            byte    pAllowSpectators = buffer.ReadByte();
            bool    allowSpectators  = pAllowSpectators == 1;
            byte    pHasPassword     = buffer.ReadByte();
            bool    hasPassword      = pHasPassword == 1;
            string  password         = null;

            if (hasPassword)
            {
                password = buffer.ReadCString();
            }

            uint     unk4 = buffer.ReadUInt32();
            TeamType team = (TeamType)pTeamType;
            KeyType  key  = (KeyType)pKeyType;

            Room room = client.Channel.CreateRoom(name, team, key, allowSpectators, password);

            client.Room = room;


            Logger.Debug(client,
                         $"Create Room: Name:{name} Pw:{password} Key:{key} Team:{team} Spectators:{allowSpectators} unk4:{unk4}");

            IBuffer b = new StreamBuffer();

            b.WriteInt32(room.Id);
            b.WriteCString(room.Name);
            b.WriteByte((byte)room.Team);
            b.WriteByte((byte)room.Key);
            b.WriteByte(room.HasPassword ? (byte)1 : (byte)0);
            b.WriteInt32(0);                                       // unknown
            b.WriteByte(room.AllowSpectators ? (byte)1 : (byte)0); // spectator 0=false 1 = true
            b.WriteInt32(0);                                       // battery
            b.WriteByte(0);                                        // unknown

            BafPacket p = new BafPacket(PacketId.AnnounceRoomRes, b.GetAllBytes());

            client.Send(p);


            IBuffer b1 = new StreamBuffer();

            b1.WriteInt32(0);
            b1.WriteInt32(room.Id);
            b1.WriteByte(0);
            b1.WriteByte(0);
            b1.WriteByte(0);
            b1.WriteByte(0);
            b1.WriteByte(0);
            b1.WriteInt32(0);
            b1.WriteByte(0);
            b1.WriteInt32(0);
            b1.WriteByte(0);
            BafPacket p1 = new BafPacket(PacketId.CreateRoomRes, b1.GetAllBytes());

            client.Send(p1);
        }
 public override void Handle(BafClient client, BafPacket packet)
 {
     Logger.Error(client, $"Unhandled PacketId:{packet.IdValue} Hex:{packet.IdValue:X}");
 }
Beispiel #22
0
 public void Error(BafClient client, string message)
 {
     Error($"{client.Identity} {message}");
 }
Beispiel #23
0
 public void Packet(BafClient client, BafPacket packet)
 {
     Write(LogLevel.Info, $"{client.Identity}{Environment.NewLine}{packet.AsString()}", packet);
 }
Beispiel #24
0
 public abstract void Handle(BafClient client, BafPacket packet);
Beispiel #25
0
 public void Data(BafClient client, byte[] data, string message = "Data")
 {
     Write(LogLevel.Info, $"{client.Identity} {message}{Environment.NewLine}{Util.HexDump(data)}", data);
 }