[WIP/ECO/RPG] Plugin Preview: Supply and Demand

Discussion in 'WIP and Development Status' started by PatPeter, Aug 27, 2011.

Thread Status:
Not open for further replies.
  1. Offline

    PatPeter

    SupplyAndDemand
    http://dev.bukkit.org/server-mods/supplyanddemand/

    For the past month and a half I've been storyboarding my plugin by use of database design and basic plugin testing (simply the database design has taken a month). The plugin is planned to be a holistic Economy plugin, completely changing the way economies work on Minecraft servers. Here is a list of the functionality I've started on:
    • Three-fold relationship between commodities (blocks and items), companies, and consumers (players).
    • Commodity price will be based on either labor and rarity (for natural commodities), or labor and base component value. For instance, stone is "valueCobblestone + valueCoal / 8 + laborStone", and Pistons are "valueWoodenPlank * 3 + valueCobblestone * 4 + valueIronIngot + valueRedstone + laborPiston". I have expressions like this created for every single commodity ready for insert into a test database. I'm working on labor and rarity values right now.
    • When a commodity is bought, it will change the price of any items dependent on it if the amount is great enough.
    • Commodities can be considered 'perishable'. The consumer has to specify an /its, intent-to-sell, collect the item, and then venture to the store. If the consumer teleports it will invalidate the /its.
    • Consumers can create a company for a fee specified in config.yml.
    • Servers will have a pre-configured company titled "The Store" that no one can work for but everyone can buy and sell from and to every item by default.
    • Companies can buy the right to buy and sell commodities. The more basic the commodity, the more expensive it is to buy and sell it.
    • Companies can buy monopolies on an item, meaning no other company can buy or sell that item.
    • Every company has its own inventory, i.e. the amount of each item that company has in stock.
    • Companies will also be able to change their buy and sell percentages compared to "The Store"'s base price to compete with other companies, but will have a limit.
    • Every company has its own stock, for which users can buy shares to that company.
    • Every company has an owner, managers, co-managers, and employees.
    • Each class of worker can have a different pay system: salary, wages, or on commission.
    • Consumers can buy futures contracts. Futures contracts are when a consumer buys an item and pays for that item to receive it at a future date. For instance, if I buy a diamond pickaxe for $200 and a week later it is $325, I saved myself $125.
    • The world can have different currencies. The default currency will be iConomy, where other currencies can be used by companies or towns from Towny, if this plugin makes it that far.
    • Currencies will have an exchange rate to other currencies.
    • Companies and consumers can have treasuries and safe deposit boxes for their different currencies, respectively.
    Tentative Additions:
    • Corporations and different types of companies.
    • Unions that can lobby to change the price of labor.
    So my question to the Bukkit community is whether anyone would want to help with the development of such a massive plugin. I want to get the basic buy/sell functionality done so that I know I will not falter in my commitment to such a task. As I said, I have a database with an expression for every single block/item in game, which I don't plan to put to waste.

    The plugin will be dependent on iConomy and Permissions 2.7.4, with Permissions 3.x support ... PEX support later... Vault. I guess. I liked Permissions 3.x better. I am also coding a parser for the mathematical expressions the plugin uses based on + - * / % ^ and ( ), as I could not find an already written one that fits into the plugin's specifications.

    Also, any suggestions are more than appreciated, as long as it's constructive.
     
  2. Offline

    ktbanh

    From the looks of this, I'm assuming you are making it console based; or are you planning on an addition physical setting like player interaction?

    What I was linking it to is when you said, each company will have an inventory. (would make your project difficult if it's outside console considering the massive amount of task but doable)

    Seems like a great project that utilizes database functionality. :)
     
  3. Offline

    DrBowe

    This looks great, but it's also probably better suited for the WIP sub-forum :)
     
  4. Offline

    PatPeter

    Oh gawd, not chests, no, please no. Yes, the blocks themselves will cease to exist and simply become numbers in the database. Originally, this database was like a copy of Towny for economy except it used a database. I really don't see how Towny still operates on flatfiles...

    Huh... I did not see that subforum until now. It blends in too well. I'll ask a mod to move this thread.
     
  5. Offline

    PatPeter

    As an update with several people inquiring about this plugin: yes I am still working on it.

    I'm hoping to have the capability of buying and selling in the next week or so. Right now I'm working on getting the price of all items to set on server load.
     
  6. Offline

    Sleaker

    Instead of linking with a specific Economy (iCo) plugin I hope you'll use Vault instead. No reason to limit something like this to iCo or a specific permission system. (See sig)

    And hopefully you realized that supporting perms 2.7 is the wrong way to go.
     
  7. Offline

    Nekpek

    i would like to see this in reality,
    and would like to help unfortunately i only know the very very basics of Java and has done a Hello world and Hello server with java and nothing more so dont think ill be that much of a help xD
     
  8. Offline

    PatPeter

    Keep in mind I wrote this last August when 2.7.4 wasn't too outdated. I didn't know Register existed and Vault hadn't existed yet. However, I was using 2.7.4 on my server until about a week ago because if it isn't broke don't fix it (well, it did break because Multiverse couldn't recognize it going from 2.0 to 2.2 which is at the core of my server).

    And a library that manages both Permissions and Economy for me sounds brilliant, because I seriously don't want to have to waste time worrying about compatibility with permissions/economy.

    If you really want to help stay tuned, because the most helpful thing anyone can do is review the pricing I give commodities when I release a 0.0.1 build for buying/selling. Believe it or not, choosing the price for wood is proving harder than the programming itself.
     
  9. Offline

    Sleaker

    hmm, why isn't this stuff configurable?
     
  10. Offline

    PatPeter

    The core of the plugin is that when you change the value of one commodity, it subsequently changes the value of any commodities that use that commodity for creation.

    For instance, wood; wood creates wooden planks, wooden planks create a myriad of other things including sticks, sticks make all tools. Namely, the problem is threefold, A) how to evaluate commodities in order of supremacy (cobblestone, dirt, wood are tier 1; stone, grass, wooden planks are tier 2, etc.), and B) how to make sure the price of low-level tiers does not exponentially increase. I just recently fixed (I hope) a problem where the price of an item would be evaluated for every item used to create it. It resulted in this (the largest number is the value of the commodity):

    Code:
    318,0,Flint,0,0,0,4990,0,1
    319,0,RawPorkchop,0,1,1,0,0,1
    320,0,CookedPorkchop,0,0,1,0,0,1
    321,0,Painting,0,0,0,30270,0,1
    322,0,GoldenApple,0,0,0,90,0,1
    323,0,Sign,0,0,0,3842.5,0,1
    324,0,WoodenDoor,0,0,0,3842.5,0,1
    325,0,Bucket,0,0,0,3742.5,0,1
    326,0,WaterBucket,0,0,0,3762.5,0,1
    327,0,LavaBucket,0,0,0,3822.5,0,1
    328,0,Minecart,0,0,0,6237.5,0,1
    306,0,IronHelmet,0,0,0,6237.5,0,1
    307,0,IronChestplate,0,0,0,9980,0,1
    308,0,IronLeggings,0,0,0,8732.5,0,1
    309,0,IronBoots,0,0,0,4990,0,1
    310,0,DiamondHelmet,0,0,0,6237.5,0,1
    311,0,DiamondChestplate,0,0,0,9980,0,1
    312,0,DiamondLeggings,0,0,0,8732.5,0,1
    313,0,DiamondBoots,0,0,0,4990,0,1
    And C) what to set the default values to for the initial release of the plugin. So a large majority of my time is setting the labor and, if applicable, rarity of each commodity. In a way you could say that there's too much configuration to worry about.
     
  11. Offline

    Nekpek

    think i just summarized your trading idea, while asking a question and do to alot was writin i didnt want to delete it
    Read here (open)
    But. (Note all amounts of item mentiond is 1)
    If for instance a Log cost lets say 1 for the low rarity and such, would planks then cost 0.25?
    which bring the stick to 0.5
    Thne ofcause if you could make the Price only evaluate up meaning if there is a high demand on planks lets say the double in price but wood is not selling so they keep there price the new prices would be
    wood = 1
    planks = 0.5
    stick = 1
    This will make the player Think before buying the Planks for instance and selling the Wood
    Then people will try to sell planks as the get most income but perhaps it dont sell good a good selsmen can try to sell wood for the lower price
    until it gets to follow the price of planks

    The question was:
    If a item say planks increase in price does the lower tier Like logs increase aswell to follow?
    If so i thinks thats is a bad idea.
    and higher tierd items should increase but not with the total Value More like a percentage like 20%-80% (or configurable)
    Also I would try making a File with my idea to Initial Pricing of items
    and a Little Scenario of the tradings, in a server.

    after some medling with the initial prices for items i suddenly realize how big this plugin in reality realy are.
    as for the Planks not only does it require the prices from the logs but, there are 3 difrenent logs with each ther prices and then the logs price is alos determined with saplings. which also have ther own prices and types.
    Which make it be that the initals pricing of the lower tierd item is realy low.
    Let me give you a little demostrating of what i mean with the Planks
    lots of mathematic (open)

    Item increase percentage = 20 %
    Oak Sapling = 0,2
    Pine Sapling = 0,2
    Birch Sapling = 0,2

    Oak Log:
    Base price = 3 (do to the anoying big oaks)
    Plus the 20% (0.2) of the Oak sapling on top of the base price
    = 0.2 * 0,2 + 3 = 3,04

    Pine Wood:
    Base price = 2 (sometimes they get to hight to get wihtout placing a block)
    Plus the 20% (0.2) of the sapling on top of the base price
    = 0.2 * 0,2 + 2 = 2,04

    Birch Wood:
    Base price = 1 (easy to get as the only Grow as high as you can chop and one line)
    plus the 20% (0,2) of the Sapling on top of the base price
    = 0,2*0,2+1 = 1,04

    Planks: (since you can make planks of all the wood types you need to now the average price of each wood)
    3,04+2,04+1,04/3=2,04
    Base price of planks = 2
    Plus the 20% (0.2) of the average price of wood)
    = 0,2 * 2,04 + 2 = 2,408

    And remember does the price for Sapling rises the price for everything else rises too


    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 19, 2016
  12. Offline

    Nekpek

  13. Offline

    PatPeter

    His method is a bit different than mine, I'll keep to my development. For various reasons I fell behind in my schedule, so I have no ETA.

    Also, I had written responses to both of your other posts but for some reason bukkit.org did not accept them or my browser deleted them. I did not know I hadn't responded to your messages until your last post. I'll reply later.
     
  14. Offline

    PatPeter

    To anyone who still wants this plugin, the first public build is available on my server! So far the only functionality is buy/sell, along with /sad list for the viewing of commodities.
     
  15. Offline

    PatPeter

    I've released an alpha version of the plugin and I could use some testing on live servers (or at least a server that emulates a live server with 5-15 plugins). It works fine on my development server but it's end-of-streaming my server.

    http://dev.bukkit.org/server-mods/supplyanddemand/files/
     
  16. Offline

    realcake

    I would love to help you test, only if you add PEX support, the original permission plugin was discontinued so be and most people I know use either bPerms or PEX. Also, maybe their should be a way to claim land for your company so it's not locked to a town and you won't have to be a part of the town to do things their. When one claims land for their company (if you add it) their should be a PvP disable function for that area, as well as building permission on that land, I know it's a lot, but it would make it a lot better in my opinion- and add stores to the mix, so if you just want a shop and not a corporation/guild. Thanks, awesome plugin-keep the updates coming :D
     
  17. Offline

    PatPeter

    realcake the current alpha is using Vault which allows you to use PEX, the permissions plugin I use. I haven't updated the original post for this thread in a while. I'll do it when I release the next beta.

    I'm planning on creating another plugin that will deal with claiming land for a company, as well as selling claimed areas (you will be able to sell every block in the entire area). Until then, I'm using WorldGuard's API to detect that players are in The Store.
     
Thread Status:
Not open for further replies.

Share This Page