"Foundation" - Common APIs and Plugin Infrastructure Manager

I think that this is the most popular Essentials-like plugin out there. Who agrees with me?

@ButterDev I think it is. The possibilities are not limited to only Essential-like stuff, but also a wider range of catagories.

1 Like

@Exstar wanna chat on the IRC?

Does this mean that the plugin consists of:

Foundation.Jar
FoundationFun.Jar
FoundationChat.Jar

Because can’t you just put it all in one:

Foundation.jar

and do something like Sk89 did in CommandBook where disabled components won’t even be loaded into the plugin.

If I recall that correctly, CommandBook is loading it’s functionality from class and jar files as well, they’re just bundled with the plugin in a zip.

I believe that Kogan commented something about Foundation wanting to implement the Minecraft_server.jar console GUI… it was somewhere along… Sponge Should Have a GUI - #5 by Niall7459

Foundation.jar will be the main plugin,
FoundationFun.jar will be an optional module
FoundationRPG.jar will be an optional module.
Currently, none of the modules are planned to be bundled with the main plugin.

To make some things clear: Foundation will be a plugin that contains a set of common APIs and implementations, like for chat, permissions, manipulation, administration etc. The modules (plugins that use the APIs and implementations) are doing all of the hard work: they do a specific job, and they control it. You can expect modules like

  • Server administration
  • Chat system
  • Javascript scripting system
  • Jail system
  • Teleportation
    Developers can also make their own plugins using the APIs.
1 Like

@Exstar, that is what I want to hear :smile:. The perfect API.

In a plugin I’m writing currently, I’ve modularized sections of it that are built-in, and just have toggles in the main config, although, it’s arguable that this isn’t an ideal way to do it as the code is still loaded, even if disabled. Suppose I’d agree, but I’m not sure how negligible the difference is. I’d be fine if this plugin were written this way, but depending on how monstrous the unused modules can be, may be better to have it as separate .jars entirely. If that’s done, I’d honestly rather those modules be inside of the base plugin’s data folder, probably in a ‘modules’ sub-folder, instead of separate plugins entirely like Essentials did. That may also encourage others to use your API and be able to drop their own custom modules into the modules folder, and may also enable devs to easily customize modules as they need. I’m not personally familiar with how to hot-load external jars, so no idea how difficult that would be (which is why I haven’t done it myself XP) Personal opinion though; Good luck!

An other suggestion: Add an «anti-death-on-tp» function when there is a server/client lag after a teleportation.

I made a plugin to fix it: http://dev.bukkit.org/bukkit-plugins/nodeathontp/
Source: http://www.tabinol.me/websvn/wsvn/NoDeathOnTp

If my suggestion is accepted, feel free to take source code.

I hate it when a new minecraft version is released and it adds features to a command and then a plugin like essentials ruins it.

I Wouldn’t really mind if it didn’t come with a jail system

Sounds like a good plan to me. Didn’t think to have both dependent plugins and modules, but definitely a good way to go I’d think. Although I’m not entirely sure what the pros/cons of a plugin vs a module depending on Foundation would be, other than access to init states prior to Foundation’s initialization.

@Niall7459
The idea of Foundation being modularized means that you’d be able to disable or remove the Jail system, but others who want it can still use it.

@Kornagan I can’t explain that better! :wink:

As posted on the Cell plugin page: (preferably there will be 3 versions/modular sections, idk)

Cell Lite:

  • /warp (multiple)
  • /forward (inverse of /back)
  • /tp, tpa, tpaccept

Cell:

  • /ban
  • /kick
  • /mute
  • /tell, msg, /r
  • /mail

Cell Extended:

  • chat functions?
  • kits (maybe on regular Cell)

Love the name and idea, I’m not really a fan of essentials anymore as it has way to much I don’t need. (so many useless commands/commands I will never use like /bigtree, workbench, jump… etc.)

1 Like

@PangeaCake That’s the idea behind Foundation: you just choose and install what you need, and you can leave everything else behind.

@Kornagan I agree with you, i had some work to do, but i have enough spare time now.

We’re discussing on how we will continue the development, and it’s going all right! Some things we will design/implement this or next week:

  • Module loader
  • API accessibility
  • Minimal RAM/CPU usage
  • Available modules
  • Sponge Simulation Environment (for testing purposes).
  • Unit testing

@Exstar I’ll be on soon.