diff --git a/docs/customization/commandblocker.md b/docs/customization/commandblocker.md new file mode 100644 index 0000000..a89fa25 --- /dev/null +++ b/docs/customization/commandblocker.md @@ -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: +# - "::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` + diff --git a/docs/customization/config.md b/docs/customization/config.md index 85c02b1..0aceab9 100644 --- a/docs/customization/config.md +++ b/docs/customization/config.md @@ -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 or + 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` diff --git a/docs/customization/messages.md b/docs/customization/messages.md index c6e6265..76b3a54 100644 --- a/docs/customization/messages.md +++ b/docs/customization/messages.md @@ -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 - 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: "You have been banned! You may appeal at .\nReason: \nEnd date: \nBanned by: " -# The type of indefinite ban -# Appeal URL -indefBanMessage: "Your is indefinitely banned! You may appeal at ." +# 0 - Appeal URL +# 1 - Reason +# 2 - Expiry +# 3 - Punisher +banMessage: "You have been banned! You may appeal at {0}.\nReason: {1}\nEnd date: {2}\nBanned by: {3}" +# 0 - The type of indefinite ban +# 1 - Appeal URL +indefBanMessage: "Your {0} is indefinitely banned! You may appeal at {1}." playerNotFound: "Player not found!" worldNotFound: "World not found!" -# 1. The world you have been teleported to -playerWorldTeleport: "You have been teleported to ." -# 1. The sender who opped everyone -oppedAllPlayers: " - Opped all players on the server" -# 1. The sender who de-opped everyone -deoppedAllPlayers: " - De-opped all players on the server" -# 1. The person who is opping -# 2. The person who has been opped -oppedPlayer: " - Opped " -# 1. The person who is deopped -# 2. The person who has been deopped -deoppedPlayer: " - Deopped " -# 1. The person who is freezing -# 2. The person who has been frozen -frozePlayer: " - Froze " -# 1. The person who is unfreezing -# 2. The person who has been unfrozen -unfrozePlayer: " - Unfroze " -# 1. The command sender -# 2. The person who has been muted -mutedPlayer: " - Muted " -# 1. The command sender -# 2. The person who has been unmuted -unmutedPlayer: " - Unmuted " -# 1. The person who is locking up -# 2. The person who has been locked up -lockedUpPlayer: " - Locking up " -# 1. The person who is unlocking -# 2. The person who has been unlocked -unlockedPlayer: " - Unlocking " -# 1. The rank required to use the command -noPermissionRank: "You must be at least to use this command!" -# 1. The permission node required to use the command -noPermissionNode: "You must have the permission: to use this command!" +# 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}" +# 0 - The person who is unfreezing +# 1 - The person who has been unfrozen +unfrozePlayer: "{0} - Unfroze {1}" +# 0 - The command sender +# 1 - The person who has been muted +mutedPlayer: "{0} - Muted {1}" +# 0 - The command sender +# 1 - The person who has been unmuted +unmutedPlayer: "{0} - Unmuted {1}" +# 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!" noPermissionConsole: "You must be in-game to use this command!" -# 1. The username of the name history -nameHistoryTitle: "Name History of " +# 0 - The username of the name history +nameHistoryTitle: "Name History of {0}" nameHistorySeparator: "-----------------------------" -# 1. The name -# 2. The date and time of the name change -nameHistoryBody: " - " -# 1. The gamemode -gameModeSetTo: "Your gamemode has been set to ." -# 1. The player's name -# 2. The gamemode -setOtherPlayerGameModeTo: "You set 's gamemode to ." -# 1. The command sender -# 2. The gamemode -playerSetOtherGameMode: " set your gamemode to ." -# 1. The command sender -# 2. The gamemode -setEveryoneGameMode: " - Changing everyone's gamemode to " +# 0 - The name +# 1 - The date and time of the name change +nameHistoryBody: "{0} - {1}" +# 0 - The gamemode +gameModeSetTo: "Your gamemode has been set to {0}." +# 0 - The player's name +# 1 - The gamemode +setOtherPlayerGameModeTo: "You set {0}'s gamemode to {1}." +# 0 - The command sender +# 1 - The gamemode +playerSetOtherGameMode: "{0} set your gamemode to {1}." +# 0 - The command sender +# 1 - The gamemode +setEveryoneGameMode: "{0} - Changing everyone's gamemode to {1}" consoleMustDefinePlayer: "You must define a player since you are running this command from console." -# 1. The command sender -# 2. The player -newAdminAdded: " - Adding to the admin list" -# 1. The command sender -# 2. The player -adminRemoved: " - Removing from the admin list" -# 1. The command sender -# 2. The player -adminSetRank: " - Setting 's rank to " -# The world name -teleportedToWorld: "You have been teleported to the ." -higherRankThanYou: "This player is an admin and a higher rank than you." +# 0 - The command sender +# 1 - The player +newAdminAdded: "{0} - Adding {1} to the admin list" +# 0 - The command sender +# 1 - The player +# 2 - The rank name +adminReadded: "{0} - Re-adding {1} to the admin list as rank: {2}" +# 0 - The command sender +# 1 - The player +adminRemoved: "{0} - Removing {1} from the admin list" +# 0 - The command sender +# 1 - The player +# 2 - The rank +adminSetRank: "{0} - Setting {1}'s rank to {2}" +# 0 - The world name +teleportedToWorld: "You have been teleported to the {0}." +higherRankThanYou: "This player is an admin or a higher rank than you." playerNotAdmin: "That player is not an admin." playerIsAdmin: "That player is already an admin." rankNotFound: "The rank you entered was not found." rankMustBeHigherThanAdmin: "The rank you entered must be higher than Admin." consoleOnly: "This command can only be executed by the console." -# 1. Rank -yourRank: "Your rank is: " -# 1. Player name -# 2. Rank -otherRank: "'s rank is: " -# 1. The command sender -# 2. The player -banningPlayer: " - Banning " -# 1. The command sender -# 2. The player -unbanningPlayer: " - Unbanning " +# 0 - Rank +yourRank: "Your rank is: {0}" +# 0 - Player name +# 1 - Rank +otherRank: "{0}'s rank is: {1}" +# 0 - The command sender +# 1 - The player +banningPlayer: "{0} - Banning {1}" +# 0 - The command sender +# 1 - The player +unbanningPlayer: "{0} - Unbanning {1}" playerNotBanned: "That player is not banned!" playerNotFrozen: "That player is not frozen!" playerNotMuted: "That player is not muted!" @@ -121,16 +125,61 @@ 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!" -kickedPlayer: " - Kicking " +# 0 - The command sender +# 1 - The player +kickedPlayer: "{0} - Kicking {1}" teleportedToWorldSpawn: "Teleporting to the local spawn" toggleCommandSpy: "CommandSpy has been" enabled: "enabled." disabled: "disabled." -adminChatFormat: '[AdminChat] » ' -maximumPrefixLength: "The maximum length for a tag may only be ." +# 0 - The admin / staff member +# 1 - The message +adminChatFormat: '[AdminChat] {0} » {1}' +# 0 - Maximum length, configured in config.yml +maximumPrefixLength: "The maximum length for a tag may only be {0}." prefixCleared: "Your prefix has been cleared." -otherPrefixCleared: "You have cleared 's prefix." -prefixSetTo: "Your prefix has been set to " +# 0 - The player name +otherPrefixCleared: "You have cleared {0}'s prefix." +# 0 - The new prefix +prefixSetTo: "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: "{0} - Blocking block modification abilities for {1}" +# 0 - The command sender +# 1 - The player name +unblockingEditFor: "{0} - Unblocking block modification abilities for {1}" +yourEditsHaveBeenBlocked: "Your block modification abilities have been blocked." +yourEditsHaveBeenUnblocked: "Your block modification abilities have been restored." +# 0 - The player name +editsBlocked: "Blocked block modification abilities for {0}" +# 0 - The player name +editsUnblocked: "Unblocked block modification abilities for {0}" +# 0 - The command sender +# 1 - Number of entities removed +removedEntities: "{0} - Removed {1} entities" +# 0 - The command sender +# 1 - Number of entities removed +# 2 - Entity type(s) removed +removedEntitiesOfTypes: "{0} - Removed {1} entities of type(s) {2}" +# 0 - The command sender +# 1 - Number of entities removed +# 2 - Entity type removed +removedEntitiesOfType: "Removed {1} {2}" +# 0 - Entity type that is invalid +invalidEntityType: "Notice: Entity type {0} is invalid!" +noRemovedEntities: "No entities were removed." +# 0 - The command sender +# 1 - Number of mobs removed +removedMobs: "{0} - Removed {1} mobs" +autoWipeDisabled: "Item wiping is currently disabled in the config!" +allowDropsDisabled: "No longer allowing drops from players." +allowDropsEnabled: "Now allowing drops from players." +blockedCommandColor: "" +commandBlocked: "That command is blocked." ``` ## MiniMessage diff --git a/docs/modules/bukkittelnet.md b/docs/modules/bukkittelnet.md new file mode 100644 index 0000000..cdcac75 --- /dev/null +++ b/docs/modules/bukkittelnet.md @@ -0,0 +1,7 @@ +--- +id: bukkittelnet +title: BukkitTelnet +--- + +# Introduction +The BukkitTelnet is a very simple module. The only purpose of the module is to allow admins to automatically log in to telnet without needing to enter the password. If the person's rank is an Admin or above, it will let them connect. If your server is using permissions, you should add the `plex.telnet.autoconnect` to any group you want to have automatically connect to telnet. \ No newline at end of file diff --git a/docs/modules/httpd.md b/docs/modules/httpd.md new file mode 100644 index 0000000..a9d8f15 --- /dev/null +++ b/docs/modules/httpd.md @@ -0,0 +1,22 @@ +--- +id: httpd +title: HTTPD +--- + +# Introduction +The HTTPD module sets up a basic web server to display information from Plex. + +## Endpoints +The endpoints are what allow you to query the server and see information. All endpoints are formatted in JSON. + +### /api/admins +Displays a list of admins in JSON format. If your IP is not registered to an admin, it will not display IP addresses. If your server is using permissions, it will check if the player has the `plex.httpd.admins.access` instead. + +### /api/indefbans +Displays a list of indefinite players in JSON format. This page is only accessible if your IP address is linked to an admin on the server. If your server is using permissions, it will check if the player has the `plex.httpd.indefbans.access` instead. + +### /api/list +This will display a list of online players in JSON format. This is accessible to everyone. + +### /api/punishments +If you go this page, it will ask you to enter a UUID in the URL. When you enter a valid UUID to the URL, it will display that user's punishments in JSON format. An example URL would be `/api/punishments/78408086-1991-4c33-a571-d8fa325465b2`. If your IP is not registered to an admin, it will not display IP addresses. If your server is using permissions, it will check if the player has the `plex.httpd.punishments.access` instead. \ No newline at end of file diff --git a/docs/modules/introduction.md b/docs/modules/introduction.md index ef725ac..16afef4 100644 --- a/docs/modules/introduction.md +++ b/docs/modules/introduction.md @@ -10,4 +10,6 @@ Below is a list of current modules | Name | Versions | | -------------- | --------- | -| LibsDisguises | 1.0 | \ No newline at end of file +| BukkitTelnet | 1.0 | +| HTTPD | 1.0 | +| LibsDisguises | 1.0 | diff --git a/docs/permissions.md b/docs/permissions.md new file mode 100644 index 0000000..fef87a8 --- /dev/null +++ b/docs/permissions.md @@ -0,0 +1,62 @@ +--- +id: permissions +title: Permissions +--- + +# Introduction +This page is a comprehensive list of all of Plex's permission nodes. + +## Plex +| 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 or another player's gamemode to adventure mode | +| ban | plex.ban | Bans a player, offline or online | +| blockedit | plex.blockedit | Prevent players from modifying blocks | +| commandspy | plex.commandspy | Spy on other player's commands | +| creative | plex.gamemode.creative | Set your own or another player's gamemode to creative mode | +| debug | 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 | +| 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 | +| mobpurge | plex.mobpurge | Purge all mobs. | +| mute | plex.mute | Mute a player on the server | +| namehistory | plex.namehistory | Get the name history of a player | +| notes | plex.notes | Manage notes for a player | +| plex | plex.plex | Show information about Plex or reload it | +| punishments | plex.punishments | Opens the Punishments GUI | +| rawsay | plex.rawsay | Displays a message to everyone | +| smite | plex.smite | Someone being a little bitch? Smite them down... | +| spectator | plex.gamemode.spectator | Set your own or another player's gamemode to spectator mode | +| survival | plex.gamemode.survival | Set your own or another player's gamemode to survival mode | +| tag | plex.tag | Set or clear your prefix | +| tempban | plex.tempban | Temporarily ban a player | +| toggledrops | plex.toggledrops | Toggle immediately removing drops. | +| unban | plex.unban | Unbans a player, offline or online | +| unfreeze | plex.unfreeze | Unfreeze a player | +| unmute | plex.unmute | Unmute a player | +| world | plex.world | Teleport to a world. | + +## BukkitTelnet Module +| Permission | Description | +|-------------------------|-------------------------------------------------------------| +| plex.telnet.autoconnect | Allow automatically connecting to telnet without a password | + +## HTTPD Module +| 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 | + +## LibsDisguises Module +| 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. | \ No newline at end of file diff --git a/docusaurus.config.js b/docusaurus.config.js index 60e3842..a84d16e 100644 --- a/docusaurus.config.js +++ b/docusaurus.config.js @@ -53,6 +53,12 @@ const config = { docId: 'compiling', position: 'left', label: 'Compiling', + }, + { + type: 'doc', + docId: 'permissions', + position: 'left', + label: 'Permissions', }, { position: 'left', @@ -85,6 +91,10 @@ const config = { label: 'Compiling', to: '/docs/compiling', }, + { + label: 'Permissions', + to: '/docs/permissions', + }, { label: 'Javadocs', to: 'pathname:///javadocs', diff --git a/sidebars.js b/sidebars.js index 31b8749..785cc6c 100644 --- a/sidebars.js +++ b/sidebars.js @@ -34,15 +34,20 @@ const sidebars = { label: 'Compiling', id: 'compiling', }, + { + type: 'doc', + label: 'Permissions', + id: 'permissions', + }, { type: 'category', - label: 'Customization', - items: ['customization/config', 'customization/messages'], + label: 'Configuration files', + items: ['customization/config', 'customization/messages', `customization/commandblocker`], }, { type: 'category', label: 'Modules', - items: ['modules/introduction', 'modules/libsdisguises'], + items: ['modules/introduction', 'modules/bukkittelnet', 'modules/httpd', 'modules/libsdisguises'], }, { type: 'doc', diff --git a/static/javadocs/allclasses-index.html b/static/javadocs/allclasses-index.html index 4ecf354..59e3565 100644 --- a/static/javadocs/allclasses-index.html +++ b/static/javadocs/allclasses-index.html @@ -2,7 +2,7 @@ -All Classes and Interfaces (Plex 0.9 API) +All Classes and Interfaces (Plex 1.0 API) @@ -101,11 +101,19 @@ loadScripts(document, 'script');
 
 
- +
 
- +
 
- + +
 
+ +
 
+ +
 
+ +
 
+
 
 
@@ -113,6 +121,10 @@ loadScripts(document, 'script');
 
 
+ +
 
+ +
 
 
@@ -143,52 +155,70 @@ loadScripts(document, 'script');
 
 
- +
 
- -
+ +
 
+ +
Parent cache class
- -
 
- +
 
- +
 
- +
 
- +
 
- +
 
- +
 
- +
 
- +
 
- +
 
- -
 
- + +
 
+ +
 
+ +
 
+
 
+ +
 
+ +
 
 
- +
 
- +
 
- +
 
- +
 
- +
 
- +
 
- +
 
+ +
 
+ +
 
+ +
 
+ +
+
Creates a custom Config object
+
 
@@ -197,59 +227,67 @@ loadScripts(document, 'script');
 
 
- +
Mongo fetching utilities for players
 
- +
 
- +
 
- +
 
- +
 
- +
 
- +
 
- +
 
- -
+ +
 
+ +
 
+ +
 
+ +
Cache storage
- -
 
- -
 
+ +
 
+ +
 
+ +
 
 
 
- +
 
- +
 
- -
+ +
 
+ +
Superclass for all commands
- -
 
- +
 
- +
 
- +
 
- +
 
- +
 
- +
 
@@ -291,38 +329,50 @@ loadScripts(document, 'script');
 
 
- -
 
- -
 
- +
 
- -
 
- + +
 
+
 
- + +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+
SQL fetching utilities for players
- -
 
- -
 
- -
 
- -
 
- +
 
- -
 
- -
 
- +
 
- -
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
+ +
 
 
diff --git a/static/javadocs/allpackages-index.html b/static/javadocs/allpackages-index.html index 1946b95..421f65e 100644 --- a/static/javadocs/allpackages-index.html +++ b/static/javadocs/allpackages-index.html @@ -2,7 +2,7 @@ -All Packages (Plex 0.9 API) +All Packages (Plex 1.0 API) @@ -59,9 +59,17 @@ loadScripts(document, 'script');
 
 
- +
 
- + +
 
+ +
 
+ +
 
+ +
 
+
 
 
@@ -87,9 +95,13 @@ loadScripts(document, 'script');
 
 
- +
 
- + +
 
+ +
 
+
 
 
@@ -105,10 +117,12 @@ loadScripts(document, 'script');
 
 
- +
 
- +
 
+ +
 
diff --git a/static/javadocs/constant-values.html b/static/javadocs/constant-values.html index f034261..5e2c73f 100644 --- a/static/javadocs/constant-values.html +++ b/static/javadocs/constant-values.html @@ -2,7 +2,7 @@ -Constant Field Values (Plex 0.9 API) +Constant Field Values (Plex 1.0 API) @@ -55,24 +55,92 @@ loadScripts(document, 'script');
-
+

dev.plex.*

  • -
    dev.plex.cache.SQLPlayerData
    +
    dev.plex.cache.notes.PlayerNotes
    Modifier and Type
    Constant Field
    Value
    -
    private final String
    - -
    "INSERT INTO `players` (`uuid`, `name`, `login_msg`, `prefix`, `rank`, `ips`, `coins`, `vanished`, `commandspy`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?);"
    -
    private final String
    - +
    private final String
    + +
    "INSERT INTO `notes` (`uuid`, `name`, `written_by`, `note`) VALUES (?, ?, ?, ?);"
    +
    private final String
    + +
    "SELECT * FROM `notes` WHERE uuid=?"
    +
    +
  • +
+
    +
  • +
    dev.plex.cache.player.SQLPlayerData
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    private final String
    + +
    "INSERT INTO `players` (`uuid`, `name`, `login_msg`, `prefix`, `rank`, `adminActive`, `ips`, `coins`, `vanished`, `commandspy`) VALUES (?, ?, ?, ?, ?, ?, ?, ?, ?, ?);"
    +
    private final String
    +
    "SELECT * FROM `players` WHERE uuid=?"
    -
    private final String
    - -
    "UPDATE `players` SET name=?, login_msg=?, prefix=?, rank=?, ips=?, coins=?, vanished=?, commandspy=? WHERE uuid=?"
    +
    private final String
    + +
    "UPDATE `players` SET name=?, login_msg=?, prefix=?, rank=?, adminActive=?, ips=?, coins=?, vanished=?, commandspy=? WHERE uuid=?"
    +
    +
  • +
+
    +
  • +
    dev.plex.cache.sql.SQLNotes
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    private static final String
    + +
    "DELETE FROM `notes` WHERE uuid=? AND id=?"
    +
    private static final String
    + +
    "INSERT INTO `notes` (`id`, `uuid`, `written_by`, `note`, `timestamp`) VALUES(?, ?, ?, ?, ?)"
    +
    private static final String
    + +
    "SELECT * FROM `notes` WHERE uuid=?"
    +
    +
  • +
  • +
    dev.plex.cache.sql.SQLPunishment
    +
    +
    Modifier and Type
    +
    Constant Field
    +
    Value
    +
    private static final String
    + +
    "INSERT INTO `punishments` (`punished`, `punisher`, `punishedUsername`, `ip`, `type`, `reason`, `customTime`, `active`, `endDate`) VALUES(?, ?, ?, ?, ?, ?, ?, ?, ?)"
    +
    private static final String
    + +
    "SELECT * FROM `punishments` WHERE punished=?"
    +
    private static final String
    + +
    "SELECT * FROM `punishments` WHERE punisher=?"
    +
    private static final String
    + +
    "UPDATE `punishments` SET active=? WHERE active=? AND punished=? AND type=?"
    +
    +
  • +
+ diff --git a/static/javadocs/dev/plex/Plex.BuildProperties.html b/static/javadocs/dev/plex/Plex.BuildProperties.html new file mode 100644 index 0000000..007ac02 --- /dev/null +++ b/static/javadocs/dev/plex/Plex.BuildProperties.html @@ -0,0 +1,217 @@ + + + + +Plex.BuildProperties (Plex 1.0 API) + + + + + + + + + + + + + + +
+ +
+
+ +
+
Package dev.plex
+

Class Plex.BuildProperties

+
+
java.lang.Object +
dev.plex.Plex.BuildProperties
+
+
+
+
Enclosing class:
+
Plex
+
+
+
public static class Plex.BuildProperties +extends Object
+
+
+ +
+
+
    + +
  • +
    +

    Field Details

    +
      +
    • +
      +

      number

      +
      public String number
      +
      +
    • +
    • +
      +

      author

      +
      public String author
      +
      +
    • +
    • +
      +

      date

      +
      public String date
      +
      +
    • +
    • + +
    • +
    +
    +
  • + +
  • +
    +

    Constructor Details

    +
      +
    • +
      +

      BuildProperties

      +
      public BuildProperties()
      +
      +
    • +
    +
    +
  • + +
  • +
    +

    Method Details

    +
      +
    • +
      +

      load

      +
      public void load(Plex plugin)
      +
      +
    • +
    +
    +
  • +
+
+ +
+
+
+ + diff --git a/static/javadocs/dev/plex/Plex.html b/static/javadocs/dev/plex/Plex.html index 4662879..4b78c69 100644 --- a/static/javadocs/dev/plex/Plex.html +++ b/static/javadocs/dev/plex/Plex.html @@ -2,7 +2,7 @@ -Plex (Plex 0.9 API) +Plex (Plex 1.0 API) @@ -43,7 +43,7 @@ loadScripts(document, 'script');
@@ -223,6 +253,12 @@ loadScripts(document, 'script');

Field Details

@@ -228,7 +233,18 @@ loadScripts(document, 'script');

getAllAdmins

public List<String> getAllAdmins()
-
Gathers every admin's username (cached and databsed)
+
Gathers every admin's username (cached and in the database)
+
+
Returns:
+
An array list of the names of every admin
+
+
+ +
  • +
    +

    getAllAdminPlayers

    +
    public List<PlexPlayer> getAllAdminPlayers()
    +
    Gathers every admin (cached and in the database)
    Returns:
    An array list of the names of every admin
    diff --git a/static/javadocs/dev/plex/admin/package-summary.html b/static/javadocs/dev/plex/admin/package-summary.html index 631a85b..5d5e796 100644 --- a/static/javadocs/dev/plex/admin/package-summary.html +++ b/static/javadocs/dev/plex/admin/package-summary.html @@ -2,7 +2,7 @@ -dev.plex.admin (Plex 0.9 API) +dev.plex.admin (Plex 1.0 API) diff --git a/static/javadocs/dev/plex/admin/package-tree.html b/static/javadocs/dev/plex/admin/package-tree.html index 503e31a..3bfdd27 100644 --- a/static/javadocs/dev/plex/admin/package-tree.html +++ b/static/javadocs/dev/plex/admin/package-tree.html @@ -2,7 +2,7 @@ -dev.plex.admin Class Hierarchy (Plex 0.9 API) +dev.plex.admin Class Hierarchy (Plex 1.0 API) diff --git a/static/javadocs/dev/plex/cache/DataUtils.html b/static/javadocs/dev/plex/cache/DataUtils.html index 1a7a246..4bd549a 100644 --- a/static/javadocs/dev/plex/cache/DataUtils.html +++ b/static/javadocs/dev/plex/cache/DataUtils.html @@ -2,7 +2,7 @@ -DataUtils (Plex 0.9 API) +DataUtils (Plex 1.0 API) @@ -106,28 +106,31 @@ loadScripts(document, 'script');
    Method
    Description
    static PlexPlayer
    - -
    -
    Gets a player from cache or from the database
    -
    +
    getPlayer(String username)
    +
     
    static PlexPlayer
    Gets a player from cache or from the database
    -
    static boolean
    - +
    static PlexPlayer
    +
    +
    Gets a player from cache or from the database
    +
    +
    static boolean
    + +
    Checks if the player has been on the server before
    -
    static void
    -
    insert(PlexPlayer plexPlayer)
    -
    +
    static void
    +
    insert(PlexPlayer plexPlayer)
    +
    Inserts a player's information in the database
    -
    static void
    -
    update(PlexPlayer plexPlayer)
    -
    +
    static void
    +
    update(PlexPlayer plexPlayer)
    +
    Updates a player's information in the database
    @@ -196,11 +199,17 @@ loadScripts(document, 'script');
  • getPlayer

    -
    public static PlexPlayer getPlayer(String name)
    +
    public static PlexPlayer getPlayer(String username)
    +
    +
  • +
  • +
    +

    getPlayerByIP

    +
    public static PlexPlayer getPlayerByIP(String ip)
    Gets a player from cache or from the database
    Parameters:
    -
    name - Username of the player
    +
    ip - The IP address of the player.
    Returns:
    a PlexPlayer object
    See Also:
    diff --git a/static/javadocs/dev/plex/cache/notes/PlayerNotes.html b/static/javadocs/dev/plex/cache/notes/PlayerNotes.html new file mode 100644 index 0000000..5f2b819 --- /dev/null +++ b/static/javadocs/dev/plex/cache/notes/PlayerNotes.html @@ -0,0 +1,211 @@ + + + + +PlayerNotes (Plex 1.0 API) + + + + + + + + + + + + + + +
    + +
    +
    + +
    + +

    Class PlayerNotes

    +
    +
    java.lang.Object +
    dev.plex.cache.notes.PlayerNotes
    +
    +
    +
    +
    public class PlayerNotes +extends Object
    +
    +
    + +
    +
    +
      + +
    • +
      +

      Field Details

      + +
      +
    • + +
    • +
      +

      Constructor Details

      +
        +
      • +
        +

        PlayerNotes

        +
        public PlayerNotes()
        +
        +
      • +
      +
      +
    • + +
    • +
      +

      Method Details

      + +
      +
    • +
    +
    + +
    +
    +
    + + diff --git a/static/javadocs/dev/plex/cache/notes/package-summary.html b/static/javadocs/dev/plex/cache/notes/package-summary.html new file mode 100644 index 0000000..243b7a7 --- /dev/null +++ b/static/javadocs/dev/plex/cache/notes/package-summary.html @@ -0,0 +1,96 @@ + + + + +dev.plex.cache.notes (Plex 1.0 API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Package dev.plex.cache.notes

    +
    +
    +
    package dev.plex.cache.notes
    +
    + +
    +
    +
    +
    + + diff --git a/static/javadocs/dev/plex/cache/notes/package-tree.html b/static/javadocs/dev/plex/cache/notes/package-tree.html new file mode 100644 index 0000000..185002a --- /dev/null +++ b/static/javadocs/dev/plex/cache/notes/package-tree.html @@ -0,0 +1,70 @@ + + + + +dev.plex.cache.notes Class Hierarchy (Plex 1.0 API) + + + + + + + + + + + + + + +
    + +
    +
    +
    +

    Hierarchy For Package dev.plex.cache.notes

    +Package Hierarchies: + +
    +
    +

    Class Hierarchy

    + +
    +
    +
    +
    + + diff --git a/static/javadocs/dev/plex/cache/package-summary.html b/static/javadocs/dev/plex/cache/package-summary.html index 3e5f9a7..7ac0e4f 100644 --- a/static/javadocs/dev/plex/cache/package-summary.html +++ b/static/javadocs/dev/plex/cache/package-summary.html @@ -2,7 +2,7 @@ -dev.plex.cache (Plex 0.9 API) +dev.plex.cache (Plex 1.0 API) @@ -69,6 +69,12 @@ loadScripts(document, 'script');
    Description
     
    + +
     
    + +
     
    + +
     
  • @@ -82,18 +88,6 @@ loadScripts(document, 'script');
    Parent cache class
    - -
    -
    Mongo fetching utilities for players
    -
    - -
    -
    Cache storage
    -
    - -
    -
    SQL fetching utilities for players
    -
    diff --git a/static/javadocs/dev/plex/cache/package-tree.html b/static/javadocs/dev/plex/cache/package-tree.html index 1b8256c..8b0589b 100644 --- a/static/javadocs/dev/plex/cache/package-tree.html +++ b/static/javadocs/dev/plex/cache/package-tree.html @@ -2,7 +2,7 @@ -dev.plex.cache Class Hierarchy (Plex 0.9 API) +dev.plex.cache Class Hierarchy (Plex 1.0 API) @@ -59,9 +59,6 @@ loadScripts(document, 'script');
  • java.lang.Object
  • diff --git a/static/javadocs/dev/plex/cache/MongoPlayerData.html b/static/javadocs/dev/plex/cache/player/MongoPlayerData.html similarity index 67% rename from static/javadocs/dev/plex/cache/MongoPlayerData.html rename to static/javadocs/dev/plex/cache/player/MongoPlayerData.html index 40c1ff0..218c864 100644 --- a/static/javadocs/dev/plex/cache/MongoPlayerData.html +++ b/static/javadocs/dev/plex/cache/player/MongoPlayerData.html @@ -2,24 +2,24 @@ -MongoPlayerData (Plex 0.9 API) +MongoPlayerData (Plex 1.0 API) - + - - - - - - + + + + + +