/DiscordWhitelisterSpigot

Spigot plugin that allows whitelisting users through a discord text channel.

Primary LanguageJavaMIT LicenseMIT

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:
       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.