← Назад к ресурсам

Zones

Modern region management plugin/mod

Modrinth game-mechanics management utility

Описание

# Zones This plugin allows server administrators and players to create and manage protected regions within their Minecraft world. It provides a flexible system for defining areas, setting permissions, and controlling interactions within those areas. ## Features * **Region Creation:** Create regions using in-game selection or manual coordinates. * **Sub-Regions:** Create sub-regions within existing regions for more granular control. * **Permission Management:** Set detailed permissions for players within regions, controlling actions like breaking, placing, interacting, and more. * **Member Management:** Add and remove members from regions with specific permissions. * **Region Overlap Control:** Configure whether regions can overlap. * **Bypass Permissions:** Allow specific players to bypass region restrictions. * **Configuration:** Customize messages and region settings through configuration files. * **Beacon Visualization:** Visualize selected regions using temporary beacons. ## Commands The plugin provides the following commands: * `/zone create`: Creates a new region using the currently selected locations. * Usage: `/zone create` * Requires two locations to be selected using left and right click, starts selection if not present. * Prevents creation if the new region would overlap an existing region, unless the `zones.create.overlap` permission is set. * `/zone subcreate`: Creates a new sub-region within an existing region using the currently selected locations. * Usage: `/zone subcreate [regionKey]` * `regionKey` is optional, if not provided, the region at the player's location will be used. * Requires two locations to be selected using left and right click, starts selection if not present. * Player needs to be considered an admin in the region, or have the `zones.subcreate.other` permission * `/zone delete`: Deletes an existing region. * Usage: `/zone delete ` * Requires the `regionKey` of the region to be deleted. * Player needs to be the owner of the region, or have the `zones.delete.other` permission * `/zone expand`: Expands an existing region by a specified amount. * Usage: `/zone expand [overlap]` * Player needs to be an admin of the region, or have the `zones.expand.other` permission * If `overlap` is set to `true` and the player has the `zones.expand.overlap` permission, * the region will be expanded even if it overlaps with other regions. * `/zone info`: Displays information about a region. * Usage: `/zone info [regionKey]` * If `regionKey` is not provided, the region at the player's location will be used. * To show region members, the player needs to be an admin of the region, or have the `zones.info.other` permission * `/zone list`: Lists all regions the player is a member of. * Usage: `/zone list` * Only shows regions the player is a member of, unless the player has the `zones.list.other` permission * `/zone cancel`: Cancels the current region selection. * Usage: `/zone cancel` * `/zone set`: Sets a permission for a member of a region. * Usage: `/zone set ` * `` is the key of the region. * `` who to set the permission for. * e.g., `Player1` - to create or modify a group, use `+group-GROUPNAME`, where GROUPNAME can be any name. * `` is the permission to set (e.g., `role`, `break`, `place`, `interact`). * `` is the value to set for the permission ( * e.g., `owner`, `true`, `false`, `*`, `!*`, `GRASS_BLOCK`, `!GRASS_BLOCK`). * `/zone rename`: Renames a region. * Usage: `/zone rename ` * `` is the key of the region, `` is the new name of the region. * Player needs to be an admin of the region, or have the `zones.rename.other` permission * `/zone select`: Selects a region. * Usage: `/zone select [regionKey]` * If `regionKey` is not provided, the region at the player's location will be used. * Visually highlights the region in the world using particles. * Player needs to be a member of the region, or have the `zones.select.other` permission * `/zone mode`: Changes the selection mode. * Usage: `/zone mode ` * `` is the new mode to set the player to. * e.g., `3d` for 3D selection mode, `2d` for 2D selection mode. * `/zone save`: Manually saves all regions to file. * Usage: `/zone save` * Admin only, requires the `zones.save` permission (not given by default) * `/zone load`: Manually loads all regions from file. * Usage: `/zone load` * Admin only, requires the `zones.load` permission (not given by default) * `/zone import`: Imports regions from another plugin. * Usage: `/zone import ` * Currently only supports WorldGuard. * Admin only, requires the `zones.import` permission (not given by default) ## Usage ### Creating a Region 1. Use the `/zone create` command to start the creation process. 2. Use left-click on a block to set the first corner of the region. A green beacon will appear. 3. Use right-click on a block to set the second corner of the region. A red beacon will appear. 4. Use the `/zone create` command to create the region. ### Creating a Sub-Region 1. Use the `/zone subcreate` command to start the creation process. 2. Select the two corners of the sub-region as described above. 3. Use the `/zone subcreate` command to create the sub-region within the region you are standing in or use `/zone subcreate ` to create a sub-region within the specified region. ### Setting Permissions 1. Use the `/zone set ` command to set permissions for a member of a region. * Example: `/zone set Player1 break true` allows "Player1" to break blocks in the specified region. * Example: `/zone set Player2 break GRASS_BLOCK` allows "Player2" to break only `GRASS_BLOCK` blocks in the specified region. * Example: `/zone set Player3 interact !OAK_DOOR` denies "Player3" to interact with `OAK_DOOR`in the specified region. * Example: `/zone set Player4 place *` allows "Player4" to place all blocks in the specified region. * Example: `/zone set Player5 break !*` denies "Player5" to break all blocks in the specified region. * Groups: * To assign a group, set the value of the permission `group` to the group name. * e.g.: Create a group and assign permission: `/zone set +group-some-group-name break true` * e.g. `/zone set ExamplePlayer group some-group-name` * ExamplePlayer now inherits the permission `break` from the group `some-group-name` ### Viewing Region Information 1. Use the `/zone info` command to view information about the region you are standing in. 2. Use the `/zone info ` command to view information about a specific region. ## Integrations ### WorldGuard Zones supports importing WorldGuard regions via the `/zone import WorldGuard` command. To use this feature, you must have WorldGuard installed and enabled. Zones will automatically import all Cuboid regions, including their members. ### WorldEdit WorldEdit can only be used to modify blocks in a region if the executing player would be allowed to manually modify the region. ### PlaceholderAPI Zones provides multiple placeholders for use with the PlaceholderAPI plugin, displaying region information for the region the player is standing in. It currently supports the following placeholders: * `%zones_get_name%` * `%zones_get_key%` * `%zones_get_members%` * `%zones_get_owner%` * `%zones_get_min%` * `%zones_get_min_x%` * `%zones_get_min_y%` * `%zones_get_min_z%` * `%zones_get_max%` * `%zones_get_max_x%` * `%zones_get_max_y%` * `%zones_get_max_z%` * `%zones_is_member%` * `%zones_can_place_hand%` * `%zones_can_break_target%` * `%zones_can__%` ## Design Choices * **YAML Configuration:** The plugin uses YAML files for configuration and storage, making it easy to read and modify. Additional storage options are planned for future releases. * **Permission System:** The permission system is designed to be flexible and granular, allowing for fine-grained control over player interactions. * **Event-Driven:** The plugin uses Bukkit's event system to handle player interactions, making it efficient and responsive. * **Caching:** The plugin uses a caching system to improve performance when checking permissions. ## Contributing Contributions to the plugin are welcome! If you have any ideas for new features, bug fixes, or improvements, please feel free to submit a pull request or open an issue. ## License This plugin is distributed under the MIT License.