Minestom - a minecraft server creator library

Discussion in 'Programming' started by TheMode911, Apr 20, 2020.

  1. * A lot of network optimization (traffic handler, flush only during update, packet caching, grouped packet)
    * Fixed issue making newly connected players receiving 2 teleport packet instead of one
    * New data ownership system for ItemStack, basically each item will have an NBT tag containing a UUID, this UUID is linked server-side to a Data object. Meaning that you can store whatever you want on an item and still retrieve it later
    * Very basic support for Linux io_uring
    * Dynamic chunk view distance should behave a lot clearer than before

    As for networking, the demo project in the repo can receive a thousand players without major performance issues on my laptop. Showcase videos could come later
    • Like Like x 3
    • Friendly Friendly x 1
  2. We have reached 200 stars on our GitHub repo so thanks to everyone! And to the moon!

    As for the update, mostly bugs fixes here. For the braves you could scroll through the commits, notably the pathfinder movements being much more smooth, and the gravity acting a lot more like vanilla.
    Currently searching for a solution to allow having 500-1000 players viewing each other simultaneously, which would involve updating the closest players first and increasing the synchronization delay for the further ones. If you are interested in helping be sure to contact us
    #82 TheMode911, Dec 7, 2020
    Last edited: Dec 7, 2020
  3. Wow I can't imagine how difficult it must be to implement each new feature from vanilla minecraft.
    You put a lot of effort in it, amazing job !
  4. Thanks :)
    Well we do not have to implement vanilla behavior so it is still a lot simpler than a project like Glowstone (which is the reason why they struggle a lot more than us to bump the game version). I have a lot of fun working on it and I believe but more people should dig into the game, it is an amazing learning experience and forces us to think a lot more about the design and the scalability of our programs

    Ps: I remember watching some of your videos back in the days when I wanted to start programming
    #84 TheMode911, Dec 13, 2020
    Last edited: Dec 13, 2020
    • Friendly Friendly x 1
  5. This does seem very promising! What versions does it support?
  6. Latest, so 1.16.4 now and 1.17 on release.

    Previous versions can be supported using a proxy (bungee/velocity) with ViaBackwards
  7. This does seem like a great server creation library for latest versions of Minecraft. Great work!
  8. Wow, that’s great! I’m assuming most spigot/bukkit plugins won’t be working on this build. Will you be introducing your own plugin page for developers to post resources relating to Minestorm?
  9. There are great things in the pipeline, a resources page could be one of them but there are some other stuff that need to be done before envisaging it
  10. This is great! Keep up the good work!
    When is it coming out?
    And, merry *early* Christmas!
    I don't really understand what you're really saying.
    Are you creating a Minecraft server from scratch?
    Also, can you link Glowestone, I want to see that as well.
  11. Yes it is from "scratch" and it is already out.
  12. I was wondering if you could potentially help me out. I'm trying to make an extension for Minestom, nothing special, just a basic one to play around with it a bit. I took the Minestom Vanilla Reimplementation as the base for my test server (seeing as how I don't need anything special, I just want a server that works and I can put extensions on for testing, this seems like the easiest option). I cloned that, modified the build.gradle so it produces a standalone JAR file to be able to run and ran it with my test extension. The server works fine without extensions as far as I can tell: I was able to join it, got a world, walked around a bit, executed some commands, etc. Yet sadly I ran into an issue that I can't seem to figure out. Upon loading the server with the extension, it spits out the following error message.
    Code (Text):
    [main] [20:40:51] (ExtensionManager.attemptSingleLoad) - ERROR - Main class 'com.github.stefvanschie.inventoryframework.minestom.TestExtension' in 'ClearCommand' does not extend the 'Extension' superclass.
    java.lang.ClassCastException: class com.github.stefvanschie.inventoryframework.minestom.TestExtension
            at java.lang.Class.asSubclass(Class.java:3851) ~[?:?]
            at net.minestom.server.extensions.ExtensionManager.attemptSingleLoad(ExtensionManager.java:161) [MinestomVanillaReimplementation-1.0.jar:?]
            at net.minestom.server.extensions.ExtensionManager.loadExtensions(ExtensionManager.java:113) [MinestomVanillaReimplementation-1.0.jar:?]
            at net.minestom.server.MinecraftServer.start(MinecraftServer.java:723) [MinestomVanillaReimplementation-1.0.jar:?]
            at net.minestom.vanilla.LaunchServerStartup.main(LaunchServerStartup.java:51) [MinestomVanillaReimplementation-1.0.jar:?]
    The server seems to think that my entry point does not extend the Extension class, however as far as I can tell, it does. I've also decompiled my plugin to reconfirm this and the decompiler also showed that my class extends Extension. The code I'm using for the plugin can be found here: https://paste.gg/p/anonymous/314b74f122734793bb53e4df7df9c890. I've also attached the complete JAR file below if you want to test it out yourself. Thanks for any help in advance.

    Attached Files:

  13. First of all, you can join the server to ask your questions: https://discord.gg/pkFRvqB

    The issue is that you do not run your server using the Bootstrap class: https://wiki.minestom.com/feature/extensions#testing-in-a-dev-environment
    You can see the class in the vanilla repo: https://github.com/Minestom/Vanilla...t/java/net/minestom/vanilla/LaunchServer.java (ps: the vanilla repo is a bit outdated, we are currently mostly focused on the main one)
    • Like Like x 1
  14. Thanks a lot for your help. I saw those two classes and for some reason only used one of them. Adding both resolved the issue and the extension works now.
    • Like Like x 1
  15. This looks cool!
    • Friendly Friendly x 1
  16. I just happened to run across this thread, and find this incredibly interesting. Thank you for your hard work and hope this evolves to something greater.
  17. Thanks, I greatly appreciate :)

    I am still working daily on this, and all the updates are on our discord server
    • Like Like x 2
  18. Hoooly shit this is amazing!
    • Agree Agree x 1