How would you feel about a plugin that has.. little plugins!

Discussion in 'Spigot Plugin Development' started by FlyingLlama, Jun 7, 2016.

  1. I am looking for approval or advice from the community on how they feel about this idea.

    Your first thought is probably something like "Why on earth...".

    Here is why: I have been working on a massive MMORPG plugin for about a year now, since all the existing ones either suck, or are simplistic. Early on, i decided that making it modular would be absurd, since it would require a whole bunch of library jars and be very inefficient..

    The solution: A plugin that loads addons at runtime. All the addons get to share resources : a config system, player data, ultra-fast mass block placement, custom item and crafting API, ect.
    It is not intended for public addons, although that could be implemented later. The user could easily pick and choose what addons to use, instead of unused features wasting space. (this plugin is truly massive, it really does matter)

    What i have so far:
    The Core, which is a bukkit plugin:
    Classloader: loads addon jar files
    Utilities: mathematical, complex particles, any other small things used by multiple addons
    Config system: much easier to use than YMLs, and shared between addons
    Factions API: allows any players or other entities to have factions determining their behavior, friendly fire blocking.
    Task manager: a central runnable that handles smaller repeating sync tasks for all addons
    Fast block placing: changing massive numbers of blocks and extremely fast relighting
    Entity data map: Holds data for players/mobs, for all addons - stats, custom enchantments, buffs, ect
    NBT tools, including i/o for archives and files, NBT type constants
    Event relay: each addon can have certain events passed to it in a much less laggy fashion than using multiple listeners
    Basic lag-reducer: unloads unneeded chunks, limits entities. (about 200-400MB freed on default server at start)
    Planned: custom item and crafting API

    The WorldGenerators addon:
    Improved stone: Different stone types in each biome, emeralds in more biomes, strata layers.
    Custom terrain: The altitude, hill height, temperature, number of trees, ect can be set for every biome.
    Improved/bigger trees: unlimited types of new, pseudorandom (seed-based) trees, customization via dozens of settings. Trunks use bark on all sides (no more bare log ends). Customized for each biome.

    The Magic addon:
    Toggled hotbar for spells, API for custom spells and spell events, VFX.
    Planned: custom AI pathfinders to allow mobs to cast spells.
    Custom enchantments: unlimited new enchantments for all types of items - mining,armor,bows,arrows,weapons,tools

    Planned addons i have not started working on yet:
    PvP: arenas/special game modes, open-world factions, duels.
    Social: parties, guilds, chat and moderation, player home instances (created from sections of the overworld turned to islands)
    Dungeons: massive pseudorandomly generated dungeons with scripted bosses. This is actually already made, but not fully implemented.
    Monsters: Custom types of entities with new behaviors and abilities (already partially made, will include summoning spells for monsters, ect)

    So, is this a great idea, or a really dumb one?
  2. Give it a shot.

    There's always criticism in the community.
  3. I think every dev here has eventually had this idea run through their heads. A lot of us have attempted it, some of us have even succeeded. Its nothing fancy, and sadly end users dont seem to like the idea. Its hard to compete in a community where server owners think all-in-one plugins are better and stick to things like Essentials or RoyalCommands. ;)
  4. Oh, indeed. Most of my programming experience is with a user-base far less competent and lazy - "i clicked it, it wont work, wtf broken" - than the average minecraft server owner.
    That said, this will not be aimed at the average owner - it will be quite expensive (i am considering a free version with all the same features, limited to small servers).
  5. It's bad isn't it
    I reckon this is a pretty good idea, I previously have done something similar and it worked out pretty well :p