Giter Site home page Giter Site logo

electrogamesdev / multiworld Goto Github PK

View Code? Open in Web Editor NEW

This project forked from czechpmdevs/multiworld

0.0 1.0 0.0 1.44 MB

🌎 An advanced world management PocketMine plugin with custom world generators.

License: GNU General Public License v3.0

PHP 100.00%

multiworld's Introduction



βœ”οΈ Passing PHPStan Level 9
βœ”οΈ Simple world management commands
βœ”οΈ New generators (Ender, Nether, Void, SkyBlock)
βœ”οΈCustom world generator
βœ”οΈ Supports last PocketMine API version
βœ”οΈ Multi-language system
βœ”οΈ Implemented Game Rules
βœ”οΈ Simple API for other plugins

πŸ‘ 1.7.0 Update:

  • Bug fixes
  • Update to PocketMine 4.x api

⬇️ Downloads:

Version Phar Download Zip Download API Stable Pre release
1.7.0-beta2 Poggit CI GitHub 4.0.0 ❌ βœ”
1.6.0-beta6 Poggit releases GitHub 3.20.0+ βœ” βœ”
1.5.3 Poggit releases GitHub 3.20.0+ βœ” ❌
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


πŸ“ Supported software:

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.

πŸ”§ How to install MultiWorld?

  1. Download latest stable released version from poggit
  2. Move dowloaded file to your server /plugins/ folder
  3. Restart the server

🌎 World management commands:

  • 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 or lobby or default> [x] [y] [z] [world]

In game enough type /mw update <...> without [x] [y] [z] [world], subcommand lobby can be used only in game
/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 or gamerule> [bool]

Level game rules can be changed in server settings, implemented game rules: doDaylightCycle, doMobLoot, doTileDrops, keepInventory, naturalRegeneration, pvp, showcoordinates and tntexplodes more informations can be found on WorldGameRulesAPI documentation
/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.

πŸ“ƒ Permissions:

  • 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 βœ”οΈ

⛰️ Generators

Custom World Generator:

Nether World Generator:

End World Generator:

SkyBlock Generator:

πŸ–ŠοΈ World Game Rules API

  • 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, showcoordinatesand tntexplodes

  • 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 czechpmdevs\multiworld\MultiWorld;  
use czechpmdevs\multiworld\world\gamerules\GameRule;
use pocketmine\command\Command;  
use pocketmine\command\CommandSender;  
use pocketmine\event\world\WorldLoadEvent;  
use pocketmine\event\Listener;  
use pocketmine\plugin\PluginBase;  
  
class XYZPlugin extends PluginBase implements Listener {
 
  private bool $enabled = false;  
  
  public function onEnable() {  
    $this->getServer()->getPluginManager()->registerEvents($this, $this);  
    $this->update();  
  }
    
   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;
   }  
   
  public function onLevelLoad(WorldLoadEvent $event): void {
    MultiWorld::getGameRules($event->getWorld())->setRule(GameRule::SHOW_COORDINATES()->setValue(true));
  }
  
  private function update(): void {
    foreach ($this->getServer()->getLevels() as $level) {  
      MultiWorld::getGameRules($event->getWorld())->setRule(GameRule::SHOW_COORDINATES()->setValue(true));
    }
  }
}

🌐Add your language!

  • Do you want to help with the development of MultiWorld? Add your native language!
  1. Open lanuage resource file
  2. Click create new file
  3. Translate e.g. language from English file https://github.com/CzechPMDevs/MultiWorld/blob/master/resources/languages/en_US.yml
  4. Click Propose new file

πŸ’° Credits

πŸ’‘ License

MultiWorld - PocketMine plugin that manages worlds.
Copyright (C) 2018 - 2022 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.

multiworld's People

Contributors

electrogamesdev avatar fuyutsuki avatar gamakcz avatar hydros01 avatar meltinglce avatar poggit-bot avatar supercrafter333 avatar themestl avatar vixikhd avatar

Watchers

 avatar

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    πŸ–– Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. πŸ“ŠπŸ“ˆπŸŽ‰

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❀️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.