Add AudioServer capabilities
parent
abdd31d38e
commit
5c76361425
|
@ -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",
|
||||
|
|
|
@ -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
|
||||
|
|
|
@ -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
|
||||
|
|
Loading…
Reference in New Issue