PlayerAccessList
A plugin for managing server access with white and black lists
Quick challenge
How far can you run before the mobs catch you?
Minecraft check
Confirm your run
Complete the quick check to get your code.
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' ```