public interface EventWaiter
AudioNode
upon all the information being available.
This uses no sleep/wait logic, and so if Discord fails to send any information nothing bad will happen besides some angry developers.
Additionally, this waiter CANNOT be used again, so you must recreate it for every voice connection that utilizes it.
Further note that this waiter will only send Lavalink Voice Updates -- the actual Discord Voice State Update and the rate limiting for the events is still
something the end-user MUST implement to work properly.
Modifier and Type | Method and Description |
---|---|
static EventWaiter |
from(LavaClient client,
AudioNode node,
java.util.function.Consumer<AudioNode> callback,
long guild_id)
Creates a new EventWaiter object for an associated
AudioNode and Guild ID. |
static EventWaiter |
from(LavaClient client,
AudioNode node,
long guild_id)
Creates a new EventWaiter object for an associated
AudioNode and Guild ID. |
static EventWaiter |
from(LavaClient client,
java.util.function.Consumer<AudioNode> callback,
long guild_id)
Creates a new EventWaiter object using the best
AudioNode and provied Guild ID. |
static EventWaiter |
from(LavaClient client,
long guild_id)
Creates a new EventWaiter using the "best node" that has the least load on it and an associated Guild ID.
|
java.util.function.Consumer<AudioNode> |
getCallback()
Fetches the possibly-null callback used to execute code directly after a connection attempt while preserving order.
|
LavaClient |
getClient()
Fetches the
LavaClient instance specified during construction of this event waiter. |
java.lang.String |
getEndpoint()
Fetches the Voice Server Endpoint as set by the end-user.
|
long |
getGuildId()
Fetches the ID of the Guild to open an Audio Stream to, as specified by the end-user.
|
AudioNode |
getNode()
Fetches the not-null
AudioNode this EventWaiter will send an update to. |
java.lang.String |
getSessionId()
Fetches the Session ID as set by the end-user.
|
java.lang.String |
getToken()
Fetches the Voice Token (NOT the same as an Account Token) as set by the end-user.
|
void |
setServerAndTryConnect(java.lang.String token,
java.lang.String endpoint)
Sets the Voice Token and Endpoint, attempting to connect if the Session ID has also been set.
|
void |
setSessionIdAndTryConnect(java.lang.String session_id)
Sets the Session ID and tries to connect if both the Voice Token and Endpoint have also been set.
|
void |
tryConnect()
Attempts to connect to the provided
AudioNode regardless of current state. |
@Nonnull LavaClient getClient()
LavaClient
instance specified during construction of this event waiter.LavaClient
instance attached to this event waiter.@Nullable java.lang.String getSessionId()
'null'
at any given time.@Nullable java.lang.String getToken()
'null'
at any given time.@Nullable java.lang.String getEndpoint()
'null'
at any given time.@Nullable java.util.function.Consumer<AudioNode> getCallback()
@Nonnull AudioNode getNode()
AudioNode
this EventWaiter will send an update to.
LavaClient will automatically set this to the AudioNode
with the least load on it if the user does not provide a node to connect to.
AudioNode
this EventWaiter will send an update to.@Nonnegative long getGuildId()
void setSessionIdAndTryConnect(@Nonnull java.lang.String session_id)
Connecting will create or fetch a pre-existing LavaPlayer
instance which is then cached.
session_id
- The not-null Session ID to set.java.lang.NullPointerException
- If 'session_id'
is null
.void setServerAndTryConnect(@Nonnull java.lang.String token, @Nonnull java.lang.String endpoint)
Connecting will create or fetch a pre-existing LavaPlayer
instance which is then cached.
token
- The not-null Voice Token to set.endpoint
- The not-null Voice Server Endpoint to set.java.lang.NullPointerException
- If either 'token'
or 'endpoint'
are null
.void tryConnect()
AudioNode
regardless of current state.
The user should have absolutely no need to call this method at all. It's pretty dangerous.
java.lang.IllegalStateException
- If the created LavaPlayer
instance is null
or in the incorrect State
.@Nonnull static EventWaiter from(@Nonnull LavaClient client, @Nullable AudioNode node, @Nullable java.util.function.Consumer<AudioNode> callback, @Nonnegative long guild_id)
AudioNode
and Guild ID.
LavaClient will replace the node with the "best node" that has the least load on it if the node is null
.
This additionally allows a callback to be used once LavaClient attempts to send a Voice Update to Lavalink.
client
- The not-null LavaClient
instance used to get the best node.node
- The possibly-null AudioNode to connect to.callback
- The possibly-null callback to use right after LavaClient attempts to connect.guild_id
- The positive ID of the Guild to open an Audio Stream to.AudioNode
and Guild ID.java.lang.NullPointerException
- If the provided client was null
.java.lang.IllegalArgumentException
- If the provided Guild ID was negative.from(LavaClient, long)
,
from(LavaClient, AudioNode, long)
,
from(LavaClient, Consumer, long)
@Nonnull static EventWaiter from(@Nonnull LavaClient client, @Nullable AudioNode node, @Nonnegative long guild_id)
AudioNode
and Guild ID.
LavaClient will replace the node with the "best node" that has the least load on it if the node is null
.
client
- The not-null LavaClient
instance used to get the best node.node
- The possibly-null AudioNode to connect to.guild_id
- The positive ID of the Guild to open an Audio Stream to.AudioNode
and Guild ID.java.lang.NullPointerException
- If the provided client was null
.java.lang.IllegalArgumentException
- If the provided Guild ID was negative.from(LavaClient, long)
,
from(LavaClient, AudioNode, Consumer, long)
,
from(LavaClient, Consumer, long)
@Nonnull static EventWaiter from(@Nonnull LavaClient client, @Nonnegative long guild_id)
client
- The not-null LavaClient
instance used to get the best node.guild_id
- The positive ID of the Guild to open an Audio Stream to.AudioNode
that has the least load on it and the associated Guild ID.java.lang.NullPointerException
- If the provided client was null
.java.lang.IllegalArgumentException
- If the provided Guild ID was negative.from(LavaClient, AudioNode, Consumer, long)
,
from(LavaClient, AudioNode, long)
,
from(LavaClient, Consumer, long)
@Nonnull static EventWaiter from(@Nonnull LavaClient client, @Nullable java.util.function.Consumer<AudioNode> callback, @Nonnegative long guild_id)
AudioNode
and provied Guild ID.
LavaClient will replace the node with the "best node" that has the least load on it if the node is null
.
This additionally allows a callback to be used once LavaClient attempts to send a Voice Update to Lavalink.
client
- The not-null LavaClient
instance used to fetch the best node.callback
- The possibly-null callback to use right after LavaClient attempts to connect.guild_id
- The positive ID of the Guild to open an Audio Stream to.AudioNode
and Guild ID.java.lang.NullPointerException
- If the provided client was null
.java.lang.IllegalArgumentException
- If the provided Guild ID was negative.from(LavaClient, long)
,
from(LavaClient, AudioNode, long)
,
from(LavaClient, AudioNode, Consumer, long)