# 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>
