It's a game query library which provides a convenient way for java programs to execute asynchronous requests to game servers/services. It's built on top of Netty as it's core transport engine and use AsyncHttpClient for web services.
Below is the list of what is currently implemented on the library
- Valve Master Server Query Protocol
- Valve Source Query Protocol
- Valve Steam Web API
- Valve Steam StoreFront Web API
- Valve Dota 2 Web API
- Valve CS:GO Web API
- Valve Source Log Handler (a log monitor service)
- Supercell Clash of Clans Web API
- Java JDK 8
- Apache Commons Lang 3.x
- Apache Commons Math 3.x
- Netty 4.1.x
- AsyncHttpClient 2.1.x
- SLF4J 1.7.x
- Google Gson 2.8.x
- Google Guava 21.x
Just add the following dependencies to your maven pom.xml. Only include the modules you need.
Valve Master Server Query Protocol
<dependency>
<groupId>com.ibasco.agql</groupId>
<artifactId>agql-steam-master</artifactId>
<version>0.1.4</version>
</dependency>
Valve Source Query Protocol
<dependency>
<groupId>com.ibasco.agql</groupId>
<artifactId>agql-source-query</artifactId>
<version>0.1.4</version>
</dependency>
Valve Steam Web API
<dependency>
<groupId>com.ibasco.agql</groupId>
<artifactId>agql-steam-webapi</artifactId>
<version>0.1.4</version>
</dependency>
Valve Dota 2 Web API
<dependency>
<groupId>com.ibasco.agql</groupId>
<artifactId>agql-dota2-webapi</artifactId>
<version>0.1.4</version>
</dependency>
Valve CS:GO Web API
<dependency>
<groupId>com.ibasco.agql</groupId>
<artifactId>agql-csgo-webapi</artifactId>
<version>0.1.4</version>
</dependency>
Supercell Clash of Clans Web API
<dependency>
<groupId>com.ibasco.agql</groupId>
<artifactId>agql-coc-webapi</artifactId>
<version>0.1.4</version>
</dependency>
Clone from remote repository then mvn install
. All of the modules will be installed to your local maven repository.
git clone https://github.com/ribasco/async-gamequery-lib.git
cd async-gamequery-lib
mvn install
For usage examples, please refer to the site docs.
To run the available examples, I have included a convenience script (run-example.sh
) that will allow you to pick a specific example you want to run.
The script accepts a "key" that represents an example application. To get a list of keys, simply invoke the script without arguments, for example:
raffy@spinmetal:~/projects/async-gamequery-lib$ ./run-example.sh
Error: Missing Example Key. Please specify the example key. (e.g. source-query)
====================================================================
List of available examples
====================================================================
- Source Server Query Example (key: source-query)
- Master Server Query Example (key: master-query)
- Source Rcon Example (key: source-rcon)
- Clash of Clans Web API Example (key: coc-webapi)
- CS:GO Web API Example (key: csgo-webapi)
- Steam Web API Example (key: steam-webapi)
- Steam Storefront Web API Example (key: steam-store-webapi)
- Source Log Listener Example (key: source-logger)
- Steam Econ Web API Example (key: steam-econ-webapi)
If you are running a web service type example, you will be prompted with an API key. Simply copy and paste the key to the console.
raffy@spinmetal:~/projects/async-gamequery-lib$ ./run-example.sh coc-webapi
Running example for coc-webapi
[INFO] Scanning for projects...
[INFO]
[INFO] ------------------------------------------------------------------------
[INFO] Building AGQL - Examples 0.1.4
[INFO] ------------------------------------------------------------------------
[INFO]
[INFO] --- exec-maven-plugin:1.5.0:java (default-cli) @ agql-lib-examples ---
19:59:25.659 [com.ibasco.agql.examples.base.ExampleRunner.main()] INFO com.ibasco.agql.examples.base.ExampleRunner - Running Example : coc-webapi
Please input your API Token:
Note:
- Don't forget to perform a
mvn clean install
before running an example - The output can be reviewed from the
logs
directory under the project's directory.
References you might find helpful regarding the implementations
- Valve Source RCON Protocol
- Valve Master Server Query Protocol
- Valve Source Query Protocol
- Valve TF2 Web API Wiki
- Valve Steam Web API
- Valve Steam Storefront API
- Clash of Clans Web API
- xPaw Steam Web API Documentation
My planned integrations for future releases. Don't hesitate to contact me if you have any other suggestions.
- Riot Games - League of Legends Web API
Fork it and submit a pull request. Any type of contributions are welcome.