This commit is contained in:
root
2022-04-09 00:16:24 -05:00
parent df4875154a
commit aa6d8ef69e
238 changed files with 8848 additions and 1079 deletions

View File

@ -0,0 +1,42 @@
---
id: commandblocker
title: Command Blocker
---
# Introduction
Plex features an advanced command blocker with support for matching and RegEx statements. It is recommended that you use this only in conjunction with ranks. If you are using permissions, there is not as much of a need for a command blocker.
## Default file
```yaml title=/plugins/Plex/commands.yml
#
# Command Blocker
#
# Format:
# - "<regex or match>:<rank>:command name no slash:Block message"
#
# Symbols to use:
# - r for RegEx
# - m for matching
# - The ranks are "e" for everyone, "s" for senior admin, and "a" for admin
# - MATCHING MODE: The command is just the command without slashes. Optional arguments are specified as well. It also accepts full plugins via specifying the plugin name followed by a ":" (e.g. "viaversion:")
# - REGEX MODE: The command is regex that matches the desired command. It matches case insensitively.
# - Finally the block message. MUST NOT CONTAIN ":". Use _ to use the default command blocked message as specified in messages.yml, or you can optionally put your own in
#
# So these would be valid:
# - "m:e:mail sendall:You cannot send messages to everyone on the server"
# - "r:e:^[^ :]+::Plugin specific commands are disabled"
blockedCommands:
- "r:e:^[^ :]+::Plugin specific commands are disabled."
- "m:e:mail sendall:You cannot send messages to everyone on the server."
- "m:e:mail sendtempall:You cannot send messages to everyone on the server."
```
## The symbols
- `r` represents RegEx and `m` represents matching.
- The ranks are `e` to block for everyone, `a` to block for admins and above, and `s` to block for senior admins and above.
## The format
An example formatted entry in the `commands.yml` file would look like this:
`"m:e:mail sendall:You cannot send messages to everyone on the server"`
The `m` will match the `mail sendall` command. The `e` stands for everyone, so it will block this command for everyone. The last part is the message. If you use `_` as the blocked message, it will use the default message specified in `messages.yml`

View File

@ -33,14 +33,14 @@ chat:
# If you are using permissions, you should turn this off and use Vault to handle prefixes with a different chat plugin
enabled: true
# The maximum amount of characters a player can have for their tag
max-tag-length: 16
# This does not include color tags such as <red> or <rainbow>
max-tag-length: 64
# Color code for name color
name-color: 'f'
# Settings for commands relating to Plex
commands:
# Should Plex use a "true op" system with ranks or only permission nodes
permissions: ranks
# Should Plex use a "true op" system with ranks or only permission nodes
# Options are "permissions" or "ranks"
system: ranks
data:
central:
@ -57,26 +57,136 @@ data:
port: 6379
password: ""
# Mob limiter / Entity wiping config
# All entities listed here will NOT be wiped upon wiping entities
# By default this includes all mobs, as the mobpurge command can be used to purge mobs.
entitywipe_list:
- "ITEM_FRAME"
- "AXOLOTL"
- "BAT"
- "BEE"
- "BLAZE"
- "CAT"
- "CAVE_SPIDER"
- "CHICKEN"
- "COD"
- "COW"
- "CREEPER"
- "DOLPHIN"
- "DONKEY"
- "DROWNED"
- "ELDER_GUARDIAN"
- "ENDER_DRAGON"
- "ENDERMAN"
- "ENDERMITE"
- "EVOKER"
- "FOX"
- "GHAST"
- "GIANT"
- "GLOW_SQUID"
- "GOAT"
- "GUARDIAN"
- "HOGLIN"
- "HORSE"
- "HUSK"
- "ILLUSIONER"
- "IRON_GOLEM"
- "LLAMA"
- "MAGMA_CUBE"
- "MULE"
- "MUSHROOM_COW"
- "OCELOT"
- "PANDA"
- "PARROT"
- "PHANTOM"
- "PIG"
- "PIGLIN"
- "PIGLIN_BRUTE"
- "PILLAGER"
- "POLAR_BEAR"
- "RABBIT"
- "RAVAGER"
- "SALMON"
- "SHEEP"
- "SHULKER"
- "SILVERFISH"
- "SKELETON"
- "SKELETON_HORSE"
- "SLIME"
- "SNOWMAN"
- "SPIDER"
- "SQUID"
- "STRAY"
- "STRIDER"
- "TRADER_LLAMA"
- "TROPICAL_FISH"
- "TURTLE"
- "VEX"
- "VILLAGER"
- "VINDICATOR"
- "WANDERING_TRADER"
- "WITCH"
- "WITHER"
- "WITHER_SKELETON"
- "WOLF"
- "ZOGLIN"
- "ZOMBIE"
- "ZOMBIE_HORSE"
- "ZOMBIE_VILLAGER"
- "ZOMBIFIED_PIGLIN"
- "PUFFERFISH"
# Automatically wipe the specified entities
autowipe:
# Should we automatically wipe entities?
enabled: true
# How often, in seconds, to automatically wipe entities. Default is 5 minutes.
interval: 300
# Entities to automatically wipe
entities:
- "DROPPED_ITEM"
# Should we allow drops from players?
allowdrops: true
# What blocks should be blocked?
blockedBlocks:
- "SPAWNER"
- "STRUCTURE_BLOCK"
- "JIGSAW"
# What entities should be blocked?
blockedEntities:
- "WITHER"
- "ENDER_DRAGON"
- "MINECART_TNT"
# See https://plex.us.org/docs/customization/config#worlds for documentation
# These gamerules apply to all worlds on the server
global_gamerules:
- "doWeatherCycle;true"
- "doDaylightCycle;true"
- "doMobSpawning;false"
- "keepInventory;true"
- "doFireTick;false"
- "doMobLoot;false"
- "mobGriefing;false"
- "doTileDrops;false"
- "commandBlockOutput;false"
- "naturalRegeneration;true"
- "announceAdvancements;false"
- "showDeathMessages;false"
- "sendCommandFeedback;false"
worlds:
flatlands:
name: "Flatlands"
permission: "plex.world.flatlands"
noEdit: "&cYou can't edit this world!"
gameRules:
# The gamerules here override the global gamerules
- "doWeatherCycle;false"
- "doDaylightCycle;false"
- "doMobSpawning;false"
- "keepInventory;true"
- "doFireTick;false"
- "doMobLoot;false"
- "mobGriefing;false"
- "doTileDrops;false"
- "commandBlockOutput;false"
- "naturalRegeneration;true"
- "announceAdvancements;false"
- "showDeathMessages;false"
- "sendCommandFeedback;false"
parameters:
grass_block: 1
dirt: 32
@ -91,17 +201,6 @@ worlds:
gameRules:
- "doWeatherCycle;false"
- "doDaylightCycle;false"
- "doMobSpawning;false"
- "keepInventory;true"
- "doFireTick;false"
- "doMobLoot;false"
- "mobGriefing;false"
- "doTileDrops;false"
- "commandBlockOutput;false"
- "naturalRegeneration;true"
- "announceAdvancements;false"
- "showDeathMessages;false"
- "sendCommandFeedback;false"
parameters:
grass_block: 1
dirt: 32
@ -116,23 +215,15 @@ worlds:
gameRules:
- "doWeatherCycle;false"
- "doDaylightCycle;false"
- "doMobSpawning;false"
- "keepInventory;true"
- "doFireTick;false"
- "doMobLoot;false"
- "mobGriefing;false"
- "doTileDrops;false"
- "commandBlockOutput;false"
- "naturalRegeneration;true"
- "announceAdvancements;false"
- "showDeathMessages;false"
- "sendCommandFeedback;false"
parameters:
grass_block: 1
dirt: 32
stone: 16
bedrock: 1
# What branch should Plex fetch updates from?
update_branch: master
# Additional logging for debugging
debug: false
```
@ -155,31 +246,31 @@ A list of players who will show up as a masterbuilder.
A list of players who will show up as an owner.
## Banning
### banning.message
This message will appear whenever a player tries to join the server, but is banned. You can use any color coding you would like here.
### ban_url
The URL to be used when a player sees the ban message. The full ban message can be changed in `messages.yml`.
## Chat
### chat.enabled
Default: `true`
**Default:** `true`
Determines if the chat system should be enabled. It's useful to turn this off if you're using permissions and want to use prefixes from another plugin instead.
### chat.max_tag_length
Default: `16`
**Default:** `64`
The maximum length a tag may be in game.
### chat.name-color
Default: `f`
**Default:** `f`
The default color a tag should be if a player doesn't specify any colors.
## Commands
### comamnds.permissions
## System
### system
**Options:** `ranks` or `permissions`
This determines how Plex's command system works. If `ranks` is selected, Plex will use a ranking system and give all players operator status. If `permissions` is selected, no players are given operator. Instead, every command will have a permission attached to it which can be assigned in any permission system.
## Data
### data.central.storage
**Options**: `sqlite`, `mariadb`, `mongodb`
**Options:** `sqlite`, `mariadb`, `mongodb`
Select which database software you would like to use. `sqlite` is the default. Note that if you change which data storage you use, no data will be transferred.
@ -199,12 +290,12 @@ This is the port for whichever database software you use. Note that `sqlite` doe
This is the name for whichever database software you use. Note that `sqlite` does not require a name.
### data.side.enabled
**Options**: `true` / `false`
**Options:** `true` / `false`
This will enable Plex's Redis functionality.
### data.side.auth
**Options**: `true` / `false`
**Options:** `true` / `false`
This is whether authentication mode for Redis is turned on or not.
@ -221,6 +312,36 @@ This is the port that Redis is listening on. This is requird for Redis to work.
### data.side.password
This is the password for your Redis instance. Note that this can be left blank if authentication is turned off.
## Entity wiping
### entitywipe_list
All items in the list will not be wiped. By default, this includes all mobs as these can be purged with the `mobpurge` command.
## Autowiping
### autowipe.enabled
**Options:** `true` / `false`
Should autowiping be enabled?
### autowipe.interval
**Default:** 300
How often, in seconds, to automatically wipe entities. Default is 5 minutes.
### autowipe.entities
A list of entities to automatically wipe.
### allowdrops
**Options:** `true` / `false`
Should drops be allowed at all?
## Blocking
### blockedBlocks
A list of blocks that should be blocked.
### blockedEntities
A list of entities that should be blocked.
## Global gamerules
### global_gamerules
These gamerules apply to all worlds on the server. Gamerules in the generated worlds will override the global gamerules.
## Worlds
An infinite amount of worlds can be generated from the configuration file. A few are automatically generated by default. The format for generating new worlds is as follows:
@ -234,17 +355,6 @@ An infinite amount of worlds can be generated from the configuration file. A few
gameRules:
- "doWeatherCycle;false"
- "doDaylightCycle;false"
- "doMobSpawning;false"
- "keepInventory;true"
- "doFireTick;false"
- "doMobLoot;false"
- "mobGriefing;false"
- "doTileDrops;false"
- "commandBlockOutput;false"
- "naturalRegeneration;true"
- "announceAdvancements;false"
- "showDeathMessages;false"
- "sendCommandFeedback;false"
parameters:
grass_block: 1
dirt: 32
@ -257,6 +367,10 @@ For a list of Ranks and Titles, you can refer to the Javadocs: [Ranks](https://d
The gamerule section is what gamerules are set for the world by default. The syntax is the official gamerule name, a semicolon, and either `true` or `false`.
## Updates
update_branch
The branch to use for update checking.
## Debugging
**Options:** `true` / `false`

View File

@ -16,103 +16,107 @@ The default `messages.yml` file is below.
# Messages in here will be placed in for certain commands, actions, etc.
# Warning: not all commands have customizable messages
# Variables <v> - these are code-defined replacements for things that should be inserted into messages. (e.g. names, statuses, numbers)
# Variables {number} - these are code-defined replacements for things that should be inserted into messages. (e.g. names, statuses, numbers)
# If any of these variables are supposed to be used within a message, some documentation is provided to give more context to what the variables indicate.
# You are unable to change the order the variables are used due to it being a code-side functionality.
# If you are wishing to change these messages it's recommended you use the same amount of variables as stated in the documentation, however it's not required.
# 1. Appeal URL
# 2. Reason
# 3. Expiry
# 4. Punisher
banMessage: "<red>You have been banned! You may appeal at <gold><v>.\n<red>Reason: <gold><v>\n<red>End date: <gold><v>\n<red>Banned by: <gold><v>"
# The type of indefinite ban
# Appeal URL
indefBanMessage: "<red>Your <v> is indefinitely banned! You may appeal at <gold><v>."
# 0 - Appeal URL
# 1 - Reason
# 2 - Expiry
# 3 - Punisher
banMessage: "<red>You have been banned! You may appeal at <gold>{0}.\n<red>Reason: <gold>{1}\n<red>End date: <gold>{2}\n<red>Banned by: <gold>{3}"
# 0 - The type of indefinite ban
# 1 - Appeal URL
indefBanMessage: "<red>Your {0} is indefinitely banned! You may appeal at <gold>{1}."
playerNotFound: "<red>Player not found!"
worldNotFound: "<red>World not found!"
# 1. The world you have been teleported to
playerWorldTeleport: "<aqua>You have been teleported to <v>."
# 1. The sender who opped everyone
oppedAllPlayers: "<aqua><v> - Opped all players on the server"
# 1. The sender who de-opped everyone
deoppedAllPlayers: "<aqua><v> - De-opped all players on the server"
# 1. The person who is opping
# 2. The person who has been opped
oppedPlayer: "<aqua><v> - Opped <v>"
# 1. The person who is deopped
# 2. The person who has been deopped
deoppedPlayer: "<red><v> - Deopped <v>"
# 1. The person who is freezing
# 2. The person who has been frozen
frozePlayer: "<red><v> - Froze <v>"
# 1. The person who is unfreezing
# 2. The person who has been unfrozen
unfrozePlayer: "<aqua><v> - Unfroze <v>"
# 1. The command sender
# 2. The person who has been muted
mutedPlayer: "<red><v> - Muted <v>"
# 1. The command sender
# 2. The person who has been unmuted
unmutedPlayer: "<aqua><v> - Unmuted <v>"
# 1. The person who is locking up
# 2. The person who has been locked up
lockedUpPlayer: "<aqua><v> - Locking up <v>"
# 1. The person who is unlocking
# 2. The person who has been unlocked
unlockedPlayer: "<aqua><v> - Unlocking <v>"
# 1. The rank required to use the command
noPermissionRank: "<red>You must be at least <v> <red>to use this command!"
# 1. The permission node required to use the command
noPermissionNode: "<red>You must have the permission: <v> <red>to use this command!"
# 0 - The world you have been teleported to
playerWorldTeleport: "<aqua>You have been teleported to {0}."
# 0 - The sender who opped everyone
oppedAllPlayers: "<aqua>{0} - Opped all players on the server"
# 0 - The sender who de-opped everyone
deoppedAllPlayers: "<aqua>{0} - De-opped all players on the server"
# 0 - The person who is opping
# 1 - The person who has been opped
oppedPlayer: "<aqua>{0} - Opped {1}"
# 0 - The person who is deopped
# 1 - The person who has been deopped
deoppedPlayer: "<red>{0} - Deopped {1}"
# 0 - The person who is freezing
# 1 - The person who has been frozen
frozePlayer: "<red>{0} - Froze {1}"
# 0 - The person who is unfreezing
# 1 - The person who has been unfrozen
unfrozePlayer: "<aqua>{0} - Unfroze {1}"
# 0 - The command sender
# 1 - The person who has been muted
mutedPlayer: "<red>{0} - Muted {1}"
# 0 - The command sender
# 1 - The person who has been unmuted
unmutedPlayer: "<aqua>{0} - Unmuted {1}"
# 0 - The person who is locking up
# 1 - The person who has been locked up
lockedUpPlayer: "<aqua>{0} - Locking up {1}"
# 0 - The person who is unlocking
# 1 - The person who has been unlocked
unlockedPlayer: "<aqua>{0} - Unlocking {1}"
# 0 - The rank required to use the command
noPermissionRank: "<red>You must be at least {0} <red>to use this command!"
# 0 - The permission node required to use the command
noPermissionNode: "<red>You must have the permission: {0} <red>to use this command!"
noPermissionInGame: "<red>You must be in console to use this command!"
noPermissionConsole: "<red>You must be in-game to use this command!"
# 1. The username of the name history
nameHistoryTitle: "<gold>Name History of <v>"
# 0 - The username of the name history
nameHistoryTitle: "<gold>Name History of {0}"
nameHistorySeparator: "<gold><strikethrough>-----------------------------"
# 1. The name
# 2. The date and time of the name change
nameHistoryBody: "<gold><v> <dark_gray>- <gold><v>"
# 1. The gamemode
gameModeSetTo: "<gray>Your gamemode has been set to <v>."
# 1. The player's name
# 2. The gamemode
setOtherPlayerGameModeTo: "<gray>You set <v>'s gamemode to <v>."
# 1. The command sender
# 2. The gamemode
playerSetOtherGameMode: "<gray><v> set your gamemode to <v>."
# 1. The command sender
# 2. The gamemode
setEveryoneGameMode: "<aqua><v> - Changing everyone's gamemode to <v>"
# 0 - The name
# 1 - The date and time of the name change
nameHistoryBody: "<gold>{0} <dark_gray>- <gold>{1}"
# 0 - The gamemode
gameModeSetTo: "<gray>Your gamemode has been set to {0}."
# 0 - The player's name
# 1 - The gamemode
setOtherPlayerGameModeTo: "<gray>You set {0}'s gamemode to {1}."
# 0 - The command sender
# 1 - The gamemode
playerSetOtherGameMode: "<gray>{0} set your gamemode to {1}."
# 0 - The command sender
# 1 - The gamemode
setEveryoneGameMode: "<aqua>{0} - Changing everyone's gamemode to {1}"
consoleMustDefinePlayer: "<red>You must define a player since you are running this command from console."
# 1. The command sender
# 2. The player
newAdminAdded: "<aqua><v> - Adding <v> to the admin list"
# 1. The command sender
# 2. The player
adminRemoved: "<red><v> - Removing <v> from the admin list"
# 1. The command sender
# 2. The player
adminSetRank: "<aqua><v> - Setting <v>'s rank to <v>"
# The world name
teleportedToWorld: "<aqua>You have been teleported to the <v>."
higherRankThanYou: "<red>This player is an admin and a higher rank than you."
# 0 - The command sender
# 1 - The player
newAdminAdded: "<aqua>{0} - Adding {1} to the admin list"
# 0 - The command sender
# 1 - The player
# 2 - The rank name
adminReadded: "<aqua>{0} - Re-adding {1} to the admin list as rank: {2}"
# 0 - The command sender
# 1 - The player
adminRemoved: "<red>{0} - Removing {1} from the admin list"
# 0 - The command sender
# 1 - The player
# 2 - The rank
adminSetRank: "<aqua>{0} - Setting {1}'s rank to {2}"
# 0 - The world name
teleportedToWorld: "<aqua>You have been teleported to the {0}."
higherRankThanYou: "<red>This player is an admin or a higher rank than you."
playerNotAdmin: "<red>That player is not an admin."
playerIsAdmin: "<red>That player is already an admin."
rankNotFound: "<red>The rank you entered was not found."
rankMustBeHigherThanAdmin: "<red>The rank you entered must be higher than Admin."
consoleOnly: "<red>This command can only be executed by the console."
# 1. Rank
yourRank: "<aqua>Your rank is: <v>"
# 1. Player name
# 2. Rank
otherRank: "<aqua><v>'s rank is: <v>"
# 1. The command sender
# 2. The player
banningPlayer: "<red><v> - Banning <v>"
# 1. The command sender
# 2. The player
unbanningPlayer: "<aqua><v> - Unbanning <v>"
# 0 - Rank
yourRank: "<aqua>Your rank is: {0}"
# 0 - Player name
# 1 - Rank
otherRank: "<aqua>{0}'s rank is: {1}"
# 0 - The command sender
# 1 - The player
banningPlayer: "<red>{0} - Banning {1}"
# 0 - The command sender
# 1 - The player
unbanningPlayer: "<aqua>{0} - Unbanning {1}"
playerNotBanned: "<red>That player is not banned!"
playerNotFrozen: "<red>That player is not frozen!"
playerNotMuted: "<red>That player is not muted!"
@ -121,16 +125,61 @@ playerFrozen: "<red>That player is already frozen!"
playerMuted: "<red>That player is already muted!"
playerLockedUp: "<red>That player is already locked up!"
muted: "<red>You are currently muted - STFU!"
kickedPlayer: "<red><v> - Kicking <v>"
# 0 - The command sender
# 1 - The player
kickedPlayer: "<red>{0} - Kicking {1}"
teleportedToWorldSpawn: "<aqua>Teleporting to the local spawn"
toggleCommandSpy: "<gray>CommandSpy has been"
enabled: "<gray>enabled."
disabled: "<gray>disabled."
adminChatFormat: '<dark_gray>[<blue>AdminChat<dark_gray>] <dark_red><v> <gray>» <gold><v>'
maximumPrefixLength: "<red>The maximum length for a tag may only be <v>."
# 0 - The admin / staff member
# 1 - The message
adminChatFormat: '<dark_gray>[<blue>AdminChat<dark_gray>] <dark_red>{0} <gray>» <gold>{1}'
# 0 - Maximum length, configured in config.yml
maximumPrefixLength: "<red>The maximum length for a tag may only be {0}."
prefixCleared: "<aqua>Your prefix has been cleared."
otherPrefixCleared: "<aqua>You have cleared <v>'s prefix."
prefixSetTo: "<aqua>Your prefix has been set to <v>"
# 0 - The player name
otherPrefixCleared: "<aqua>You have cleared {0}'s prefix."
# 0 - The new prefix
prefixSetTo: "<aqua>Your prefix has been set to {0}"
# 0 - The amount of players whose edits are blocked
blockedEditsSize: "Blocked block modification abilities for {0} players."
# 0 - The amount of players whose edits are unblocked
unblockedEditsSize: "Unblocked all block modification abilities for {0} players."
# 0 - The command sender
# 1 - The player name
blockingEditFor: "<red>{0} - Blocking block modification abilities for {1}"
# 0 - The command sender
# 1 - The player name
unblockingEditFor: "<aqua>{0} - Unblocking block modification abilities for {1}"
yourEditsHaveBeenBlocked: "<gray>Your block modification abilities have been blocked."
yourEditsHaveBeenUnblocked: "<gray>Your block modification abilities have been restored."
# 0 - The player name
editsBlocked: "<gray>Blocked block modification abilities for {0}"
# 0 - The player name
editsUnblocked: "<gray>Unblocked block modification abilities for {0}"
# 0 - The command sender
# 1 - Number of entities removed
removedEntities: "<red>{0} - Removed {1} entities"
# 0 - The command sender
# 1 - Number of entities removed
# 2 - Entity type(s) removed
removedEntitiesOfTypes: "<red>{0} - Removed {1} entities of type(s) {2}"
# 0 - The command sender
# 1 - Number of entities removed
# 2 - Entity type removed
removedEntitiesOfType: "<gray>Removed {1} {2}"
# 0 - Entity type that is invalid
invalidEntityType: "<gray>Notice: Entity type {0} is invalid!"
noRemovedEntities: "<gray>No entities were removed."
# 0 - The command sender
# 1 - Number of mobs removed
removedMobs: "<red>{0} - Removed {1} mobs"
autoWipeDisabled: "<gray>Item wiping is currently disabled in the config!"
allowDropsDisabled: "<gray>No longer allowing drops from players."
allowDropsEnabled: "<gray>Now allowing drops from players."
blockedCommandColor: "<gray>"
commandBlocked: "That command is blocked."
```
## MiniMessage