Tough Position: Stuck on 1.9.4, wanting to move to 1.15.2?

Discussion in 'Spigot Plugin Help' started by Joedon, Apr 3, 2020.

  1. Hi all, I'm looking for your guys' ideas about this.

    I've kept my server on 1.9.4 since it came out, and had all of our custom plugins to date built against that version as well. I don't remember why we didn't ever update when 1.10/11 came out, but I believe it was due to being busy with IRL things and just didn't have the time to. But that brings us today when 1.15.2 is obviously out, with 1.16 on the way.

    I don't really know much about the changes between 1.9 and 1.15, but I know that there was some overhaul to commands between 1.12 and 1.13. Might be related to these errors I'm getting with PlotSquared and Multiverse right now actually (using Paper 1.15.2):

    Code (Text):
    >.... [20:51:53 INFO]: [PlotSquared] Enabling PlotSquared v4.453
    >.... [20:51:58 INFO]: Version is PlotSquared-4.453
    >.... [20:52:00 INFO]: [P2] PlotSquared is using online UUIDs
    >.... [20:52:03 WARN]: java.lang.NullPointerException
    >.... [20:52:03 WARN]: at com.github.intellectualsites.plotsquared.plot.commands.DebugExec.init(DebugExec.java:108)
    >.... [20:52:03 WARN]: at com.github.intellectualsites.plotsquared.plot.commands.DebugExec.<init>(DebugExec.java:65)
    >.... [20:52:03 WARN]: at com.github.intellectualsites.plotsquared.plot.commands.MainCommand.getInstance(MainCommand.java:88)
    >.... [20:52:03 WARN]: at com.github.intellectualsites.plotsquared.plot.commands.SubCommand.<init>(SubCommand.java:20)
    >.... [20:52:03 WARN]: at com.github.intellectualsites.plotsquared.plot.commands.SubCommand.<init>(SubCommand.java:24)
    >.... [20:52:03 WARN]: at com.github.intellectualsites.plotsquared.bukkit.commands.DebugUUID.<init>(DebugUUID.java:44)
    >.... [20:52:03 WARN]: at com.github.intellectualsites.plotsquared.bukkit.util.BukkitCommand.<init>(BukkitCommand.java:24)
    >.... [20:52:03 WARN]: at com.github.intellectualsites.plotsquared.bukkit.BukkitMain.registerCommands(BukkitMain.java:324)
    >.... [20:52:03 WARN]: at com.github.intellectualsites.plotsquared.plot.PlotSquared.<init>(PlotSquared.java:242)
    >.... [20:52:03 WARN]: at com.github.intellectualsites.plotsquared.bukkit.BukkitMain.onEnable(BukkitMain.java:154)
    >.... [20:52:03 WARN]: at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263)
    >.... [20:52:03 WARN]: at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337)
    >.... [20:52:03 WARN]: at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483)
    >.... [20:52:03 WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:470)
    >.... [20:52:03 WARN]: at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:384)
    >.... [20:52:03 WARN]: at net.minecraft.server.v1_15_R1.DedicatedServer.init(DedicatedServer.java:235)
    >.... [20:52:03 WARN]: at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:885)
    >.... [20:52:03 WARN]: at java.lang.Thread.run(Unknown Source)
    >.... [20:52:03 INFO]: [P2] PlotSquared is now enabled
    >.... [20:52:03 INFO]: [P2] Metrics enabled.
    Code (Text):
    >.... [20:53:38 INFO]: [Multiverse-Core] Enabling Multiverse-Core v4.1.0-b775
    >.... [20:53:38 WARN]: [Multiverse-Core] "Multiverse-Core v4.1.0-b775" has registered a listener for org.bukkit.event.entity.EntityCreatePortalEvent on method "public void com.onarandombox.MultiverseCore.listeners.MVPortalListener.entityPortalCreate(org.bukkit.event.entity.EntityCreatePortalEvent)", but the event is Deprecated. "Server performance will be affected"; please notify the authors [Rigby, fernferret, lithium3141, main--, dumptruckman].
    >.... [20:53:38 INFO]: [Multiverse-Core] We are aware of the warning about the deprecated event. There is no alternative that allows us to do what we need to do. The performance impact is negligible.
    >.... [20:53:38 INFO]: [Multiverse-Core] 3 - World(s) loaded.
    >.... [20:53:38 ERROR]: Error occurred while enabling Multiverse-Core v4.1.0-b775 (Is it up to date?)
    java.lang.NullPointerException: null
    at com.onarandombox.buscript.ScriptManager.<init>(ScriptManager.java:31) ~[?:?]
    at com.onarandombox.buscript.Buscript.<init>(Buscript.java:77) ~[?:?]
    at com.onarandombox.buscript.Buscript.<init>(Buscript.java:65) ~[?:?]
    at com.onarandombox.MultiverseCore.MultiverseCore.initializeBuscript(MultiverseCore.java:351) ~[?:?]
    at com.onarandombox.MultiverseCore.MultiverseCore.onEnable(MultiverseCore.java:337) ~[?:?]
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:263) ~[Paper-1.15.2.jar:git-Paper-154]
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:337) ~[Paper-1.15.2.jar:git-Paper-154]
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:483) ~[Paper-1.15.2.jar:git-Paper-154]
    at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugin(CraftServer.java:470) ~[Paper-1.15.2.jar:git-Paper-154]
    at org.bukkit.craftbukkit.v1_15_R1.CraftServer.enablePlugins(CraftServer.java:384) ~[Paper-1.15.2.jar:git-Paper-154]
    at net.minecraft.server.v1_15_R1.MinecraftServer.a(MinecraftServer.java:482) ~[Paper-1.15.2.jar:git-Paper-154]
    at net.minecraft.server.v1_15_R1.DedicatedServer.init(DedicatedServer.java:298) ~[Paper-1.15.2.jar:git-Paper-154]
    at net.minecraft.server.v1_15_R1.MinecraftServer.run(MinecraftServer.java:885) ~[Paper-1.15.2.jar:git-Paper-154]
    at java.lang.Thread.run(Unknown Source) [?:1.8.0_212]
    >.... [20:53:38 INFO]: [Multiverse-Core] Disabling Multiverse-Core v4.1.0-b775

    Just those errors alone are worrying me about this upgrade. I don't know the best course of action I should take for updating a.) all of my custom plugins, is it going to be a huge pain and cost me a lot of money? and b.) all my public plugins I use. Right now it looks like one-by-one is the only way to go.

    Also: how do I convert a 1.9.4 world to 1.15? I tried earlier just letting Spigot auto-convert them, but of course that didn't work lol.


    But overall I'm just wondering if all of this updating will be worth it in the end. I can run my server perfectly fine off of 1.9.4 and save a lot of time and resources right now since ViaVersion is so great, but is that really the best thing for me to do right now? The only reason I'm considering it is because I'm already looking to upgrade/rewrite a lot of my custom plugins, and I figured now's the best time to change versions on them along with that. However, it does feel a little bit unnecessary at this point, and after trying to run just a few basic plugins on a new Paper server, it feels like it's going to waste a lot of time I could be spending elsewhere. Let me know your thoughts.


    Thank you for any advice you have!
     
  2. I tried to update from 1.8.8 to 1.15 and it was pretty much a nightmare. So I did it in two steps: 1.8.8 to 1.12.2, then 1.12.2 to 1.15.2 (or maybe 1.15.1, I forget). This was a lot more manageable, because it reduced the number of plugins that had to be updated at once.

    So set up a test server. It can be on your home PC; any decent PC from the past 10 years should be able to do it. Start with a minimal set of plugins, then add plugins one at a time and test them. I probably spent a month or more to get to 1.12.2, then another 3 weeks to get to 1.15. Once I was happy with the general setup, the conversion of the live server to 1.15 took 6 hours.

    When upgrading to 1.13 or beyond, put --forceUpgrade at the very end of the command line for it to upgrade your maps. This is a one-time thing only.

    So you'll have to do some planning on what will work best for you. But be sure to take backups and use a test server.

    P.S. This is also an opportunity to look at your plugins and maybe eliminate ones you don't really need. That will make updating easier.
     
    #2 Bobcat00, Apr 3, 2020
    Last edited: Apr 3, 2020
    • Useful Useful x 1
  3. I was thinking of this, it sounds like a great idea. However the thing holding me back is the fact that my custom plugins would have to go through a developer twice to be updated, and it would probably cost me more. However, for public plugins that aren't reliant on any of those ones, I think I'll end up going with your advice. Almost every single plugin is broken when jumping from 1.9 to 1.15, and I also have no idea how to fix PlotSquared and Multiverse right now.

    And thank you for the --forceUpgrade tip, will definitely do that!

    Overall was it worth upgrading from 1.8 for you? Was there any reason you decided to upgrade when you did?
     
  4. Your consumer plugins have updates, that is not a problem compared to any custom plugins you may have.
    I would reccomend that you build a seperate server with the latest plugin versions, and work from there.
     
  5. That's what I'm currently doing right now.

    Am still kind of wondering if this whole process will be worth it, however, since I can remain on 1.9.4 and operate perfectly fine due to ViaVersion. Have still only made minimal progress, and it feels like the trade-off of being on the latest version won't be worth it in the end. Haven't really heard from anyone about that yet.
     
  6. Paper can have problems which Spigot does not suffer from which may be the cause of your Multiverse-Core problem according to your snippet.

    Also, although it seems like a good idea and often works, ViaVersion does often suffer from anomalies across versions. So a server is best tested without Viaversion installed (use the native server version).
     
  7. With newer versions, players will get new features like all the underwater stuff.

    Note that the way blocks are connected was changed in 1.13, so ViaVersion has special processing for that, and it doesn't always work perfectly.
     
  8. Yeah, Paper has never worked for me with the plugins I use. I should probably just stick to Spigot, the only reason I'd want Paper is for the timings anyways.

    And that's true, good point.
    Oh, I probably should have mentioned that I'm going to always want to support 1.8 at minimum, as almost half of my players use that version. That's the reason why I'm not really looking forward to upgrading to 1.15, as I can't use any of its new features when I have to support people using 1.8. And I didn't know that about 1.13, I'll definitely look into it more. All I heard about was some sort of command rework they did. Thank you!
     
  9. You could also consider having seperate server versions?
     
  10. Most of my players use 1.8.8 in Creative mode. They're pretty unhappy that I updated to 1.15, but that's the way the cookie crumbles. Not only are the connected blocks different, but the waterlogged blocks cause problems for them. They even have difficulty going up ladders.

    If you primarily want to support 1.8.8 players, either stay on your current version or bump up to 1.12.2, but no further.
     
    • Useful Useful x 1
  11. Thanks, this was very helpful to know. I know currently on my server players on versions 1.12+ note issues with connecting blocks like stairs and fences, however they seem to be the minority of players. I think at this point I'm going to stick to 1.9.4 and just get my plugins reworked so that in the future it'll be easier to update to the newest version. Hopefully one day we can go back to everyone using the same version, but that won't happen unless Mojang makes some major changes.
     
  12. Change the following in the ViaVersion config file:
    Code (Text):
    # Enable serverside block-connections for 1.13+ clients
    serverside-blockconnections: true
    # Sets the method for the block connections (world for highly experimental (USE AT OWN RISK) world-level or packet for packet-level)
    blockconnection-method: world
    # When activated, only the most important blocks are stored in the blockstorage. (fences, glass panes etc. won't connect to solid blocks)
    reduce-blockstorage-memory: true
    # When activated with serverside-blockconnections, flower parts with blocks above will be sent as stems
    # Useful for lobbyservers where users can't build and those stems are used decoratively
    flowerstem-when-block-above: false
    This is what I used under 1.12.2. Consider also setting reduce-blockstorage-memory to false if you want better fence gates, etc.