Skip to content

Instantly share code, notes, and snippets.

@aldehir
Created August 25, 2012 10:59
Show Gist options
  • Select an option

  • Save aldehir/3463717 to your computer and use it in GitHub Desktop.

Select an option

Save aldehir/3463717 to your computer and use it in GitHub Desktop.
TS3ServerQuery Examples
package net.visualcoding.ts3serverquery.example;
import net.visualcoding.ts3serverquery.TS3ServerQueryClient;
import net.visualcoding.ts3serverquery.TS3Result;
import net.visualcoding.ts3serverquery.TS3Map;
public class ClientListExample {
public static void main(String[] args) throws Exception {
if(args.length < 4) {
System.err.println("Usage: java ClientListExample <host> <port> " +
"<username> <password");
System.exit(1);
}
// Instantiate a client object
TS3ServerQueryClient client = new TS3ServerQueryClient(args[0],
Integer.parseInt(args[1]));
// Connect to the server
client.connect();
// Build a map for the arguments to our login command
TS3Map arguments = new TS3Map();
arguments.add("client_login_name", args[2]);
arguments.add("client_login_password", args[3]);
// Execute the login command
TS3Result result = client.execute("login", arguments);
// Check if we were able to successfully log in
if(result.hasError()) {
System.err.println("Login failed");
System.exit(2);
} else {
System.out.println("Login successful");
}
// Switch over to virtual server 1
result = client.execute("use sid=1");
// Issue the clientinfo command to get all the clients in the server
result = client.execute("clientlist");
// Output the results
System.out.println(result);
// Disconnect from the client and terminate program
client.disconnect();
}
}
package net.visualcoding.ts3serverquery.example;
import net.visualcoding.ts3serverquery.TS3Map;
import net.visualcoding.ts3serverquery.TS3Result;
import net.visualcoding.ts3serverquery.TS3EventListener;
import net.visualcoding.ts3serverquery.TS3ServerQueryClient;
import net.visualcoding.ts3serverquery.event.TS3MessageEvent;
import net.visualcoding.ts3serverquery.event.TS3ClientMovedEvent;
import net.visualcoding.ts3serverquery.event.TS3ClientConnectedEvent;
import net.visualcoding.ts3serverquery.event.TS3ClientDisconnectedEvent;
public class EventListenerExample {
public static void main(String[] args) throws Exception {
if(args.length < 4) {
System.err.println("Usage: java EventListenerExample <host> <port> "
+ "<username> <password");
System.exit(1);
}
// Instantiate a client object
final TS3ServerQueryClient client = new TS3ServerQueryClient(args[0],
Integer.parseInt(args[1]));
// Connect to the server
client.connect();
// Log in
TS3Result result = client.execute("login " + args[2] + " " + args[3]);
if(result.hasError()) {
System.out.println("Login failed");
System.exit(2);
} else {
System.out.println("Login successful");
}
// Connect to virtual server 1
client.execute("use sid=1");
// Add in our custom event listener
client.addEventListener(new EventListener());
// Register client for notifications
if(client.registerNotifications()) {
System.out.println("Registered for notifications");
}
// Add a shutdown hook so we gracefully disconnect from the server
Runtime.getRuntime().addShutdownHook(new Thread() {
public void run() {
try {
client.disconnect();
System.out.println("Disconnected from server");
} catch(Exception e) { }
}
});
}
private static class EventListener implements TS3EventListener {
public void onClientConnected(TS3ClientConnectedEvent event) {
System.out.println("Client connected: " + event.getClientName());
}
public void onClientDisconnected(TS3ClientDisconnectedEvent event) {
System.out.println("Client disconnected: " + event.getClientName());
}
public void onClientMoved(TS3ClientMovedEvent event) {
System.out.println("Client moved: " + event.getClientName());
}
public void onMessage(TS3MessageEvent event) {
switch(event.getMode()) {
case Server:
System.out.println("Server message: " + event.getMessage());
break;
case Channel:
System.out.println("Channel message: " + event.getMessage());
break;
case Private:
System.out.println("Private message from " +
event.getClientName() + ": " + event.getMessage());
break;
default:
// what?
}
}
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment