Forum

Results 1 to 3 of 3
  1. #1
    Join Date
    October 2015
    Posts
    3

    Question Query | channellist -icon returns a minus number for icon IDs

    Hey everyone,

    I'm fiddling around with the Query and when I use 'channellist -icon', some returned icon ID values.
    For example, I'm getting a value of '-576820448' when it's supposed to be 3718146848.

    Why does that happen?

    Quote Originally Posted by GuyB790
    EDIT: Solution is one post below. Please keep this thread so people can find it later on Search Engines
    Thanks,
    Guy B.
    Last edited by GuyB790; December 30th, 2015 at 01:41 PM.

  2. #2
    Join Date
    October 2015
    Posts
    3

    Solution

    So I've found a solution to the problem.

    It seems as if the icon IDs are being returned as 32-BIT SIGNED INT. The max number for this type is 0x7FFFFFFF (2147483647) and some icon IDs are larger than that, reaching up to 0xFFFFFFFF (4294967295), being 32-BIT UNSIGNED INT limit.

    To solve this, whenever retrieving IDs which are larger than 0x7FFFFFFF, simply apply bitwise AND operator to the number with 0xFFFFFFFF.

    There's a solution example with PHP (lines 16 to 19):
    PHP Code:
    if($value['channel_icon_id']<0)
    {
    $value['channel_icon_id']=sprintf('%u'$value['channel_icon_id'] & 0xffffffff);

    It seems like it's a bug with the TeamSpeak Query software.
    If I'm wrong and there's another explanation, please let me know below.

  3. #3
    Join Date
    June 2011
    Location
    Germany
    Posts
    4,371
    Your are right. TeamSpeak's use of datatypes is entirely random. For example, icons are sometimes Integers and sometimes UInts. Icon numbers returned by the servers are always signed. Setting permissions is also done with signed numbers. Editing servers must be done unsigned. Editing channels via channeledit must be done unsigned as well, but is heavily bugged and will cause data loss on your server. I suggest using permissions for this (which require the number to be unsigned), which are also required for editing clients.
    A similar problem exists with file transfer quota. The query interface returns a UInt64, but the client displays an Int64.
    More can be found here.

Thread Information

Users Browsing this Thread

There are currently 1 users browsing this thread. (0 members and 1 guests)

Similar Threads

  1. [Not possible] Query Icon & cooperate with clients with query range
    By Y u r i in forum Android
    Replies: 5
    Last Post: September 15th, 2014, 07:46 PM
  2. Replies: 0
    Last Post: February 20th, 2014, 01:37 AM
  3. Replies: 0
    Last Post: July 24th, 2011, 10:59 PM
  4. Error in the help text of the query command channellist
    By Stefan1200 in forum General Questions
    Replies: 1
    Last Post: February 9th, 2010, 08:20 PM
  5. icon identifier number...
    By Pinguino in forum Skins / Icon & Sound Packs
    Replies: 1
    Last Post: January 15th, 2010, 12:22 PM

Posting Permissions

  • You may not post new threads
  • You may not post replies
  • You may not post attachments
  • You may not edit your posts
  •