Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/amineo/t2_server_query_elixir

Query a Tribes 2 server using Elixir!
https://github.com/amineo/t2_server_query_elixir

elixir tribes2 tribesnext udp

Last synced: about 2 months ago
JSON representation

Query a Tribes 2 server using Elixir!

Awesome Lists containing this project

README

        

# T2ServerQuery

Querying a Tribes 2 server actually requires sending 2 different packets to the server where the first byte is denoting the type of information we're asking for. The first is called the `info` packet which doesnt contain much more then the server name. The second is called the `status` packet which contains all the meat and potatoes.

The `T2ServerQuery.query/3` function makes requests for both `info` and `status` and combines them into a single response for easy consumption.

## Installation

The package can be installed by adding `t2_server_query` to your list of dependencies in `mix.exs`:

```elixir
def deps do
[
{:t2_server_query, "~> 0.1.3"}
]
end
```

## Usage

```elixir
# T2ServerQuery.query("35.239.88.241", port // 28_000, timeout // 3_500)
T2ServerQuery.query("35.239.88.241")

{:ok,
%T2ServerQuery.QueryResult{
bot_count: 0,
game_type: "Classic",
map_name: "Canker",
max_player_count: 64,
mission_type: "LakRabbit",
player_count: 0,
players: [%{}],
server_description: "Celebrating 20 Years of Tribes2! More information in Discord. playt2.com/discord",
server_name: "Discord PUB",
server_status: :online,
team_count: 1,
teams: [%{name: "Storm", score: 0}]
}}
```

## Docs
The docs can be found at [https://hexdocs.pm/t2_server_query](https://hexdocs.pm/t2_server_query).

Documentation has been generated with [ExDoc](https://github.com/elixir-lang/ex_doc)
and published on [HexDocs](https://hexdocs.pm).