Exemplo n.º 1
0
        public IEnumerable <string> Pack(int version, int eventId)
        {
            StringBuilder sb = new StringBuilder();

            sb.Append((int)SockChatServerPacket.UserDisconnect);
            sb.Append(Constants.SEPARATOR);
            sb.Append(User.UserId);
            sb.Append(Constants.SEPARATOR);

            if (version < 2)
            {
                sb.Append(User.GetDisplayName(version));
                sb.Append(Constants.SEPARATOR);
            }

            switch (Reason)
            {
            case UserDisconnectReason.Leave:
            default:
                sb.Append(@"leave");
                break;

            case UserDisconnectReason.TimeOut:
                sb.Append(@"timeout");
                break;

            case UserDisconnectReason.Kicked:
                sb.Append(@"kick");
                break;

            case UserDisconnectReason.Flood:
                sb.Append(@"flood");
                break;
            }

            sb.Append(Constants.SEPARATOR);
            sb.Append(Disconnected.ToUnixTimeSeconds());
            sb.Append(Constants.SEPARATOR);
            sb.Append(eventId);

            return(new[] { sb.ToString() });
        }