protected override void HandlePacket(DataPacket packet) { switch (packet.Pid()) { case AuthToChannelServerPacket.NetworkId: AuthToChannelServerPacket authToChannelServerPacket = (AuthToChannelServerPacket)packet; Id = authToChannelServerPacket.Identifier; SendPacket(authToChannelServerPacket); Internet.Get("http://localhost:3000/", $"user/{authToChannelServerPacket.Username}", result => { UserData data = JsonConvert.DeserializeObject <UserData>(result); if (data != null) { _user = data.User; _user.Identifier = id; Internet.Get("http://localhost:3000/", $"user/fever/{_user.Id}", res => { FeverData fData = JsonConvert.DeserializeObject <FeverData>(result); if (fData != null) { _fever = fData; } }, error => { }); _fever.Callback = () => { LogFactory.GetLog(server.Name) .LogInfo($"Fever Progress of {_user.Identifier} is {_fever.Progress}%."); }; } }, error => {}); break; case ZettaPointsPacket.NetworkId: ZettaPointsPacket zettaPointsPacket = (ZettaPointsPacket)packet; zettaPointsPacket.User = _user; SendPacket(zettaPointsPacket); break; case GetChannelsRequestPacket.NetworkId: GetChannelsRequestPacket getChannelsRequestPacket = (GetChannelsRequestPacket)packet; getChannelsRequestPacket.Server = server; SendPacket(getChannelsRequestPacket); break; case FeverInfoUpdatePacket.NetworkId: FeverInfoUpdatePacket ferverInfoUpdatePacket = (FeverInfoUpdatePacket)packet; ferverInfoUpdatePacket.Session = this; SendPacket(ferverInfoUpdatePacket); break; case ServerTimePacket.NetworkId: ServerTimePacket serverTimePacket = (ServerTimePacket)packet; serverTimePacket.User = _user; SendPacket(serverTimePacket); break; } base.HandlePacket(packet); }
public override void Encode() { FeverData data = Session.Fever; if (!data.Activated) { Write((ushort)0); Write((ushort)0); Write((uint)data.Percent); Write((ushort)data.Progress); //May be the number of progresses passed Write((ushort)100); //Max percent } else { Write((ushort)3); Write((ushort)0); Write((uint)((data.ActivatedAt.AddMinutes(data.Duration) - DateTime.Now).TotalMinutes)); //Remaining Minutes Write((ushort)data.Progress); //May be the number of progresses passed Write((ushort)100); //Max percent } Memory.Position = 0; buffer = new byte[Memory.Length]; Memory.Read(buffer, 0, buffer.Length); Close(); buffer[3] = 1; buffer[4] = 169; buffer[5] = 2; LogFactory.GetLog("FeverInfoUpdatePacket:Encoded").LogInfo($"\n{NetworkUtil.DumpPacket(buffer)}"); }
/// <summary> /// 書き込み /// </summary> /// <param name="times"></param> public void Write(FeverData data) { Data = data; FileWrite(); }