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