[Not needed anymore] EcoLink [0.1.3] | An interface that unifies economy!

What is EcoLink?


EcoLink does the same thing as Vault. EcoLink helps developers to improve compatibility for economy plugins. It’s aim is to unify access to economy plugins.

Features:

  • Economy Support
  • Bank Support
  • Uses the built in ServiceManager
  • Documented Interface (Javadocs)
  • Very lightweight

How to use (for developers)

You can find a small guide here:
GitHub

If you know some bugs or possible improvements, just let me know :smile:

DOWNLOAD:
Click here

1 Like

Sponge already has a Service manager which handles this. :stuck_out_tongue: Plugins such as Vault aren’t necessary, in Sponge.

For Reference.

4 Likes

Wow, that’s painful.

I forged the following interface because i like to follow every single cent that get’s transfered.

This interface is based on the idea that there are multiple deposits and everytime you want to add/remove/transfer money, a transaction will be inserted into the database with timestamps and descriptions.

Everything is still a bit ugly and especially the recalculate method is used where it isnt necessary, but im still working on it.
EconomyService.java
StandardEconomyService.java
StandardTransaction.java
StandardDeposit.java

Screenshots of database layout:

The idea behind the layout with the deposits is that you could have a deposit for cash and the bank. Maybe the adminshop needs a deposit too, so you can only hand out 5000€ per day for example.

Im feared to open a seperate topic for this, since its not finished yet.

Maybe some people could get together and unify at least an interface, so all plugins can operate with just one economy interface instead of dozens of them.

2 Likes

I’m a bit confused, maybe because im actually german. But I don’t know if EcoLink is useful or not. Otherwise there would be a lot of interfaces for economy plugins. (or not?)

In my opinion your interface isn’t flexible enough and the plugin itself doesn’t use the integrated ServiceProvider mechanism. You somehow used your own.

You got:

public static void registerEconomy(Economy eco) {
    if (eco != null) {
        economy = eco;
        logger.info("Registered Economy Interface: " + eco.getEconomyName());
    } else {
        economy = eco;
        logger.info("Registered Economy Interface: " + eco.getEconomyName());
        logger.warn("Economy interface overwritten! You can register only ONE interface!");
    }
}

I registered my EconomyService with this:

game.getServiceManager().setProvider(this, EconomyService.class, new StandardEconomyService());

You basically worked against the API and not with it. That is no offense, just advice. In case you need some help or don’t understand what i say, just pm me, im german as well.

1 Like

Just to clarify, with Sponge we will need an Economy mod, but not Vault (or an equivalent)?

1 Like

We will need some economy mod. Vault was used to register Services like Economy, Permissions and more. Sponge has a built in way to register/retrieve services. But Vault also unified the interface for Economy and Permissions which (afaik) isn’t the case for sponge.

Hope it was understandable.

The only difference I can see in your solution, is that you’re doing some logging stuff. Sure, I could write a transaction object, but I tried to do this more like Vault.

EDIT:
Now I’m using the built in ServiceManager.

Everything is getting cluttered :frowning:

I just showed off my interface as an example, cause im feared to open an extra topic yet.

The point what Ferus and i mainly meant is that you didn’t use the built-in method register services.

Relating to your edit: You as the one providing the interface, don’t use the built-in ServiceManager. The one who is implementing it will use it.

Like this:

game.getServiceManager().setProvider(this, Economy.class, new ExampleEconomy());
1 Like

would like to see if this can possibly be implemented into ServiceCommons
as a library, i’m attempting to do basically what you say you’re wanting to do; which is unification of an economy.
if we can drag it into a library that soon might be a really useful set of services, then the goal can be achieved .3.

1 Like

Wouldn’t easily be able to put this into ServiceCommons. Mostly because the idea behind ServiceCommons is that it won’t be a plugin, but an included toolset. An Economy Service, API, or whatever, would require interfacing with the SpongeAPI.

Updated EcoLink:
Now, it uses the built in ServiceManager. Also I created an Transaction object to prepare transactions before executing them.

i think i have an idea as to how i want to handle that type of service, but its gonna take a bit of thinking; the way things are set up i might not be able to do it the way i need to

but yeah, probably need to stay away from it for now

Update 0.1.3

Changes:

  1. Added a bank interface
  2. Added Javadocs
  3. Some other interface improvements

It would be great if you host it on GitHub or provide the source otherwise, it sucks to decompile it everytime and the javadocs don’t help us since its compiled.

Just created:
https://github.com/GermanElectronix/EcoLink

1 Like

That’s perfect. With understandable documentation. *hug*

1 Like

Should I add an interface for permissions (groups, prefix, suffix, etc.)?

I’ve read somewhere here in the forums that there will be an unified permissions (and also economy?) interface getting integrated into sponge.

1 Like