Beispiel #1
0
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,
    )
Beispiel #2
0
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,
        )
Beispiel #3
0
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))
Beispiel #4
0
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)
Beispiel #5
0
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)
Beispiel #6
0
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)
Beispiel #7
0
async def playing_as_slash(
    ctx: tanjun.abc.Context,
    lavalink: lavasnek_rs.Lavalink = tanjun.injected(type=lavasnek_rs.Lavalink),
) -> None:
    await _playing(ctx, lavalink)