SDFEconomy
About
SDFEconomy is a multiverse/location aware Vault based economy plugin used on the SDF Minecraft Server. The plugin can configured to have separate economies corresponding to the separate inventory locations from any of these plugins:
In addition to multiverse support there are options for having an economy per world or a single economy for all worlds.
As Vault is not itself multiverse aware, we sometimes need to add specific support for other Vault plugins so money is placed in the correct location. So far we support:
You will need at least Vault version 1.2.3 or higher to use this plugin.
Localization is supported by this plugin, so if you have a desired target language contact me for details on doing a translation. So far we have localization for:
- English
- Russian
Commands
Aliases
- /sdfeconomy
- /economy
- /ec
General
- /ec help [page#] - See all commands
- /ec balance - Check player account balance
- Alias: /balance, /bal
- /ec pay <player_name> <amount> - Pay another player
- Alias: /pay
- /ec top - List wealthiest players
- /ec listlocations - List locations where separate economies exist
Bank Commands
- /ec bank list - List banks where player is owner or member
- /ec bank info <account_name> - Get detailed information on a bank
- /ec bank deposit <bank_account> <amount> - Deposit money in a bank account
- /ec bank withdraw <bank_account> <amount> - Withdraw money from a bank account
- /ec bank create <account_name> - Create a new bank
- /ec bank remove <account_name> - Remove a bank account
- /ec bank rename <old_account_name> <new_account_name> - Rename a bank account
- /ec bank addmember <account_name> <member_name> - Add a member to a bank
- /ec bank removemember <account_name> <member_name> - Remove a member from a bank
- /ec bank setowner <account_name> <new_owner> - Change owner of bank account
Administrative Commands
- /ec reload - Reload accounts
- /ec set <player_name> <amount> [location] - Set player balance
- /ec deposit <player_name> <amount> [location] - Deposit an amount into a player account
- /ec withdraw <player_name> <amount> [location] - Withdraw an amount from a player account
- /ec convert <economy_name> <location1>=<scaling> [ <location2>=scaling ...] - Convert from another Vault economy
- /ec player create <player_name> <location> - Create a player account
- /ec player delete <player_name> <location> - Delete a player account
- /ec scale <amount> <location> - Scale all player account balances in a given location
Permissions
- sdfeconomy.use_account - Permission to use a personal accounts, default: true
- sdfeconomy.use_bank - Permission to use a bank account, default: true
- sdfeconomy.pay_players - Permission to pay other players, default: true
- sdfeconomy.see_top_balances - Can other players see the balance of players show in /ec top display, default: false
- sdfeconomy.admin - Allows non-ops to use administrative commands. default: false
@ValeraSTK
That's a possibility. So far I have been following the Java standards for doing localization. If you need to make updates for testing, you can unzip the .jar file and drop in your new changes on top of the existing file, then rezip.
@omwah
So, translations will be inside of jar file?
Its not the best solution, imo.
Can translation.properties file be inside of plugin folder, or in <...>/SDFEconomy/langage/ folder?
Because people usually need opportunity to edit translation manually, add some color codes and change messages.
@ValeraSTK
I was able to incorporate your translation so far, thanks. I have a snapshot build available for your testing. I had to convert your file from the encoding you used into ASCII encoded UTF-8. You can see the converted file here. I can see the Cyrillic when I change the locale in my SDFEconomy/plugin.yml file. You probably do not need to do this if your system local is already set to Russian, which I hope that works correctly. I noticed the Cyrillic font looked a bit smaller than the Latin font in Minecraft, but I think this is an issue that is solved by modding the client with a different font pack, right? Thanks for your help on this.
As far as further ideas, my next plan is to incorporate MySQL and SQLite support.
@omwah
Ok, so I made firtst version of my traslation. Its not perfect, I need to test it in game, and may be fix some glitches here and there.
Also, I failed to translate couple of strings, but I dont think it would be a problem, because people who know how to use such things should understand whats it says.
And one more thing - page coding. Its tricky, because most Russian Mc servers use UTF8, but some of them use ANSI, so I have no idea, what coding should be used.
here is the link: https://dl.dropboxusercontent.com/u/98400085/CommandTranslation_ru.properties
Also, do you have any plans for development of this plugin? Can I bring new ideas, may be?
@ValeraSTK
Sure you can send me the file when you finish.
What specifically is the problem with the strings? You can rewrite the phrase however it makes sense in Russian. The placeholders {0}..{n} are there so you can reorder things in what makes grammatical sense.
But if you mean the phrase I wrote is confusing then lets see if I can clarify: "Specify location=scaling pairs where location is a name and scaling a double". This means that the user should give a series of location names and scaling numbers separated by an equal signs. So for instance a valid one would be "flat=2.0". This is an error message during a call to the convert command where they do not use the correct format as seen in the usage. Hope that helps.
@omwah
I start to work on translation, but Im not common with this "Github" stuff. Can I just send you my CommandTranslation_ru.properties file, when I finish?
Also, I have problems with some strings, for ex. - Specify location=scaling pairs where location is a name and scaling a double
@ValeraSTK
I am pretty much finished with localization support. Best way to contribute is through Github: fork, add your translation then issue a pull request. Copy the CommandTranslation.properties file and name it CommandTranslation_ru.properties and change the right hand side with your translations. The {0}...{n} are place holders where text is substituted in. Thanks for your help!
@omwah
Great!
@OneGameOneChance
Yes. If you set "translator" in the config.yml to global it will give you a single account for all worlds.
Is there any way to have just a single player account and not a player account for every world they are in? :)
@ValeraSTK
Just FYI: I have already started making the changes to allow for localization. I am not done yet as there are many messages that all need to be pulled into the translation file and it is very time consuming.
@omwah
Sure. I can make a Russian translation.
@ValeraSTK
Great idea! I will begin working on it soon. It will take a bit of work to switch all messages over to using the internationalization classes. Can you provide a translation for a language?
Hi! I like your plugin, its simple and nice. Can you please add lang file, in order to translate messages, like "balance" etc.?
@mohawkguy360
You can use the /ec convert command to convert from CraftConomy since it is also a Vault based economy.
Looks like an awesome plugin. I would love if I would have an option to import CraftConomy though.
Just uploaded it to my server, and was astounded. It works perfectly. I'm so grateful to you for your rapid response with this, and I'll be sure to continue using your excellent plugin. Again, thank you so much. It's refreshing to have someone as dedicated to helping us out as you are!
@Marky717
I just uploaded a new which should fix your issues with Factions accounts.
Thanks for looking into this problem for me. Factions is set to be only operational in one world, and deactivated in the second (I know, it's beginning to tire me too :P ). I see what you mean about factions causing the issues. If your primary concern is the layover of Factions between worlds, then this would not be an issue for us, as we only use it, along with its wallet, in one world. Im not sure if this helps the issue at all? If not, then I thank you again for looking into it.
@Marky717
The problem appears to be that Factions does a deposit without first checking that the account it is depositing into exists. Also it does not check the return code from Vault to see if the operation succeeded. I think I could add a flag to enable new account creation on deposit. But if your factions might be different between worlds then I am unsure right now on how best to get the location from Factions when it calls for a deposit.