all those servergroup functions are not really mentioned in the ClientLib SDK, but I found this one here in the public_rare_definitions.h:
Code:
enum ClientPropertiesRare {
...
CLIENT_SERVERGROUPS, //automatically up-to-date for any client "in view", only valid with PERMISSION feature, holds all servergroups client belongs too
...
}
so perhaps you can do something like this in your "client move" event instead of requesting the whole list etc.:
Code:
int result;
int err = ts3Functions.getClientVariableAsInt(serverConnectionHandlerID, clientID, CLIENT_SERVERGROUPS, &result);
I'm not really sure what the result will be, if you are in multiple servergroups.
For your second question: "only one notification"
You will get multiple events, if multiple people join a channel. There is no way around that.
Here is what you can do (just an idea):
Save the time if someone joins your channel in e.g. "lastjoin".
Everytime someone joins your channel, compare the current time to the saved one in "lastjoin".
If the difference is more than x seconds, then do a new notification and save the current time as "lastjoin"
If not, then ignore the event and do nothing.