Add AudioServer capabilities
parent
abdd31d38e
commit
5c76361425
|
@ -29,6 +29,7 @@ module Vrobot4::Server
|
||||||
end
|
end
|
||||||
|
|
||||||
def c_die m, argv
|
def c_die m, argv
|
||||||
|
m.serv.voice_quit m if m.serv.flags.include? "A"
|
||||||
m.reply \
|
m.reply \
|
||||||
["STATUS: DYING",
|
["STATUS: DYING",
|
||||||
"ded",
|
"ded",
|
||||||
|
|
|
@ -34,6 +34,7 @@ module Vrobot4::Server
|
||||||
attr_reader :mprm
|
attr_reader :mprm
|
||||||
|
|
||||||
def initialize info
|
def initialize info
|
||||||
|
@info = info
|
||||||
@modules = [Mod_Base.new]
|
@modules = [Mod_Base.new]
|
||||||
load_permissions info["permissions"] if info.key? "permissions"
|
load_permissions info["permissions"] if info.key? "permissions"
|
||||||
end
|
end
|
||||||
|
@ -92,6 +93,28 @@ module Vrobot4::Server
|
||||||
end
|
end
|
||||||
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 = {}
|
@@server_types = {}
|
||||||
|
|
||||||
def self.add_server_type t, name
|
def self.add_server_type t, name
|
||||||
|
|
|
@ -57,6 +57,28 @@ class Sv_Discord < Vrobot4::Server::AudioServer
|
||||||
end
|
end
|
||||||
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
|
def connect
|
||||||
@bot.run
|
@bot.run
|
||||||
end
|
end
|
||||||
|
|
Loading…
Reference in New Issue