DynamicEconomy
DynamicEconomy introduces your server to an economy where the prices constantly change based on the supply and demand of items. |
---|
Depends on [Vault] Vault Download Link | ![]() |
---|
Download
Here's a video with an overview of some of DE's features, graciously made by WoopaGaming!
Plugin is in BETA - Meaning it is not as perfect as I would like as of yet. I am still constantly adding features. Once I'm happy with the feature list, it'll be released into v 1.0. Expect v1.0 to have Chest Shops.
Support Pages
There's a lot to understand about DynamicEconomy, so visit some of these helpful pages!
-
Features
- Buy and Sell items in a global shop.
- Price automatically adjusts based on supply and demand!
- Customizable price ceiling & floor!
- Prefix the chat output with anything you'd like!
- Choose whether price changes are announced globally, locally, or not at all!
- Includes a custom alias file, so you can customize the aliases you use (Add whatever word in the world to stand in for, say, diamond, so if you call /buy purpleelephant it can buy you diamond!) - Even better, it already includes hundreds of aliases.
- Add items to items.yml at your whim! Just make sure to add aliases for them in alias.yml!
- Sort items into different groups, and then limit users to only being able to purchase or sell items from particular groups!
- You choose the default amount sold/bought if the user leaves out the amount argument.
- Features 340 items: the most commonly traded and used, as well as non-obtainable items and potions!
- Also, you can sell and buy enchantments! Enchant your items with any enchantment at any level, and then sell items from an item instead of selling the entire item itself!
- Custom Items.yml puts you in control of item prices, minimums, maximums, descriptions, and everything else!
- Change the price, price floor, price ceiling, price velocity, and stock, all from in-game without a restart or reload!
- Custom in-game command allows you to reload the DynamicEconomy config.yml
- Features help screen of all commands, usages, and descriptions
- Assess which features of your config are on and off from in-game.
- Simple permissions: permission is the same as the command name.
- DynamicSign - Signs that show the price, stock, velocity, ceiling, or floor of any item in REAL TIME! You can also change the colors the sign displays in!
- Find out the durability of any item in your inventory, or your armor!
- When you sell a tool or armor, the price you receive is proportionate to how much of the durability was used up. If an item is 25% used up, a player will only get 75% of the total price when he sells it! Stops "Infinite tool" abuses.
- Update Checker & Downloader!
- Sell and buy EXP!
- Data values for all woods, wools, saplings, slabs, and inks!
- Option to use either set-amount item velocities, or a percent velocity.
- The option to turn on "Price-Decay-Over-Time", meaning, if items aren't purchased for a long time, their prices will decrease! This is fully customize-able to the last bit; customize percent of price decrease, what's considered a "long time", and how often to check for these items! Or disable it all-together!
- Also, in addition to price decay over time, there's also price inflation over time, so items that aren't sold for a while will have an increase in price! This encourages sale of those items!
- Multi-World support!
- /sell hand and /price hand for selling or checking price of the item you're holding!
- Ban items from in-game instantaneously!
- Customizable random events! Make your own wacky random events that change the prices of items!
- Customize standard DE messages! Up to 32 of them, currently!
- Use your own custom currency.
- Custom log.txt file personalizes logging of all user commands for very intuitive, useful, and helpful logs for Server admins. No need to fuss over confusing server logs and exceptions. (You can disable it, if you want, too!)
- Sales & Purchase Taxes!
- Set taxes from in-game!
- Extensive region control! Select your own 3D regions in which users can buy and sell items!
- Alternative commands for /buy and /sell, so you can use other popular economy plugins in conjunction!
- Basic location control, such as setting a minimum height from bedrock in order to access the economy.
- Loans! With custom payback times, minimum and maximum loans, as many loans as you'd like, and more!
- Dynamic Interest rates for loans!
- Ability to ban the sale OR purchase of certain items!
Planned Future Features
Optional Interest Rates/Taxes on purchases and sales[ Completed 2/6/2012 5:47 pm in v .5.1]Loans with Optional Interest Rates[ Completed 2/23/2012 11:31 pm in v .7]- Chest Shops!
Option to either set IR/Tax statically, or have it dynamically change based on economy conditions.[ Completed 2/25/2012 12:08 AM in v .7.2 ]Sale of tools will give amount appropriate to current durability (A tool almost worn out will receive a very little percent of total price when sold)[ Completed 1/6/2012 11:05 pm in v .2]Optional Random Events that change item prices[ Completed 3/4/2012 1:07 AM in v .8.0 ]Price decreases over time if item is not purchased[ Completed 2/26/2012 1:42 AM in v .7.6 ]Option to not allow some items in the market.[ Completed 2/25/2012 12:36 AM in v .7.3 ]- Option to lose money upon death
- Option to store money in a bank account
Option to log all transactions[ Completed 1/22/2012 8:41 pm in v .4]- Extended abuse prevention: Looking through the kinks to ensure the dynamics of the economy are not abused by players
Update Checker[ Completed 1/21/2012 2:12 pm in v .3.2]- Prevent you from buying if you do not have enough inventory space
Data Values (35:1 etc)[ Slight addition in v.5.3 ] [ Completed 2/25/2012 11:32 pm in v .7.5 ]Location-based controls[ Slight addition in v.5.2 ] [ Completed 2/19/2012 9:24 pm in v .6 ]- MySQL Databases
Alternative Commands[ Completed 2/7/2012 10:18 pm in v .5.2]Marquee Signs (Signs that show the price and info of a given item)[ Completed 3/18/2012 1:27 AM in v .8.1 ]EXP Transactions[ Completed 3/19/2012 12:44 am in v .8.3 ]- Region Flags
- Much much more!
Donation
Your donation helps my development of this plugin and possibly more!
https://www.paypal.com/cgi-bin/webscr?cmd=_s-xclick&hosted_button_id=USZYP9PCHSVJW
With PEX, none of the permissions work, doesn't matter if its caps or not. It only works when you're OP. Is this meant to be like that or is it broken?
@ksafin
well, I get your point. A very humble request: Would you maybe implement the option to switch between worldguard and your mode :)?
Makes things easier when you're using other plugins that depend on WG (for example Dynmap + WorldGuard, I'd be able to show the shop regions on the map)
@megge208
I was considering it, and despite most people having worldguard I want to be able to allow users without worldguard to use it.
As such, I'm going to implement by own selection system.
I don't expect it to be too difficult :)
@ksafin
Maybe use worldguard regions, would make things easier for you i guess :)
@angelofdev
Not right now, that's a feature that'll be enabled in location restrictions.
You'll be able to select a 3d area with some object, and define it as a shop region.
@ksafin Are you able to add local shops? Where players would have to travel to the shop before they can buy/sell?
@ksafin
Still doesn't look like it's working, tried with lowercase perms, and with both lowercase and uppercase ones, and also with just uppercase.
I get a different response with just uppercase, though.
Lowercase (And the lower/upper combo) error: (Dark green colour) "You do not have permission to use this command."
Uppercase error: (red (default op name colour) "I'm sorry, but you do not have permission to perform this command. Please contact the server administrators if you believe that this is in error."
If that's any help.
@Sleaker
Gotcha, thanks for clearing that up. I thought Vault permissions was something beyond that.
@anonymous000
I'm hoping to figure out the problem. Are you running v.5.6? It included some changes to code and permissions that may fix it. The permissions are now all lowercase, so, dynamiceconomy.* should give all permissions, and dynamiceconomy.customer should give customer permissions.
Let me know if it works or not.
@ksafin
Will DE be compatible with PEX soon? I'd rather keep this plugin than DynaMark, but if this'll take you a while to do, could you please let us know? Thanks :)
@ksafin
right, I'm just saying that using the permission side of Vault is completely unecessary unless you intend to have P3 support. Otherwise Vault will interpret pretty much everything as player.hasPermission() anyway. Making it function identically. If the permission system isn't working with player.hasPermission() it wont work with Vault anyway and thus is an issue with the Permission system in use, and really not your plugin or vault. (PEX overrides how this takes place which is why the case stuff can make a difference.) The only time Vault will not use player.hasPermission() for a check is when you #1 want to do an offline player check (by passing it the string name of the player instead of the player objects), or if the server is using P3.
This is pretty much why I suggest always using lower-case permissions as it can prevent these inconsistencies.
@Marslar
Those commands only allow players to execute them. I'll change it to allow console execution.
@Sleaker
I use Vault for permission checks and hooking into the economy, not just permissions. I was previously using player.hasPermission() and some people were complaining it didn't work well.
Will do.
Right, I was doing that when I started (no clue why, terribly inefficient), and then I started storing all the variables in the DynamicEconomy class and simply accessing them from others. I didn't remove the code to instantiate them in other classes, I may do so later for a cleaner and simpler appearance.
Seems like you're not using Vault for permissions very well. First off unless you intend to very much desire P3 support for everything, you shouldn't be using Vault simply for permission checks. Just use player.hasPermission()
Also using case-sensetive permission checks can cause people to think that their permission system isn't working properly, even though everything is being hooked and loaded fine. It's highly suggested to always use lower-case only permissions. This is how superperms does it.
And last, you set up static variables for the econ/permission all over your plugin. I'd suggest only storing the economy/permission reference in one place. And making it public/static to simplify this out.
Some people are wrongly thinking that their permission system doesn't work with DynamicEconomy/Vault.
whenever i write these commands from the console i get that error but when i write them ingame its ok / ?
sorry - iget it whatever i write :)
this time i write dyneconupdate and
dyneconupdate
16:40:08 [WARNING] Unexpected exception while parsing console command org.bukkit.command.CommandException: Unhandled exception executing command 'dyne conupdate' in plugin DynamicEconomy v.5.4 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:16 8) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:3 86) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:3 82) at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:574) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:435) at net.minecraft.server.ThreadServerApplication.run(SourceFile:465) Caused by: java.lang.NullPointerException at net.milkbowl.vault.permission.Permission.has(Permission.java:105) at me.ksafin.DynamicEconomy.DynamicEconomyCommandExecutor.onCommand(Dyna micEconomyCommandExecutor.java:327) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40) ... 7 more
hasupdate
16:36:30 [WARNING] Unexpected exception while parsing console command org.bukkit.command.CommandException: Unhandled exception executing command 'hasu pdate' in plugin DynamicEconomy v.5.4 at org.bukkit.command.PluginCommand.execute(PluginCommand.java:42) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:16 8) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:3 86) at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:3 82) at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:574) at net.minecraft.server.MinecraftServer.w(MinecraftServer.java:551) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:435) at net.minecraft.server.ThreadServerApplication.run(SourceFile:465) Caused by: java.lang.NullPointerException at net.milkbowl.vault.permission.Permission.has(Permission.java:105) at me.ksafin.DynamicEconomy.DynamicEconomyCommandExecutor.onCommand(Dyna micEconomyCommandExecutor.java:309) at org.bukkit.command.PluginCommand.execute(PluginCommand.java:40) ... 7 more
i get this when i write /hasupdate ? my english isnt good so if the problem is obvious and i couldnt detect it sorry :)
@anonymous000
I'm really not sure why it doesn't work.
I use Vault for permissions, so it's really a vault issue, not a DE issue.
No clue. I kind of decide what I add next as I go along, depending on how interested I am in coding, and how much time I have.
Just stay tuned, I like to surprise you all :)
I'm still having problems with PEX, even after adding both of the nodes, capitalized and uncapitalized.
It simply states that I don't have permission to use any of the commands (using a test account with the dynamiceconomy.customer permission node enabled).
Any help..?
Also: The regioning feature would really be AWESOME. Any ideas if it'll be done soon, or is it something you'll be leaving till last?
Thanks :)
@Varunax
@Marslar
I will look into the issue.
@Varunax
no :S same thing happened to me once yesterday but it didnt happen after that
Not sure what's going on, but when I sell for an example:
/sell stone 64
It takes ALL the stacks of 64 stones in my inventory and sells it. So if I have 4 stacks of 64 stone, it just sells them all for 1 stack of 64 stones.
Is it supposed to do that?