"Foundation" - Common APIs and Plugin Infrastructure Manager

@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.

@ButterDev Good to know!

I’m planning to include the following packages in my next commit:

  • Economy
  • Jail
  • Scripting
  • Teleportation

Something that @octoshrimpy brought up here concerning an ideal way to modularize Essentials or ess-like plugins would be to have config options or separate config for enabling and disabling more specific functional groups (more specific than the modules themselves, that is), so long as there’s a way to prevent the disabled functions from using much memory. If possible, it may be worth doing, if you’re inclined. It may also save people the trouble of handling permissions for those functions if they don’t want to use them, and may alleviate some pressure on modularizing them into separate .jars entirely (people are probably always going to ask for more modularized or specific modules with that setup)

So far it sounds good though. I’m assuming warps would be included in Teleportation? And rather than just Jail, would it be worth implementing general user management into that module? So the ability to ignore users? I’d say bans as well like Essentials did, but vanilla has implemented most of the features Essentials did. Is IP banning a thing in vanilla? Also, an IP/username cross reference command might be helpful. Was something I did with the first plugin I ever wrote was persist files for users per ip and ips per user so that you could search alts a bit easier. Was about like Ess’s /seen command I guess.

1 Like

@OffLuffy We can always choose to implement the API in the core plugin, rather than seperate them in different modules. However, i’m currently developing a quick plugin testing environment, so we’ll be testing what is the most efficient way of doing it.

And yes, warps will be included in the teleportation module. Also, general user management, server administration, economy etc. will be included as seperate modules.

1 Like

I’ve updated the post, since the projects purpose is changed. I’d like to get some feedback and more ideas from the community.

We’re currently developing the plugin with three people, but we’re searching for some other talented developers. If you’d like to work with us, please contact me!

Why /nuke or /kittycannon?
Did any servers actually use them??

@Squawkers13 We’re probably not going to implement that.

2 Likes

@Kornagan No problem, i’m also a bit busy, but i’ll continue development this week.

Guys,
I will be out of town for a month. I’m really sorry.
I’ll see you then.
~ ButterDev

Hopefully you come back to a nicely released Sponge :smiley:

@ButterDev No problem! See you soon!

I noticed that there is a lot of confusion around the project. That’s why i’d like to clarify everything and explain how the project is built.


Here are a few explanations of what Foundation is now, and where the initial idea of Foundation is going to.

  • The Foundation project changed from an Essential-like plugin, to an API which provides Essential-like features. It will bring common APIs and helper classes. Also, Foundation is built in a way that you could technically run two, let’s say, economy plugins on one server, without getting in each others way. These economy plugins share the same balance, which means that there is only ONE balance (handled by a Foundation module).

  • About two weeks ago, Foundation’s intention was to be an Essential-like plugin, which was modular, flexible, customizable and lightweight. This will be a seperate plugin, for now called FoundationCore, and i will be informing you about that project soon. We will keep the end users in mind, but we want to finish the Foundation plugin first.

  • Foundation will run on Foundation Modules, which are the actual implementations of the APIs in the Foundation plugin. These modules are managed automatically, so the server administrator doesn’t have to worry about it (admins can manage them manually via a config file).


Here is a quick overview of how the whole system works. If you have any questions about it, don’t hesitate to ask them.


Image summary:
The Sponge API and its implementation are developed by the Sponge developers. Foundation is a plugin that runs on Sponge. Foundation uses modules to implement the APIs. These are handled and managed automatically. FoundationCore will be a plugin for server administration, teleportation, user administration etc. like Essentials was, but modular, flexible, customizable and lightweight. Sponge.js is a future project, just like the Sponge Package Manager. More information about these projects later.

The FoundationDriven website will be up in about a week, i keep you updated!
Thanks for reading!

~ Exstar

1 Like

Just a suggestion: Make FoundationCore a lot easier to configure than Essentials.

1 Like

Okay now it is in fact an exact duplicate of Lapis Commons. I dont get it! Why don’t you guys stick with the essentials-like stuff and build a plugin that makes use of the Lapis Commons toolkit? That’d benefit the community overall, instead of having two projects providing the exact same functionality.

1 Like

@Dyprex I’d like to say that Lapis is a duplicate of Foundation (Foundation was first, even when the purpose changed. You can check that), and we stick with the Essential-like stuff, but in a different way.

Please refer to my post on the Lapis thread, I completely agree with you: [Abandoned] Lapis Commons: Unified toolkit for rapid Sponge plugin development - #38.

1 Like