different api constructors
This commit is contained in:
parent
de088611e3
commit
39cf4f1691
@ -71,7 +71,7 @@ class UserApi:
|
||||
member = guild.get_member(self.user_id) or await guild.fetch_member(self.user_id)
|
||||
if member is None:
|
||||
raise UserApi.UnknownMember('unknown member of a guild')
|
||||
return GuildApi(self.pi, self.request, member)
|
||||
return GuildApi(self, member)
|
||||
|
||||
async def _operator_api(self) -> 'OperatorApi':
|
||||
if not self.pi.is_operator(self.user_id):
|
||||
@ -120,8 +120,8 @@ class GuildApi(UserApi):
|
||||
class VoiceNotConnected(Api.MisusedApi):
|
||||
pass
|
||||
|
||||
def __init__(self, api: Api, request: dict, member: discord.Member) -> None:
|
||||
super().__init__(api, request, member.id)
|
||||
def __init__(self, api: UserApi, member: discord.Member) -> None:
|
||||
super().__init__(api.pi, api.request, member.id)
|
||||
self.member = member
|
||||
self.guild = member.guild
|
||||
|
||||
@ -136,10 +136,10 @@ class GuildApi(UserApi):
|
||||
raise GuildApi.VoiceNotConnected('bot client user not initialised')
|
||||
if self.client.user.id not in channel.voice_states:
|
||||
raise GuildApi.VoiceNotConnected('bot not connected')
|
||||
return VoiceApi(self.pi, self.request, self.member, channel)
|
||||
return VoiceApi(self, channel)
|
||||
|
||||
def sub(self, request: dict) -> 'GuildApi':
|
||||
return GuildApi(self.pi, request, self.member)
|
||||
return GuildApi(super().sub(request), self.member)
|
||||
|
||||
async def _api(self) -> ResponseType:
|
||||
match self.request:
|
||||
@ -156,18 +156,18 @@ class GuildApi(UserApi):
|
||||
|
||||
class VoiceApi(GuildApi):
|
||||
def __init__(
|
||||
self, api: Api, request: dict, member: discord.Member, channel: discord.VoiceChannel | discord.StageChannel
|
||||
self, api: GuildApi, channel: discord.VoiceChannel | discord.StageChannel
|
||||
) -> None:
|
||||
super().__init__(api, request, member)
|
||||
super().__init__(api, api.member)
|
||||
self.channel = channel
|
||||
|
||||
async def _main_api(self) -> 'MainApi':
|
||||
vc = await raw_vc_for_member(self.member)
|
||||
main = await main_for_raw_vc(vc, create=False, force_play=False)
|
||||
return MainApi(self.pi, self.request, self.member, self.channel, vc, main)
|
||||
return MainApi(self, vc, main)
|
||||
|
||||
def sub(self, request: dict) -> 'VoiceApi':
|
||||
return VoiceApi(self.pi, request, self.member, self.channel)
|
||||
return VoiceApi(super().sub(request), self.channel)
|
||||
|
||||
async def _api(self) -> ResponseType:
|
||||
match self.request:
|
||||
@ -184,15 +184,14 @@ class VoiceApi(GuildApi):
|
||||
|
||||
class MainApi(VoiceApi):
|
||||
def __init__(
|
||||
self, api: Api, request: dict, member: discord.Member, channel: discord.VoiceChannel | discord.StageChannel,
|
||||
vc: discord.VoiceClient, main: MainAudio
|
||||
self, api: VoiceApi, vc: discord.VoiceClient, main: MainAudio
|
||||
) -> None:
|
||||
super().__init__(api, request, member, channel)
|
||||
super().__init__(api, api.channel)
|
||||
self.vc = vc
|
||||
self.main = main
|
||||
|
||||
def sub(self, request: dict) -> 'MainApi':
|
||||
return MainApi(self.pi, request, self.member, self.channel, self.vc, self.main)
|
||||
return MainApi(super().sub(request), self.vc, self.main)
|
||||
|
||||
async def _api(self) -> ResponseType:
|
||||
match self.request:
|
||||
|
Loading…
Reference in New Issue
Block a user