100 Commits
Author SHA1 Message Date
Manevolent 25c9942dd0 1.0 2020-01-12 20:04:12 -07:00
Manevolent 289aa31645 Update tests 2019-12-04 22:01:47 -07:00
Manevolent 3a137f63c5 Increase maximum accepted reassembled packet size to 1MB, but continue to constrain directly received packet size at 65KB 2019-12-04 22:01:29 -07:00
Manevolent 475af91eef Don't optimistically send a command in onAssigned: causes a blocking issue 2019-11-26 11:44:11 -07:00
Manevolent 28c570f253 Remote socket address correctly passed 2019-11-26 11:34:30 -07:00
Manevolent 614b3d9d69 Address #9 and fix thread exits, add InterruptedException handlers, and make Microphone handling more stateful (don't run a thread all the time if nobody ever sets it) 2019-11-24 19:42:23 -07:00
Manevolent 92d97f96dc Fix two exceptions and fix channel password support 2019-11-22 09:07:38 -07:00
Manevolent 547947c95d Merge remote-tracking branch 'origin/master' 2019-11-14 01:19:42 -07:00
Manevolent 9694a3f2c5 The new TS3 server version broke TS3j, it is now ‭218092286‬ decimal. 2019-11-14 01:19:36 -07:00
Manevolent d7b996e897 Merge remote-tracking branch 'origin/master' 2019-05-29 11:50:47 -04:00
Manevolent a86381a47b Exception propagation 2019-05-29 11:50:40 -04:00
Manevolent 51aac79189 Merge remote-tracking branch 'origin/master' 2019-03-05 11:05:05 -05:00
Manevolent d750f9685c Setting description, editing client properties 2019-03-05 11:04:54 -05:00
Manevolent 299a0457bd runtime error 2019-02-12 18:35:24 -05:00
Manevolent 9648bd6226 adding/removing client permissions 2019-02-12 18:35:18 -05:00
Manevolent 55b10d6ba5 Merge remote-tracking branch 'origin/master' 2019-02-05 08:51:54 -05:00
Manevolent a883c8beef notifyclientchatclosed event handled 2019-02-05 08:51:46 -05:00
Manevolent 7c33cfa97a - There was a bug that could cause TS3J to stop firing certain events to all event listeners if the command execution codes were generated quickly, sequentially by those event listener threads. This is now fixed.
- There is now more detailed output for command futures when reconnecting: "client reconnecting" instead of "client disconnected"
 - The MusicPlayer example now returns exit code -1 when it is kicked/disconnected prematurely.
2019-01-22 21:07:51 -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