Inactive [ECON] DynaMark v0.2.0.0 - A Simple Dynamic Market / Shop [1.2.5-R1.3]

Discussion in 'Inactive/Unsupported Plugins' started by smickles, Sep 26, 2011.

  1. Offline

    smickles

    (We've made the move to BukkitDev, come here)
    Some info is outdated on this thread, please go to the BukkitDev page for the most up to date info.

    DynaMark - A Simple Dynamic Market / shop


    Donations
    • [​IMG] 1M8i6TWmnTfWCuTQJMQUkX8xJbCEctaXkF
    [​IMG] Or http://btc.to/1qq for short​
     
    diannetea and aMannus like this.
  2. Offline

    Mercury

    @smickles
    I would like to see same thing but trading between players :p
     
  3. Offline

    smickles

    @Mercury
    You mean like, the sale won't occur until another player places a buy order?

    Ex, player A : /sell wood 64
    Nothing happens until...
    Player b : /buy wood 20
    Then, server determines the price in the current manner. Player a gets money, and player b gets the wood.

    I think I could do that.
     
  4. Offline

    bullard120

    Question, Can someone buy something if their anywhere in the Global world? Or can u set a area they have to goto to buy the stuff? This mod looks like it has great potential! I dislike chest shops (No Offense to makers of them)
     
  5. Offline

    smickles

    The way it is now the market functions anywhere. I'm sure that I can code in location restrictions, however, setting up the area(s) where transactions can take place may become somewhat complicated for users / admins. Predefined sizes could be an answer to this.
    @bullard120 maybe we could discuss a custom plugin for this because I'd like to keep DynaMart simple and easy. Please pm me or preferably start a public thread for discussion and route me to the thread.
     
  6. Offline

    Mercury

    Yeah. Because I don't like the way how players can buy from server. Like spawning blocks from nowhere.
     
  7. Offline

    smickles

    I will give this a shot as soon as possible.

    Edit: it's on the todo list.
     
  8. Offline

    Chaotic

    i do like this but can you please make it optional in config because i dont want that to happen like that IMO (in my opinion) but yeh just make it configurable ill be testing this on my server though :D

    EDIT: Make a configurable Sell Price
     
  9. Offline

    smickles

    Yes, I do intend to make the new feature "opt-in".

    With regard to your edit, do you mean you want a way to set a fixed price for an item? Currently you can configure the price of an item, but the algorithm will still affect the price. Basically, right now you can set a 'starting' point anytime you want, even while 'live' without reloading.
     
  10. Offline

    Chaotic

    well what im thinking is have in your config
    newitem:
    buy: ##.##
    sell: ##.##
    number: ##

    so you can for example buy an item but you can sell it for a fixed price that you set it at

    oh and please add a /shopsearch feature :D

    Loving this plugin on my live server

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

    smickles

    let me see if I understand you.
    you want the '/buy newitem' command to stay the same, but (optionally) set a fixed price for '/sell newitem'​
    or
    you want a configurable Minimum price. (instead of the current, 0.01 )​
    or
    I've had too much coffee and cant think so well right now.​

    also, What do you mean by /shopsearch, We have the /price feature which will tell you the price of an item. I'm thinking that when the WTB / WTS is ready, it would also return how much is available / desired (respectively). And, there will also be addition '/market' commands to show most available and most desired items. (I'll probably just roll those into the '/market top' and '/market bottom' displays.
     
  12. Offline

    thedohman

    I was just thinking this morning how cool a commodities market type plugin would be. And then I found this! I like the above, but since there must be a seller and buyer for every transaction, there is no reason why the player can't choose the price (other than coding concerns)... let the market set the price. something is worth only what someone is willing to pay.

    Obviously, this wouldn't work well on severs with too few players, so this would be an optional replacement of your automatic price algorithm.

    Long Description of what I was thinking:
    Show Spoiler

    • players place BUY or SELL orders, for a quantity and a per item price. items or credits are removed from player inventory.
    • players can view the total quantity available, and the amount of the previous transaction BUT they cannot see the price of current orders. (a history would be nice too, to see trends, but that's a lot more data to keep around.. maybe just last few transactions (configurable number of them)
    • if a buy order and sell order match or overlap (sell order for less than a buy order, or a buy for more than a sell order) a transaction happens.
    • orders may be cancelled, and items/credits returned.
    • optionally, items or credits are not deducted until time of sale. this can result in defaults, where a player cannot honor the entire order they placed, and result in some kind of penalty (rank, experience decrease, or maybe even a bounty placed; this would be a separate plugin and integration would need to be worked out.)
    • optionally, have a fee, either for buyers, sellers, or both. this can help combat inflation, and fees can be forfeit if player goes into default
    • optionally, make markets local. like say, you have to have a specific chest open to use the commands, and different "market chests" have their own orders and transactions. different areas of the server would have different prices, and money could be made by transporting goods from one to another, even while removing money from the server via fees. especially with large biomes (cactus cheap in desert, but wood might cost more)
    • optionally, allow config of specific items that can use this pricing method, and all others use the original method.


    Example:
    Show Spoiler

    player A: /sell wood 64 5
    - 64 wood leaves player inventory
    player B: /sell wood 23 3
    - 23 wood leaves player inventory
    player C: /price wood
    "87 Wood available, no previous sale data"
    player D: /buy wood 50 2
    - player C is charged 100 credits, but there is no wood available at this time at that price, so the order is outstanding
    player E: /buy wood 23 4
    - player E gets 23 wood in inventory, a "buy 27 4" order is effectively placed, and is charged 200 credits for his 50 wood. player B gets 92 credit (4 each) because the offer is higher than the sell order.
    player F: /price wood
    "64 wood available, last sale price 4"
    player F: /sell wood 10 1
    - player F loses 10 wood. since this is under an existing buy order, player D gets 10 wood for only 1 each. (and gets 10 credits returned for the difference) because the offer was lower than the buy order.

    make sense? seems to fit in with your plugin. All except the local market chest thing should be do-able, and would make the economy more player driven.

    oh, and something small completely unrelated to my previous post (so not editing it)...

    how about use a single base command to make it less likely to conflict with other plugins? like, say /market buy wood 10 instead of /buy wood 10.

    EDIT: allow both versions (/market buy and /buy), and allow disabling the /buy, /sell and /price for those that have conflicts

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

    Chaotic

    I Want the Buy command to stay the same but i want to be able to set a /sell price for items so it isnt auto-set by the plugin


    so for example now

    i would do /buy Stone 1 it will sell me 1 stone for $1

    but if i configure the sell price it will sell it for howmuch i set the price for



    EDIT: Please add a way to get Items with a second DataValue (EG Darkwood ID = 17:1) every time i try to do that gives me an internal server error
     
  14. Big problem here... I am very new to modding servers and I'm probably missing something blatantly obvious here but... When I try to use the sell or buy commands, it just says "be sure you typed the correct name. /n sell stone 64" it says that no matter if i'm trying to sell bread, wool, or wood. It's always "stone 64." If I try to sell stone 64, it says an internal error has occurred. What's going on here?
     
  15. Offline

    smickles

    Oh man, this sounds great. I would love to implement that. However, I think it is out of the scope of this project.

    Hopefully, you will find what I intend to do with DynaMark to be an acceptable middle ground. You see, I'd like to keep DynaMark at a certain level of simplicity from the player prospective.

    If I had more time I would do something just like what you have suggested, but between actually playing Minecraft and getting DynaMark to where I want it to me, I have almost no leftover free time. Perhaps this could be my next project.

    Thank you so much for the comment and obvious effort you put into your idea.

    I have been considering this exact solution to potential conflicts. Now that you have brought it up, I should put this on the todo list.

    Ok, one more question,
    when you say that you want to configure the sell price,
    do you mean you "the player" or you "the server admin"?

    and with regard to your edit:

    I need to add in support for second data value items. Sorry that it's not already there, but I will put it in the ToDo list.

    If you are receiving the "be sure you typed the correct name" error, then that should mean that you have typed in an item that is not in the config file. It could be because of a typo (but this sounds unlikely in your case).

    Can you open up your config file (@ YourServerFolder/plugins/DynaMark/config.yml) and verify that the item you are trying to sell is in there and that you are spelling it the way that it is spelled in there?

    I know "stone" is in the default list of items. If you are getting an internal error from that... Do you have iConomy5 on your server too?

    (it always says "/sell stone 64" as a usage example if something goes wrong, sorry for the confusion)

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

    Chaotic

    the server admin to configure it but thanks for the second data value its not NEEDED but its just a nice feature :D
     
  17. Offline

    smickles

    Righto, I will get this in the queue. ;)
     
  18. I verified and double verified the spelling and formatting of every word down to a "T" and nothing works. Now, all it tells me is there is an internal error. I have followed the instructions exactly: /sell cobblestone 2 for example.

    I've also tried block ids just in case: that didn't work either of course. :(

    This is a shot in the dark, but could the error have anything to do with permissions?

    Also, is there some additional plugin or mod i need to make this work?
     
  19. Offline

    Austin

    There is a plugin for that, called Virtual shop.
    But its the only player to player shop plugin of it's kind.
    It would be nice to see some competition.
     
  20. Offline

    smickles

    DynaMark currently ignores permissions.

    You do need an economy plugin for this to work.
    I just released a new version (0.0.2.1) which should work with all the major economy plugins (e.g. iConomy)
    DynaMark depends on Register to pull this off.

    in short, You Need:
    Can you get all three of those in your plugins folder, reload your server and try again please? if that still doesn't work, please look at your server console and give me the error that it is spitting out in the log.

    Hmmm, yes, VirtualShop looks similar to this idea. But I'd be doing this with server determined prices and a simpler interface.
    I hope to contribute to your 'seeing some competition'.

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

    goldseed

    I think Convenience to use is important thing. In this point, Bettershop is leading plugin. but does not support dynamic pricing yet.
    I think you can look over that plugin.

    I am currently using DynamicMarket .. but my players frequently asks why can't use /shop sell all.
     
  22. Offline

    Austin

    I will be watching closely, VS always had a problem with noobs selling diamond for low prices.
    Perhaps a /plist can list recommended server prices that flux with trades, the but the player can ultimately decide the true price.

    As much as I hate to say it, somewhat like runescape's grand exchange. It seems to be the only thing that game got right.
     
  23. Offline

    smickles

    A /sell all feature is should be coming soon on my end ;)
    I will have a look at Bettershop and DynamicMarket. I'm sure I could always learn something from other plugins.
     
  24. So i got iconomy and register in my plugins folder now. Is there some special way i have to configure them? im still getting "internal error." Nothing pops up in the "Pail Manager," but in CMD, it says:

    161 recipes
    17 achievements
    17:04:03 [INFO] Starting minecraft server version Beta 1.8.1
    17:04:03 [INFO] Loading properties
    17:04:03 [INFO] Starting Minecraft server on *:62942
    17:04:03 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-1067
    -g6301507-b1185jnks (MC: 1.8.1)
    17:04:04 [INFO] [Register] Preferred method [null] not found, using first found.

    17:04:04 [INFO] [Register] version 1.5 is enabled.
    17:04:04 [INFO] [Pail] Initializing...
    17:04:04 [INFO] [Pail] Setting up themes...
    17:04:04 [INFO] [Pail] Registering events...
    17:04:04 [INFO] [Pail] Loading interface...
    17:04:05 [INFO] [Pail] Setting up window...
    17:04:05 [INFO] [Pail] Pail 0.7.4 Enabled
    17:04:05 [INFO] Preparing level "HardcoreSurvival"
    17:04:05 [INFO] Default game type: 0
    17:04:05 [INFO] Preparing start region for level 0 (Seed: 3248160095839860979)
    17:04:06 [INFO] Preparing spawn area: 97%
    17:04:06 [INFO] Preparing start region for level 1 (Seed: -4722319258925122763)
    17:04:07 [INFO] Preparing spawn area: 97%
    17:04:07 [INFO] CraftBukkitUpToDate version 2.6.6 is enabled!
    17:04:07 [INFO] CButD: Permission system not detected, defaulting to OP
    17:04:07 [INFO] DynaMark version 0.0.2.0 enabled
    17:04:07 [INFO] [iConomy - Celty] Enabled (23 ms)
    17:04:07 [INFO] [NoLagg] Auto-save field bound to 'u'!
    17:04:07 [INFO] NoLagg version 1.2 is enabled!
    17:04:07 [INFO] PailPlus v0.2 beta enabled
    17:04:07 [INFO] [Register] Payment method found (iConomy version: 6)
    17:04:07 [INFO] Done (0.255s)! For help, type "help" or "?"
    17:04:07 [INFO] CButD: CraftBukkit is up to Date
    17:04:17 [INFO] The automatic update-Check only work every 6 hours, the last che
    ck was 327 minutes ago.
    17:04:23 [INFO] cuteasamutton [/192.168.1.1:62427] logged in with entity id 180
    at ([HardcoreSurvival] 262.375, 65.0, 235.1875)
    17:04:23 [INFO] New max size: 484
    17:04:23 [INFO] New max size: 784
    17:04:31 [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'buy'
    in plugin DynaMark v0.0.2.0
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:41)
    at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:16
    3)
    at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:3
    53)
    at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.
    java:756)
    at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:721)

    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:714)
    at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
    at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
    at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
    at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
    at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:464)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
    Caused by: java.lang.NoClassDefFoundError: com/iConomy/iConomy
    at me.smickles.DynamicMarket.DynamicMarket.readCommand(DynamicMarket.jav
    a:83)
    at me.smickles.DynamicMarket.DynamicMarket.onCommand(DynamicMarket.java:
    59)
    at org.bukkit.command.PluginCommand.execute(PluginCommand.java:39)
    ... 12 more
    Caused by: java.lang.ClassNotFoundException: com.iConomy.iConomy
    at java.net.URLClassLoader$1.run(Unknown Source)
    at java.security.AccessController.doPrivileged(Native Method)
    at java.net.URLClassLoader.findClass(Unknown Source)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.
    java:36)
    at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader.
    java:24)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    at java.lang.ClassLoader.loadClass(Unknown Source)
    ... 15 more
    >





    Hope that helps. Again, I apologize for my being an extreme noob. I honestly have no idea how people figure this stuff out. Thanks for your time!

    One last thing: is there anything special I have to do with iConomy? I can't find a straight answer anywhere.


    Update: so I got iConomy to work. I can give money, take money, ect. but I still cant sell things.
     
  25. Offline

    smickles

    Oops, it looks like you need v0.0.2.1 of DynaMark. link

    No need to apologize. Everyone is a noob at one time or another.
     
  26. Offline

    smickles

  27. Offline

    Adinoob

    Serwer:

    Code:
    [SEVERE] null
    org.bukkit.command.CommandException: Unhandled exception executing command 'buy' in plugin DynaMark v0.0.2.2
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:41)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:163)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:353)
        at net.minecraft.server.NetServerHandler.handleCommand(NetServerHandler.java:756)
        at net.minecraft.server.NetServerHandler.chat(NetServerHandler.java:721)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:714)
        at net.minecraft.server.Packet3Chat.a(Packet3Chat.java:33)
        at net.minecraft.server.NetworkManager.b(NetworkManager.java:226)
        at net.minecraft.server.NetServerHandler.a(NetServerHandler.java:92)
        at org.getspout.spout.SpoutNetServerHandler.a(SpoutNetServerHandler.java:500)
        at net.minecraft.server.NetworkListenThread.a(SourceFile:108)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:464)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:374)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:417)
    Caused by: java.lang.IncompatibleClassChangeError: Expected static method com.nijikokun.register.payment.Methods.getMethod()Lcom/nijikokun/register/payment/Method;
        at me.smickles.DynamicMarket.DynamicMarket.buy(DynamicMarket.java:120)
        at me.smickles.DynamicMarket.DynamicMarket.readCommand(DynamicMarket.java:237)
        at me.smickles.DynamicMarket.DynamicMarket.onCommand(DynamicMarket.java:222)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:39)
        ... 13 more
    Client:
    An internal error occurred while attempting to perform this command

    I use the last iConomy, DynaMark 0.0.2.2 and Register
     
  28. Offline

    smickles

    I'm having trouble replicating this error.

    • Can you tell me exactly what 'the player' typed to cause this?
    • Are you using any other plugins too?
     
  29. Offline

    diannetea

    would it be possible to implement caps on the prices, so for example, cobblestone can never go below 5 or above 100?
     
  30. Offline

    smickles

    Yes, I've been meaning to do this.
    I will put it on the ToDo list and get it done soon.
     

Share This Page