# VoiceClientState

Whether a player is running the SocketSVC client mod.

Source: https://socketsvc.vercel.app/api/shared/VoiceClientState
<Callout title="Generated from source">
  Enum `com.socketsvc.api.VoiceClientState` — generated from [VoiceClientState.java](https://github.com/HippoDev03/SocketSVC/blob/main/common/core/src/main/java/com/socketsvc/api/VoiceClientState.java). Edit the Javadoc in the Java source, then run `pnpm gen:api`.
</Callout>

```java
package com.socketsvc.api;

public enum VoiceClientState { ... }
```

Whether a player is running the SocketSVC client mod.

Three states rather than two, and the third is the one that matters. A client announces itself
by registering the plugin channel the handshake travels on, which happens shortly after they join
rather than at the instant they do - so for a moment after somebody arrives the honest answer is
that nobody knows yet. Collapsing that into "no" is how a check ends up kicking people who did
nothing wrong.

## Constants

| Constant | Description |
| --- | --- |
| `PRESENT` | They have the client mod: it registered the handshake channel. |
| `ABSENT` | They do not: the grace period has passed and nothing was registered. |
| `UNKNOWN` | Not yet known - they have only just joined, or they are not online at all. |

## Methods

### present

```java
public boolean present()
```