Coder Social home page Coder Social logo

lokka30 / phantomworlds Goto Github PK

View Code? Open in Web Editor NEW
16.0 2.0 8.0 2.71 MB

[MC] Light and robust world management solution for Bukkit

License: Other

Java 100.00%
spigot spigot-plugin bukkit bukkit-plugin minecraft phantomworlds minecraft-plugin world worldmanager world-manager multiworld multi-world paper

phantomworlds's Introduction

PhantomWorlds

About

  • A SpigotMC plugin which allows administrators to create, manage and teleport to whatever worlds they wish.

Learn more

  • Click here to visit the SpigotMC resource page for PhantomWorlds, where you can learn more and download the resource if you wish. :)
  • Click here to visit the Wiki.

Contributors

  • Please see the Credits - thank you very much to all contributors to the resource! ❤

License

phantomworlds's People

Contributors

creatorfromhell avatar littleshystar02 avatar lokka30 avatar

Stargazers

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

Watchers

 avatar  avatar

phantomworlds's Issues

Add /pw delete command.

  • Syntax: /pw delete <world>
  • Also with option to automatically move it to the /plugins/PhantomWorlds/deletedWorlds/ folder (should be enabled by default).

Can you add a world game mode? gamemode: adventure

advanced:
  file-version: 2
  generated-with: 2.0.4
worlds-to-load:
  world_game:
    environment: NORMAL
    generateStructures: true
    hardcore: false
    worldType: NORMAL
    spawnMobs: true
    spawnAnimals: true
    keepSpawnInMemory: falsea
    allowPvP: true
    difficulty: NORMAL
    gamemode: adventure  # <----------

`/pw setspawn` doesn't work on older servers

NoSuchMethodError.

Trimmed stack trace:

[15:01:34 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'pw' in plugin PhantomWorlds v2.0.2
Caused by: java.lang.NoSuchMethodError: org.bukkit.World.setSpawnLocation(Lorg/bukkit/Location;)Z
        at me.lokka30.phantomworlds.commands.phantomworlds.subcommands.SetSpawnSubcommand.parseCommand(SetSpawnSubcommand.java:168) ~[?:?]

Original stack trace:

[15:01:34 ERROR]: null
org.bukkit.command.CommandException: Unhandled exception executing command 'pw' in plugin PhantomWorlds v2.0.2
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:47) ~[CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:141) ~[CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at org.bukkit.craftbukkit.v1_8_R3.CraftServer.dispatchCommand(CraftServer.java:666) ~[CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at net.minecraft.server.v1_8_R3.PlayerConnection.handleCommand(PlayerConnection.java:1341) ~[CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:1151) ~[CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:45) ~[CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at net.minecraft.server.v1_8_R3.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at net.minecraft.server.v1_8_R3.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:6) ~[CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at java.util.concurrent.Executors$RunnableAdapter.call(Executors.java:511) [?:1.8.0_311]
        at java.util.concurrent.FutureTask.run(FutureTask.java:266) [?:1.8.0_311]
        at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:782) [CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:413) [CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:721) [CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:624) [CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        at java.lang.Thread.run(Thread.java:748) [?:1.8.0_311]
Caused by: java.lang.NoSuchMethodError: org.bukkit.World.setSpawnLocation(Lorg/bukkit/Location;)Z
        at me.lokka30.phantomworlds.commands.phantomworlds.subcommands.SetSpawnSubcommand.parseCommand(SetSpawnSubcommand.java:168) ~[?:?]
        at me.lokka30.phantomworlds.commands.phantomworlds.PhantomWorldsCommand.onCommand(PhantomWorldsCommand.java:72) ~[?:?]
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:45) ~[CarbonSpigot.jar:git-CarbonSpigot-Server-e022e84]
        ... 15 more

Reported by khanh#0024 on the ArcanePlugins Discord Server. User ID: 665401740996378634

Move `/pw create`'s import function to new `/pw import` command

It may seem confusing that /pw create is used to both create new and import existing worlds. I believe they should be split into two commands respectively. /pw create will no longer allow you to create a world that already exists in the server's directory, and /pw import won't allow you to create new worlds.

Changes:

  • add /pw import
  • /pw import should not allow the creation of worlds, rather, it is only able to import existing ones.
  • make /pw create unable to import worlds, rather, it can only create new ones.

FAWE Async world generation

Suggested by

Ranull

How it works

  • Config option which determines if PW automatically utilises a presence of Fast Async World Edit (FAWE)'s async world generation methods.

When it will be added

Won't be implemented unless more demand comes for it.

Add more per-world options

  • Suggested by Cantibra
  • Add more per-world options.
  • Gamemode
  • ...more? add them here, suggest below, ...

Add import subcommand

It's an alias for /pw create although it ensures the world already exists.
Then, /pw create should not be able to import worlds: it will make sure the world doesn't already exist.

Delete subcommand

Also with option to automatically move it to the /plugins/PhantomWorlds/deletedWorlds/ folder (should be enabled by default).

Add custom portal destinations functionality

Suggestion from Cantibra:

I wanna ask if it's possible to add an function directly to keep the dimension in groups.
like ...
world1 - world1_nether - world1_the_end
world2 - world2_nether - world2_the_end

If you go into world 2 and you enter a portal you would come in the dimension in the right worldgroup... --> world2_nether, world2_the_end

`WorldCreator.hardcore` doesn't exist on older servers

reported by khanh on discord

[19:40:39 ERROR]: Error occurred while enabling PhantomWorlds v2.0.1 (Is it up to date?)
java.lang.NoSuchMethodError: org.bukkit.WorldCreator.hardcore(Z)Lorg/bukkit/WorldCreator;
    at me.lokka30.phantomworlds.managers.WorldManager$PhantomWorld.create(WorldManager.java:168) ~[?:?]
    at me.lokka30.phantomworlds.managers.WorldManager.loadManagedWorlds(WorldManager.java:62) ~[?:?]
    at me.lokka30.phantomworlds.PhantomWorlds.loadWorlds(PhantomWorlds.java:159) ~[?:?]
    at me.lokka30.phantomworlds.PhantomWorlds.onEnable(PhantomWorlds.java:90) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:321) ~[patched_1.8.8.jar:git-PaperSpigot-445]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:332) [patched_1.8.8.jar:git-PaperSpigot-445]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:407) [patched_1.8.8.jar:git-PaperSpigot-445]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.loadPlugin(CraftServer.java:359) [patched_1.8.8.jar:git-PaperSpigot-445]
    at org.bukkit.craftbukkit.v1_8_R3.CraftServer.enablePlugins(CraftServer.java:318) [patched_1.8.8.jar:git-PaperSpigot-445]
    at net.minecraft.server.v1_8_R3.MinecraftServer.s(MinecraftServer.java:408) [patched_1.8.8.jar:git-PaperSpigot-445]
    at net.minecraft.server.v1_8_R3.MinecraftServer.k(MinecraftServer.java:372) [patched_1.8.8.jar:git-PaperSpigot-445]
    at net.minecraft.server.v1_8_R3.MinecraftServer.a(MinecraftServer.java:327) [patched_1.8.8.jar:git-PaperSpigot-445]
    at net.minecraft.server.v1_8_R3.DedicatedServer.init(DedicatedServer.java:267) [patched_1.8.8.jar:git-PaperSpigot-445]
    at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:563) [patched_1.8.8.jar:git-PaperSpigot-445]

Complete `/pw debug dump`

This command will create a txt file with a bunch of useful data for the support team on our discord server, containing list of plugins and their versions, server software and its version, and all of the PW files just pasted into it

Add debug categories

Adding debug functionality will make it so possible bugs with PW may be more easily diagnosed

Remove multimessage class, use microlib 3's one.

Currently, PhantomWorlds has a class called MultiMessage, from memory this is in the utils subpackage. I've merged this class into the MicroLib resource, which is shaded into PhantomWorlds using Maven. This means that it is now useless to keep the MultiMessage class in PhantomWorlds since the latest version of MicroLib has it.

To solve this issue all that needs to be done is:

  • delete the current multimessage class in PW
  • let your IDE spew out the errors from invalid imports
  • manually resolve every import by changing it to the one in MicroLib

Minecraft's world spawn doesn't care about pitch and yaw

  • Make /pw setspawn store pitch and yaw in data file
  • Make /pw teleport <world> factor in the pitch and yaw values in the data file, if they exist, otherwise don't worry about pitch/yaw.

Issue reported by Koh in the discord server

`/pw setspawn` seems to round coordinates to integers

When setting the spawnpoint using f.e. /pw setspawn 0.5 100 0.5 world 0 0 and then use /pw tp world will PhantomWorld always teleport to the next negative whole number of the coordinates you set.
In our above example would this result in 0 100 0 which is annoying as you always end up in the corner of a block while you may want to have a precise position instead.

So it would be nice, if PhantomWorld would respect decimals in a spawn location.

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.