Commit Graph
100 Commits
Author SHA1 Message Date
Manevolent a883c8beef notifyclientchatclosed event handled 2019-02-05 08:51:46 -05:00
Manevolent 0fed4c68ce Clamp high precision timer to specific tick drift 2019-01-22 11:50:03 -05:00
Manevolent 3e8991929e Audio sender and music player changes 2019-01-21 14:17:54 -05:00
Manevolent 8cd5fd100c We don't have an "onConnected" event, adding that now. 2019-01-20 19:34:26 -05:00
Manevolent 941308d67b Example of music streaming from disk 2018-12-24 20:32:26 -05:00
Manevolent 7b25be6420 Improper order of operations for ident export 2018-12-22 11:59:36 -05:00
Manevolent d9c2805528 com.sun package breaking Jitpack.io 2018-12-21 16:15:53 -05:00
Manevolent 9d602a8f98 Added audio sender test and disconnect reasons 2018-12-21 11:02:08 -05:00
Manevolent 24da34d23d Merge remote-tracking branch 'origin/master' 2018-12-21 09:57:56 -05:00
Manevolent 72c585a089 Ts3 INI saving, API is in. Loads into the official client, too. Check out LocalIdentity.save() methods 2018-12-21 09:57:49 -05:00
Manevolent 91187964c5 Ts3 INI identity loading 2018-11-05 14:48:31 -05:00
Manevolent 3987f3c097 Allow getChannelInfo when in RETRIEVING_DATA state 2018-10-23 09:52:46 -04:00
Manevolent f06634879b Merge remote-tracking branch 'origin/master'
# Conflicts:
#	src/main/java/com/github/manevolent/ts3j/protocol/socket/client/LocalTeamspeakClientSocket.java
2018-10-22 13:42:29 -04:00
Manevolent efd4b4b771 Reorganizing the removal of awaiting commands and so forth in hopes that lock-ups don't happen on reconnect. 2018-10-22 13:40:43 -04:00
Manevolent 99398369f1 Move stuff around 2018-10-13 16:32:23 -04:00
Manevolent 7889dc0caf Send serverflag0 with new packets as a test of sorts 2018-10-13 16:31:34 -04:00
Manevolent 61ce9df1f8 Compilation issues with jitpack 2018-10-13 16:14:07 -04:00
Manevolent 2202b3ab9a Now that we have discerned the issue with receiving audio packets, I feel better reverting back to only providing the packet body, and not the header also, in the user callbacks. 2018-10-13 16:08:55 -04:00
Manevolent d97b95f021 When the COMPRESSED flag is set by the official Teamspeak Gbmh client on a VOICE or VOICE_WHISPER packet, which is done for the first 5 packets of any decoder session, the packet is always 1 byte longer. More importantly, the final byte is static for those 5 packets.
You have to trim that last byte off, otherwise your audio will be corrupted.  TS3J now does this automatically and stores it in ServerFlag0 for you, as a nullable Byte object. This way you can handle it if you need to. This has also been factored into the output/write stage.

Digging into theory, I believe this ID has something to do with the opening of a new decoder to ensure that the decoder opens cleanly each time. You do NOT have to do anything to your decoder to reset states, etc., from what I can tell. In other words, COMPRESSED being on shouldn't change the behavior of your decoding.
2018-10-13 16:03:51 -04:00
Manevolent d9ce7f21a3 JitPack is broken. Trying one more time to get this to go through. 2018-10-13 02:17:13 -04:00
Manevolent 2f7bf10322 Merge remote-tracking branch 'origin/master' 2018-10-13 01:35:14 -04:00
Manevolent ce77f91c6f I'm changing whisper and voice handlers. I think that the COMPRESSED flag is important, it may signal you to reset your decoder for each incoming packet. Not sure. 2018-10-13 01:35:09 -04:00
Manevolent a85904555e Synchronize the remote counter, and correct an issue with rest() concerning generation IDs 2018-10-02 08:58:29 -04:00
Manevolent 6bf85e3c6c Re-order handleError (handleComplete) 2018-09-20 02:13:05 -04:00
Manevolent 5ee74e6c45 Make step 127 public 2018-09-18 15:13:58 -04:00
Manevolent e4a1e69410 Packet flags for server, setters would apply to wrong object 2018-09-18 00:15:14 -04:00
Manevolent 8ba218f094 Timestamp was not sent right 2018-09-17 23:54:54 -04:00
Manevolent 66bc483490 Init1 changes to make it neater 2018-09-17 23:41:28 -04:00
Manevolent 127ae9bc8f Don't mind me... 2018-09-17 23:01:25 -04:00
Manevolent ec34b59ad3 DatagramPackets are synchronized. This could have caused problems, or would, cause problems. 2018-09-17 22:55:34 -04:00
Manevolent e683ad1bbb Added helper methods to connect()
Refactored packet handlers
2018-09-17 21:43:36 -04:00
Manevolent 4c539e44c7 Proper extension 2018-09-17 19:51:33 -04:00
Manevolent e48a5a0435 Handle notifypermissionlist, Init127 2018-09-17 15:24:30 -04:00
Manevolent 8d74195d42 Support clientinitivexpand and not just expand2 for all TS3 server support (incl. TeaSpeak) 2018-09-17 13:24:09 -04:00
Manevolent d271b7a358 Set transformation before connecting 2018-09-11 08:35:17 -04:00
Manevolent 956344f1c9 Better logging for decryption errors 2018-09-11 08:21:16 -04:00
Manevolent 8e87f8c2c1 Merge remote-tracking branch 'origin/master' 2018-09-06 11:53:55 -04:00
Manevolent 285d6ab9a4 Add setEventMultiThreading(boolean) instead of forcing multi-threading on 2018-09-06 11:53:44 -04:00
Manevolent 15f7485fa9 Moving command execution to a single thread executor. I leave it up to end-users now if they want event processing to be multi-threaded. 2018-09-06 11:49:51 -04:00
Manevolent 1dbca2543b Remove -> Deleted 2018-08-31 21:55:55 -04:00
Manevolent 882812ff40 Merge remote-tracking branch 'origin/master' 2018-08-31 21:54:19 -04:00
Manevolent f248faad72 Add support for more missing events 2018-08-31 21:54:15 -04:00
Manevolent b7282cc337 Reconnection issues 2018-08-29 11:44:14 -04:00
Manevolent 2207e65392 Silly imports. 2018-08-23 11:41:39 -04:00
Manevolent 4c235badd5 Server group add/del 2018-08-23 11:34:27 -04:00
Manevolent 61f35951e2 Weak TSDNS support (_udp SRV record type) 2018-08-23 09:18:24 -04:00
Manevolent 09c21b171e Pull up socket role 2018-08-23 08:48:58 -04:00
Manevolent becc64f297 Java 8 2018-08-19 10:44:30 -04:00
Manevolent da3495c297 Whisper support 2018-08-17 16:27:18 -04:00
Manevolent 0cd72622a2 latestPacketId exposure for the same reason as the last commit 2018-08-16 13:44:43 -04:00
Manevolent 3898f2658c Expose the remote counter's features for discerning buffer beginning and end. I need this because my bot will be decoding audio for speech recognition. 2018-08-16 10:12:05 -04:00
Manevolent 83e59ab6e9 Exposed voice packets to the client 2018-08-15 11:43:41 -04:00
Manevolent 99ed8dda77 Use packet ID instead of key. 2018-08-13 20:30:50 -04:00
Manevolent d0e2ad194f It's possible for a packet's responsible queue to be incorrectly tracked. 2018-08-13 20:30:05 -04:00
Manevolent e4e1b5b4fe Still getting random connection losses. I think it may have to do with the way I set up ACK, ACK_LOW, and PING commands. 2018-08-13 18:18:49 -04:00
Manevolent f041820020 Catch socket exception for code clarity even though I dont think it was causing any problems 2018-08-13 09:58:55 -04:00
Manevolent ca869089cf Reconnection works now 2018-08-13 09:48:30 -04:00
Manevolent 89c483d3b9 Fragments which wrap around 65536 and cause the packet ID to ascend more than once will crash the code 2018-08-13 09:20:27 -04:00
Manevolent aad790c146 Packet reassembly would fail if the server sent packets out of order. Now, it is resilient to this. 2018-08-13 01:03:44 -04:00
Manevolent 7d195439b8 Send a zero-length byte array when the audio thread is done sending audio, as Teamspeak does. this is to prevent interpolation 2018-08-12 15:39:55 -04:00
Manevolent fb7923b63b Change HighPrecisionRecurrentTask to 0.01 instead of 0.02 2018-08-12 15:13:21 -04:00
Manevolent 9d37b982d5 Packet fragmentation had a bug 2018-08-12 15:07:49 -04:00
Manevolent 69024381de It would help if I pasted it after a packet has its ID assigned wouldn't it? 2018-08-12 12:45:27 -04:00
Manevolent 3f873f7ef5 Merge remote-tracking branch 'origin/master' 2018-08-12 12:15:37 -04:00
Manevolent 555f6a56d6 Mic packet ID was wrongly generated, changed some tests and increased verbosity of the reassembly exceptions 2018-08-12 12:14:29 -04:00
Manevolent bc37491328 Created a new test for fragments. If a packet fragment is received which wraps around the generation, it is lost. Also, packet fragmentation outgoing would cause a desync in the packet IDs. 2018-08-11 18:44:44 -04:00
Manevolent 04299b5c77 More tests for packet generations. Compression test also exists now to test compression into the future. QuickLZ first checks the level on decompression, and also throws a diagnostic error with full Base64 byte array on issue. Disconnections will actually fully reset and free the client for valid re-use. There is now a Consumer for Throwables for the abstract client socket for error handling. 2018-08-11 15:50:22 -04:00
Manevolent 5a440c890f Round ping to nearest whole number 2018-08-11 12:36:37 -04:00
Manevolent 2666e940e8 Undo debugging stuff 2018-08-10 23:38:07 -04:00
Manevolent 7f6f6c79d2 Bitmasks were wrong 2018-08-10 23:37:45 -04:00
Manevolent 798f84689f get rid of JavaFX 2018-08-10 22:46:03 -04:00
Manevolent a6a263cae1 get rid of JavaFX 2018-08-10 22:42:44 -04:00
Manevolent de6b4b370b Trying maven compiler target 2018-08-10 22:35:58 -04:00
Manevolent 2d21b701c5 Jitpack failed... 2018-08-10 22:28:39 -04:00
Manevolent 7aa0f864a0 Handle throwable 2018-08-10 22:20:27 -04:00
Manevolent 83b2f5c46f Network reader should close if it has to exit 2018-08-10 22:20:03 -04:00
Manevolent 2f7b5a376b Facepalm, nanoTime 2018-08-10 19:56:53 -04:00
Manevolent d3a157672b More accurate ping and handling all packet types properly 2018-08-10 19:27:46 -04:00
Manevolent 844e3e6e75 More accurate ping and handling all packet types properly 2018-08-10 19:01:06 -04:00
Manevolent 4072b19f09 Fix total 2018-08-10 16:30:58 -04:00
Manevolent 99961d84aa notifyconnectioninforequest 2018-08-10 16:28:55 -04:00
Manevolent 3d09c5ef21 Disconnected and leave events were not on the proper handlers 2018-08-05 19:47:35 -04:00
Manevolent a316b76d70 Channel subscription, getting channel info, and multithreaded event handling 2018-08-05 19:20:02 -04:00
Manevolent fffd19cf9b Microphone changes 2018-08-05 02:21:33 -04:00
Manevolent 582daddf67 Microphone changes 2018-08-05 01:57:12 -04:00
Manevolent 68dcaa35c3 Microphone changes 2018-08-05 01:24:10 -04:00
Manevolent 836a952a6d Need actual byte length for characters 2018-08-05 00:58:21 -04:00
Manevolent e7beee972d Nickname changing 2018-08-05 00:17:02 -04:00
Manevolent 44edb80431 Nickname changing 2018-08-05 00:02:16 -04:00
Manevolent 0c2f4c0341 Must get client ID properly there 2018-08-04 23:58:34 -04:00
Manevolent 07ca284851 Client info call 2018-08-04 23:10:14 -04:00
Manevolent 95adfc6e3d Ignore compressed packets for voice, there is an issue 2018-08-04 23:01:03 -04:00
Manevolent 8f9cc3cdd8 Merge remote-tracking branch 'origin/master' 2018-08-04 22:39:03 -04:00
Manevolent a535724a4b Ignore compressed packets for voice, there is an issue 2018-08-04 22:38:44 -04:00
Manevolent 80a57784ef Any kind of proper acknowledgement constitutes an alive connection for 30 seconds. 2018-08-04 20:08:41 -04:00
Manevolent 7239f3f7ef Needed virtual server id 2018-08-04 19:31:51 -04:00
Manevolent 1ed4e0c4da Channel list event is back, adding chat to client commands. 2018-08-04 19:22:08 -04:00
Manevolent 1236221f6b Commands now spool sequentially. Command ACK queues no longer collide with pings or ack_low. Getter more stable. 2018-08-02 19:52:44 -04:00
Manevolent 964936abdf Working on commands, having trouble with acks right now 2018-08-01 16:29:31 -04:00
Manevolent 401f00c83d Added events that were needed 2018-08-01 12:46:14 -04:00