βοΈ Passing PHPStan Level 8
βοΈ Simple world management commands
βοΈNew generators (Ender, Nether, Void, SkyBlock)
βοΈCustom world generator
βοΈ Fast, without lags
βοΈ Supports last PocketMine API version
βοΈ Multi language sytem
βοΈ Implemented Game Rules
βοΈ Simple API for other plugins
- Bug fixes
- New biomes in Custom world generator
- Custom generator added to Form world manager
Version | Phar Download | Zip Download | API | Stable | Pre release |
---|---|---|---|---|---|
1.5.2 | Poggit releases | GitHub | 3.x.x | βοΈ | β |
1.5.1 | Poggit releases | GitHub | 3.x.x | βοΈ | β |
1.5.0 | Poggit releases | GitHub | 3.0.0, 3.1.0 | βοΈ | β |
1.5.0-beta2 | GitHub | GitHub | 3.0.0, 3.1.0 | βοΈ | βοΈ |
1.5.0-beta1 | GitHub | GitHub | 3.0.0, 3.1.0 | β | βοΈ |
1.4.3 | Poggit Releases | GitHub | 3.0.0-ALPHA7 - 3.0.0 | βοΈ | β |
1.4.2 | Poggit Releases | GitHub | 3.0.0-ALPHA7 - 3.0.0-ALPHA12 | βοΈ | β |
1.4.1 | Poggit-CI Downloads | GitHub | 3.0.0-ALPHA7 - 3.0.0-ALPHA12 | βοΈ | β |
1.4.0 | Poggit Releases | GitHub | 3.0.0-ALPHA7 - 3.0.0-ALPHA11 | βοΈ | β |
1.3.2 | Poggit-CI Downloads | GitHub | 3.0.0-ALPHA7 | β | β |
1.3.1 | GitHub | GitHub | 3.0.0-ALPHA7 | βοΈ | β |
1.3.0 | Poggit-CI Downloads | GitHub | 3.0.0-ALPHA7 | β | β |
Download latest version here
All released versions here All development builds on Poggit Latest released version on Poggit Other plugins by CzechPMDevs here
This plugin works only on PocketMine-MP. You can download MultiWorld by Creeperface for Nukkit or MultiWorld by ferrybig for Bukkit. PMMP Spoons are NOT supported.
- Download latest stable released version from poggit
- Move dowloaded file to your server /plugins/ folder
- Restart the server
- All MultiWorld commands starts with
/mw
(/multiworld
) except for the/gamerule
command that was added as an alias to change game rules from settings. - In game, you can get list of all commands using commands
/mw help
All MultiWorld Commands:
Command | Description |
---|---|
/mw help | Displays list of all MultiWorld commands Alias: /mw ? Usage: /mw help <page: 0-1> |
/mw create | Generate new world using seed and generator Aliases: /mw new , /mw generate Usage: /mw create <levelName> [seed] [generator] Seed is value seed is the initial value by which the world is generated, when you set it empty, world will be generated by random number. You can use 6 generators ( Normal , Nether , End , Void , SkyBock and Nether_Old = Nether generator without glowstone and quartz ore) |
/mw teleport | Teleports you or seleced player to world spawn Aliases: /mw tp , /tp move Usage: /mw tp <levelName> [player] If you are using Slapper plugin and after you click on the npc you want to move the player to another world, you can use /slapper edit <id> addcommand mw tp <world> {player} command |
/mw list | Displays list of all levels Alias: /mw ls Usage: /mw list |
/mw info | Displays level information Alias: /mw i Usage: /mw info This command can be used only in game |
/mw delete | Remove level Aliases: /mw del , /mw dl , /mw remove , /mw rm Usage: /mw remove <level> Default level can not be deleted |
/mw update | Change spawn, lobby or default level Aliases: /mw ue Usage: `/mw update <spawn |
/mw load | Loads level Aliases: /mw ld Usage: /mw load <level> |
/mw unload | Unloads level Aliases: /mw unld Usage: /mw unload <level> |
/mw gamerule | Manage with level game rules Aliases: /gamerule , /mw gr , /mw gamer , /mw grule Usage: `/gamerule <list |
/mw rename | Renames level Aliases: /mw rnm , /mw re Usage: /mw rename <levelName> <newName> This command changes name of the folder and of nbt too. |
/mw manage | Opens world form manager Aliases: /mw mng , /mw mg Usage: /mw manage The form manager just dispatches command as a player, so player needs also permission for the command. |
- You can use permission
mw.cmd
for all commands
All MultiWorlds Permissions:
Permission | Command | Operator |
---|---|---|
mw.cmd.help | /mw help |
βοΈ |
mw.cmd.create | /mw create |
βοΈ |
mw.cmd.teleport | /mw teleport |
βοΈ |
mw.cmd.list | /mw list |
βοΈ |
mw.cmd.info | /mw info |
βοΈ |
mw.cmd.delete | /mw delete |
βοΈ |
mw.cmd.update | /mw update |
βοΈ |
mw.cmd.load | /mw load |
βοΈ |
mw.cmd.unload | /mw unload |
βοΈ |
mw.cmd.gamerule | /mw gamerule |
βοΈ |
mw.cmd.rename | /mw rename |
βοΈ |
mw.cmd.manage | /mw manage |
βοΈ |
- World management api was added in MultiWorld v1.5.0, you can download stubs on release page, there are all WorldManagementAPI methods
Examples:
/**
* @param string $levelName
*
* @return bool
*/
public function reloadWorld(string $levelName): bool {
if(!WorldManagementAPI::isLevelGenerated($levelName)) {
return false;
}
if(!WorldManagementAPI::isLevelLoaded($levelName)) {
WorldManagementAPI::loadLevel($levelName);
}
WorldManagementAPI::removeLevel($levelName);
WorldManagementAPI::generateLevel($levelName, rand(0, 100), WorldManagementAPI::GENERATOR_SKYBLOCK);
return true;
}
-
The World game rules API was added in MultiWorld v1.5.0, you can download stubs on release page, there are all WorldGameRulesAPI methods
-
All implemented GameRules:
doDaylightCycle
,doMobLoot
,doTileDrops
,keepInventory
,naturalRegeneration
,pvp
,showcoordinates
andtntexplodes
-
GameRules are stored in level.dat in CompoundTag
GameRules
, you can look at it using NBTExplorer or UniversalMinecraftEditor.
Examples:
<?php
declare(strict_types=1);
namespace xyz;
use multiworld\api\WorldGameRulesAPI;
use pocketmine\command\Command;
use pocketmine\command\CommandSender;
use pocketmine\event\level\LevelLoadEvent;
use pocketmine\event\Listener;
use pocketmine\plugin\PluginBase;
/**
* Class XYZPlugin
* @package xyz
*/
class XYZPlugin extends PluginBase implements Listener {
/** @var bool $enabled */
private $enabled = false;
public function onEnable() {
$this->getServer()->getPluginManager()->registerEvents($this, $this);
$this->update();
}
/**
* @param CommandSender $sender
* @param Command $command
* @param string $label
* @param array $args
*
* @return bool
*/
public function onCommand(CommandSender $sender, Command $command, string $label, array $args): bool {
if($command->getName() !== "xyz") {
return false;
}
$bool = $this->enabled ? "off" : "on";
$sender->sendMessage("Β§a> Coordinates turned $bool!");
$this->enabled = !$this->enabled;
$this->update();
return true;
}
/**
* @param LevelLoadEvent $event
*/
public function onLevelLoad(LevelLoadEvent $event) {
WorldGameRulesAPI::updateLevelGameRule($event->getLevel(), "showcoordinates", $this->enabled);
}
private function update() {
foreach ($this->getServer()->getLevels() as $level) {
WorldGameRulesAPI::updateLevelGameRule($level, "showcoordinates", $this->enabled);
}
}
}
- Do you want to help with the development of MultiWorld? Add your native language!
- Open lanuage resource file
- Click create new file
- Translate e.g. language from English file https://github.com/CzechPMDevs/MultiWorld/blob/master/resources/languages/en_US.yml
- Click Propose new file
- Icon made by Freepik from www.flaticon.com is licensed by CC 3.0 BY
- Japanese translation by fuyutsuki
- Russian translation by SteinsSquad (themestl)
- Indonesian translation by WooWBoom
- German translation by SchdowNVIDIA and Tobikisss
- Chinese translation by abc1460132901
MultiWorld - PocketMine plugin that manages worlds.
Copyright (C) 2018 CzechPMDevs
This program is free software: you can redistribute it and/or modify
it under the terms of the GNU General Public License as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
This program is distributed in the hope that it will be useful,
but WITHOUT ANY WARRANTY; without even the implied warranty of
MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
GNU General Public License for more details.
You should have received a copy of the GNU General Public License
along with this program. If not, see <https://www.gnu.org/licenses/>.
Full license here.