# API

{% hint style="warning" %}
To access API of our plugin, you should add it as dependency. For now you can do it only as local dependency. We'll show how to do it on Maven.
{% endhint %}

## Access to API

1. Open your project on any IDE (for example, **IntelliJ IDEA** by **JetBrains**)
2. Go to terminal page(Alt+F12 for Windows/Linux or ⌥(Option)+F12 for MacOS) and run following:

<pre><code><strong>mvn install:install-file -Dfile="pathToDiscordWhitelistJarFile.jar" -DgroupId="com.windstudio" -DartifactId="DiscordWhiteList" -Dversion="VERSION" -Dpackaging=jar -DgeneratePom=true
</strong></code></pre>

For example:

```
mvn install:install-file -Dfile="C:/DiscordWhiteList-24.3.jar" -DgroupId="com.windstudio" -DartifactId="DiscordWhiteList" -Dversion="24.3" -Dpackaging=jar -DgeneratePom=true
```

3. When build succeed, you can now use our plugin as dependency:

```xml
      <dependency>
          <groupId>com.windstudio</groupId>
          <artifactId>DiscordWhiteList</artifactId>
          <version>VERSION</version>
          <scope>system</scope>
          <systemPath>pathToDiscordWhitelistJarFile.jar</systemPath>
      </dependency>
```

## Plugin Events

<table><thead><tr><th width="369">Event</th><th width="211">Description</th><th>Returns</th></tr></thead><tbody><tr><td>UserWhitelistWelcomeMessageSentEvent</td><td>Called when Welcome Message send after user was whitelisted</td><td>GlobalChannel, WhitelistChannel, Member, Nickname</td></tr><tr><td>UserWhitelistedEvent</td><td>Called when user was whitelisted</td><td>Channel, Nickname, Member, Player</td></tr><tr><td>UserUnWhitelistedEvent</td><td>Called when user was un-whitelisted</td><td>Channel, Nickname, Member, Player</td></tr><tr><td>UserRoleRemoveEvent</td><td>Called when role from user was removed</td><td>Nickname, Member, Channel, Role</td></tr><tr><td>UserRoleAddEvent</td><td>Called when role was added to user</td><td>Nickname, Member, Channel, Role</td></tr><tr><td>UserNicknameReceivedEvent</td><td>Called when bot received nickname from user</td><td>Nickname, Member, Channel</td></tr><tr><td>UserNicknameChangedEvent</td><td>Called when plugin changes user's nickname</td><td>NewNickname, OldNickname, Member, Channel</td></tr><tr><td>UserDirectMessageSendEvent</td><td>Called when plugin send DM to user</td><td>Nickname, User, Channel</td></tr><tr><td>SlashCommandUsedEvent</td><td>Called when somebody used plugin's SlashCommand</td><td>Member, CommandName, CommandID</td></tr><tr><td>PluginStartupEvent</td><td>Called when plugin loaded</td><td>Plugin instance</td></tr><tr><td>PlayerQuitEvent</td><td>Called when player quit the server</td><td>Player</td></tr><tr><td>PlayerJoinEvent</td><td>Called when player join the server</td><td>Player</td></tr><tr><td>PlayerNotWhiteistedKickedEvent</td><td>Called when user got kicked (with EWHITELIST) if he not whitelisted</td><td>Player, Cause(NOT_WHITELISTED)</td></tr><tr><td>PlayerMaintenanceKickedEvent</td><td>Called when user got kicked (with EWHITELIST) if server is on service</td><td>Player, Cause(MAINTENANCE)</td></tr><tr><td>PlayerBlacklistedKickedEvent</td><td>Called when user got kicked (with EWHITELIST) if he blacklisted</td><td>Player, Cause(BLACKLISTED)</td></tr><tr><td>NicknameConfirmationMenuSendEvent</td><td>Called when confirmation menu to confirm nickname correctness send</td><td>Nickname, Member, Channel, Player</td></tr><tr><td>LogsSendEvent</td><td>Called when logs message was send</td><td>AdminChannel, <br>Cause(WHITELIST, LINK, CHECK)</td></tr><tr><td>InGameCommandUsedEvent</td><td>Called when command of plugin was used in-game</td><td>CommandName, Command, Sender</td></tr><tr><td>ErrorReceivedEvent</td><td>Called when plugin send almost all error messages</td><td>Nickname, Member, Channel, ErrorCause</td></tr><tr><td>DiscordLeftEvent</td><td>Called when somebody left from Discord server<br>and plugin detected this </td><td>Nickname, User<br>(in future will be improved)</td></tr><tr><td>ChannelWhitelistAttemptEvent</td><td>Called when plugin detected a whitelist attemp</td><td>Nickname, Member, Channel</td></tr><tr><td>BotPresenceEvent</td><td>Called when plugin forced bot to change his presence</td><td>ReadyEvent, SelfUser(Bot)</td></tr></tbody></table>


---

# Agent Instructions: Querying This Documentation

If you need additional information that is not directly available in this page, you can query the documentation dynamically by asking a question.

Perform an HTTP GET request on the current page URL with the `ask` query parameter:

```
GET https://windstudio.gitbook.io/discordwhitelist/developers/api.md?ask=<question>
```

The question should be specific, self-contained, and written in natural language.
The response will contain a direct answer to the question and relevant excerpts and sources from the documentation.

Use this mechanism when the answer is not explicitly present in the current page, you need clarification or additional context, or you want to retrieve related documentation sections.
