Spigot & BungeeCord 1.17 & 1.17.1

Discussion in 'News and Announcements' started by md_5, Jun 11, 2021.

  1. BuildTools should run independently of your server. If you're running it in the same folder as your server, or the final JAR of Buildtools is also your server JAR, you should change this. You can run BuildTools and your server simultaneously given you run them in separate folders and then once BuildTools has finished, you can stop your server, swap out the JAR and start your server again.
     
  2. CraftBukkit is relocated but NMS is not, that was the point of my post. Detecting the server version is not the problem. The net.minecraft.server package used to be relocated to net.minecraft.server.vVERSION, now it isn't and that creates conflicts between different versions. I looked at the new 1.17 build and I think a solution could be relocating net.minecraft to net.minecraft.vVERSION since there are classes outside ".server" now.


    Yes, of course you can't have multiple versions of the same artifact. But you can have each NMS version as a different artifact and include them as a dependency.

    Adding back the versioned packages would allow both workflows (single module multiple versions and separate modules for each version), I just don't see what is improved with the new structure. It may be 5 minutes for a single project, but it adds up when having lots to manage.
     
    • Agree Agree x 6
  3. I see no benefit there. You can determine the version using the Server package.
     
    • Funny Funny x 1
  4. are you even reading the posts you're replying to?
     
    #184 Fireentity_293_, Jun 12, 2021
    Last edited: Jun 12, 2021
    • Agree Agree x 1
  5. Thank you very much, using Spigot is really a pleasure!
     
  6. But that's the thing, they ARE the same artifact. You still have to spend your 5 minutes setting up the project, but instead of being as portable as "run BuildTools to make these 3 versions" your build process for contributors becomes "run BuildTools to compile these 3 versions, then run these 3 commands to reinstall them using different artifact ids." It may not be a lot more complex, but each little added difficulty in replicating your setup is a loss of potential contributors.

    I guess for tiny one-off projects it's inconvenient, but tiny one-off projects also probably aren't trying to support multiple versions. If you're serious about your project, set it up right.
     
  7. Yes I'm reading the post I'm quoting. Reflection was never a good possibility to add multi version support. When using no reflection you normally need to build multiple spigot version for each Maven/Gradle module that represents a spigot version.
    See: https://github.com/yannicklamprecht/WorldBorderAPI/tree/1.15.2
    Have the same work as before. This is the latest version of the repo, I decided to use Mojang mapping for it. https://github.com/yannicklamprecht/WorldBorderAPI/tree/develop

    That's a part I added for Jar remapping
    https://github.com/yannicklamprecht/WorldBorderAPI/blob/develop/plugin/build.gradle.kts#L19-L48
    And stuff like this for automatic BuildTools and Special Source download.https://github.com/yannicklamprecht/WorldBorderAPI/tree/develop/buildSrc/src/main/kotlin

    Each version specific module has a Gradle Task with the following settings.
    https://github.com/yannicklamprecht...develop/version_1_16/build.gradle.kts#L15-L20
    https://github.com/yannicklamprecht...develop/version_1_17/build.gradle.kts#L15-L20

    So at all I see not much more work than before.


    The only thing I need to call to build the whole artifact is this:

    Code (Text):
    ./gradlew setup shadowJar remap

    If I need to be sure that the whole thing is clean building after build before I run this.
    Code (Text):
    ./gradlew cleanup setup clean shadowJar remap
     
    #187 ysl3000, Jun 12, 2021
    Last edited: Jun 12, 2021
    • Informative Informative x 1
  8. That's a thing of tooling. If you get a Maven or Gradle plugin that supports your workflow it will be much easier.

    Something like:
    Code (Text):
    ./gradlew newSpigotModule 1.17
    Code (Text):
    ./gradlew newSpigotModule 1.17.1
    Code (Text):
    ./gradlew newSpigotModule 1.17.2
    Code (Text):
    ./gradlew newSpigotModule 1.18
    Where it automatically setups a build.gradle(.kts) with the required build tools Task.
    Additionally automatically registering a compile task which depends on a build tool build <version> task that is run.
     
  9. md_5

    Administrator Developer

    @RaynLegends the main reason it's not relocated is doing so adds significant complexity to the remap process, it's far from as simple as just adding a few lines back to our pom.xml.
    As @Jikoo and @ysl3000 state however, neither maven nor gradle nor any dependency manager in common use would have allowed your setup previously anyway.
     
    • Informative Informative x 1
  10. md_5

    Administrator Developer

  11. Thanks for letting me know.
    I tried replacing the first 4 digits with git, and it didn't seem to work.
    I tried spigot.club and it works :D
     
  12. cant get it to work, i dont know what im doing wrong
     
  13. md_5 explained it in this ticket:
    https://hub.spigotmc.org/jira/browse/SPIGOT-6533

    My mistake was that I was using the obf jar instead of just the normal remapped one.
     
  14. just wondering
    are there any method to check what is in a cauldron? (water/lava/psnow)
     
  15. md_5

    Administrator Developer

    Each cauldron is a different material
     
  16. Screenshot 2021-06-13 at 06.11.59.png Screenshot 2021-06-13 at 06.11.55.png Screenshot 2021-06-13 at 06.11.51.png

    Once filled you can check the block info and see they're different for each.
     
  17. HI,
    I don't know if i'm doing anything wrong, or if this is a bug (or is it even a feature in 1.17???)
    But: activating chunks and counting entities inside of those chunks is not working anymore in 1.17!
    The chunks get activated, but any entity inside seem to be not...!

    So.. bug or feature??? And how to do it in 1.17 if this is NOT a bug?

    PS: yes, i could use addPluginChunkTicket, but that would have big impact on server performance when lots of chunks stay loaded...
     
    #198 Jeppa, Jun 13, 2021
    Last edited: Jun 13, 2021
  18. Hi team, been really busy I see, many many many thanks for that.
    Been trying last few days to get everything in order for the big update, and went on with one of our servers, the smallest of them all, trying to find the new blocks and so.....
    I wanted to see if there are visible changes after I forceupgraded one of them. I wanted to use //chunk and //regen on a few blocks, but that gave an error in the console and nothing happened.
    This is what showed:
    Code (Text):
    [12:12:51] [Server thread/WARN]: Regeneration via adapter failed.
    java.lang.UnsupportedOperationException: Missing BukkitImplAdapater for this version.
            at com.sk89q.worldedit.bukkit.BukkitWorld.regenerate(BukkitWorld.java:210) ~[?:?]
            at com.sk89q.worldedit.command.RegionCommands.regenerate(RegionCommands.java:431) ~[?:?]
            at com.sk89q.worldedit.command.RegionCommandsRegistration.cmd$_regen(RegionCommandsRegistration.java:576) ~[?:?]
            at org.enginehub.piston.CommandManager.execute(CommandManager.java:157) ~[?:?]
            at com.sk89q.worldedit.extension.platform.PlatformCommandManager.handleCommand(PlatformCommandManager.java:494) ~[?:?]
            at jdk.internal.reflect.NativeMethodAccessorImpl.invoke0(Native Method) ~[?:?]
            at jdk.internal.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:78) ~[?:?]
            at jdk.internal.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[?:?]
            at java.lang.reflect.Method.invoke(Method.java:567) ~[?:?]
            at com.sk89q.worldedit.util.eventbus.MethodEventHandler.dispatch(MethodEventHandler.java:58) ~[?:?]
            at com.sk89q.worldedit.util.eventbus.EventHandler.handleEvent(EventHandler.java:73) ~[?:?]
            at com.sk89q.worldedit.util.eventbus.EventBus.dispatch(EventBus.java:193) ~[?:?]
            at com.sk89q.worldedit.util.eventbus.EventBus.post(EventBus.java:181) ~[?:?]
            at com.sk89q.worldedit.bukkit.WorldEditPlugin.onCommand(WorldEditPlugin.java:375) ~[?:?]
            at com.sk89q.bukkit.util.DynamicPluginCommand.execute(DynamicPluginCommand.java:55) ~[?:?]
            at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:149) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at org.bukkit.craftbukkit.v1_17_R1.CraftServer.dispatchCommand(CraftServer.java:764) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.server.network.PlayerConnection.handleCommand(PlayerConnection.java:1944) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:1783) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.server.network.PlayerConnection.a(PlayerConnection.java:1764) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.network.protocol.game.PacketPlayInChat.a(PacketPlayInChat.java:46) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.network.protocol.game.PacketPlayInChat.a(PacketPlayInChat.java:1) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.network.protocol.PlayerConnectionUtils.lambda$0(PlayerConnectionUtils.java:30) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.server.TickTask.run(SourceFile:18) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.util.thread.IAsyncTaskHandler.executeTask(SourceFile:151) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.util.thread.IAsyncTaskHandlerReentrant.executeTask(SourceFile:23) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.util.thread.IAsyncTaskHandler.executeNext(SourceFile:125) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.server.MinecraftServer.bg(MinecraftServer.java:1125) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.server.MinecraftServer.executeNext(MinecraftServer.java:1118) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.util.thread.IAsyncTaskHandler.executeAll(SourceFile:110) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.server.MinecraftServer.sleepForTick(MinecraftServer.java:1101) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.server.MinecraftServer.x(MinecraftServer.java:1031) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at net.minecraft.server.MinecraftServer.lambda$0(MinecraftServer.java:307) ~[spigot-1.17.jar:3133-Spigot-66f9d3c-3fa79d3]
            at java.lang.Thread.run(Thread.java:831) [?:?]
    Can you do something with this info? or do I need you to provide more info... I'm happy to help here if that is what you want.

    Let me hear if you need....

    Thanks team!
     
  19. md_5

    Administrator Developer

    What do you mean by activating chunks? What method are you using? If you think it is a bug it is better to use the bug tracker than this thread.
    WorldEdit isn't updated to 1.17