Add AudioServer capabilities

master
Marrub 2017-08-09 00:03:18 -04:00
parent abdd31d38e
commit 5c76361425
3 changed files with 46 additions and 0 deletions

View File

@ -29,6 +29,7 @@ module Vrobot4::Server
end
def c_die m, argv
m.serv.voice_quit m if m.serv.flags.include? "A"
m.reply \
["STATUS: DYING",
"ded",

View File

@ -34,6 +34,7 @@ module Vrobot4::Server
attr_reader :mprm
def initialize info
@info = info
@modules = [Mod_Base.new]
load_permissions info["permissions"] if info.key? "permissions"
end
@ -92,6 +93,28 @@ module Vrobot4::Server
end
end
class AudioServer < Server
def voice_join m
raise NotImplementedError, "AudioServer::#voice_join not implemented"
end
def voice_quit m
raise NotImplementedError, "AudioServer::#voice_quit not implemented"
end
def play m, io
raise NotImplementedError, "AudioServer::#play not implemented"
end
def is_playing? m
raise NotImplementedError, "AudioServer::#is_playing? not implemented"
end
def flags
"A"
end
end
@@server_types = {}
def self.add_server_type t, name

View File

@ -57,6 +57,28 @@ class Sv_Discord < Vrobot4::Server::AudioServer
end
end
def voice_join m
chan = m.user.real.voice_channel
raise RuntimeError, "You're not in a voice channel" unless chan
@bot.voice_connect chan
end
def voice_quit m
@bot.voice_destroy m.chan.real.server.id
end
def play m, io
v = @bot.voice(m.chan.real)
raise ArgumentError, "Invalid i/o stream" unless io
raise RuntimeError, "I'm not in a voice channel" unless v
v.play_stream io
end
def is_playing? m
v = @bot.voice(m.chan.real)
v != nil and v.playing?
end
def connect
@bot.run
end