PlayerAccessList
A plugin for managing server access with white and black lists
PlayerAccessList
🛡️ PlayerAccessList (PAL)
PlayerAccessList is a powerful and flexible access management system for your Minecraft server, providing whitelist and blacklist functionality.

✨ Features
* Multi-language support — The plugin can connect to external databases. * Multi-language support — Uses the modern formatting system from Adventure API. * Multi-language support — Most access checks are performed asynchronously. * Multi-language support — Allows copying data from the vanilla whitelist into the plugin database. * Multi-language support — Ability to log all actions to console or moderator chat. * Multi-language support — Configure custom access scenarios using Overrides. * Multi-language support — Several localization files are built in. Multi-language support * %%MD1%%
🚀 Commands
| Command | Aliases | Description | Permission | |-------|--------|-------------|------------| | `/whitelist` | `/wl, /whl` | Manage the whitelist | `pal.whitelist` | | `/blacklist` | `/bl, /bll` | Manage the blacklist | `pal.blacklist` | | `/pal` | `/playeraccess, /playeraccesslist` | Main plugin command (reload, migration) | `pal.admin` |
📈 bStats Analytics
View **PlayerAccessList on bStats**
Configurations
Main configuration:
```yaml
█████▄ ██ ▄████▄ ▄█████ ▄█████ ██ ██ ▄█████ ██████
██▄▄█▀ ██ ██▄▄██ ██ ██ ██ ██ ▀▀▀▄▄▄ ██
██ ██████ ██ ██ ▀█████ ▀█████ ██████ ██ █████▀ ██
#
» Support: https://dsc.gg/bytepl
#
⚠ Found a bug? Please contact support before leaving a low rating.
We value your trust and will help you quickly!
❤ Like the plugin? Leave a review, it's the best motivation.
Plugin prefix in messages. (placeholders: %prefix%)
prefix: 'EADFF&lPAL &8»&7'
Color code and text formatting mode.
All methods support HEX colors.
#
Options:
» LEGACY (Classic: &6, &#aabbcc)
» LEGACY_UPDATED (Extended: &6, &#aabbcc, <#aabbcc>)
» MINIMESSAGE (Tags: <red>, <gradient>)
serializer: "legacy"
Plugin localization (the corresponding file must be in the /lang/ folder)
#
Available localizations:
» ru (Russian) [By SuperCHIROK1]
» en (English) [By SuperCHIROK1]
#
Help us improve!
If you've made a high-quality translation into another language,
suggest it on our Discord server: https://dsc.gg/bytepl
language: en
Player data storage settings
database:
Database type.
It is recommended to change this while the server is offline.
#
Types:
sqlite - local file (recommended for small servers)
mysql - remote DB (recommended for server networks/BungeeCord)
type: "sqlite"
SQLite file name/path (will be created in the plugin folder)
sqlite_path: 'data.db'
MySQL connection parameters (used if type: mysql)
mysql: host: "0.0.0.0" # Database IP address port: 3306 # MySQL port username: "pal_user" # Database username password: "password" # User password database: "pal_db" # Created database name
Connection parameters string.
(if you are not sure what this is, we recommend leaving it as is)
args: "?useSSL=false&autoReconnect=true&characterEncoding=utf8"
Synchronization section for multiple servers (MySQL only)
polling:
Should the automatic cache update be enabled?
If you have multiple servers connected to the same DB,
this allows them to see changes made on other servers.
enabled: false
Update check interval (in seconds).
Lower values mean players can join faster after being added,
but the plugin will "query" the database more frequently.
Recommended: 30-60 seconds.
delay: 60 ```
access.yml:
```yaml
█████▄ ██ ▄████▄ ▄█████ ▄█████ ██ ██ ▄█████ ██████
██▄▄█▀ ██ ██▄▄██ ██ ██ ██ ██ ▀▀▀▄▄▄ ██
██ ██████ ██ ██ ▀█████ ▀█████ ██████ ██ █████▀ ██
#
» Support: https://dsc.gg/bytepl
#
⚠ Found a bug? Please contact support before leaving a low rating.
We value your trust and will help you quickly!
❤ Like the plugin? Leave a review, it's the best motivation.
whitelist:
Enable whitelist?
enabled: false
Kick message shown to the player.
kick_message: - '&cYou are not whitelisted on this server!' - '&7yourserver.net'
List of players who cannot be added to the whitelist.
cannot_be_added: - TestPlayer - player1234
blacklist:
Enable blacklist?
enabled: false
Kick message shown to the player.
kick_message: - '&cYou are blacklisted from this server!' - '&7yourserver.net'
List of players who cannot be added to the blacklist.
cannot_be_added: - TestPlayer - player1234
overrides:
Enable overrides system?
enabled: true
Override files. Must be located in the plugin folder.
You can add your own files here.
files: - 'overrides/overrides.yml'
nickname_check:
Enable nickname validation?
enabled: true
Kick message if the player's name doesn't match the standards.
kick_message: - '&cYour nickname does not meet the server standards!'
Regex pattern for nickname validation.
regex: '^[a-zA-Z0-9_]{3,16}$' ```
logging.yml:
```yaml
█████▄ ██ ▄████▄ ▄█████ ▄█████ ██ ██ ▄█████ ██████
██▄▄█▀ ██ ██▄▄██ ██ ██ ██ ██ ▀▀▀▄▄▄ ██
██ ██████ ██ ██ ▀█████ ▀█████ ██████ ██ █████▀ ██
#
» Support: https://dsc.gg/bytepl
#
⚠ Found a bug? Please contact support before leaving a low rating.
We value your trust and will help you quickly!
❤ Like the plugin? Leave a review, it's the best motivation.
moderator_log: true console_log: true
Type of message sent to moderators.
Options:
CHAT_MESSAGE - Chat message
ACTIONBAR - Actionbar message
message_type: CHAT_MESSAGE
Sound played to moderators.
Format: 'sound_id volume pitch'
sound: 'entity.item.pickup 1 0.2'
messages: whitelist: 'Player &f%player% (%ip%) &7tried to join, but they are not whitelisted.' blacklist: 'Player &f%player% (%ip%) &7tried to join, but they are blacklisted.' kick: 'Player &f%player% (%ip%) &7tried to join.' ```
overrides/overrides.yml:
```yaml ##
overrides:
<name>: (can be anything, it doesn't affect functionality)
enabled: <true|false> <- Enabled?
conditions: <- Conditions under which the player will be kicked from the server. (usage and list below)
- "list of conditions.."
kick: <- Kick message
- '&cYou have been kicked from the server'
##
List of conditions and their descriptions:
1. nickname: <nickname> - Checks the player's name.
Example: - 'nickname: Notch' (will kick the player with this nickname)
2. uuid: <id> - Checks the player's unique ID.
Example: - 'uuid: 069a79f4-44e9-4726-a5be-fca90e38aaf5'
3. ip: <address> - Checks the player's IP address.
Example: - 'ip: 127.0.0.1'
4. permission: <permission> - Checks for the presence of a permission node.
Example: - 'permission: group.guest' (will kick anyone who has this permission)
5. world: <world> - Checks which world the player is in.
Example: - 'world: world_nether' (will kick the player if they are in the nether)
Using the ! operator (NEGATION):
If you put ! before a condition, it will trigger for those who DO NOT match the description.
Example: - '!permission: server.vip' (will kick all who DO NOT have vip status)
Example configuration: (all are disabled by default)
overrides:
Check by player nickname.
nickname_check: enabled: false conditions: - 'nickname: BadPlayer' # Kick the player with the nickname BadPlayer kick: - '&cBad players are not allowed in!' - '&6server.net'
Check for the presence of a permission. (if they have it, let them in, otherwise kick)
The "negation" operator works here.
permission_check: enabled: false conditions: - '!permission: techwork.work' # Kick the player who does not have the "techwork.work" permission kick: - '&cServer is currently under maintenance.' - '&6server.net' ```