teeworlds_network/examples/05_chatbot.rb
ChillerDragon fe3e581f86 Make client callbacks arrays
Allows to setup multiple on_* hook blocks as a lib user

closed #10
2022-11-14 10:25:28 +01:00

32 lines
830 B
Ruby
Executable file

#!/usr/bin/env ruby
# frozen_string_literal: true
# Reply to ! prefixed commands in chat
#
# ruby ./examples/05_chatbot.rb
#
# Then connect to localhost and write !ping in the chat
require_relative '../lib/teeworlds_client'
client = TeeworldsClient.new(verbose: false)
client.on_chat do |_, msg|
next if msg.message[0] != '!'
case msg.message[1..]
when 'ping' then client.send_chat('pong')
when 'whoami' then client.send_chat("You are: #{msg.author.name}")
when 'list' then client.send_chat(client.game_client.players.values.map(&:name).join(', '))
else client.send_chat('Unkown command! Commands: !ping, !whoami, !list')
end
end
# properly disconnect on ctrl+c
Signal.trap('INT') do
client.disconnect
end
# connect to localhost and block the current thread
client.connect('localhost', 8303, detach: false)