Giter Club home page Giter Club logo

multiworld's Introduction

MultiWorld

SpigotMC Downloads Spiget Rating GitHub CodeFactor GitHub Release

What is MultiWorld?

MultiWorld is a World Management plugin for Minecraft Server.

  • This plugin is almost 100% adjustable
  • PVP is adjustable for each world
  • GameMode setting for each world. When you change the world your game mode will be changed automatically (Deactivatable)
  • Custom Generator Support. If you want to use another plugin to generate worlds then MultiWorld will detect this and add it to the create command
  • Each world has its own whitelist. You don't want Dev7ex to enter your world to destroy your buildings? Then activate the whitelist and add only trusted people to it. (Deactivatable)
  • It is possible to disable access to the Nether or End with the Teleport command
  • It is also possible to disable the portals completely

Links

Commands

* /world                                                                [multiworld.command.world]
* /world back                                                           [multiworld.command.world.back]
* /world backup <World>                                                 [multiworld.command.world.backup]
* /world clone <World> <Clone>                                          [multiworld.command.world.clone]
* /world create <Name> <WorldType|Seed|Generator>                       [multiworld.command.world.create]
* /world delete <World>                                                 [multiworld.command.world.delete]
* /world flag <World> <Option> <Value>                                  [multiworld.command.world.flag]
* /world help                                                           [multiworld.command.world]
* /world import <Name> <WorldType>                                      [multiworld.command.world.import]
* /world info <World>                                                   [multiworld.command.world.info]
* /world list                                                           [multiworld.command.world.list]
* /world load <World>                                                   [multiworld.command.world.load]
* /world reload                                                         [multiworld.command.world.reload]
* /world teleport <Player> <World>                                      [multiworld.command.world.teleport]
* /world unload <World>                                                 [multiworld.command.world.unload]
* /world whitelist <World> <Enable|Disable|Add|Remove|List> <Name>      [multiworld.command.world.whitelist]

Configuration

#
#      __  ___      ____  _ _       __           __    __
#    /  |/  /_  __/ / /_(_) |     / /___  _____/ /___/ /
#   / /|_/ / / / / / __/ /| | /| / / __ \/ ___/ / __  /
#  / /  / / /_/ / / /_/ / | |/ |/ / /_/ / /  / / /_/ /
# /_/  /_/\__,_/_/\__/_/  |__/|__/\____/_/  /_/\__,_/
#
# Copyright (c) 2021 - 2024 by Dev7ex
# Version: ${project.version}
config-version: ${project.version}
# General
prefix: '§8[§bMultiWorld§8]§r'
no-permission: '§cIm sorry, but you do not have permission to perform this command. Please contact the server administrators if you believe that is in error.'
no-console-command: '%prefix% §cThis command can only performed by a player'
no-player-command: '%prefix% §cThis command can only performed by the console'
no-player-found: '%prefix% §cThis player could not be found'

settings:
  # Should all players with the permission (multiworld.notify.update)
  # get a message when entering server
  receive-update-message: true
  # Should the auto-game-mode per world work?
  auto-game-mode-enabled: true
  # Should you be able to enter Nether/End worlds with the command /world telport <Player> <World>
  access-nether-world-via-command: true
  access-end-world-via-command: true
  # Standard values for new worlds
  defaults:
    normal-world: world
    load-auto: false
    difficulty: PEACEFUL
    game-mode: SURVIVAL
    pvp-enabled: true
    spawn-animals: true
    spawn-monsters: true
    end-portal-accessible: true
    nether-portal-accessible: true
    whitelist-enabled: false

messages:
  general:
    update-message-player: '%prefix% §7There is a new update available. §8[§bhttps://www.spigotmc.org/resources/multiworld.92559§8]'
    update-message-version-player: '%prefix% §7Current Version: §b%current_version% §7New Version §b%new_version%'
    world-not-exists: '%prefix% §cThe specified world does not exist!'
    world-not-loaded: '%prefix% §cThe specified world is not loaded!'
    world-already-exists: '%prefix% §cThe specified world already exists!'
    world-type-not-exists: '%prefix% §cThe specified WorldType does not exist'
    world-folder-not-exists: '%prefix% §cNo world folder could be found!'
    world-whitelist-block-trespassing: '%prefix% §7You are not on the whitelist of this world!'
  commands:
    back:
      usage: '%prefix% §cUsage: /world back'
      world-not-exists: '%prefix% §cThere is no world you can go!'
      sender-already-there: '%prefix% §cYou are already in the world §b%world_name%'
    backup:
      usage: '%prefix% §cUsage: /world backup <World>'
      starting: '%prefix% §7A backup of the world §b%world_name% is created...'
      finished: '%prefix% §7The backup of the world §b%world_name% §7has been successfully created!'
    clone:
      usage: '%prefix% §cUsage: /world clone <World> <Name>'
      starting: '%prefix% §7The world §b%world_name% §7will be copied...'
      finished: '%prefix% §7The world §b%world_name% §7has been successfully copied!'
    create:
      usage: '%prefix% §cUsage: /world create <Name> <Generator | Seed | WorldType>'
      starting: '%prefix% §7The world §b%world_name% §7will be created...'
      finished: '%prefix% §7The world §b%world_name% §7was created successfully!'
    delete:
      usage: '%prefix% §cUsage: /world delete <World>'
      world-cannot-deleted: '%prefix% §cThe specified world may not be deleted!'
      starting: '%prefix% §7The world §b%world_name% §7will be deleted...'
      finished: '%prefix% §7The world §b%world_name% §7has been successfully deleted!'
    flag:
      usage: '%prefix% §cUsage: /world flag <World> <Flag> <Value>'
      not-existing: '%prefix% §cThis flag does not exist'
      value-not-existing: '%prefix% §cThis value does not exist for the flag §b%flag%'
      successfully-set: '%prefix% §7The flag §b%flag% §7was set to §b%value% §7!'
    help:
      message:
        - ''
        - '§f§m                    §r§r %prefix% §f§m                    '
        - ''
        - '§7» §7/world §bback'
        - '§7» §7/world §bbackup §7<World>'
        - '§7» §7/world §bclone §7<World> <Name>'
        - '§7» §7/world §bcreate §7<Name> <WorldType | Seed | Generator>'
        - '§7» §7/world §bdelete §7<World>'
        - '§7» §7/world §bflag §7<World> <Property> <Value>'
        - '§7» §7/world §bhelp'
        - '§7» §7/world §bimport §7<World> <WorldType>'
        - '§7» §7/world §binfo §7<World>'
        - '§7» §7/world §blist'
        - '§7» §7/world §bload §7<World>'
        - '§7» §7/world §breload'
        - '§7» §7/world §bteleport §7<Player> <Welt>'
        - '§7» §7/world §bunload §7<World>'
        - '§7» §7/world §bwhitelist §7<World> <Enable | Disable | Add | Remove | List> <Name>'
        - ''
        - '§f§m                    §r§r %prefix% §f§m                    '
        - ''
    import:
      usage: '%prefix% §cUsage: /world import <Name> <WorldType | Generator>'
      world-already-imported: '%prefix% §7The world §b%world_name% §7is already imported!'
      starting: '%prefix% §7The world §b%world_name% §7will import...'
      finished: '%prefix% §7The world §b%world_name% §7was successfully imported!'
    info:
      usage: '%prefix% §cUsage: /world info <World>'
      message:
        - ''
        - '§f§m               §r§r §b%world_name% §f§m               '
        - ''
        - '§7» Creator: §b%world_creator_name%'
        - '§7» Created at: §b%creation_timestamp%'
        - '§7» Load-Auto: §b%load_auto%'
        - '§7» Loaded: §b%loaded%'
        - '§7» WorldType: §b%world_type%'
        - '§7» Environment: §b%environment%'
        - '§7» Difficulty: §b%difficulty%'
        - '§7» GameMode: §b%gamemode%'
        - '§7» Pvp: §b%pvp_enabled%'
        - '§7» Spawn-Monster: §b%spawn_monsters%'
        - '§7» Spawn-Animals: §b%spawn_animals%'
        - '§7» End-Portal-Accessible: §b%end-portal-accessible%'
        - '§7» Nether-Portal-Accessible: §b%nether-portal-accessible%'
        - '§7» Whitelist: §b%whitelist_enabled%'
        - ''
        - '§f§m               §r§r §b%world_name% §f§m               '
        - ''
    list:
      usage: '%prefix% §cUsage: /world list'
      message: '%prefix% §aWorlds: %world_names%'
    load:
      usage: '%prefix% §cUsage: /world load <Name>'
      world-already-loaded: '%prefix% §7The world §b%world_name% §7is already loaded!'
      starting: '%prefix% §7The world §b%world_name% §7will loaded...'
      finished: '%prefix% §7The world §b%world_name% §7was successfully loaded!'
    reload:
      usage: '%prefix% §cUsage: /world reload'
      message: '%prefix% §7The configurations has been reloaded!'
    teleport:
      usage: '%prefix% §cUsage: /world teleport <Player> <World>'
      message: '%prefix% §a%player_name% §7is teleported to the world §b%world_name% §7!'
      sender-already-there: '%prefix% §7You are already in the world §b%world_name%'
      target-already-there: '%prefix% §7The player §a%player_name% §7is already in the world §b%world_name%'
      nether-not-accessible: '%prefix% §cYou cant enter the Nether via the command!'
      end-not-accessible: '%prefix% §cYou cant enter the end via the command!'
    unload:
      usage: '%prefix% §cUsage: /world unload <World>'
      world-cannot-unloaded: '%prefix% §cThe specified world must not be unloaded!'
      starting: '%prefix% §7The world §b%world_name% §7will be unloaded...'
      finished: '%prefix% §7The world §b%world_name% §7was successfully unloaded!'
      chunk-starting: '%prefix% §7The chunks in §b%world_name% §7are unloaded...'
      chunk-finished: '%prefix% §7The chunks in §b%world_name% §7were successfully unloaded!'
      chunk-teleport: '%prefix% §7The world you were in will be unloaded. You will be teleported!'
    whitelist:
      usage: '%prefix% §cUsage: /world whitelist <World> <On | Off | Add | List | Remove> <Player>'
      add:
        already-added: '%prefix% §The player %player_name% §7is already §7on the whitelist!'
        successfully-added: '%prefix% §7You have added %player_name% §7to the whitelist of world §b%world_name%'
      list:
        empty: '%prefix% §7The whitelist for world §b%world_name% §7is empty'
        message: '%prefix% §7Whitelist: %player_names%'
      disable:
        already-disabled: '%prefix% §7World whitelist §b%world_name% §7is already disabled!'
        successfully-disabled: '%prefix% §7You have disabled the whitelist in the world §b%world_name%§7!'
      enable:
        already-enabled: '%prefix% §7The world whitelist §b%world_name% §7is already activated!'
        successfully-enabled: '%prefix% §7You have activated the whitelist in the world §b%world_name% §7!'
      remove:
        already-removed: '%prefix% §7The player %player_name% §7is §not §7on the whitelist!'
        successfully-removed: '%prefix% §7You have %player_name% §7removed from the §b%world_name% §7whitelist'

Developer

  1. Install the the project in your local repository
  2. Add the dependency to your project

multiworld's People

Contributors

dev7ex avatar itstyrion avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar

multiworld's Issues

Request for a Feature to Disable Portal Functionality in a Specific World

Dear Development,

I am reaching out to propose the addition of a new feature that could greatly improve the experience for many users in multi-world server environments. This proposed feature involves providing server administrators the ability to disable the functionality of portals to other dimensions (such as the Nether and the End) within a specific world.

The motivation for this request stems from a desire to control and guide player progression within certain worlds, such as a Hub world, where unrestricted access to other dimensions may not be desirable. It would be beneficial to have a feature that allows us to manage whether portals in a given world can send players to other dimensions. This feature could bring about an improved degree of flexibility in managing player experience and progression.

Thank you for considering my proposal. I believe that this addition would be a meaningful improvement to the current system, benefiting a wide range of server administrators and players alike.

Nether portals all get linked

All the portals are being linked to one. Ex: going in the nether from overworld and then leaving it goes the one portal even though they should not be linked.

Auto Load Improvement

It would be nice if you could add a command where you can add auto-loaded worlds.
You could also make it in the config like:

auto-load: []
invert: true

So that it would load all the worlds except those that are in there.

Could not pass event PluginEnableEvent to FacilisCommon

Hello, I'm running a paper server version 84 and I just updated from 1.4.2 to 1.4.3 and got this Error.txt

I throw in the PluginsList aswell

ChestSort
EconomyShopGUI
EssentialsX + chat + spawn
EvenMoreFish
FacilisCommon
GriefPrevention
GrimAC
IllegalStack
LuckPerms
MultiWorld
PlayerParticles
PunishGUI
Spark
TreeAssist
Vault
ViewDistanceTweaks
WildRTP
WorldEdit
WorldGuard

And also the whole log because why not:
2023-07-22-4.log

EDIT:
I tested putting only FacilisCommon and MultiWorld 1.4.3 in the plugins folder but I still get the same error.

Wandering Trader

At the moment wandering traders still spawn even on peaceful, and SPAWN_MONSTERS and SPAWN_MOBS disabled, please make an extra flag or setting for this :D

[Bug] Commands Multiworld in console not use !

Hello, your plugin is good there is no problem except when you use the multiworld commands in the console nothing happens, I think it would be good if you correct it, thank you and good luck...

Version Minecraft: 1.16.5
Paper version: 1.16.5
MultiWorld version: 1.0.0-SNAPSHOT
No error console...

Entities and Mobs not dropping items

After using the mod for a few hours the server would no longer drop any items from inventory, mob drops, or block breaks. This was tested in all three vanilla dimensions and the gamerule doEntityDrops, as well as doItemDrops had no effect. Only creatures and blocks broken in the modded MultiWorlds would drop items from any source.

Placeholder %player_name% + loading config command

Heye Dev7ex, I would find it cool if you could create a world with the player executing the command when using the command /world create [%playername%].

And if you add an autoload function with a command like /mw config load [%player_name%] to not manually add the world to the config for autoload.

Can't create/load/import world

I updated the server from 1.19.4 to 1.20.1
I am using purpur-1.20.1-2050
I have installed MultiWorld-Bukkit-1.4.5-SNAPSHOT and also FacilisCommon-Bukkit-1.0.2-SNAPSHOT

But I get an error when I try to do one of the create/load/import world commands

[16:17:45 INFO]: DearFox issued server command: /multiworld create test_world VOID
[16:17:45 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'multiworld' in plugin MultiWorld v1.4.5-SNAPSHOT
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:168) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        at org.bukkit.craftbukkit.v1_20_R1.CraftServer.dispatchCommand(CraftServer.java:1021) ~[purpur-1.20.1.jar:git-Purpur-2050]
        at org.bukkit.craftbukkit.v1_20_R1.command.BukkitCommandWrapper.run(BukkitCommandWrapper.java:64) ~[purpur-1.20.1.jar:git-Purpur-2050]
        at com.mojang.brigadier.CommandDispatcher.execute(CommandDispatcher.java:265) ~[purpur-1.20.1.jar:?]
        at net.minecraft.commands.Commands.performCommand(Commands.java:332) ~[?:?]
        at net.minecraft.commands.Commands.performCommand(Commands.java:316) ~[?:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.performChatCommand(ServerGamePacketListenerImpl.java:2447) ~[?:?]
        at net.minecraft.server.network.ServerGamePacketListenerImpl.lambda$handleChatCommand$22(ServerGamePacketListenerImpl.java:2407) ~[?:?]
        at net.minecraft.util.thread.BlockableEventLoop.lambda$submitAsync$0(BlockableEventLoop.java:59) ~[?:?]
        at java.util.concurrent.CompletableFuture$AsyncSupply.run(CompletableFuture.java:1768) ~[?:?]
        at net.minecraft.server.TickTask.run(TickTask.java:18) ~[purpur-1.20.1.jar:git-Purpur-2050]
        at net.minecraft.util.thread.BlockableEventLoop.doRunTask(BlockableEventLoop.java:153) ~[?:?]
        at net.minecraft.util.thread.ReentrantBlockableEventLoop.doRunTask(ReentrantBlockableEventLoop.java:24) ~[?:?]
        at net.minecraft.server.MinecraftServer.doRunTask(MinecraftServer.java:1365) ~[purpur-1.20.1.jar:git-Purpur-2050]
        at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:197) ~[purpur-1.20.1.jar:git-Purpur-2050]
        at net.minecraft.util.thread.BlockableEventLoop.pollTask(BlockableEventLoop.java:126) ~[?:?]
        at net.minecraft.server.MinecraftServer.pollTaskInternal(MinecraftServer.java:1342) ~[purpur-1.20.1.jar:git-Purpur-2050]
        at net.minecraft.server.MinecraftServer.pollTask(MinecraftServer.java:1335) ~[purpur-1.20.1.jar:git-Purpur-2050]
        at net.minecraft.util.thread.BlockableEventLoop.managedBlock(BlockableEventLoop.java:136) ~[?:?]
        at net.minecraft.server.MinecraftServer.waitUntilNextTick(MinecraftServer.java:1313) ~[purpur-1.20.1.jar:git-Purpur-2050]
        at net.minecraft.server.MinecraftServer.runServer(MinecraftServer.java:1201) ~[purpur-1.20.1.jar:git-Purpur-2050]
        at net.minecraft.server.MinecraftServer.lambda$spin$0(MinecraftServer.java:322) ~[purpur-1.20.1.jar:git-Purpur-2050]
        at java.lang.Thread.run(Thread.java:1589) ~[?:?]
Caused by: java.lang.NullPointerException: Cannot invoke "Object.toString()" because the return value of "java.util.HashMap.get(Object)" is null
        at com.dev7ex.common.map.ParsedMap.getString(ParsedMap.java:26) ~[FacilisCommon-Bukkit-1.0.2-SNAPSHOT.jar:?]
        at com.dev7ex.common.map.ParsedMap.getBoolean(ParsedMap.java:82) ~[FacilisCommon-Bukkit-1.0.2-SNAPSHOT.jar:?]
        at com.dev7ex.multiworld.world.DefaultWorldManager.createWorld(DefaultWorldManager.java:174) ~[MultiWorld-Bukkit-1.4.5-SNAPSHOT.jar:?]
        at com.dev7ex.multiworld.command.world.CreateCommand.execute(CreateCommand.java:61) ~[MultiWorld-Bukkit-1.4.5-SNAPSHOT.jar:?]
        at com.dev7ex.common.bukkit.command.BukkitCommand.execute(BukkitCommand.java:38) ~[FacilisCommon-Bukkit-1.0.2-SNAPSHOT.jar:?]
        at com.dev7ex.multiworld.command.WorldCommand.execute(WorldCommand.java:59) ~[MultiWorld-Bukkit-1.4.5-SNAPSHOT.jar:?]
        at com.dev7ex.common.bukkit.command.BukkitCommandExecutor.onCommand(BukkitCommandExecutor.java:26) ~[FacilisCommon-Bukkit-1.0.2-SNAPSHOT.jar:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[purpur-api-1.20.1-R0.1-SNAPSHOT.jar:?]
        ... 23 more

Command "/world back" not applying per-world gamemode (1.4.1-SNAPSHOT)

When using the command "/world back" the gamemode set in world.yml is not apllied to the player.
Instead the current gamemode is kept.
When using the command "/world teleport " everything works fine.

Versions:
MultiWorld-Bukkit-1.4.1-SNAPSHOT.jar
FacilisCommon-Bukkit-1.0.1-SNAPSHOT.jar
Purpur Server 1.20.1

I have one world set to gamemode SURVIVAL and one set to SPECTATOR.
By using the two commands mentioned above in any combination I can get the wrong gamemode per world.
This is repeatable and consistent.

Per World Inventories and Enderchests

im currently trying to add a "creative world" where my players can test their builds and palates and then go back to survival world and build based on their designs. I am Requesting a per world inventory feature.would also need enderchest support. just thinking how players could try and trick the system. Please change this to an enhancement. I know multiverse had multiverse inventories that helped with this.

Dependency missing?

I want to make a PR with an Event fired after the initial world load but I cannot build the project because of the missing dep.
What's the maven repo for it?

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.