1.12.2 Do you use MassiveCore in your development of private/public plugins? Why?

Discussion in 'Spigot Plugin Development' started by iCodinqs, Feb 11, 2020.

  1. Hello All,

    So, I have been learning the MassiveCore API, and I have to admit, I haven't enjoyed working with it.

    Those reasons being, it's awfully complex to learn, poorly documented, it makes a lot of methods worst (as an example, creating new commands) and just doesn't feel like a complete assisted core plugin to me. These are my opinions though.

    Now don't get me wrong, they have done some great stuff, e.g. the inventory util, Mixins, MUtil and a few others.

    I want to know why you use massive core, and what does it help you with mostly?
  2. Never heard of that
  3. Yeah, it has been (GitHub has been archived). Though for some reason a good amount of developers I have recently come across still use the core for plugin development on mostly 1.8 servers.
  4. These feels more like a Spigot Discussion post.
    • Like Like x 1
  5. We're actually fully based on it. Of course we've modified bits of it, and after we've done our first release, we'll work towards removing it completely (because it's far from perfect). It is however a great starting point for more complexer projects, where you just want to focus on the project logic itself, not all of the tedious work that surrounds it.

    We'll work towards mitigating it out later. Reason being is we don't need the majority in it. The only fantastic thing in there which we want to keep is the entire database integration. Even that needs improvement. But, like I said, it's a great starting point and has massively helped us build a rather complex system in significantly fewer time.

    Though I do agree with the things you've stated already. It was a pain to get started with. Documentation isn't just lacking; it's non existent. You have to figure out everything yourself. It takes time to learn, but it's an investment; if you plan to build a large, fully custom, complex server, then it's worth the time investment. It has some nice utilities, but I think the database setup is by far the most valuable. If you heavily rely on database interactions (and I mean, heavily!) thenn it's worth a shot. For instannce, we have loads, and I mean loads of data checks which determine whether or not a player can perform a certain action. This requires us to check this data on the main thread, which MCore makes this very easily possible.

    I've worked with it for the past 3 years at least, so let me know if you face any difficulties.
    • Like Like x 1
  6. Haven't heard of it, never used it. Looking at it, it seems to be an all-in-one framework, which I'm usually not that fond of. I much prefer libraries, frameworks, APIs, etc. that focus on a specific aspect and execute that very well (not saying MassiveCore doesn't execute its concepts well, though).
    • Like Like x 1
    • Agree Agree x 1
  7. Optic_Fusion1

    Resource Staff

    When it comes to mixins i personally use https://github.com/Yamakaja/RuntimeTransformer

    when it comes to the project as a whole, i don't use it at all
    • Like Like x 1
  8. I never used a "general api" like MassiveCore. I prefer use specialized APIs and librairies.
    • Like Like x 1
  9. The database and whole data stuff is something that I am looking with playing with and learn more about how they do it, as I have something in the works that are in fact very data-intensive, plus I love using databases for storing data over the flat file method as it's better for performance, so if it helps me become a better dev im down to learn it.

    I generally tend to create my own core plugins as I can tailor it to the specific server type and various other factors, as you'd probably know yourself. Though I am wanting to learn it still due to the fact that a server I am working with is heavily based on MCore.

    Mind DMing me your discord so we can talk further about MCore?
  10. I also tend to use specialised APIs/Libraries, though I compile them all into one general API for easy deployment and maintainability and dependency management for the plugins that I use, though I only ever add them if I know I will be using their methods across multiple plugins as it helps with more faster development
  11. While I would tend to agree, it depends on this case. I mean, looking at my own project and our use of MCore. Sure, MCore has a lot of things in it which we don't need. That, plus the fact that it's not the best in terms of high level code quality, such as enforcing a singleton pattern for a lot of its components. Though at some point you have to weigh the pros and cons. MCore is a core plugin which simply takes care of a lot of aspects for you. From database integrations to version specific NMS setups (Mixins), text formatting utilities, you name it. You have to check for yourself whether or not it's worth the time investment to try and make your own core. For us, it simply wasn't. There was so much work to be done, and with the limited experience that we had on the field, we just couldn't waste time trying to build and improve a core plugin as we do. It saved us an incredible amount of time by using it as our base. Now that we have more knowledge about the genre, technical difficulties, our needs and requirements, we can remove the parts we don't need and improve what's left.

    I have unfriended DMs disabled, and incoming friend requests get rejected automatically. Send me yours :p
  12. Yeah, I do see where you're coming from, I do dislike the singleton patterns everywhere, but that's something ill have to live with. And yeah I totally do understand the point in limited experience in where such a core could be extremely handy for speeding up development

    And sure: Shay Punter#0001

    I also happened to have found out they moved from GitHub (which they don't appear to maintain that repo anymore over to BitBucket: https://bitbucket.org/massivecraft/massivecore/src/master/