teeworlds_network/README.md

98 lines
2.1 KiB
Markdown
Raw Normal View History

2022-10-25 12:07:56 +00:00
# teeworlds-client
A teeworlds 0.7 client library written in ruby
2022-11-01 13:25:56 +00:00
2022-11-04 12:22:29 +00:00
## Simple chat printing client
2022-11-01 13:25:56 +00:00
```ruby
require_relative 'lib/teeworlds-client'
2022-11-04 15:26:24 +00:00
client = TeeworldsClient.new(verbose: false)
2022-11-01 13:25:56 +00:00
2022-11-04 12:22:29 +00:00
# print all incoming chat messages
2022-11-04 15:26:24 +00:00
# the variable `msg` holds an instance of the class `ChatMessage` which has the following fields
#
# msg.mode
# msg.client_id
# msg.target_id
# msg.message
# msg.author.id
# msg.author.team
# msg.author.name
# msg.author.clan
2022-11-01 13:25:56 +00:00
client.hook_chat do |msg|
2022-11-04 15:26:24 +00:00
puts "[chat] #{msg}"
2022-11-01 13:25:56 +00:00
end
2022-11-04 12:22:29 +00:00
# properly disconnect on ctrl+c
2022-11-04 12:07:34 +00:00
Signal.trap('INT') do
client.disconnect
end
2022-11-04 12:22:29 +00:00
# connect to localhost and block the current thread
client.connect('localhost', 8303, detach: false)
```
## Print all network traffic
```ruby
require_relative 'lib/teeworlds-client'
2022-11-04 15:26:24 +00:00
client = TeeworldsClient.new(verbose: true)
2022-11-04 12:22:29 +00:00
# connect to localhost and block the current thread
client.connect('localhost', 8303, detach: false)
```
## Detach client (do not block the main thread)
```ruby
require_relative 'lib/teeworlds-client'
2022-11-04 15:26:24 +00:00
client = TeeworldsClient.new(verbose: true)
2022-11-04 12:22:29 +00:00
# connect to localhost and detach a background thread
client.connect('localhost', 8303, detach: true)
loop do
# send a chat message every 5 seconds
sleep 5
client.send_chat('hello friends!')
end
```
## Set custom skin and other player infos
```ruby
require_relative 'lib/teeworlds-client'
2022-11-04 15:26:24 +00:00
client = TeeworldsClient.new(verbose: true)
2022-11-04 12:22:29 +00:00
# all keys are optional
# if not provided they will fall back to the default value
client.set_startinfo(
name: "ruby gamer",
clan: "",
country: -1,
body: "spiky",
marking: "duodonny",
decoration: "",
hands: "standard",
feet: "standard",
eyes: "standard",
custom_color_body: 0,
custom_color_marking: 0,
custom_color_decoration: 0,
custom_color_hands: 0,
custom_color_feet: 0,
custom_color_eyes: 0,
color_body: 0,
color_marking: 0,
color_decoration: 0,
color_hands: 0,
color_feet: 0,
color_eyes: 0)
# connect to localhost and block the current thread
client.connect('localhost', 8303, detach: false)
2022-11-01 13:25:56 +00:00
```