TeamSpeak 3 Java API Versions Save

A Java wrapper of TeamSpeak's 3 server query API.

v1.3.1

1 year ago

Noteworthy changes in this release

  • Add new BPermissionType and IPermissionType permission enums, see #416 - thanks @RMrenex!
    • Currently they are only used in TS3Api[Async]#addClientPermission and TS3Api[Async]#deleteClientPermission
    • These enums will gradually replace API methods that accept permission IDs or permission name strings
  • Fix TS3ApiAsync#renameServerGroup overload sending the wrong TS3 command, see #401 & #403 - thanks @Shadow-Devil!
  • Update our SSHJ dependency version to fix CVE-2018-5382 - thanks @FlorianWip!
    • The version of SSHJ we were using included a transitive dependency on a vulnerable version of BouncyCastle
  • Internally, we switched from using Travis-CI to GitHub Actions for our CI/CD pipelines

Get this release

Maven:

<dependency>
    <groupId>com.github.theholywaffle</groupId>
    <artifactId>teamspeak3-api</artifactId>
    <version>1.3.1</version>
</dependency>

Gradle:

compile group: 'com.github.theholywaffle', name: 'teamspeak3-api', version: '1.3.1'

v1.3.0

3 years ago

Noteworthy changes in this release

  • Add support for using SSH to connect to the TeamSpeak3 server, which is actually encrypted!
    • Use config.setProtocol(Protocol.SSH); to select the SSH protocol
    • You must set the server query login using config.setLoginCredentials(username, password); (as in earlier versions of the API)
    • RAW / Telnet remains the default protocol for the time being
  • TS3Config instances are now frozen after calling a TS3Query constructor, preventing modifications that don't have any effect
  • The ConnectionHandler's onConnect method now use a TS3Api instead of a TS3Query as its argument
    • For your onConnect commands to be executed before other queued up commands, you must use the provided TS3Api instance
  • Clients: Added getMyTeamSpeakId and getEstimatedLocation getters, fixed isRequestingToTalk
  • Channels: Added getUniqueIdentifier, getBannerMode, and getBannerGraphicsUrl getters
  • Added new {add, get, delete}ServerQueryLogin methods to create, query, and delete server query logins
  • Improvements to the internal I/O in the API
  • Improved the shut-down behavior of the API if commands are still queued up
  • Fix EventManager#removeListeners, see #294

Get this release

Maven:

<dependency>
    <groupId>com.github.theholywaffle</groupId>
    <artifactId>teamspeak3-api</artifactId>
    <version>1.3.0</version>
</dependency>

Gradle:

compile group: 'com.github.theholywaffle', name: 'teamspeak3-api', version: '1.3.0'

v1.2.0

5 years ago

Noteworthy changes in this release

  • This API now requires Java 8
    • The main reason was that this would finally allow us to use lambdas and method references, which are both very useful when working with the asynchronous API.
    • Moreover, Java 7 was released in 2011 and support ended in 2015. Let us know if you can't upgrade to Java 8 and still want features to be backported to v1.1.0.
  • Added map and then combinators to CommandFuture
    • This should help keep "callback hell" at bay when working with the asynchronous API
  • Some fixes to the IO subsystem
    • Fixed an issue where the query could time out on some operating systems despite still being connected
    • Fixed an issue where one command could be lost during a reconnect
  • TS3 Server v.3.2.0:
    • Added a reason parameter to the stopServer and stopServerProcess methods
    • Added support for the custom client properties commands with the new API methods
      {delete, get, set, search}CustomClientProperties
  • TS3 Server v3.4.0:
    • Added selectVirtualServer overloads that also set the query's nickname in one command
  • TS3 Server v3.5.0:
    • Added support for banning clients by their myTeamSpeak ID

Get this release

Maven:

<dependency>
    <groupId>com.github.theholywaffle</groupId>
    <artifactId>teamspeak3-api</artifactId>
    <version>1.2.0</version>
</dependency>

Gradle:

compile group: 'com.github.theholywaffle', name: 'teamspeak3-api', version: '1.2.0'

v1.1.0

6 years ago

Noteworthy changes in this release

  • Commands now throw exceptions instead of returning null if they fail, giving you easier access to the TS3 error ID and message
  • Switched to using SLF4J as a logging interface
    • If you're downloading the JAR file from this page, there should only be minor visual differences. This JAR file already includes a default, configured logging framework.
    • If you're using Maven or Gradle, you'll either need to provide a logging framework (e.g. Log4j 2, Logback, etc.) or just use the default implementation using slf4j-simple by using the -with-dependencies artifact. Maven: Add <classifier>with-dependencies</classifier> after the "version" tag. Gradle: Append , classifier: 'with-dependencies' after the "version" attribute.
  • Completely refactored command classes, fixing lots of bugs in the process.
  • Implemented a new connection timeout system. We finally have fully working timeouts again!
  • Fixed some concurrency issues in TS3Query, CommandFuture, and EventManager
    • Each event handler is now only called sequentially and events are guaranteed to be in-order. That means that synchronization is no longer needed when accessing fields that are not shared outside the event handler. Different TS3Listener objects can still run in parallel, though!
  • Added some convenience methods to TS3Api and TS3ApiAsync
  • Lots of internal changes, bug fixes and other small improvements

Get this release

Maven:

<dependency>
    <groupId>com.github.theholywaffle</groupId>
    <artifactId>teamspeak3-api</artifactId>
    <version>1.1.0</version>
</dependency>

Gradle:

compile group: 'com.github.theholywaffle', name: 'teamspeak3-api', version: '1.1.0'

v1.0.14

7 years ago

Noteworthy changes in this release

  • Improved reconnect subsystem
  • Improved command throughput when FloodRate.UNLIMITED is selected
  • Added API methods for file transfers
  • Moved build repository to maven central
    • You no longer need to include the <repository> section in your pom.xml file.
  • JavaDocs can now be read on javadoc.io
  • Various bugfixes and small improvements

Get this release

Maven:

<dependency>
    <groupId>com.github.theholywaffle</groupId>
    <artifactId>teamspeak3-api</artifactId>
    <version>1.0.14</version>
</dependency>

Gradle:

compile group: 'com.github.theholywaffle', name: 'teamspeak3-api', version: '1.0.14'

v1.0.10

7 years ago

v1.0.13

7 years ago

Noteworthy changes in this release

  • Added a reconnect system
    • When the connection between the server and the client is interrupted and reconnecting is enabled, the query will try to reconnect after configured delays
    • After reconnecting, the query tries to continue executing commands that were issued before the connection got interrupted.
    • Check out an example here.
  • Fixed API misbehaving with certain locale settings
  • Added method to move multiple clients at once
  • Added some new properties and utility methods to both clients and channels
  • Added support for the undocumented tokenused event

Get this release

Maven:

<dependency>
    <groupId>com.github.theholywaffle</groupId>
    <artifactId>teamspeak3-api</artifactId>
    <version>1.0.13</version>
</dependency>

Don't forget to include our repository! Instructions in the readme.

Gradle:

compile group: 'com.github.theholywaffle', name: 'teamspeak3-api', version: '1.0.13'

v1.0.12

7 years ago

Noteworthy changes in this release

  • Added an asynchronous version of the API called TS3ApiAsync
    • Allows commands to be dispatched without blocking the thread until a response arrives.
    • Server responses are handled via callbacks (see CommandFuture)
    • Currently offers better error-handling interface than the regular TS3Api
    • Uses a thread pool to dispatch the various callbacks and handlers.
  • Added documentation to all methods in TS3Api and TS3ApiAsync as well as to some wrapper classes.
    • Check out the JavaDoc here.
  • Added TS3EventAdapter, which is an abstract class implementing TS3Listener with just empty methods.
    • Allows overriding just one method in the listener instead of having to also override unneeded ones.
  • Improved the usage of collections throughout the entire API
  • Made the command timeout configurable in TS3Config
  • Lots of bug fixes and performance improvements
  • Improvements to the build process

Get this release

Maven:

<dependency>
    <groupId>com.github.theholywaffle</groupId>
    <artifactId>teamspeak3-api</artifactId>
    <version>1.0.12</version>
</dependency>

Don't forget to include our repository! Instructions in the readme.

Gradle:

compile group: 'com.github.theholywaffle', name: 'teamspeak3-api', version: '1.0.12'

v1.0.11

7 years ago

v1.0.9

7 years ago