Readme
This commit is contained in:
@@ -1,4 +1,19 @@
|
|||||||
# ts3j
|
# ts3j
|
||||||
A open-source Java Teamspeak 3 client library using the TS3 full client protocol
|
A open-source Java Teamspeak 3 client library using the TS3 full client protocol
|
||||||
|
|
||||||
WIP for now
|
This is a work in progress. I am working from Splamy's TS3Client project. This project is aiming to be a rewrite of
|
||||||
|
that codebase in Java. I'm leaving the door open for future server support, if that's even possible (we don't know what
|
||||||
|
a lot of the handshake params are I don't think, and clients may require they be specific somehow).
|
||||||
|
|
||||||
|
Most of the code is written quite flexibly.
|
||||||
|
|
||||||
|
Client and server headers are abstract, and share a command PacketHeader class. Packets mutate their input and output
|
||||||
|
behavior based on the assumed role of the packet. Together, they transport over the wire in the form of a NetworkPacket
|
||||||
|
object. This object can be re-constructed automatically through the use of a PacketType enum, meaning I/O is pretty
|
||||||
|
simple through the use of each packet's getters/setters and the read() and write() calls to NetworkPacket.
|
||||||
|
|
||||||
|
The client code is split into pieces: Socket and Client. Since Teamspeak3 relies on a UDP socket, I decided to make
|
||||||
|
a base Taemspeak3Socket class which does the generic I/O ops which both the server and client should share in common.
|
||||||
|
Teamspeak3Client is a class which wraps the Teamspeak3Socket class and provides more client-oriented behavior and methods.
|
||||||
|
This setup is a state machine, so the client connection and connection setup logic is based on a series of handlers
|
||||||
|
which correspond to the state the client is in.
|
||||||
Reference in New Issue
Block a user