Minestom - a minecraft server creator library

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

  1. Thanks, well for the moment it is sure not really user-friendly or a high-level API since I assume that the user already knows the Minecraft protocol.
    That's where the vanilla implementation comes, it adds everything you need and allow for modifications as easy as with bukkit.

    Guess that you'll have to wait until its completion to play with it :)
    You can still check the demo package to get a grip of how to use it if interested
     
  2. Support for failing blocks in the vanilla implementation:


    And finally a discord server for anyone willing to contribute or to ask any question: https://discord.gg/RAySDQA
     
  3. Missing a lot of documentation I decided to start writing wiki pages: https://github.com/Minestom/Minestom/wiki

    Support for the nether portal in the vanilla implementation:


    We are thinking about making a vanilla server available to the public in order to show our progress. Maybe that this could even be viable to have hundreds of players simultaneously
     
  4. Complete new storage system: https://github.com/Minestom/Minestom/wiki/Storage
    Which can allow saving the world on an external database and the players files locally, you can create your own implementation and store wherever you want using the same API everywhere

    + new features (entities equipment, type of instance update for multithreading advantages)
     
  5. That's actually really amazing. Will definitely use it for some of my projects.
     
  6. It would be amazing! Even though the project is mostly stable, I cannot say that it is without flaws

    Be sure to join the discord to ask questions
     
  7. It is now possible to customize the eating time (200ms for an apple and 1sec for a steak?)
    An InventoryOpenEvent, ItemEntity on the ground can now be stacked together properly
     
    • Like Like x 1
  8. Always news features!

    - Added visual-only enchantments (still WIP)
    - The inventory API probably fully completed after months (it was really a mess)
    - The vanilla implementation is now able to fully retrieve loot tables from the registry, meaning all blocks have their vanilla drops
    - The vanilla impl also get TNT behavior (obviously with a functional explosion API)
    - A lot of small improvements to facilitate new server development

    Vehicles are in progress
     
    • Like Like x 1
  9. Who never dreamed to have a proper NPC API?
    You can create your own like this: https://github.com/Minestom/Minestom/blob/master/src/main/java/fr/themode/demo/PlayerInit.java#L157
    The FakePlayer triggers properly all events the same as a normal player, has gravity, showed the exact same way as any player except that his only actions are defined by you

    The FakePlayerController is then used as a client interface, to click windows items, send messages, simulate entity attack, etc...

    Forgot to say, but obviously FakePlayer extends Player, meaning that he gets all player methods such as #getInventory, #setHeldItem, #getUsername, etc... (list is too long)

    EDIT: forgot to add a video, I'm terribly sorry
     
    #29 TheMode911, May 25, 2020
    Last edited: May 25, 2020
    • Like Like x 1
  10. Here some features
    - Added player display name on the tablist (can be changed)
    - Player can now face a position and spectate an entity (read that this is what can be done in spectate mode)
    - Added world border support
    - It is now possible to set your own UUID provider, meaning being able to have the UUID match the Mojang one or do your own impl
    - Added player additional hearts (same as with the absorption effect), they work fine and decrease when the player is damaged
    - A whole bunch of entity class so it is simpler to mess with them
     
  11. Auxilor

    Supporter

    Love the multi-threading - seems like a bonus for AMD CPU's
     
  12. Could be, I can imagine having hundreds of players on the same server if there are multiple instances
     
  13. - Added item potion NBT
    - Optimization of the chunk data packet
    - General optimization
    - A lot of comments
    - Really a lot of comments

    Updated the server setup wiki page: https://github.com/Minestom/Minestom/wiki/Server-setup
    It now shows a complete working Minestom server, including the world generation + player events
     
    • Like Like x 1
  14. - Added item Enchants/StoredEnchants(for books)
    - Item Attribute & HideFlags
    - General network improvement
    - Bug fixes
    - Added a Player#setSkin and a PlayerSkinInitEvent to change the default player skin
    - much much more comments, one day I'll see the end of it
     
    • Like Like x 1
  15. - Added resource pack support
    - New PlayerAdd/SetItemEvent so you can control every item which goes into a player inventory (can be to support translatable items in real-time based on player's locale)
    - Cleanup + bug fixes

    I am really really looking for someone to do:
    - The advancements API
    - Light API
    - Map API

    If you have experience with packets or have already done a library implying one of those features with bukkit/NMS feel free (please do) to contact me in order to refactor and merge your code into Minestom
     
  16. This is great, and opens up the world for devs to have more customization without needing to tinker with internals. Good job.
     
  17. Thanks, I appreciate the support :)
     
  18. A lot has been done since:
    - Update to 1.16.1
    - Support for brand name
    - Our own chat library (supporting keybind, translatable components, RGB color, as with hover & click event)
    - Improvements over our Network infrastructure
    - Enums are now completely generated based on Minecraft data file (from the server jar & external repo)
    - Ability to change the player name/skin at login
    - Some new events
    - Allow console commands
     
  19. Woah. This looks CRAZY cool. I've always wondered if this was possible in any meaningful way, and this looks like the answer I was looking for!

    Is it possible that this could perform better than Mojang's implementation? I know people have been whining about server performance on 1.12+ for YEARS and I don't know if this could potentially be a solution