/// <summary>
 /// Initializes a channel with the specified data.
 /// </summary>
 public Teamspeak3Channel(Teamspeak3Group info = null)
 {
     Basic    = new BasicInfo();
     Normal   = new NormalInfo();
     Advanced = new AdvancedInfo();
     Update(info);
 }
            public void SetData(Teamspeak3Group info, Boolean reset)
            {
                String sValue;
                Int32  iValue;

                if (reset) {
                    Pid              = null;
                    Order            = null;
                    TotalClients     = null;
                    PowerNeededToSub = null;
                }

                if ((sValue = info[KEY_PARENT_ID])              != null && Int32.TryParse(sValue, out iValue)) Pid              = iValue;
                if ((sValue = info[KEY_ORDER])                  != null && Int32.TryParse(sValue, out iValue)) Order            = iValue;
                if ((sValue = info[KEY_TOTAL_CLIENTS])          != null && Int32.TryParse(sValue, out iValue)) TotalClients     = iValue;
                if ((sValue = info[KEY_POWER_NEEDED_SUBSCRIBE]) != null && Int32.TryParse(sValue, out iValue)) PowerNeededToSub = iValue;
            }
            public void SetData(Teamspeak3Group info, Boolean reset)
            {
                String  sValue;
                Int32   iValue;

                if (reset) {
                    Topic                        = null;
                    Description                  = null;
                    Password                     = null;
                    FilePath                     = null;
                    PhoneticName                 = null;
                    Codec                        = null;
                    CodecQuality                 = null;
                    CodecLatencyFactor           = null;
                    MaxClients                   = null;
                    MaxFamilyClients             = null;
                    NeededTalkPower              = null;
                    IconId                       = null;
                    IsCodecUnencrypted           = null;
                    IsPermanent                  = null;
                    IsSemiPermanent              = null;
                    IsDefault                    = null;
                    IsPassworded                 = null;
                    AreMaxClientsUnlimited       = null;
                    AreMaxFamilyClientsUnlimited = null;
                    AreMaxFamilyClientsInherited = null;
                    ForcedSilence                = null;
                }

                if ((sValue = info[KEY_TOPIC])         != null) Topic        = sValue;
                if ((sValue = info[KEY_DESCRIPTION])   != null) Description  = sValue;
                if ((sValue = info[KEY_PASSWORD])      != null) Password     = sValue;
                if ((sValue = info[KEY_FILE_PATH])     != null) FilePath     = sValue;
                if ((sValue = info[KEY_PHONETIC_NAME]) != null) PhoneticName = sValue;
                if ((sValue = info[KEY_CODEC])                != null && Int32.TryParse(sValue, out iValue)) Codec              = iValue;
                if ((sValue = info[KEY_CODEC_QUALITY])        != null && Int32.TryParse(sValue, out iValue)) CodecQuality       = iValue;
                if ((sValue = info[KEY_CODEC_LATENCY_FACTOR]) != null && Int32.TryParse(sValue, out iValue)) CodecLatencyFactor = iValue;
                if ((sValue = info[KEY_MAX_CLIENTS])          != null && Int32.TryParse(sValue, out iValue)) MaxClients         = iValue;
                if ((sValue = info[KEY_MAX_FAMILY_CLIENTS])   != null && Int32.TryParse(sValue, out iValue)) MaxFamilyClients   = iValue;
                if ((sValue = info[KEY_NEEDED_TALK_POWER])    != null && Int32.TryParse(sValue, out iValue)) NeededTalkPower    = iValue;
                if ((sValue = info[KEY_ICON_ID])              != null && Int32.TryParse(sValue, out iValue)) IconId             = iValue;
                if ((sValue = info[KEY_IS_CODEC_UNENCRYPTED])              != null) IsCodecUnencrypted           = (sValue == "1");
                if ((sValue = info[KEY_FLAG_PERMANENT])                    != null) IsPermanent                  = (sValue == "1");
                if ((sValue = info[KEY_FLAG_SEMI_PERMANENT])               != null) IsSemiPermanent              = (sValue == "1");
                if ((sValue = info[KEY_FLAG_DEFAULT])                      != null) IsDefault                    = (sValue == "1");
                if ((sValue = info[KEY_FLAG_PASSWORD])                     != null) IsPassworded                   = (sValue == "1");
                if ((sValue = info[KEY_FLAG_MAX_CLIENTS_UNLIMITED])        != null) AreMaxClientsUnlimited       = (sValue == "1");
                if ((sValue = info[KEY_FLAG_MAX_FAMILY_CLIENTS_UNLIMITED]) != null) AreMaxFamilyClientsUnlimited = (sValue == "1");
                if ((sValue = info[KEY_FLAG_MAX_FAMILY_CLIENTS_INHERITED]) != null) AreMaxFamilyClientsInherited = (sValue == "1");
                if ((sValue = info[KEY_FORCED_SILENCE])                    != null) ForcedSilence                = (sValue == "1");
            }
            public void SetData(Teamspeak3Group info, Boolean reset)
            {
                String sValue;
                Int32  iValue;

                if (reset) {
                    Name = null;
                    Id   = null;
                }

                if ((sValue = info[KEY_NAME]) != null)                                       Name = sValue;
                if ((sValue = info[KEY_ID])   != null && Int32.TryParse(sValue, out iValue)) Id   = iValue;
            }
            public void SetData(Teamspeak3Group info, Boolean reset)
            {
                String sValue;
                Int32  iValue;

                if (reset) {
                    Name               = null;
                    Status             = null;
                    Id                 = null;
                    Port               = null;
                    MachineId          = null;
                    UpTime             = null;
                    ClientsOnline      = null;
                    QueryClientsOnline = null;
                    MaxClients         = null;
                    AutoStart          = null;
                }

                if ((sValue = info[KEY_NAME])   != null) Name   = sValue;
                if ((sValue = info[KEY_STATUS]) != null) Status = sValue;
                if ((sValue = info[KEY_ID])                   != null && Int32.TryParse(sValue, out iValue)) Id                 = iValue;
                if ((sValue = info[KEY_PORT])                 != null && Int32.TryParse(sValue, out iValue)) Port               = iValue;
                if ((sValue = info[KEY_MACHINE_ID])           != null && Int32.TryParse(sValue, out iValue)) MachineId          = iValue;
                if ((sValue = info[KEY_UPTIME])               != null && Int32.TryParse(sValue, out iValue)) UpTime             = iValue;
                if ((sValue = info[KEY_CLIENTS_ONLINE])       != null && Int32.TryParse(sValue, out iValue)) ClientsOnline      = iValue;
                if ((sValue = info[KEY_QUERY_CLIENTS_ONLINE]) != null && Int32.TryParse(sValue, out iValue)) QueryClientsOnline = iValue;
                if ((sValue = info[KEY_MAX_CLIENTS])          != null && Int32.TryParse(sValue, out iValue)) MaxClients         = iValue;
                if ((sValue = info[KEY_AUTO_START]) != null) AutoStart = (sValue == "1");
            }
 /// <summary>
 /// Updates a client with the specified data.
 /// </summary>
 public void Update(Teamspeak3Group info, Boolean clear = false)
 {
     if (info != null) {
         Basic.SetData(info, clear);
         Normal.SetData(info, clear);
         Advanced.SetData(info, clear);
     }
 }
            public void SetData(Teamspeak3Group info, Boolean reset)
            {
                String sValue;
                Int32  iValue;
                UInt32 uiValue;
                UInt64 ulValue;
                Double dValue;

                if (reset) {
                    Ip                                  = null;
                    UniqueId                            = null;
                    PhoneticName                        = null;
                    WelcomeMessage                      = null;
                    Platform                            = null;
                    Version                             = null;
                    MinimumClientVersion                = null;
                    Password                            = null;
                    FilePath                            = null;
                    HostMessage                         = null;
                    HostBannerUrl                       = null;
                    HostBannerGfxUrl                    = null;
                    HostButtonToolTip                   = null;
                    HostButtonUrl                       = null;
                    HostButtonGfxUrl                    = null;
                    IconId                              = null;
                    HostMessageMode                     = null;
                    HostBannerMode                      = null;
                    EncryptionMode                      = null;
                    HostBannerGfxInterval               = null;
                    DefaultServerGroup                  = null;
                    DefaultChannelGroup                 = null;
                    DefaultChannelAdminGroup            = null;
                    ComplainAutoBanCount                = null;
                    ComplainAutoBanTime                 = null;
                    ComplainRemoveTime                  = null;
                    MinClientsNeededBeforeForcedSilence = null;
                    AntifloodPointsTickReduce           = null;
                    AntifloodPointsNeededCommandBlock   = null;
                    AntifloodPointsNeededIpBlock        = null;
                    LogClient                           = null;
                    LogQuery                            = null;
                    LogChannel                          = null;
                    LogPermissions                      = null;
                    LogServer                           = null;
                    LogFiletransfer                     = null;
                    ReservedSlots                       = null;
                    RequestsForPrivilegeKey             = null;
                    MinimumSecurityLevel                = null;
                    FiletransferBandwidthSent           = null;
                    FiletransferBandwidthReceived       = null;
                    FiletransferBytesSentTotal          = null;
                    FiletransferBytesReceivedTotal      = null;
                    SpeechPacketsSent                   = null;
                    SpeechPacketsReceived               = null;
                    SpeechBytesSent                     = null;
                    SpeechBytesReceived                 = null;
                    KeepalivePacketsSent                = null;
                    KeepalivePacketsReceived            = null;
                    KeepaliveBytesSent                  = null;
                    KeepaliveBytesReceived              = null;
                    ControlPacketsSent                  = null;
                    ControlPacketsReceived              = null;
                    ControlBytesSent                    = null;
                    ControlBytesReceived                = null;
                    PacketsSentTotal                    = null;
                    PacketsReceivedTotal                = null;
                    BytesSentTotal                      = null;
                    BytesReceivedTotal                  = null;
                    BandwidthSentLastSecond             = null;
                    BandwidthReceivedLastSecond         = null;
                    BandwidthSentLastMinute             = null;
                    BandwidthReceivedLastMinute         = null;
                    CreationTime                        = null;
                    ChannelsOnline                      = null;
                    TotalClientConnections              = null;
                    TotalQueryClientConnections         = null;
                    MaxDownloadBandwidth                = null;
                    MaxUploadBandwidth                  = null;
                    DownloadQuota                       = null;
                    UploadQuota                         = null;
                    BytesDownloadedMonth                = null;
                    BytesUploadedMonth                  = null;
                    BytesDownloadedTotal                = null;
                    BytesUploadedTotal                  = null;
                    Ping                                = null;
                    TotalSpeechPacketloss               = null;
                    TotalKeepalivePacketloss            = null;
                    TotalControlPacketloss              = null;
                    TotalPacketlossAll                  = null;
                    PrioritySpeakerDimmModificator      = null;
                    IsPassworded                        = null;
                    IsWebListEnabled                    = null;
                }

                if ((sValue = info[KEY_IP])                 != null) Ip                   = sValue;
                if ((sValue = info[KEY_UNIQUE_ID])          != null) UniqueId             = sValue;
                if ((sValue = info[KEY_NAME_PHONETIC])      != null) PhoneticName         = sValue;
                if ((sValue = info[KEY_WELCOME_MESSAGE])    != null) WelcomeMessage       = sValue;
                if ((sValue = info[KEY_SERVER_PLATFORM])    != null) Platform             = sValue;
                if ((sValue = info[KEY_SERVER_VERSION])     != null) Version              = sValue;
                if ((sValue = info[KEY_MIN_CLIENT_VERSION]) != null) MinimumClientVersion = sValue;
                if ((sValue = info[KEY_PASSWORD])           != null) Password             = sValue;
                if ((sValue = info[KEY_FILE_BASE])          != null) FilePath             = sValue;
                if ((sValue = info[KEY_HOSTMESSAGE])        != null) HostMessage          = sValue;
                if ((sValue = info[KEY_HOSTBANNER_URL])     != null) HostBannerUrl        = sValue;
                if ((sValue = info[KEY_HOSTBANNER_GFX_URL]) != null) HostBannerGfxUrl     = sValue;
                if ((sValue = info[KEY_HOSTBUTTON_TOOLTIP]) != null) HostButtonToolTip    = sValue;
                if ((sValue = info[KEY_HOSTBANNER_URL])     != null) HostButtonUrl        = sValue;
                if ((sValue = info[KEY_HOSTBUTTON_GFX_URL]) != null) HostButtonGfxUrl     = sValue;
                if ((sValue = info[KEY_ICON_ID])                               != null && Int32.TryParse(sValue, out iValue)) IconId                              = iValue;
                if ((sValue = info[KEY_HOSTMESSAGE_MODE])                      != null && Int32.TryParse(sValue, out iValue)) HostMessageMode                     = iValue;
                if ((sValue = info[KEY_HOSTBANNER_MODE])                       != null && Int32.TryParse(sValue, out iValue)) HostBannerMode                      = iValue;
                if ((sValue = info[KEY_ENCRYPTION_MODE])                       != null && Int32.TryParse(sValue, out iValue)) EncryptionMode                      = iValue;
                if ((sValue = info[KEY_HOSTBANNER_GFX_INTERVAL])               != null && Int32.TryParse(sValue, out iValue)) HostBannerGfxInterval               = iValue;
                if ((sValue = info[KEY_DEFAULT_SERVER_GROUP])                  != null && Int32.TryParse(sValue, out iValue)) DefaultServerGroup                  = iValue;
                if ((sValue = info[KEY_DEFAULT_CHANNEL_GROUP])                 != null && Int32.TryParse(sValue, out iValue)) DefaultChannelGroup                 = iValue;
                if ((sValue = info[KEY_DEFAULT_CHANNEL_ADMIN_GROUP])           != null && Int32.TryParse(sValue, out iValue)) DefaultChannelAdminGroup            = iValue;
                if ((sValue = info[KEY_COMPLAIN_AUTOBAN_COUNT])                != null && Int32.TryParse(sValue, out iValue)) ComplainAutoBanCount                = iValue;
                if ((sValue = info[KEY_COMPLAIN_AUTOBAN_TIME])                 != null && Int32.TryParse(sValue, out iValue)) ComplainAutoBanTime                 = iValue;
                if ((sValue = info[KEY_COMPLAIN_REMOVE_TIME])                  != null && Int32.TryParse(sValue, out iValue)) ComplainRemoveTime                  = iValue;
                if ((sValue = info[KEY_CLIENTS_NEEDED_BEFORE_FORCED_SILENCE])  != null && Int32.TryParse(sValue, out iValue)) MinClientsNeededBeforeForcedSilence = iValue;
                if ((sValue = info[KEY_ANTIFLOOD_POINTS_TICK_REDUCE])          != null && Int32.TryParse(sValue, out iValue)) AntifloodPointsTickReduce           = iValue;
                if ((sValue = info[KEY_ANTIFLOOD_POINTS_NEEDED_COMMAND_BLOCK]) != null && Int32.TryParse(sValue, out iValue)) AntifloodPointsNeededCommandBlock   = iValue;
                if ((sValue = info[KEY_ANTIFLOOD_POINTS_NEEDED_IP_BLOCK])      != null && Int32.TryParse(sValue, out iValue)) AntifloodPointsNeededIpBlock        = iValue;
                if ((sValue = info[KEY_LOG_CLIENT])                            != null && Int32.TryParse(sValue, out iValue)) LogClient                           = iValue;
                if ((sValue = info[KEY_LOG_QUERY])                             != null && Int32.TryParse(sValue, out iValue)) LogQuery                            = iValue;
                if ((sValue = info[KEY_LOG_CHANNEL])                           != null && Int32.TryParse(sValue, out iValue)) LogChannel                          = iValue;
                if ((sValue = info[KEY_LOG_PERMISSIONS])                       != null && Int32.TryParse(sValue, out iValue)) LogPermissions                      = iValue;
                if ((sValue = info[KEY_LOG_SERVER])                            != null && Int32.TryParse(sValue, out iValue)) LogServer                           = iValue;
                if ((sValue = info[KEY_LOG_FILETRANSFER])                      != null && Int32.TryParse(sValue, out iValue)) LogFiletransfer                     = iValue;
                if ((sValue = info[KEY_RESERVED_SLOTS])                        != null && Int32.TryParse(sValue, out iValue)) ReservedSlots                       = iValue;
                if ((sValue = info[KEY_ASK_FOR_PRIVILEGEKEY])                  != null && Int32.TryParse(sValue, out iValue)) RequestsForPrivilegeKey             = iValue;
                if ((sValue = info[KEY_NEEDED_IDENTITY_SECURITY_LEVEL])        != null && Int32.TryParse(sValue, out iValue)) MinimumSecurityLevel                = iValue;
                if ((sValue = info[KEY_FILETRANSFER_BANDWIDTH_SENT])           != null && Int32.TryParse(sValue, out iValue)) FiletransferBandwidthSent           = iValue;
                if ((sValue = info[KEY_FILETRANSFER_BANDWIDTH_RECEIVED])       != null && Int32.TryParse(sValue, out iValue)) FiletransferBandwidthReceived       = iValue;
                if ((sValue = info[KEY_FILETRANSFER_BYTES_SENT_TOTAL])         != null && Int32.TryParse(sValue, out iValue)) FiletransferBytesSentTotal          = iValue;
                if ((sValue = info[KEY_FILETRANSFER_BYTES_RECEIVED_TOTAL])     != null && Int32.TryParse(sValue, out iValue)) FiletransferBytesReceivedTotal      = iValue;
                if ((sValue = info[KEY_PACKETS_SENT_SPEECH])                   != null && Int32.TryParse(sValue, out iValue)) SpeechPacketsSent                   = iValue;
                if ((sValue = info[KEY_PACKETS_RECEIVED_SPEECH])               != null && Int32.TryParse(sValue, out iValue)) SpeechPacketsReceived               = iValue;
                if ((sValue = info[KEY_BYTES_SENT_SPEECH])                     != null && Int32.TryParse(sValue, out iValue)) SpeechBytesSent                     = iValue;
                if ((sValue = info[KEY_BYTES_RECEIVED_SPEECH])                 != null && Int32.TryParse(sValue, out iValue)) SpeechBytesReceived                 = iValue;
                if ((sValue = info[KEY_PACKETS_SENT_KEEPALIVE])                != null && Int32.TryParse(sValue, out iValue)) KeepalivePacketsSent                = iValue;
                if ((sValue = info[KEY_PACKETS_RECEIVED_KEEPALIVE])            != null && Int32.TryParse(sValue, out iValue)) KeepalivePacketsReceived            = iValue;
                if ((sValue = info[KEY_BYTES_SENT_KEEPALIVE])                  != null && Int32.TryParse(sValue, out iValue)) KeepaliveBytesSent                  = iValue;
                if ((sValue = info[KEY_BYTES_RECEIVED_KEEPALIVE])              != null && Int32.TryParse(sValue, out iValue)) KeepaliveBytesReceived              = iValue;
                if ((sValue = info[KEY_PACKETS_SENT_CONTROL])                  != null && Int32.TryParse(sValue, out iValue)) ControlPacketsSent                  = iValue;
                if ((sValue = info[KEY_PACKETS_RECEIVED_CONTROL])              != null && Int32.TryParse(sValue, out iValue)) ControlPacketsReceived              = iValue;
                if ((sValue = info[KEY_BYTES_SENT_CONTROL])                    != null && Int32.TryParse(sValue, out iValue)) ControlBytesSent                    = iValue;
                if ((sValue = info[KEY_BYTES_RECEIVED_CONTROL])                != null && Int32.TryParse(sValue, out iValue)) ControlBytesReceived                = iValue;
                if ((sValue = info[KEY_PACKETS_SENT_TOTAL])                    != null && Int32.TryParse(sValue, out iValue)) PacketsSentTotal                    = iValue;
                if ((sValue = info[KEY_PACKETS_RECEIVED_TOTAL])                != null && Int32.TryParse(sValue, out iValue)) PacketsReceivedTotal                = iValue;
                if ((sValue = info[KEY_BYTES_SENT_TOTAL])                      != null && Int32.TryParse(sValue, out iValue)) BytesSentTotal                      = iValue;
                if ((sValue = info[KEY_BYTES_RECEIVED_TOTAL])                  != null && Int32.TryParse(sValue, out iValue)) BytesReceivedTotal                  = iValue;
                if ((sValue = info[KEY_BANDWIDTH_SENT_LAST_SECOND_TOTAL])      != null && Int32.TryParse(sValue, out iValue)) BandwidthSentLastSecond             = iValue;
                if ((sValue = info[KEY_BANDWIDTH_RECEIVED_LAST_SECOND_TOTAL])  != null && Int32.TryParse(sValue, out iValue)) BandwidthReceivedLastSecond         = iValue;
                if ((sValue = info[KEY_BANDWIDTH_SENT_LAST_MINUTE_TOTAL])      != null && Int32.TryParse(sValue, out iValue)) BandwidthSentLastMinute             = iValue;
                if ((sValue = info[KEY_BANDWIDTH_RECEIVED_LAST_MINUTE_TOTAL])  != null && Int32.TryParse(sValue, out iValue)) BandwidthReceivedLastMinute         = iValue;
                if ((sValue = info[KEY_CREATION_TIME])            != null && UInt32.TryParse(sValue, out uiValue)) CreationTime                = uiValue;
                if ((sValue = info[KEY_CHANNELS_ONLINE])          != null && UInt32.TryParse(sValue, out uiValue)) ChannelsOnline              = uiValue;
                if ((sValue = info[KEY_CLIENT_CONNECTIONS])       != null && UInt32.TryParse(sValue, out uiValue)) TotalClientConnections      = uiValue;
                if ((sValue = info[KEY_QUERY_CLIENT_CONNECTIONS]) != null && UInt32.TryParse(sValue, out uiValue)) TotalQueryClientConnections = uiValue;
                if ((sValue = info[KEY_MAX_DOWNLOAD_TOTAL_BANDWIDTH]) != null && UInt64.TryParse(sValue, out ulValue)) MaxDownloadBandwidth = ulValue;
                if ((sValue = info[KEY_MAX_UPLOAD_TOTAL_BANDWIDTH])   != null && UInt64.TryParse(sValue, out ulValue)) MaxUploadBandwidth   = ulValue;
                if ((sValue = info[KEY_DOWNLOAD_QUOTA])               != null && UInt64.TryParse(sValue, out ulValue)) DownloadQuota        = ulValue;
                if ((sValue = info[KEY_UPLOAD_QUOTA])                 != null && UInt64.TryParse(sValue, out ulValue)) UploadQuota          = ulValue;
                if ((sValue = info[KEY_MONTH_BYTES_DOWNLOADED])       != null && UInt64.TryParse(sValue, out ulValue)) BytesDownloadedMonth = ulValue;
                if ((sValue = info[KEY_MONTH_BYTES_UPLOADED])         != null && UInt64.TryParse(sValue, out ulValue)) BytesUploadedMonth   = ulValue;
                if ((sValue = info[KEY_TOTAL_BYTES_DOWNLOADED])       != null && UInt64.TryParse(sValue, out ulValue)) BytesDownloadedTotal = ulValue;
                if ((sValue = info[KEY_TOTAL_BYTES_UPLOADED])         != null && UInt64.TryParse(sValue, out ulValue)) BytesUploadedTotal   = ulValue;
                if ((sValue = info[KEY_TOTAL_PING])                        != null && Double.TryParse(sValue, out dValue)) Ping                           = dValue;
                if ((sValue = info[KEY_TOTAL_PACKETLOSS_SPEECH])           != null && Double.TryParse(sValue, out dValue)) TotalSpeechPacketloss          = dValue;
                if ((sValue = info[KEY_TOTAL_PACKETLOSS_KEEPALIVE])        != null && Double.TryParse(sValue, out dValue)) TotalKeepalivePacketloss       = dValue;
                if ((sValue = info[KEY_TOTAL_PACKETLOSS_CONTROL])          != null && Double.TryParse(sValue, out dValue)) TotalControlPacketloss         = dValue;
                if ((sValue = info[KEY_TOTAL_PACKATLOSS_TOTAL])            != null && Double.TryParse(sValue, out dValue)) TotalPacketlossAll             = dValue;
                if ((sValue = info[KEY_PRIORITY_SPEAKER_DIMM_MODIFICATOR]) != null && Double.TryParse(sValue, out dValue)) PrioritySpeakerDimmModificator = dValue;
                if ((sValue = info[KEY_FLAG_PASSWORD])   != null) IsPassworded     = (sValue == "1");
                if ((sValue = info[KEY_WEBLIST_ENABLED]) != null) IsWebListEnabled = (sValue == "1");
            }
 /// <summary>
 /// Initializes a server with the specified data.
 /// </summary>
 public Teamspeak3Server(Teamspeak3Group info = null)
 {
     Normal   = new NormalInfo();
     Advanced = new AdvancedInfo();
     Update(info);
 }
            public void SetData(Teamspeak3Group info, Boolean reset)
            {
                String sValue;
                Int32  iValue;

                if (reset) {
                    DatabaseId = null;
                    ChannelId  = null;
                    Type       = null;
                }

                if ((sValue = info[KEY_DATABASE_ID]) != null && Int32.TryParse(sValue, out iValue)) DatabaseId = iValue;
                if ((sValue = info[KEY_CHANNEL_ID])  != null && Int32.TryParse(sValue, out iValue)) ChannelId  = iValue;
                if ((sValue = info[KEY_TYPE])        != null && Int32.TryParse(sValue, out iValue)) Type       = iValue;
            }
            public void SetData(Teamspeak3Group info, Boolean reset)
            {
                String  sValue;
                Int32   iValue;
                UInt32  uiValue;

                if (reset) {
                    LoginName                          = null;
                    UniqueId                           = null;
                    IpAddress                          = null;
                    ClientVersion                      = null;
                    ClientPlatform                     = null;
                    ClientDescription                  = null;
                    ClientCountry                      = null;
                    ClientMetaData                     = null;
                    DefaultChannelName                 = null;
                    FlagAvatar                         = null;
                    AwayMessage                        = null;
                    TalkMessage                        = null;
                    PhoneticNick                       = null;
                    DefaultToken                       = null;
                    Base64Hash                         = null;
                    ChannelGroupInheritedFromChannelId = null;
                    ChannelGroupId                     = null;
                    ServerGroupId                      = null;
                    IdleTime                           = null;
                    LastConnected                      = null;
                    TotalConnections                   = null;
                    TalkPower                          = null;
                    NeededQueryViewPower               = null;
                    IconId                             = null;
                    BytesUploadedMonth                 = null;
                    BytesDownloadedMonth               = null;
                    BytesUploadedTotal                 = null;
                    BytesDownloadedTotal               = null;
                    FilesBandwidthSent                 = null;
                    FilesBandwidthReceived             = null;
                    PacketsSent                        = null;
                    PacketsReceived                    = null;
                    BytesSent                          = null;
                    BytesReceived                      = null;
                    BandwidthSentLastSecond            = null;
                    BandwidthReceivedLastSecond        = null;
                    BandwidthSentLastMinute            = null;
                    BandwidthReceivedLastMinute        = null;
                    ConnectionTime                     = null;
                    CreationTime                       = null;
                    IsChannelCommander                 = null;
                    InputMuted                         = null;
                    OutputMuted                        = null;
                    OutputMutedOnly                    = null;
                    InputHardware                      = null;
                    OutputHardware                     = null;
                    IsRecording                        = null;
                    IsAway                             = null;
                    TalkRequest                        = null;
                    IsTalker                           = null;
                    IsPriority                         = null;
                }

                if ((sValue = info[KEY_LOGIN_NAME])         != null) LoginName          = sValue;
                if ((sValue = info[KEY_UNIQUE_ID])          != null) UniqueId           = sValue;
                if ((sValue = info[KEY_IP_ADDRESS])         != null) IpAddress          = sValue;
                if ((sValue = info[KEY_CLIENT_VERSION])     != null) ClientVersion      = sValue;
                if ((sValue = info[KEY_CLIENT_PLATFORM])    != null) ClientPlatform     = sValue;
                if ((sValue = info[KEY_CLIENT_DESCRIPTION]) != null) ClientDescription  = sValue;
                if ((sValue = info[KEY_CLIENT_COUNTRY])     != null) ClientCountry      = sValue;
                if ((sValue = info[KEY_CLIENT_META_DATA])   != null) ClientMetaData     = sValue;
                if ((sValue = info[KEY_DEFAULT_CHANNEL])    != null) DefaultChannelName = sValue;
                if ((sValue = info[KEY_FLAG_AVATAR])        != null) FlagAvatar         = sValue;
                if ((sValue = info[KEY_AWAY_MESSAGE])       != null) AwayMessage        = sValue;
                if ((sValue = info[KEY_TALK_MESSAGE])       != null) TalkMessage        = sValue;
                if ((sValue = info[KEY_PHONETIC_NICK])      != null) PhoneticNick       = sValue;
                if ((sValue = info[KEY_DEFAULT_TOKEN])      != null) DefaultToken       = sValue;
                if ((sValue = info[KEY_BASE64_HASH])        != null) Base64Hash         = sValue;
                if ((sValue = info[KEY_CHANNEL_GROUP_INHERITED_CHANNEL_ID]) != null && Int32.TryParse(sValue, out iValue)) ChannelGroupInheritedFromChannelId = iValue;
                if ((sValue = info[KEY_CHANNEL_GROUP_ID])                   != null && Int32.TryParse(sValue, out iValue)) ChannelGroupId                     = iValue;
                if ((sValue = info[KEY_SERVER_GROUP_ID])                    != null && Int32.TryParse(sValue, out iValue)) ServerGroupId                      = iValue;
                if ((sValue = info[KEY_IDLE_TIME])                          != null && Int32.TryParse(sValue, out iValue)) IdleTime                           = iValue;
                if ((sValue = info[KEY_CONNECTION_TIME])                    != null && Int32.TryParse(sValue, out iValue)) ConnectionTime                     = iValue;
                if ((sValue = info[KEY_TOTAL_CONNECTIONS])                  != null && Int32.TryParse(sValue, out iValue)) TotalConnections                   = iValue;
                if ((sValue = info[KEY_TALK_POWER])                         != null && Int32.TryParse(sValue, out iValue)) TalkPower                          = iValue;
                if ((sValue = info[KEY_NEEDED_QUERY_VIEW_POWER])            != null && Int32.TryParse(sValue, out iValue)) NeededQueryViewPower               = iValue;
                if ((sValue = info[KEY_ICON_ID])                            != null && Int32.TryParse(sValue, out iValue)) IconId                             = iValue;
                if ((sValue = info[KEY_BYTES_UPLOADED_MONTH])               != null && Int32.TryParse(sValue, out iValue)) BytesUploadedMonth                 = iValue;
                if ((sValue = info[KEY_BYTES_DOWNLOADED_MONTH])             != null && Int32.TryParse(sValue, out iValue)) BytesDownloadedMonth               = iValue;
                if ((sValue = info[KEY_BYTES_UPLOADED_TOTAL])               != null && Int32.TryParse(sValue, out iValue)) BytesUploadedTotal                 = iValue;
                if ((sValue = info[KEY_BYTES_DOWNLOADED_TOTAL])             != null && Int32.TryParse(sValue, out iValue)) BytesDownloadedTotal               = iValue;
                if ((sValue = info[KEY_FILES_BANDWIDTH_SENT])               != null && Int32.TryParse(sValue, out iValue)) FilesBandwidthSent                 = iValue;
                if ((sValue = info[KEY_FILES_BANDWIDTH_RECEIVED])           != null && Int32.TryParse(sValue, out iValue)) FilesBandwidthReceived             = iValue;
                if ((sValue = info[KEY_PACKETS_SENT])                       != null && Int32.TryParse(sValue, out iValue)) PacketsSent                        = iValue;
                if ((sValue = info[KEY_PACKETS_RECEIVED])                   != null && Int32.TryParse(sValue, out iValue)) PacketsReceived                    = iValue;
                if ((sValue = info[KEY_BYTES_SENT])                         != null && Int32.TryParse(sValue, out iValue)) BytesSent                          = iValue;
                if ((sValue = info[KEY_BYTES_RECEIVED])                     != null && Int32.TryParse(sValue, out iValue)) BytesReceived                      = iValue;
                if ((sValue = info[KEY_BANDWIDTH_SENT_LAST_SEC])            != null && Int32.TryParse(sValue, out iValue)) BandwidthSentLastSecond            = iValue;
                if ((sValue = info[KEY_BANDWIDTH_RECEIVED_LAST_SEC])        != null && Int32.TryParse(sValue, out iValue)) BandwidthReceivedLastSecond        = iValue;
                if ((sValue = info[KEY_BANDWIDTH_SENT_LAST_MIN])            != null && Int32.TryParse(sValue, out iValue)) BandwidthSentLastMinute            = iValue;
                if ((sValue = info[KEY_BANDWIDTH_RECEIVED_LAST_MIN])        != null && Int32.TryParse(sValue, out iValue)) BandwidthReceivedLastMinute        = iValue;
                if ((sValue = info[KEY_CREATION_TIME])  != null && UInt32.TryParse(sValue, out uiValue)) CreationTime  = uiValue;
                if ((sValue = info[KEY_LAST_CONNECTED]) != null && UInt32.TryParse(sValue, out uiValue)) LastConnected = uiValue;
                if ((sValue = info[KEY_IS_CHANNEL_COMMANDER]) != null) IsChannelCommander = (sValue == "1");
                if ((sValue = info[KEY_INPUT_MUTED])          != null) InputMuted         = (sValue == "1");
                if ((sValue = info[KEY_OUTPUT_MUTED])         != null) OutputMuted        = (sValue == "1");
                if ((sValue = info[KEY_OUTPUT_MUTED_ONLY])    != null) OutputMutedOnly    = (sValue == "1");
                if ((sValue = info[KEY_INPUT_HARDWARE])       != null) InputHardware      = (sValue == "1");
                if ((sValue = info[KEY_OUTPUT_HARDWARE])      != null) OutputHardware     = (sValue == "1");
                if ((sValue = info[KEY_IS_RECORDING])         != null) IsRecording        = (sValue == "1");
                if ((sValue = info[KEY_IS_AWAY])              != null) IsAway             = (sValue == "1");
                if ((sValue = info[KEY_TALK_REQUEST])         != null) TalkRequest        = (sValue == "1");
                if ((sValue = info[KEY_IS_TALKER])            != null) IsTalker           = (sValue == "1");
                if ((sValue = info[KEY_IS_PRIORITY])          != null) IsPriority         = (sValue == "1");
            }
 /// <summary>
 /// Parses the raw response as a notification response.
 /// </summary>
 /// <param name="raw">This variable's raw response from the server.</param>
 public Teamspeak3Notification(String rawText)
     : base(rawText)
 {
     Notification = new Teamspeak3Group(rawText.Remove(0, "notify".Length));
 }