Ecosyste.ms: Awesome

An open API service indexing awesome lists of open source software.

Awesome Lists | Featured Topics | Projects

https://github.com/czechpmdevs/buildertools

🪓 Powerful World Editor plugin for PocketMine servers
https://github.com/czechpmdevs/buildertools

buildertools minecraft phpstan-l9 plugin pmmp pocketmine pocketmine-mp pocketmine-mp-plugin pocketmine-plugin pocketmine-plugins worldedit

Last synced: about 18 hours ago
JSON representation

🪓 Powerful World Editor plugin for PocketMine servers

Awesome Lists containing this project

README

        

























✔️ Advanced WorldEdit commands


✔️ Using Sub Chunk Iterator to make block placing faster


✔️ Supports schematics


✔️ Minecraft: Java Version maps world fixer


✔️ Supports last PocketMine API version





## 👍 1.3.0 Update:
- Bug fixes
- Clipboard compression
- Huge performance boost
- Support for API 4.0
- Added Sponge and MCStructure schematics formats

## ⬇️ Downloads:

| Version | Phar Download | Zip Download | API | Min php version |
|-------------|--------------------------------------------------------------------------------------------------------------------|-----------------------------------------------------------------------------------------------------------------------|--------------|-----------------|
| 1.3.0-beta2 | [Poggit](https://poggit.pmmp.io/r/150805/BuilderTools.phar) | [GitHub](https://github.com/CzechPMDevs/BuilderTools/archive/refs/tags/1.3.0-beta2.zip) | 4.0.0^ | 8.0 |
| 1.3.0-beta1 | [Poggit](https://poggit.pmmp.io/r/149219/BuilderTools.phar) | [GitHub](https://github.com/CzechPMDevs/BuilderTools/archive/b0edbf0885ffabd04f4a0122c70187a6f18bd821.zip) | 4.0.0^ | 8.0 |
| 1.2.0-beta4 | [Poggit](https://poggit.pmmp.io/r/125306/BuilderTools.phar) | [GitHub](https://github.com/CzechPMDevs/BuilderTools/archive/refs/tags/1.2.0-beta4.zip) | 3.16.0^ | 7.4 |
| 1.2.0-beta3 | [Poggit](https://poggit.pmmp.io/r/122470/BuilderTools.phar) | [GitHub](https://github.com/CzechPMDevs/BuilderTools/archive/refs/tags/1.2.0-beta3.zip) | 3.16.0^ | 7.4 |
| 1.2.0-beta2 | [Poggit](https://poggit.pmmp.io/r/62312/BuilderTools.phar) | [GitHub](https://github.com/CzechPMDevs/BuilderTools/archive/refs/heads/41b127a689d523683f8cd3c5e3704688073a818f.zip) | 3.x.x | 7.0 |
| 1.2.0-beta1 | [Poggit](https://poggit.pmmp.io/r/55728/BuilderTools.phar) | [GitHub](https://github.com/CzechPMDevs/BuilderTools/archive/refs/heads/648661f756b8bd8c89582e637ee864f9411763a2.zip) | 3.x.x | 7.0 |
| 1.1.0 | [GitHub](https://github.com/CzechPMDevs/BuilderTools/releases/download/1.1.0/BuilderTools_v1.1.0.phar) | [GitHub](https://github.com/CzechPMDevs/BuilderTools/archive/1.1.0) | 3.x.x | 7.0 |
| 1.1.0-beta2 | [GitHub](https://github.com/CzechPMDevs/BuilderTools/releases/download/1.1.0-beta2/BuilderTools_v1.1.0-beta2.phar) | [GitHub](https://github.com/CzechPMDevs/BuilderTools/archive/1.1.0-beta2) | 3.x.x | 7.0 |
| 1.1.0-beta1 | [GitHub](https://github.com/CzechPMDevs/BuilderTools/releases/download/1.1.0-beta1/BuilderTools_v1.1.0-beta1.phar) | [GitHub](https://github.com/CzechPMDevs/BuilderTools/archive/1.1.0-beta1) | 3.x.x | 7.0 |
| 1.0.0 | [GitHub](https://github.com/CzechPMDevs/BuilderTools/releases/download/1.0.0/BuilderTools.phar) | [GitHub](https://github.com/CzechPMDevs/BuilderTools/archive/1.0.0.zip) | 3.0.0-ALPHA7 | 7.0 |


> **All released versions [here](https://github.com/CzechPMDevs/BuilderTools/releases)**
> **Other plugins by CzechPMDevs [here](https://poggit.pmmp.io/plugins/by/CzechPMDevs)**


## 💬 FAQ
- `Required extension Core has an incompatible version (7.* not >=7.4)`
- Your server is using outdated PHP version. If you host your server by yourself, update your php binaries [More information](https://pmmp.readthedocs.io/en/rtfd/installation/installing-manually.html#getting-php-for-your-server). If you are using some host provider, contact them to update their php version.

## 🔧 How to install BuilderTools?

1) [Download](https://poggit.pmmp.io/ci/CzechPMDevs/BuilderTools/~) latest stable version from poggit
2) Move dowloaded file to your server **/plugins/** folder
3) Restart the server

## 🏠 BuilderTools commands

- All BuilderTools commands starts with `//`except for the `/buildertools` command that was added as an alias because `//help` not works in newer versions.
- In game, you can get list of all commands using commands `//commands`




**Commands**

| **Command** | **Description** |
|----------------------|--------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------|
| **//commands** | **Displays list BuilderTools commands**

Alias: `//commands`, `/buildertools`
Usage: `//commands ` |
| **//biome** | **Changes biome in selected area**

Usage: `//biome list` OR `//biome ` |
| **//blockinfo** | **Switch block info mode**

Usage: `//blockinfo`
Alias: `//bi`

In blockinfo mode you can get information about block by touching it. |
| **//clearinventory** | **Clears inventory**

Usage: `//clearinventory`
Alias: `//ci` |
| **//center** | **Finds center of the selection**

Usage: `//center`

Bedrock will appear in the middle of the selection |
| **//copy** | **Copy selected area into the clipboard**

Usage: `//copy`

Copied area can be placed again using `//paste`, merged with the environment `//merge` or rotated `//rotate`. |
| **//cube** | **Creates cube**

Usage: `//cube `

Creates a cube at your position. |
| **//cut** | **Cuts out selected area**

Usage: `//cube `

The are is afterwards moved on to clipboard. |
| **//cylinder** | **Creates cylinder**

Usage: `//cube `

Creates a cylinder at your position. |
| **//draw** | **Draws with blocks**

Usage: `//draw [brush: 1-6] [fall = false]`

We recommend to use this command while creating big mountains. Draw mode is turned on by typing `//draw ` and can be turned of typing `//draw off`. |
| **//fill** | **Fill selected area**

Aliases: `//set`, `//change`
Usage: `//fill `

First you must create area using `//pos1`, `//pos2` or by `//wand`. |
| **//fix** | **Fixes block in world from Minecraft: Java Edition**

Usage: `//fix ` |
| **//flip** | **Flips selection**

Usage `//flip x` OR `//flip y` OR `//flip z`

The argument represents axis to flip the selection through. |
| **//hcube** | **Creates hollow cube**

Usage: `//hcube `

Creates hollow cube at your position. |
| **//hcylinder** | **Creates hollow cylinder**

Usage: `//hcyl `

Creates hollow cylinder at your position. |
| **//hpyramid** | **Creates hollow pyramid**

Usage: `//hpyramid `

Creates hollow pyramid at your position. |
| **//hsphere** | **Creates hollow sphere**

Usage: `//hsphere `

Creates hollow sphere at your position. |
| **//id** | **Displays id of item in your hand**

Usage: `//id` |
| **//merge** | **Merge copied area**

Usage: `//merge` |
| **//move** | **Move blocks in selection**

Usage: `//move `

Move blocks in selected area. |
| **//naturalize** | **Replaces blocks in selected area to grass,dirt and stone**

Usage: `//naturalize` |
| **//outline** | **Fills hollow selected area**

Usage: `//outline `

Changes the all the outer layers. |
| **//paste** | **Paste copied area**

Usage: `//paste` |
| **//pos1** | **Select first position**

Aliases: `//1`, `//pos1`
Usage: `//pos1`

You need select two positions for eg. filling or fixing Minecraft: Java Edition maps. |
| **//pos2** | **Select second position**

Aliases: `//2`, `//pos2`
Usage: `//pos2`

You need select two positions for eg. filling or fixing Minecraft: Java Edition maps. |
| **//pyramid** | **Creates pyramid**

Usage: `//pyramid `

Creates pyramid in your position. |
| **//redo** | **Re-do BuilderTools action**

Usage: `//redo` |
| **//replace** | **Replace blocks in selected area**

Usage: `//replace `

Replace blocks in selected area. First you must create area using `//pos1`, `//pos2` or by `//wand`. |
| **//rotate** | **Rotate copied area**

Usage: `//rotate [x] [z]`

Y, X or Z is axis you can rotate object around. Use degrees as unit. Example: `//rotate 90` |
| **//schematic** | **Manage with schematics**

Usage: `//schem [filename]`

Manage with schematics (reload - loads all schematics to memory; load - loads schematics for //schem paste; list - displays list of loaded schematics. |
| **//sphere** | **Creates sphere**

Usage: `//sphere `

Creates a sphere in your position. |
| **//stack** | **Stacks copied area**

Usage: `//stack [side or up or down]`

Stacks blocks in line. |
| **//tree** | **Spawns tree**

Usage: `//tree `

There are implemented only basic trees (`oak`, `spruce`, `jungle` and `birch`) |
| **//undo** | **Cancels BuilderTools action**

Usage: `//undo` |
| **//wand** | **Switch wand tool**

Usage: `//wand`

First p
osition is set by breaking the block, second by touching the block. Wand tool can be turned of typing `//wand` again. |


## 🛠️ Other features:

### 📜 Schematics
- You can save your selection to a file and then load it again
- BuilderTools supports loading [MCEdit](https://minecraft.fandom.com/wiki/Schematic_file_format) and [MCStructure](https://minecraft.fandom.com/wiki/Structure_Block#Save) formats and creating schematics wth MCEdit format.
- Schematics are loaded asynchronously, that means it won't lag server while loading.

#### Loading schematics:
1) Move schematic file to `/plugin_data/BuilderTools/schematics` directory
2) Load schematic using `//schem load `
3) Paste into the world using `//schem paste `

#### Creating schematics:
1) Select two positions using `//pos1` & `//pos2` commands or using wand axe.
2) Use `//schem create `
3) File will be saved in directory `/plugin_data/BuilderTools/schematics/schematicName.schematic`

### 🌎 Fixing Java: Edition worlds
- BuilderTools is able to fix block ids in worlds generated by Minecraft: Java Edition.
- Currently, we support only [Anvil](https://minecraft.fandom.com/wiki/Anvil_file_format) world format
- To fix a world use `//fix `
- Worlds are fixed asynchronously, so the process will not freeze server. Players are able to play while fixing world, but are not able to join the world, which is being fixed.

## 📃 Permissions




**All BuilderTools Permissions:**

| Permission | Command | Operator Permissions required |
|-------------------------------------|--------------------|-------------------------------|
| buildertools.command.help | `//commands` | ✔️ |
| buildertools.command.biome | `//biome` | ✔️ |
| buildertools.command.blockinfo | `//blockinfo` | ✔️ |
| buildertools.command.clearinventory | `//clearinventory` | ✔️ |
| buildertools.command.copy | `//copy` | ✔️ |
| buildertools.command.cube | `//cube` | ✔️ |
| buildertools.command.cut | `//cut` | ✔️ |
| buildertools.command.cylinder | `//cylinder` | ✔️ |
| buildertools.command.decoration | `//decoration` | ✔️ |
| buildertools.command.draw | `//draw` | ✔️ |
| buildertools.command.fill | `//fill` | ✔️ |
| buildertools.command.fix | `//fix` | ✔️ |
| buildertools.command.hcube | `//hcube` | ✔️ |
| buildertools.command.hcylinder | `//hcylinder` | ✔️ |
| buildertools.command.hpyramid | `//hpyramid` | ✔️ |
| buildertools.command.hsphere | `//hsphere` | ✔️ |
| buildertools.command.id | `//id` | ✔️ |
| buildertools.command.merge | `//merge` | ✔️ |
| buildertools.command.move | `//move` | ✔️ |
| buildertools.command.naturalize | `//naturalize` | ✔️ |
| buildertools.command.outline | `//outline` | ✔️ |
| buildertools.command.paste | `//paste` | ✔️ |
| buildertools.command.pos1 | `//pos1` | ✔️ |
| buildertools.command.pos2 | `//pos2` | ✔️ |
| buildertools.command.pyramid | `//pyramid` | ✔️ |
| buildertools.command.rotate | `//rotate` | ✔️ |
| buildertools.command.schematic | `//schematic` | ✔️ |
| buildertools.command.sphere | `//sphere` | ✔️ |
| buildertools.command.stack | `//stack` | ✔️ |
| buildertools.command.tree | `//tree` | ✔️ |
| buildertools.command.undo | `//undo` | ✔️ |
| buildertools.command.walls | `//walls` | ✔️ |
| buildertools.command.wand | `//wand` | ✔️ |

## 🔧 Configuration
- Default configuration:

```yaml
# BuilderTools configuration file
# Target BuilderTools version: 1.3.0

# Do not change this line.
config-version: 1.3.0.0

# This is format which will be used for creating schematics
# Supported formats: 'mcedit', 'mcstructure', 'buildertools'
output-schematics-format: 'mcedit'

# Option for compressing clipboards. This will make the actions
# slower, but reduces RAM usage.
clipboard-compression: true

# Some shapes are generated with duplicate blocks. This problem causes
# some blocks are not reverted right when doing //undo. This option
# is for removing duplicates.
# Warning: This action takes around 98% time of the whole process!
remove-duplicate-blocks: true

# BuilderTools saves player's clipboard, undo & redo stuff when player
# leaves server to disk. This cache should be cleaned after restart (to
# avoid unexpected bugs). This option is to disable removing those files.
clean-cache: true

# When player leaves the server, player's session is saved, even if player did not
# do any action with BuilderTools. If you enable this, player's sessions will not
# be saved and when player joins the server again, his clipboard data will be lost
# This option is good when BuilderTools is only used as api plugin on server with
# high amount of players.
discard-sessions: false

# PowerItems settings:

# When disabled, //wand command still works, but instead of wand axe is hand
# going to be the 'wand tool'
wand-axe:
enabled: true
name: "§r§fWand Axe\n§7§oBreak for first pos\n§7§oTouch for second pos"

blockinfo-stick:
enabled: false
name: "§r§fDebug Stick\n§7§oTouch block for info"
```




## 💰 Credits

- Icon made by [Freepik](http://www.freepik.com/ "Freepik") from [www.flaticon.com](https://www.flaticon.com/ "Flaticon") is licensed by [CC 3.0 BY](http://creativecommons.org/licenses/by/3.0/ "Creative Commons BY 3.0")
- Seabuild spawn built by CryptoKey


## 💡 License

```
Copyright 2018-2022 CzechPMDevs

Licensed under the Apache License, Version 2.0 (the "License");
you may not use this file except in compliance with the License.
You may obtain a copy of the License at

https://www.apache.org/licenses/LICENSE-2.0

Unless required by applicable law or agreed to in writing, software
distributed under the License is distributed on an "AS IS" BASIS,
WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
See the License for the specific language governing permissions and
limitations under the License.
```

Full license [here](https://github.com/CzechPMDevs/BuilderTools/blob/master/LICENSE).