DiscordWhitelisterSpigot/README.md

68 lines
4.1 KiB
Markdown
Executable File

# Discord Whitelister Bot for Spigot
A simple spigot plugin which allows whitelisting through a discord text channel. This provides an easy way for users to whitelist without needing to be on the minecraft server.
### Features:
- 3 separate role groups:
- **add-remove group**: allows the user to add and remove users from the whitelist an unlimited amount of times (recommended for owners and admins)
- **add group**: allows the user to add to the whitelist an unlimited amount of times (recommended for moderators)
- **limited-add group**: allows the user to whitelist a limited amount of times (recommended for users, default amount is 3)
- limited-add group can be disabled in the config (enabled by default)
- Removed list:
- This list removes the ability for limited-add users to add back users that have been removed by the add-remove group
- Can be disabled in the config (enabled by default)
- Discord commands:
- Use `/whitelist add "minecraftUsername"` in a valid channel to whitelist people on your minecraft server
- Use `/whitelist remove "minecraftUsername"` in a valid channel to remove people from the whitelist on your minecraft server
- Use `/whitelist` in a valid channel to get info about the bot and how to use it
- Custom Message Support:
- Allows editing of server response messages (file is located at `(server-root)/plugins/DiscordWhitelister/custom-messages.yml)`
- This feature is disabled by default and can be enabled in the config file (`use-custom-messages`)
- Note: Only message variables ({Sender} for example) in the original messages will be evaluated. For example: using {MaxWhitelistAmount} in the "insufficient-permissions" string/message will not work as it was never in the original string/message.
- Use Discord server/guild role ids instead of role names:
- Allows the use of ids of roles instead of names, for example: `445666895333687347` instead of `Admin`
- To enable this set '`use-id-for-roles`' to `true`
- Example of relevant fields changed in the config to use ids:
``` yaml
add-remove-roles:
- 446223693887176704
add-roles:
- 485463455940214794
limited-add-roles:
- 639221397981233162
use-id-for-roles: true
```
- Reload command:
- Use the command '`dwreload`' or '`discordwhitelisterreload`' to reload the config and re-initialize the bot without having to restart the Minecraft server
- Automatically add/remove a role when adding/removing to/from the whitelist
- This feature is meant to be used when users can add themselves to the whitelist.
- If `whitelisted-role-auto-add` is set to true (false by default), the Discord role with the name defined by `whitelisted-role` ("Whitelisted" by default) will be added to that user when they successfully add (themselves) to the whitelist.
- If `whitelisted-role-auto-remove` is set to true (false by default), that role will be removed from that user when they successfully remove (themselves) from the whitelist.
- This requires:
- The bot to have the `Manage Roles` permission in Discord
- Setting up a Discord role with the same name (case sensitive) as the config
- The bot's role must be higher than the whitelist role
- Only select Discord roles can whitelist through the bot
- Bot only listens for messages in select text channels
- Logs whitelist attempts from valid roles in the console
### Set Up:
Config file is located at: `(server-root)/plugins/DiscordWhitelister/discord-whitelister.yml`, **this needs a valid bot token and valid channel id(s) to work**.
To create a Discord application and/or find your discord bot token, follow this link: https://discordapp.com/developers/applications/
Here is a short video showing all the steps needed to configure the bot: https://youtu.be/OqaeItuLefU
### Backwards compatibility (Only applies to versions lower than v1.2.0)
Version 1.2.0 onwards are not compatible with version 1.1.x and lower. This is due to the layout of user-list.yml being changed. You will need to remove user-list.yml manually and let the plugin create a new one.
If you upgrade without doing so, registration will not work correctly.