diff --git a/docs/customization/config.md b/docs/customization/config.md index 9f0bd16..132fd10 100644 --- a/docs/customization/config.md +++ b/docs/customization/config.md @@ -10,7 +10,7 @@ This page will show you how to modify the configuration file. The configuration Below is the default `config.yml` file when Plex is loaded for the first time. ```yaml title=/plugins/Plex/config.yml # Plex Configuration File -# For documentation, please visit: https://docs.plex.us.org +# For documentation, please visit: https://plex.us.org server: name: "Plexus" @@ -21,15 +21,14 @@ server: # What timezone should various messages appear in (e.g. ban message end date) timezone: Etc/UTC -titles: - masterbuilders: [ ] - owners: - - Telesphoreo - # Ban message is customized in the messages.yml file. The URL to appeal at is below. banning: ban_url: "https://forum.plex.us.org" +punishments: + mute-timer: 300 + freeze-timer: 300 + chat: # Should the server use Plex's chat system? It is recommended to keep this on if you are using ranks. # If you are using permissions, you should turn this off and use Vault to handle prefixes with a different chat plugin @@ -40,14 +39,21 @@ chat: # Color tag for name color name-color: '' -# Should Plex use a "true op" system with ranks or only permission nodes -# Options are "permissions" or "ranks" -# NOTE: If you are using a proxy such as BungeeCord or Velocity, it is highly recommended to use permissions -system: ranks +# You can define colors for each group which will appear in the tab list +colors: + admin: '' + senior: '' + executive: '' + masterbuilder: '' + +# Login Messages +loginmessages: + # Should the player be required to put their name in the login message? + name: true data: central: - storage: sqlite # Use mariadb, mongodb, or sqlite here + storage: sqlite # Use mariadb, or sqlite here user: "" password: "" hostname: 127.0.0.1 @@ -161,6 +167,15 @@ blocked_entities: - "ENDER_DRAGON" - "MINECART_TNT" +# Limit entities per chunk +entity_limit: + # Is the mob limit enabled? + mob_limit_enabled: true + # The maximum number of mobs allowed in a chunk + max_mobs_per_chunk: 50 + # The available ceiling for the maximum number of mobs + mob_limit_ceiling: 500 + # See https://docs.plex.us.org/docs/customization/config#worlds for documentation # These gamerules apply to all worlds on the server global_gamerules: @@ -197,15 +212,9 @@ worlds: name: "Admin World" entry: permission: "plex.world.adminworld.enter" - # Minimum rank requirement - requiredLevels: - - "Rank.ADMIN" message: "You do not have permission to enter this world." modification: permission: "plex.world.adminworld.modify" - # Minimum rank requirement - requiredLevels: - - "Rank.ADMIN" message: "You do not have permission to modify this world." gameRules: - "doWeatherCycle;false" @@ -219,14 +228,9 @@ worlds: name: "MasterBuilder World" entry: permission: "plex.world.masterbuilderworld.enter" - requiredLevels: - - "Rank.OP" message: "You do not have permission to enter this world." modification: permission: "plex.world.masterbuilderworld.modify" - requiredLevels: - # Title has no "minimum", so this will have to be their title - - "Title.MASTER_BUILDER" message: "You do not have permission to modify this world." gameRules: - "doWeatherCycle;false" diff --git a/docs/customization/messages.md b/docs/customization/messages.md index b18f5af..8faf84c 100644 --- a/docs/customization/messages.md +++ b/docs/customization/messages.md @@ -25,24 +25,23 @@ The default `messages.yml` file is below. # 2 - Expiry # 3 - Punisher banMessage: "You have been banned! You may appeal at {0}.\nReason: {1}\nEnd date: {2}\nBanned by: {3}" +# 0 - Reason +# 1 - Punisher +kickMessage: "You have been kicked! \nReason: {0}\nKicked by: {1}" # 0 - The type of indefinite ban # 1 - Appeal URL indefBanMessage: "Your {0} is indefinitely banned! You may appeal at {1}." +# 0 - The type of indefinite ban +# 1 - Appeal URL +# 2 - The reason +indefBanMessageReason: "Your {0} is indefinitely banned! You may appeal at {1}.\nReason: {2}" playerNotFound: "Player not found!" specifyPlayer: "You must specify a player!" worldNotFound: "World not found!" +# This will always be used for punishments where the sanctioning administrator has not provided a reason. Will ignore MiniMessage tags. +noReasonProvided: "No reason provided." # 0 - The world you have been teleported to playerWorldTeleport: "You have been teleported to {0}." -# 0 - The sender who opped everyone -oppedAllPlayers: "{0} - Opped all players on the server" -# 0 - The sender who de-opped everyone -deoppedAllPlayers: "{0} - De-opped all players on the server" -# 0 - The person who is opping -# 1 - The person who has been opped -oppedPlayer: "{0} - Opped {1}" -# 0 - The person who is deopped -# 1 - The person who has been deopped -deoppedPlayer: "{0} - Deopped {1}" # 0 - The person who is freezing # 1 - The person who has been frozen frozePlayer: "{0} - Froze {1}" @@ -55,14 +54,19 @@ mutedPlayer: "{0} - Muted {1}" # 0 - The command sender # 1 - The person who has been unmuted unmutedPlayer: "{0} - Unmuted {1}" +invalidTimeFormat: "Invalid time format. Use s, m, h, d, w, mo, or y (e.g., 1h30m)." +timeMustBeFuture: "The specified time must be in the future." +# 0 - The command sender +# 1 - The person who has been muted +# 2 - The time that the person is muted for +tempMutedPlayer: "{0} - Muted {1} for {2}" +maxTimeExceeded: "The specified time must be under a week." # 0 - The person who is locking up # 1 - The person who has been locked up lockedUpPlayer: "{0} - Locking up {1}" # 0 - The person who is unlocking # 1 - The person who has been unlocked unlockedPlayer: "{0} - Unlocking {1}" -# 0 - The rank required to use the command -noPermissionRank: "You must be at least {0} to use this command!" # 0 - The permission node required to use the command noPermissionNode: "You must have the permission: {0} to use this command!" noPermissionInGame: "You must be in console to use this command!" @@ -126,6 +130,11 @@ playerFrozen: "That player is already frozen!" playerMuted: "That player is already muted!" playerLockedUp: "That player is already locked up!" muted: "You are currently muted - STFU!" +pvpDisabled: "PVP has been disabled!" +chatIsOff: "Chat is currently toggled off!" +# 0 - The command sender +# 1 - The set value of the chat toggle +chatToggled: "{0} - Toggled chat {1}" # 0 - The command sender # 1 - The player kickedPlayer: "{0} - Kicking {1}" @@ -134,8 +143,9 @@ toggleCommandSpy: "CommandSpy has been" enabled: "enabled." disabled: "disabled." # 0 - The admin / staff member -# 1 - The message -adminChatFormat: '[AdminChat] {0} » {1}' +# 1 - The player's group's prefix if any +# 2 - The message +adminChatFormat: '[AdminChat] {0} {1} » {2}' # 0 - Whether it was toggled on or off adminChatToggled: 'AdminChat was toggled {0}' # 0 - Maximum length, configured in config.yml @@ -175,10 +185,27 @@ removedEntitiesOfType: "Removed {1} {2}" # 0 - Entity type that is invalid invalidEntityType: "Notice: Entity type {0} is invalid!" noRemovedEntities: "No entities were removed." +# 0 - Number of mobs removed +# 1 - Type of mob removed +amountOfMobsRemoved: "{0} {1} removed." +notAValidMob: "That is not a valid mob." +notAValidMobButValidEntity: "That is a valid entity, but is not a valid mob." # 0 - The command sender # 1 - Number of mobs removed removedMobs: "{0} - Removed {1} mobs" autoWipeDisabled: "Item wiping is currently disabled in the config!" +# 0 - The boolean for whether the limit is enabled or disabled +mobLimitToggle: "The mob limit has been {0}" +# 0 - The amount that the mob limit has been set to +mobLimitSet: "The mob limit has been set to: {0}" +# 0 - The boolean for whether the limit is enabled or disabled +# 1 - The current amount of mobs in the world +# 2 - The current set mob limit +# 3 - Chunk x value +# 4 - Chunk z value +mobLimitStatus: "({0}) {1} / {2} per chunk (Chunk: {3}, {4})" +# 0 - The max set limit in config +mobLimitCeiling: "The limit you have entered is too high. Defaulting to the ceiling value from config" commandBlocked: "That command is blocked." # 0 - The command sender # 1 - The message being said @@ -207,6 +234,63 @@ removedOwnLoginMessage: "Your login message has been removed." removedOtherLoginMessage: "You removed {0}'s login message." nameRequired: "Policy requires that you must state your player name in your login message. You can either do this by inserting your name or %player%." rankRequired: "Policy requires that you must state your rank in your login message. You can do this by using %rank% in your login message." +# 0 - The material name +# 1 - The players who have the material in their inventory +playersWithMaterial: "Players with {0} in their inventory: {1}" +# 0 - The material name +# 1 - The players who have the material in their inventory +playersMaterialCleared: "{0} has been removed from the following players: {1}" +nobodyHasThatMaterial: "No one online has that in their inventory." +# 0 - The attempted material name +materialNotFound: "{0} is not a valid item/block name." +# 0 - The players name +loginMessage: "{0} joined the game" +# 0 - The string that wasn't a valid integer +notANumber: "{0} is not a valid number!" +# 0 - Players currently online +# 1 - Max players +listHeader: "There is currently {0} player online out of {1} players." +# 0 - Players currently online +# 1 - Max players +listHeaderPlural: "There are currently {0} players online out of {1} players." +# 0 - Player who is having their notes fetched +notesHeader: "Player notes for: {0}" +# 0 - Note ID +# 1 - Author of the note +# 2 - Timestamp +notePrefix: "{0} - Written by: {1} on {2}" +# 0 - The content of the note +noteLine: "# {0}" +# 0 - The player +# 1 - The number of notes logged for said player +playerNoteAlert: "{0} has {1} note. Click here to view their note." +# 0 - The player +# 1 - The number of notes logged for said player +playerNoteAlertPlural: "{0} has {1} notes. Click here to view their notes." +smiteTitleHeader: "You've been smitten." +# 0 - The reason for the smite. Will default to noReasonProvided if no reason is specified. +# 1 - The admin / staff member +smiteTitleMessage: "Be sure to follow the rules!" +# 0 - The player +# 1 - The reason for the smite. Will default to noReasonProvided if no reason is specified. +# 2 - The admin / staff member +smiteBroadcast: "{0} has been a naughty, naughty boy. - Reason: {1} - Smitten by: {2}" +# 0 - The player +smittenQuietly: "Smitten {0} quietly." +# 0 - The reason for being smitten +smitten: "You've been smitten. Reason: {0}" +nukerKickMessage: "Please turn off your nuker!" +antiSpamMessage: "Please refrain from spamming messages." +# 0 - The player +banExpiredBroadcast: "Plex - Automatically unbanning {0}" +# 0 - The player +redisResetSuccessful: "Successfuly reset {0}'s Redis punishments!" +redisResetPlayerNotFound: "Couldn't find player in Redis punishments." +reappliedGamerules: "All game rules have been re-applied!" +commandNotFound: "That command could not be found!" +# 0 - The command +# 1 - A list of aliases found +commandAliases: "Aliases for {0} are: {1}" ``` ## MiniMessage diff --git a/docs/permissions.md b/docs/permissions.md index 2b6ef8a..61a28bc 100644 --- a/docs/permissions.md +++ b/docs/permissions.md @@ -7,98 +7,96 @@ title: Permissions This page is a comprehensive list of all of Plex's permission nodes. Note that some of them (such as world entry and modification) are defined by the server config and may vary. ## Plex -| Command | Permission | Rank | Description | -| ------------------- | ------------------------------ | ------------ | ----------------------------------------------------------------------------------------------- | -| adminchat | plex.adminchat | Admin | Talk privately with other admins | -| admin | N/A | OP | Manage all admins | -| adminworld | plex.adminworld | Admin | Teleport to the adminworld | -| adventure | plex.gamemode.adventure | OP | Set your own gamemode to adventure mode | -| adventure | plex.gamemode.adventure.others | Admin | Set another player's gamemode to adventure mode | -| ban | plex.ban | Admin | Bans a player, offline or online | -| blockedit | plex.blockedit | Admin | Prevent players from modifying blocks | -| commandspy | plex.commandspy | Admin | Spy on other player's commands | -| consolesay | plex.consolesay | Admin | Displays a message to everyone | -| creative | plex.gamemode.creative | OP | Set your own gamemode to creative mode | -| creative | plex.gamemode.creative.others | Admin | Set another player's gamemode to creative mode | -| pdebug | plex.debug | Executive | Plex's debug command | -| deopall | N/A | Admin | Deop everyone on the server | -| deop | N/A | Admin | Deop a player on the server | -| entitywipe | plex.entitywipe | Admin | Remove various server entities that may cause lag, such as dropped items, minecarts, and boats. | -| flatlands | plex.flatlands | OP | Teleport to the flatlands | -| freeze | plex.freeze | Admin | Freeze a player on the server | -| kick | plex.kick | Admin | Kicks a player | -| list | plex.list | OP | Show a list of all online players | -| localspawn | plex.localspawn | OP | Teleport to the spawnpoint of the world you are in | -| lockup | plex.lockup | Admin | Lockup a player on the server | -| masterbuilderworld | plex.masterbuilderworld | OP | Teleport to the masterbuilderworld | -| mobpurge | plex.mobpurge | Admin | Purge all mobs. | -| mute | plex.mute | Admin | Mute a player on the server | -| namehistory | plex.namehistory | OP | Get the name history of a player | -| notes | plex.notes | Admin | Manage notes for a player | -| opall | N/A | Admin | Op everyone on the server | -| op | N/A | OP | Op a player on the server | -| plex | N/A | Impostor | Show information about Plex | -| plex redis | plex.redis | Senior Admin | Tests your Redis database to ensure Plex can reach it | -| plex reload | plex.reload | Senior Admin | Reload Plex | -| plex modules reload | plex.modules.reload | Executive | Reload Plex's modules | -| punishments | plex.punishments | Admin | Opens the Punishments GUI | -| rank | N/A | OP | Displays your rank | -| rawsay | plex.rawsay | Senior Admin | Displays a message to everyone | -| removeloginmessage | plex.removeloginmessage | Admin | Remove your own (or someone else's) login message | -| say | plex.say | Admin | Displays a message to everyone | -| setloginmessage | plex.setloginmessage | Admin | Sets your (or someone else's) login message | -| smite | plex.smite | Admin | Someone being a little bitch? Smite them down... | -| spectator | plex.gamemode.spectator | OP | Set your own gamemode to spectator mode | -| spectator | plex.gamemode.spectator.others | Admin | Set another player's gamemode to spectator mode | -| survival | plex.gamemode.survival | OP | Set your own gamemode to survival mode | -| survival | plex.gamemode.survival.others | Admin | Set another player's gamemode to survival mode | -| tag | plex.tag | OP | Set or clear your prefix | -| tag | plex.tag.clear.others | Admin | Clear another player's prefix | -| tempban | plex.tempban | Admin | Temporarily ban a player | -| totalfreedommod | N/A | OP | You can't simpy do that. | -| toggle | plex.toggle | Admin | Allows toggling various server aspects through a GUI | -| unban | plex.unban | Admin | Unbans a player, offline or online | -| unfreeze | plex.unfreeze | Admin | Unfreeze a player | -| unmute | plex.unmute | Admin | Unmute a player | -| world | plex.world | OP | Teleport to a world. | +| Command | Permission | Description | +| ------------------- | ------------------------------ | ----------------------------------------------------------------------------------------------- | +| adminchat | plex.adminchat | Talk privately with other admins | +| adminworld | plex.adminworld | Teleport to the adminworld | +| adventure | plex.gamemode.adventure | Set your own gamemode to adventure mode | +| adventure | plex.gamemode.adventure.others | Set another player's gamemode to adventure mode | +| ban | plex.ban | Bans a player, offline or online | +| banlist | plex.banlist | Manages the banlist | +| blockedit | plex.blockedit | Prevent players from modifying blocks | +| commandspy | plex.commandspy | Spy on other player's commands | +| consolesay | plex.consolesay | Displays a message to everyone | +| creative | plex.gamemode.creative | Set your own gamemode to creative mode | +| creative | plex.gamemode.creative.others | Set another player's gamemode to creative mode | +| pdebug | plex.debug | Plex's debug command | +| entitywipe | plex.entitywipe | Remove various server entities that may cause lag, such as dropped items, minecarts, and boats. | +| flatlands | plex.flatlands | Teleport to the flatlands | +| freeze | plex.freeze | Freeze a player on the server | +| kick | plex.kick | Kicks a player | +| list | plex.list | Show a list of all online players | +| list -v | plex.list.vanished | Filters the list command to see vanished players only | +| localspawn | plex.localspawn | Teleport to the spawnpoint of the world you are in | +| lockup | plex.lockup | Lockup a player on the server | +| masterbuilderworld | plex.masterbuilderworld | Teleport to the masterbuilderworld | +| moblimit | plex.moblimit | Manages the mob limit per chunk. | +| mobpurge | plex.mobpurge | Purge all mobs. | +| mute | plex.mute | Mute a player on the server | +| notes | plex.notes | Manage notes for a player | +| plex | N/A | Show information about Plex | +| plex redis | plex.redis | Tests your Redis database to ensure Plex can reach it | +| plex reload | plex.reload | Reload Plex | +| plex modules reload | plex.modules.reload | Reload Plex's modules | +| punishments | plex.punishments | Opens the Punishments GUI | +| rawsay | plex.rawsay | Displays a message to everyone | +| removeloginmessage | plex.removeloginmessage | Remove your own (or someone else's) login message | +| say | plex.say | Displays a message to everyone | +| setloginmessage | plex.setloginmessage | Sets your (or someone else's) login message | +| smite | plex.smite | Someone being a little bitch? Smite them down... | +| spectator | plex.gamemode.spectator | Set your own gamemode to spectator mode | +| spectator | plex.gamemode.spectator.others | Set another player's gamemode to spectator mode | +| survival | plex.gamemode.survival | Set your own gamemode to survival mode | +| survival | plex.gamemode.survival.others | Set another player's gamemode to survival mode | +| tag | plex.tag | Set or clear your prefix | +| tag | plex.tag.clear.others | Clear another player's prefix | +| tempban | plex.tempban | Temporarily ban a player | +| tempmute | plex.tempmute | Temporarily mute a player on the server | +| toggle | plex.toggle | Allows toggling various server aspects through a GUI | +| unban | plex.unban | Unbans a player, offline or online | +| unfreeze | plex.unfreeze | Unfreeze a player | +| unmute | plex.unmute | Unmute a player | +| whohas | plex.whohas | Returns a list of players with a specific item in their inventory. | +| whohas | plex.whohas.clear | Clear a specific item in all player's inventories | +| world | plex.world | Teleport to a world. | ## BukkitTelnet Module -| Permission | Rank | Description | -| ----------------------- | ----- | ----------------------------------------------------------- | -| plex.telnet.autoconnect | Admin | Allow automatically connecting to telnet without a password | +| Permission | Description | +| ----------------------- | ----------------------------------------------------------- | +| plex.telnet.autoconnect | Allow automatically connecting to telnet without a password | ## Guilds Module -| Command | Permission | Rank | Description | -| ------------- | ------------------- | ---- | ------------------------------------------------------------- | -| guild | plex.guilds.guild | OP | Guild menu | -| guild chat | plex.guilds.chat | OP | Toggles guild chat or sends a guild chat message | -| guild create | plex.guilds.create | OP | Creates a guild with a specified name | -| guild home | plex.guilds.home | OP | Teleports to the guild home | -| guild info | plex.guilds.info | OP | Shows the guild's information | -| guild invite | plex.guilds.invite | OP | Invites a player to the guild | -| guild owner | plex.guilds.owner | OP | Sets the guild owner | -| guild prefix | plex.guilds.prefix | OP | Sets the guild's default prefix | -| guild sethome | plex.guilds.sethome | OP | Sets the guild's home | -| guild setwarp | plex.guilds.setwarp | OP | Creates a new warp at player's location with a specified name | -| guild warps | plex.guilds.warps | OP | Displays a clickable list of warps | -| guild warp | plex.guild.warp | OP | Warps to a specified guild warp | +| Command | Permission | Description | +| ------------- | ------------------- | ------------------------------------------------------------- | +| guild | plex.guilds.guild | Guild menu | +| guild chat | plex.guilds.chat | Toggles guild chat or sends a guild chat message | +| guild create | plex.guilds.create | Creates a guild with a specified name | +| guild home | plex.guilds.home | Teleports to the guild home | +| guild info | plex.guilds.info | Shows the guild's information | +| guild invite | plex.guilds.invite | Invites a player to the guild | +| guild owner | plex.guilds.owner | Sets the guild owner | +| guild prefix | plex.guilds.prefix | Sets the guild's default prefix | +| guild sethome | plex.guilds.sethome | Sets the guild's home | +| guild setwarp | plex.guilds.setwarp | Creates a new warp at player's location with a specified name | +| guild warps | plex.guilds.warps | Displays a clickable list of warps | +| guild warp | plex.guild.warp | Warps to a specified guild warp | ## HTTPD Module -| Permission | Rank | Description | -| ----------------------------- | ----- | --------------------------------------------------------------------------------------------- | -| plex.httpd.admins.access | Admin | Allows seeing IP addresses of admins. Anyone can view the page regardless of permissions | -| plex.httpd.indefbans.access | Admin | Allows accessing the indefinite bans. This permission is required to view the page at all. | -| plex.httpd.punishments.access | Admin | Allows seeing IP addresses of punishments. Anyone can view the page regardless of permissions | -| plex.httpd.schematics.upload | Admin | Allows uploading schematics to the HTTPD if the permission system is enabled. | +| Permission | Description | +| ----------------------------- | --------------------------------------------------------------------------------------------- | +| plex.httpd.admins.access | Allows seeing IP addresses of admins. Anyone can view the page regardless of permissions | +| plex.httpd.indefbans.access | Allows accessing the indefinite bans. This permission is required to view the page at all. | +| plex.httpd.punishments.access | Allows seeing IP addresses of punishments. Anyone can view the page regardless of permissions | +| plex.httpd.schematics.upload | Allows uploading schematics to the HTTPD if the permission system is enabled. | ## LibsDisguises Module -| Command | Permission | Rank | Description | -| -------------- | --------------------------------- | ----- | ----------------------------------------------------------------------------------------------- | -| disguisetoggle | plex.libsdisguises.disguisetoggle | Admin | Toggle LibsDisguises | -| undisguiseall | plex.libsdisguises.undisguiseall | Admin | Undisguise all players | -| undisguiseall | plex.libsdisguises.bypass | Admin | Bypass being undisguised. This can be overridden regardless of permission with the \`-a\` flag. | +| Command | Permission | Description | +| -------------- | --------------------------------- | ----------------------------------------------------------------------------------------------- | +| disguisetoggle | plex.libsdisguises.disguisetoggle | Toggle LibsDisguises | +| undisguiseall | plex.libsdisguises.undisguiseall | Undisguise all players | +| undisguiseall | plex.libsdisguises.bypass | Bypass being undisguised. This can be overridden regardless of permission with the \`-a\` flag. | ## NUSH Module -| Command | Permission | Rank | Description | -| ------- | ----------------- | ----- | ---------------------- | -| nush | plex.nush.command | Admin | Toggle NUSH on or off. | +| Command | Permission | Description | +| ------- | ----------------- | ---------------------- | +| nush | plex.nush.command | Toggle NUSH on or off. | diff --git a/docs/versions.md b/docs/versions.md index 1c0a382..3c29b66 100644 --- a/docs/versions.md +++ b/docs/versions.md @@ -8,6 +8,7 @@ Plex builds against the latest Minecraft version available. A table has been pro | Plex Version | Minecraft Versions | | ------------ | ------------------ | +| 1.4 | 1.19.4 - 1.20.4 | | 1.3 | 1.19.4 - 1.20.4 | | 1.2 | 1.18.2 - 1.19.2 | | 1.1.1 | 1.18.2 - 1.19.2 |