Added MumbleDJ class definition and run_bot.rb
This commit is contained in:
parent
617b99437b
commit
e51541352b
65
mumbledj/mumbledj.rb
Normal file
65
mumbledj/mumbledj.rb
Normal file
|
@ -0,0 +1,65 @@
|
|||
# MumbleDJ v2
|
||||
# By Matthieu Grieger
|
||||
|
||||
require "mumble-ruby"
|
||||
|
||||
# Class that defines MumbleDJ behavior.
|
||||
class MumbleDJ
|
||||
|
||||
# Initializes a new instance of MumbleDJ. The parameters are as follows:
|
||||
# username: Desired username of the Mumble bot
|
||||
# cert: Path to certificate file (if needed)
|
||||
# server_address: IP address/web address of Mumble server to connect to
|
||||
# server_port: Port number of Mumble server (generally 64738)
|
||||
# default_channel: The channel you would like the bot to connect to by
|
||||
# default. If the channel does not exist, the bot will connect to
|
||||
# the root channel of the server instead.
|
||||
def initialize(username, server_address, server_port=64738, default_channel="", password="", cert="")
|
||||
@username = username
|
||||
@password = password
|
||||
@cert = cert
|
||||
@server_address = server_address
|
||||
@server_port = server_port
|
||||
@default_channel = default_channel
|
||||
|
||||
Mumble.configure do |conf|
|
||||
conf.sample_rate = 48000
|
||||
conf.bitrate = 32000
|
||||
if @cert != ""
|
||||
conf.ssl_cert_opts[:cert_dir] = File.expand_path(@cert)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Connects to the Mumble server with the credentials specified in
|
||||
# initialize.
|
||||
def connect
|
||||
@client = Mumble::Client.new(@server_address) do |conf|
|
||||
conf.username = @username
|
||||
if @password != ""
|
||||
conf.password = @password
|
||||
end
|
||||
end
|
||||
|
||||
self.set_callbacks
|
||||
|
||||
@client.connect
|
||||
@client.on_connected do
|
||||
if @default_channel != ""
|
||||
@client.join_channel(@default_channel)
|
||||
end
|
||||
end
|
||||
end
|
||||
|
||||
# Sets various callbacks that can be triggered during the connection.
|
||||
def set_callbacks
|
||||
@client.on_text_message do |message|
|
||||
# TODO: Call message parser here
|
||||
end
|
||||
end
|
||||
|
||||
# Safely disconnects the bot from the server.
|
||||
def disconnect
|
||||
@client.disconnect
|
||||
end
|
||||
end
|
14
mumbledj/run_bot.rb
Normal file
14
mumbledj/run_bot.rb
Normal file
|
@ -0,0 +1,14 @@
|
|||
require_relative "mumbledj"
|
||||
require 'thread'
|
||||
|
||||
bot = MumbleDJ.new(username="MumbleDJ", server_address="localhost")
|
||||
bot.connect
|
||||
|
||||
begin
|
||||
t = Thread.new do
|
||||
$stdin.gets
|
||||
end
|
||||
|
||||
t.join
|
||||
rescue Interrupt => e
|
||||
end
|
Reference in a new issue