Results 1 to 3 of 3
09-01-2012, 19:16 #1-= TeamSpeak User =-
- Join Date
- Jun 2010
requestClientMove() invokes wrong callback then crashes
I have a networked system with one TS server and multiple clients. On clientA, I call ts3client_requestClientMove() to move clientB to a specific channel. This causes the callback onClientMoveEvent to be invoked. I expect onClientMoveMovedEvent to be invoked.
Further, after my callback for onClientMoveEvent is invoked, I get a crash down in the TS3 DLL. Even if I don't register my onClientMoveEvent callback, the crash still occurs.
I tried enabling logging for the client at the INFO level, but get no information of any import. The arguments to my callback look correct, as if the move occurs correctly.
Finally, note that your documentation in the 3.0.1 client PDF has several errors in it (pages 77-79).
10-01-2012, 02:55 #2-= TeamSpeak User =-
- Join Date
- Jun 2010
I figured out the reason for the crash - I was passing in NULL to the 'password' argument for requestClientMove(). I think the documentation could be made clearer by indicating that although the password is optional, you must pass in an empty string and not NULL. This is especially confusing because the 'returnCode' argument *can* be NULL if it is not used.
I still don't understand what onClientMoveMovedEvent isn't invoked.
10-01-2012, 15:06 #3-= TeamSpeak Team =-
- Join Date
- Jun 2008
- Krün, Germany
Regarding "" instead of NULL for the password in the documentation is a good point, I agree and adjusted the docs accordingly together with some other minor fixes in the "Joining a channel" chapter.
Regarding the callbacks, I just tried with the latest downloadable SDK and a modified "client" example (added onClientMoveMovedEvent callback and the ability to move other clients by abusing the requestWhisperList function and replaced ts3client_requestClientSetWhisperList with ts3client_requestClientMove). Server is the "server" sample from the same SDK package.
* I have two client program instances running, each with a client connected to the same server. Assume client A has clientID = 3, client B has clientID = 4.
* There are two channels, assume channelID 1 and 2. Both clients sit in channel 1.
* Case 1: Move own client
Calling from instance of client A requestClientMove(scHandlerID, 3, 2, "", NULL) to let client A move himself into channel 2, I receive onClientMoveEvent with clientid=3 and newchannelID=2 with both program instances => correct
* Case 2: Move other client
Call from instance of client A requestClientMove(scHandlerID, 4, 2, "", NULL) to let client A move other client B (ID 4) into channel 2, I receive onClientMoveMovedEvent with clientid=4 and newchannelID=2, again in both program instances => correct.
This looks proper to me, depending if own or other client is moved, onClientMoveEvent or onClientMoveMovedEvent is called.
If the problem persist, some example code might be helpful to let us track down your issue.
Users Browsing this Thread
There are currently 1 users browsing this thread. (0 members and 1 guests)
By King_Xulu in forum General QuestionsReplies: 1Last Post: 06-05-2011, 07:45
By Screech in forum PluginsReplies: 2Last Post: 09-12-2010, 18:08
By Screech in forum PluginsReplies: 1Last Post: 06-12-2010, 07:18
By jimbojackhammer in forum PluginsReplies: 0Last Post: 24-06-2010, 18:34
By tomix in forum PluginsReplies: 2Last Post: 22-02-2010, 09:31