async def on_voice_state_update( event: hikari.VoiceStateUpdateEvent, lavalink: lavasnek_rs.Lavalink = tanjun.injected( type=lavasnek_rs.Lavalink), ) -> None: """Passes voice state updates to lavalink.""" await lavalink.raw_handle_event_voice_state_update( event.state.guild_id, event.state.user_id, event.state.session_id, event.state.channel_id, )
async def on_voice_server_update( event: hikari.VoiceServerUpdateEvent, lavalink: lavasnek_rs.Lavalink = tanjun.injected( type=lavasnek_rs.Lavalink), ) -> None: """Passes voice server updates to lavalink.""" if event.endpoint is not None: await lavalink.raw_handle_event_voice_server_update( event.guild_id, event.endpoint, event.token, )
async def on_shard_ready( event: hikari.ShardReadyEvent, client_: tanjun.Client = tanjun.injected(type=tanjun.Client), ) -> None: """Event that triggers when the hikari gateway is ready.""" builder = ( lavasnek_rs.LavalinkBuilder(event.my_user.id, DISCORD_TOKEN).set_host( LAVALINK_HOST).set_password(LAVALINK_PASSWORD).set_port( int(LAVALINK_PORT)).set_start_gateway(False) # We set start gateway False because hikari can handle # voice events for us. ) # Here we add lavasnek_rs.Lavalink as a type dependency to the client # We will use this later to have access to it in all our commands client_.set_type_dependency(lavasnek_rs.Lavalink, await builder.build(EventHandler))
async def leave_as_slash( ctx: tanjun.abc.SlashContext, lavalink: lavasnek_rs.Lavalink = tanjun.injected( type=lavasnek_rs.Lavalink), ) -> None: await _leave_voice(ctx, lavalink)
async def stop_as_slash( ctx: tanjun.abc.SlashContext, lavalink: lavasnek_rs.Lavalink = tanjun.injected( type=lavasnek_rs.Lavalink), ) -> None: await _stop_playback(ctx, lavalink)
async def play_as_slash(ctx: tanjun.abc.SlashContext, song: str, lavalink: lavasnek_rs.Lavalink = tanjun.injected(type=lavasnek_rs.Lavalink)) -> None: await _play_track(ctx, song, lavalink)
async def playing_as_slash( ctx: tanjun.abc.Context, lavalink: lavasnek_rs.Lavalink = tanjun.injected(type=lavasnek_rs.Lavalink), ) -> None: await _playing(ctx, lavalink)