[INACTIVE][ECON] DynamicMarket v.0.4.8.1 - Versatile Shop Plugin [440-480+?]

Discussion in 'Inactive/Unsupported Plugins' started by HaloInverse, Feb 2, 2011.

  1. Offline

    HaloInverse

    DynamicMarket - Dynamic Global Shop Plugin

    Version: 0.4.8
    Built against: Bukkit 0.0.1 build #412
    Works with: CraftBukkit 0.0.1 builds #440-480 or thereabouts.

    Requires:
    • Permissions 2.5
      • Very recommended, but now optional! See "DynamicMarket.settings" below.
    • iConomy 4.1
    • Either of:
      • SQLite (easiest to set up, reccomended)
      • MySQL (more troublesome, more powerful)
    Buy items, sell items, admins set prices, et cetera. However, there's a lot going on under the hood...

    READ THIS BEFORE PROCEEDING.
    Seriously. (open)

    This plugin has a great deal of flexibility, but the price of more flexibility is more command options to control that flexibility. Computers just aren't very psychic.

    While in-game help exists for commands, the output from /shop help (<topic>) is intended to be a quick reference, not exhaustive documentation. Full instructions simply won't fit on the MineCraft client's tiny text display.

    You should read and understand the following sections before installing this plugin and setting up your shop. If not, you should at least read and understand the following sections while you are setting up your shop items.


    The big feature: Dynamic pricing. Items can be set to increase in price as they are purchased from the shop, and decrease in price as they are sold back, simulating open market conditions. The initial prices of items are just considered a starting point - user transactions will eventually adjust an item's price to a near-ideal level, based on actual value vs. rarity.

    However, as of 0.4.5, the configuration fields are now flexible enough to allow a range of behaviours, from fixed pricing with no stock limits, to fully-dynamic pricing with finite stock levels.

    This is by no means "complete" in the sense of "finished adding features", but it is complete enough to be functional and usable.

    Current Features (open)

    New & Current Features:
    • Buying and selling of items:
      • Item prices can be set to dynamically adjust according to supply and demand. This is highly adjustable, including the rate of price increase/decrease per transaction, optional hard overstock/understock limits, price ceilings/floors, etc. Leaving all the extra features turned off makes an item's price fixed and always-in-stock, like a basic "flat rate" shop.
      • Subtypes of items are fully supported.
      • List of items in the shop is broken into pages, accessible by number.
        • Partial-name searching! "/shop list wood" shows everything with "wood" in the name.
      • Item names for buy/sell/info also use partial substring matches.
      • A dynamically-priced item might cost more for 10 items than the cost of 1 item multiplied by 10, due to stock depletion. So, the "/shop <id>" command now takes an optional ":<count>" parameter, so you can get a quote for the actual buy/sell price of larger numbers of items.
    • Administration:
      • Shop items are edited via a "tag" system, so you don't have to re-enter every field for each small change. Plus there's a few utility tags which do other things to an item's record...
      • Item names are now editable, and will persist (independent of items.db) until the item's record is deleted.
        • This also makes items.db a convenience instead of a necessity, since items can be added by ID and then immediately renamed.
      • A "Default" item exists in the shop, which cannot be bought or sold, but serves as the base data for any new items you add to the shop. Any tags not supplied when you add an item will be copied from whatever you put into "Default".
      • Basic sanity-checking on input data has been added. Also, adjusting an item's bundle-size will rescale its price automatically.
      • Items can be set to be purchasable but not sellable, or vice versa. (Set either price to -1 to disable that transaction type for that item.)
        • Tags like "canbuy:n" and "nosell" can now be used.
      • An extended in-game help system. "/shop help" lists available commands and help topics. "/shop help <topic>" gives help on a shop command or other shop-related topic listed in the main help.
      • The list of commands displayed is filtered by the user's current permission level.
      • Shortcuts for all commands (except for database reset).
      • All commands except for "/shop buy" and "/shop sell" can be accessed through the Bukkit console. No need to log in to add or update items!
      • Access to the entire shop is now restrictable by permission.
      • Highly informative error messages, to help reveal why your database exploded. (Which really shouldn't happen, but you never know...)
      • The shop DB can now be exported to a .csv file, edited in your favorite spreadsheet, and re-imported back into the database, making large-scale changes easier.
      • NEW: The revenue/cost of transactions can now be transferred to another account. With the basic plugin, this can be an admin's iConomy account, or a dummy "GovernmentBank" account. (Don't use that name, or some bright spark will register that username and exploit you.) With a wrapper plugin, this can be set to link a shop's funds directly to an owning player's iConomy balance.
      • NEW: Transaction logging to a comma-delimited file, ready to import into a spreadsheet for nefarious financial analysis!

    Market Mechanics (open)

    Quick Market Mechanics Description:
    • Instead of a "buy price" and a "sell price", items now have a "base price" and a "sales tax". The "buy price" is based on the base price (adjusted by stock, if set to do so), and the "sell price" is based on (<buy price> - <sales tax%>). So if the sales tax is set to 25, then an item's selling price will be 75% of its purchase price. (The sales tax is entered as a number from 0 to 100, representing 0% to 100% tax.)
      • Using the old "/shop add <id> <buyprice> <sellprice>" format still works - the plugin just calculates the base price and sales tax, so that the buying and selling prices come out right.
    • Shop items have a "stock level", which is not necessarily a literal count of items in stock. By default, the stock level is considered an offset from baseline, rather than an absolute count.
      • Items with stock near zero are considered to be in "average" supply, and will be priced at their base price.
      • Items with a positive stock are considered "in surplus", and will be priced below their base price.
      • Items with a negative stock are considered "understocked", and will be priced above their base price.
      • This interpretation of stock levels can be made to behave like literal counted stock, by setting an item's StockFloor to zero, which prohibits negative stock.
    • Items have a "volatility", which indicates how quickly the price changes based on changes in stock level. It represents the percent increase in an item's price per item purchased, multiplied by 10000. V=1 (the lowest level) means that 100 items would have to be purchased to raise the price by 1%. V=10000 (the highest level) means that 1 item purchased would raise the price by 100% (doubling the price). (More examples in tags.txt)
      • There is also "inverse volatility", which represents the number of items needed to be bought in order to double the buying price (or halve it, if selling). This is more convenient for some people's mindsets, and is converted into volatility when entered.
    • The "sell price" is actually calculated from the buy price at the current stock level + 1, rather than the current stock level. This is to prevent gaining endless money by buying an item (driving the price up) then immediately selling it back (dropping the price) - if <sales tax> = 0, then buying-then-selling like this produces zero net gain/loss (as it should).
    • The tag presets "fixed", "float", "finite", and "flat" allow you to quickly set up common options. If used with the "Default" item before adding items to your shop, this will allow you to set the overall behaviour of the shop easily. See Tag Reference for further details.

    Commands (open)

    Commands:

    <Angle Brackets> denote parameters.
    (Round Brackets) denote optional sections.
    The brackets themselves are not part of the command; they are just used to describe syntax. Brackets should not be typed.
    If executing shop commands through the Bukkit console, leave off the initial slash.

    /shop - Shows the main help page. Lists commands and shortcuts.
    /shop help - Ditto.
    /shop help <topic> - Shows help on the given command or subject.
    /shop help tag <tagName> - Shows help on the given item tag.
    /shop <id>( :<count>) - Shows current buy/sell information on the given item.
    <id> can be an item name or a type number with an optional subtype:
    <id> = <itemName> | <itemID> | <itemID>,<subtypeID> | Default
    If <count> is used, shows the total price for the given number of items/bundles.
    /shop list (<partname>) (<pageNum>) - Lists a page of items in the shop. Default page = 1.
    If <partname> is used, lists only items with <partname> as part of their name.
    /shop buy <id>( :<quantity>) - Purchases an item. Default quantity is 1 bundle.
    /shop sell <id>( :<quantity>) - Sells an item. Default quantity is 1 bundle.
    /shop add <id>( :<bundleSize>) (<buyPrice> (<sellPrice>)) <tagList> - Adds an item to the shop list.
    <buyPrice> and <sellPrice> are accepted for convenience, and are internally converted to BasePrice and SalesTax.
    Unused tags will have their data copied from the Default item.
    Transactions will be in multiples of <bundleSize>. Default quantity is 1 item per bundle (unless overriden with the Default record)
    /shop info <id> - Shows much more detailed information about an item in the shop, such as stock level, volatility, etc.
    /shop update <id>( :<bundleSize>) (<buyPrice> (<sellPrice>)) <tagList> - Edits an item's shop data record.
    Data is first copied from the old record, then tags are applied in order of entry.
    NEW! <id> can be "all", applying changes to all items in the shop list.
    /shop remove <id>- Removes an item from the shop list.
    /shop reload - Reboots the plugin, reloading the configuration file and items.db.
    /shop reset - Deletes and recreates the shop database from scratch. Asks for an extra confirmation before doing so.
    /shop exportdb - Exports the shop database to a .csv file. The name and location are configured in SimpleMarket.settings. (Default: Plugins/DynamicMarket/shopDB.csv)
    /shop importdb - Imports a .csv file into the shop database. Same file location as used by the exportdb command. Note that the previous contents of the database are NOT cleared out before importing, so you may want to do a "/shop reset" before importing. The file's format MUST match the format of the exported file (except for quote marks, which are stripped out on import).

    Tag Reference
    Tag Usage Examples
    Permissions (open)

    Permissions:

    'dynamicmarket.access' : Grants basic access to the root /shop command.
    'dynamicmarket.buy' : Grants purchase rights.
    'dynamicmarket.sell' : Grants selling rights.
    'dynamicmarket.items.add' : Grants the ability to add new items to the shop.
    'dynamicmarket.items.update' : Grants the ability to edit items in the shop.
    'dynamicmarket.items.remove' : Grants the ability to remove items from the shop.
    'dynamicmarket.admin' : Grants the ability to delete-and-rebuild the shop database, and to reboot the plugin.

    Installation/Setup (open)

    Installation/Setup:
    • If you haven't already done so, install Permissions and iConomy, and ensure they work.
    • Copy DynamicMarket.jar into your Plugins/ folder.
    • NEW: Copy items.db into Plugins/DynamicMarket/ (or whichever directory you specify in DynamicMarket.settings) (DynamicMarket will work with other plugins' items.db files, but not all plugins will handle the extra subtype data in the items.db linked below.)
    • NEW: Copy either the SQLite connector or the MySQL connector into your main MineServer/Bukkit folder.
      • Or, if you have a MySQL server running, edit DynamicMarket.settings to specify the MySQL server, login, and password.
    • Edit plugins/Permissions/config.yml, and give everybody the appropriate permissions.
      • Most users would get 'dynamicmarket.access', 'dynamicmarket.buy', and 'dynamicmarket.sell', unless you want to restrict such commands to registered/VIP users.
      • Mods would probably get 'dynamicmarket.items.*'
      • Admins should get 'dynamicmarket.admin', if they don't already have '*'.
    • (Re)Start your MineCraft server. Errors may be thrown to the console, but the file Plugins/DynamicMarket/DynamicMarket.settings should be created.
    • Edit DynamicMarket.settings. Particularly, the setting "database-type".
      • "database-type=sqlite" : Use the SQLite connector. This is the simpler option. No further database access configuration should be needed.
      • "database-type=mysql" : Use the MySQL connector. You will need to set the options "mysql-user", "mysql-pass", and "mysql-db", as well as having a working MySQL server installation set up already.
    • NEW: Log in to MineCraft as someone with 'simpleMarket.admin' permission, or use the Bukkit console. Use "/shop reload" to load the edited config file.
    • Use /shop add to fill the market with tasty blocks at scandalous prices.
      • You WILL want to use "/shop update default" to set up some sensible default values for the items you will be adding, so you don't have to do so much typing for every item. (Or at least inspect the Default entry, to be sure you agree with it.)
      • If you want to make all of the items in the shop use dynamic pricing, set up the parameters in the Default item FIRST, so you don't have to go back and modify 100+ items to support variable pricing.

    DynamicMarket.settings Reference

    Downloads:
    • DynamicMarket 0.4.8.1 (.jar) (.7z) (iConomy 4.1, Permissions 2.5)
    • DynamicMarket 0.4.8 (.jar) (.7z) (iConomy 3.0, Permissions 2.1)
    • DynamicMarket 0.4.6.1 (.jar) (.7z) (iConomy 2.1 / Cookies+iConomy Wrapper)
    • DynamicMarket Source on GitHub
    • items.db <-- Contains subtypes. Put this in /Plugins/DynamicMarket/.
    • SQLite Connector (reccomended) Put this in your MineCraft server/Bukkit root.
    • MySQL Installation Guide (not so easy, probably not recommended for SQL server beginners)
    • Sample shopDB.csv Many (but not all) items, set up for floating-stock+floating-prices. Edit it if you like, then put this in your Plugins/DynamicMarket folder and use /shop importdb to load the items into your shop.
    DynamicMarket Wrapper Plugins:
    • DMWrapper: Restricts shop access to specific regions. Outdated.
    Want to integrate DynamicMarket's shop functions into your own plugin? Read this!
    To Do List(s) (open)


    To Do for v.0.5:
    • Logging of transactions. Done.
      • Global messages to alert to price changes.
    • Item classes: Use Permissions to control access to certain types of items, i.e. make safe items (gravel, stone, iron) available to anyone, but limit traffic in dangerous items (TNT, lava buckets, monster spawners) to VIPs. (For example.)
    • Customizable interface/highlight colours. Done.
    • Clean up the d*** out-of-date comments in the code. (Working on it.)
    To Do before 1.0:
    • Optional auto-transactions triggered by price disparities in raw/processed materials.
    • Possible migration of the new help system to a separate plugin, unless the expanded features needed become available in MCDocs or Bukkit.
    • Migrate config file handler to Yaml.
    • Random fluctuations of stock levels (would make the market more lively on a low-population server)
    • Stock levels drift back to rolling averages (smoothes out short-term price spikes, allows for long-term price drifting)

    Recent Changes:

    0.4.8.1:
    • Migrated to Permissions 2.5, iConomy 4.1.
    0.4.8:
    • shopLabel moved from a table name suffix to a table field.
    • Using "all" as the item name now applies the given tags to all items with the current shopLabel.
    • Altering an item's bundleSize now changes its stock level, as well as its basePrice.
      • New stock level is rounded down, to stave off future item duplication issues.
    • Sanity-check behaviour changed to make database queries more efficient and fend off future exploits:
      • stockHighest/stockLowest set to stock if lower/higher than stock.
      • stockCeil/stockFloor is set to stockFloor if lower/higher than stock.
      • priceCeil is raised to priceFloor if priceCeil<priceFloor.
        • Previous behaviours: Swap if order wrong, range-crop stock if outside highest/lowest/floor/ceil.
    • Fixed bug: Adding items without specifying count did not import count from default record.
    0.4.7:
    • Upgraded to iConomy 3.0.
    0.4.6.1:
    • Rolled back iConomy calls to 2.x style, to be compatible with Cookies' iConomy wrapper.
    0.4.6:
    • Support for transaction funds to be backed by an iConomy account.
      • Account link parameters added to wrapper-call messages.
    • Wrapper calls streamlined.
    • Added basic transaction logging.
    0.4.5:
    • Volatility can now go as low as 0.
      • In this way, stock can still be counted without affecting price.
    • CSV import/export now uses +INF / -INF as shorthand for min/max values in applicable fields.
    • Message colours now customizable in DynamicMarket.settings.
    • Expanded help on tags/presets.
    • Changed "fixed" tag, splitting its function with "flat".
    • Added tag presets "flat" and "finite".
    • Updated tag "renorm" to accept an optional new stock level other than 0.
    Full Changelog

    Credits:
    • Nijikokun: SimpleShop v.1.1, on which this was based. (And for Permissions and iConomy, on which this relies.)
    • AtomicAcidBath: Assistance with tracking down a hard-to-see MySQL syntax error.
     
    SoapFlakes and Mahngiel like this.
  2. Offline

    Magik

    maybe it's an issue of doing a large transaction before it's hit the price floor - that causes it to go under the price floor during the batch transaction?

    edit: yes confirmed - I can make your situation present itself by making a multiple bundle transaction large enough to cause it cross the price floor during the transaction, once the price is above the price floor. But once the price is at the price floor at the start of the transaction, it correctly does not violate the price floor.

    Can you give me any more info on when you get the SQL errors in my version? You said a freshly-importedDB - so I imagine you aren't getting SQL errors before you do the /shop importDB ? but you say you get them "when reading the DB" - do you mean using an external program to read the db while minecraft is running? or do you mean doing something like a /shop list ?
     
  3. Offline

    Eckhart

    @Magik

    Yup, that's what I figured may be happening, some form of ignoring the price floor. That would make sense as to why they correctly output at 1800 after the first large transaction.

    It occurs when using /shop list. I can import a csv fine, it creates and enlarges the db, but upon listing it kicks that error out. Using the same .csv as I posted earlier.
     
  4. Offline

    Magik

    odd... judging by your error I am assuming you are using sqlite....

    what do you start your minecraft server with - what parameters?

    when you have the DB issue - is there a shop.db.journal file in the plugins/DynamicMarket directory?

    I've fixed the price floor bug in my latest revision ( note there are still some slight discrepancies due to rounding - i.e. because internally it uses a floating point representation of stock prices, when doing a batch buy/sell, it uses the non-rounded values to calculate the total, then it rounds at the end - so while it may look at each stock level to be a sale price of 75 or 76, it really could have a decimal behind it hidden - and when adding 75 + 76, sometimes you get 152 instead of what you think should be 151 ).

    latest build here: https://github.com/downloads/magik/DynamicMarket/DynamicMarket.0.4.8.magik.9.jar

    I would love to solve your database issues, but I can't replicate it on my end.....
     
  5. Offline

    Eckhart

    @Magik

    Yes, using SQLite - there's one in the /plugins/dynamicmarket directory, and one in the base CB directory for iConomy.

    I'm running CB #506 with Permissions 2.5.4, iConomy 4.4.6, Cookiemonster v0.2, mcMMO .0.8.16, Minecart Mania suite 1.03, and LoginMessage v0.5_4. All are the latest versions, no observable plugin conflicts.

    Server is run on MineOS on a ramdisk config, and the server's set to run with 1.5GB of memory.

    I get the same issue with your most recent build, .9, as observed below. This time I deleted all DM info and used your plugin version to generate the config and starting files/DB. Then restarted the server, and did the following via CLI.

    Code:
    18:40:14 [INFO] [DynamicMarket] iConomy connected.
    18:40:14 [INFO] [DynamicMarket] Successfully linked with Permissions.
    18:40:14 [INFO] [DynamicMarket] version [0.4.8.magik.9] (Jeanine-2) enabled
    18:40:14 [INFO] Done (0.189s)! For help, type "help" or "?"
    >shop list
    18:40:20 [INFO] ?[?Shop?]? ?No items are set up in the shop yet...
    >shop importdb
    18:40:22 [INFO] ? Database import from ?shopDB.csv? successful.
    >shop list
    18:40:25 [SEVERE] [DynamicMarket]: Error executing query statement [[email protected]] with sqlite: java.sql.SQLException: SQL logic error or missing database
    18:40:25 [SEVERE] [DynamicMarket]: Error executing query statement [[email protected]] with sqlite: java.sql.SQLException: SQL logic error or missing database
    18:40:25 [INFO] ?[?Shop?]? ?No items are set up in the shop yet...
    
    If you want any further information, let me know, always willing to help in any capacity.

    Edit: And, no, there is no .db-journal file present when these errors occur.
     
  6. Offline

    Magik

    meh... still can't replicate it... I'm also worried how quickly your importDB is happening - it shows as 2 seconds in your logs... while on my computer it takes more like 15-20 seconds, with lots of disk access - and lots of shop.db-journal files being created and deleted almost immediately.... ( maybe it's ramdisk speeds? )

    I even tried going back to your craftbukkit version...

    but none of that should matter - this is a DynamicMarket + SQLite problem....
     
  7. Offline

    Eckhart

    It's probably the ramdisk speeds on the importdb, because it takes the same amount of time to do the import on the earlier 0.4.8.8 release. Something must be different between your and that code regarding SQLite interaction that's causing the difference in working on my setup here, though I've no idea how to narrow it down.

    Is it possible to create a debug-type version of your release so that I can supply some more detailed errors for you?
     
  8. Offline

    Magik

    https://github.com/downloads/magik/DynamicMarket/DynamicMarket.0.4.8.magik.11.jar

    can you try that one? I made it print out a bit more info when it hits that error you received.

    Try it with deleting your shop.db, and can you please post to pastie.com the entire server boot log?
     
  9. Offline

    Eckhart

    Here you go. I deleted my old dynamicmarket.jar and replaced it with the one provided, emptied the dynamicmarket folder except for the .csv file. This is first run, with the commands in order;
    shop list
    shop importdb
    shop list

    The second list is what kicks out the massive error block.

    http://pastie.org/1657914
     
  10. Offline

    Penorzilla

    I am using SQLite and followed your directions. Maybe it is because I am using a newer build of craftbukkit that you don't have listed but here is my error on start up. It seems like it is two errors. I have my database type set to sqlite. I do believe iConomy uses the same connector though... so maybe that is why the database is locking?

    Anyways here is my error I get. I am using the recc'd build 531 because it fixed the double logout error which locked up your server.

    I put the connector in my root directory. Put the items.db in the plugins/dynamicmarket/ folder and the plugin in the plugins/ folder. I can see why the bottom half of the error is shooting out, probably because I'm using version 531. But the first part seems like it is having problems creating the required tables.

    Code:
    19:18:29 [INFO] [DynamicMarket] Creating database.
    19:18:32 [SEVERE] [DynamicMarket]: Error executing statement [CREATE TABLE Marke
    t ( id INTEGER PRIMARY KEY AUTOINCREMENT, item INT NOT NULL, subtype INT NOT NUL
    L, name TEXT NOT NULL, count INT NOT NULL, baseprice INT NOT NULL, canbuy INT NO
    T NULL, cansell INT NOT NULL, stock INT NOT NULL, volatility INT NOT NULL, sales
    tax INT NOT NULL, stockhighest INT NOT NULL, stocklowest INT NOT NULL, stockfloo
    r INT NOT NULL, stockceil INT NOT NULL, pricefloor INT NOT NULL, priceceil INT N
    OT NULL, jitterperc INT NOT NULL, driftout INT NOT NULL, driftin INT NOT NULL, a
    vgstock INT NOT NULL, class INT NOT NULL, shoplabel TEXT NOT NULL DEFAULT '');CR
    EATE INDEX itemIndex ON Market (item);CREATE INDEX subtypeIndex ON Market (subty
    pe);CREATE INDEX nameIndex ON Market (name);CREATE INDEX shoplabelIndex ON Marke
    t (shoplabel)] with sqlite: java.sql.SQLException: database is locked
    19:18:32 [SEVERE] null loading DynamicMarket v0.4.8.1 (Is it up to date?)
    java.lang.NullPointerException
            at com.gmail.haloinverse.DynamicMarket.MarketItem.<init>(MarketItem.java
    :96)
            at com.gmail.haloinverse.DynamicMarket.DatabaseMarket.createTable(Databa
    seMarket.java:57)
            at com.gmail.haloinverse.DynamicMarket.DatabaseCore.initialize(DatabaseC
    ore.java:34)
            at com.gmail.haloinverse.DynamicMarket.DatabaseCore.initialize(DatabaseC
    ore.java:28)
            at com.gmail.haloinverse.DynamicMarket.DatabaseCore.<init>(DatabaseCore.
    java:23)
            at com.gmail.haloinverse.DynamicMarket.DatabaseMarket.<init>(DatabaseMar
    ket.java:20)
            at com.gmail.haloinverse.DynamicMarket.DynamicMarket.setup(DynamicMarket
    .java:171)
            at com.gmail.haloinverse.DynamicMarket.DynamicMarket.onEnable(DynamicMar
    ket.java:105)
            at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
            at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader
    .java:451)
            at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage
    r.java:217)
            at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:83)
            at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
            at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
            at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
            at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
            at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
            at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    
     
  11. Offline

    Eckhart

  12. Offline

    Magik

    @Eckhart

    can you try that again with this jar? I made a slight error in that debug output

    https://github.com/downloads/magik/DynamicMarket/DynamicMarket.0.4.8.magik.12.jar

    and after the importDB - does the shop.db actually have content in it? I think you said that earlier, correct me if I'm wrong

    could you upload your shop.db after you get that error?
    [MERGETIME="1299812889"][/MERGETIME]

    anyone out there using this plugin have issues with my compile? I'd love to talk to you to figure it out - please contact me on irc.esper.net - my nick is magik
     
  13. Offline

    Skadar

    Just want to report that I am seeing the exact same problem as Eckhart.
     

    Attached Files:

  14. Offline

    Andreas Brisner

    I need betatesters for 0.5.beta1(Temporary version-number).(Honestly I had no idea what version to give it, so.. yeah :p)

    THIS IS A DEVELOPMENT BUILD!!(so dont run to download it if your not up for betatesting.. )
    (Also, make sure to backup your db's before you start :p iConomy + DM)

    This version introduces decimals to DynamicMarket. (Shop prices can be for example 15.50)
    Download-> http://brisner.no/DynamicMarket/0.5.beta1/DynamicMarket.jar

    Any errors please mail them to me at andreas [at] brisner.no , and be sure to include:
    cb version
    OS
    iConomy version
    Stacktrace/errors from console if any
    A _good_ explanation of what you did when it happened.. "ITS NOT WORKING!!!!" is NOT an explanation.
     
  15. Offline

    mike smith

    Thanks for trying to help but yours comes across riddled with many errors on the log. Andreas started up very smoothly and worked all great except for the fact that when server was restarted, database was empty. :( here is the log from loading yours in a bare server, importing database, then trying to sell torches.

    Code:
    2011-03-11 01:19:41 [INFO] Starting minecraft server version Beta 1.3
    2011-03-11 01:19:41 [WARNING] **** NOT ENOUGH RAM!
    2011-03-11 01:19:41 [WARNING] To start the server with more ram, launch it as "java -Xmx1024M -Xms1024M -jar minecraft_server.jar"
    2011-03-11 01:19:41 [INFO] Loading properties
    2011-03-11 01:19:41 [INFO] Starting Minecraft server on *:25565
    2011-03-11 01:19:41 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-493-g8b5496e-b493jnks (MC: 1.3)
    2011-03-11 01:19:41 [INFO] Preparing level "world"
    2011-03-11 01:19:41 [INFO] Preparing start region
    2011-03-11 01:19:41 [INFO] [Permissions] version [2.5.4] (Phoenix) was Initialized.
    2011-03-11 01:19:41 [SEVERE] [DynamicMarket]: Database connector not found for sqlite: java.lang.ClassNotFoundException: org.sqlite.JDBC
    2011-03-11 01:19:41 [INFO] [DynamicMarket] Creating database.
    2011-03-11 01:19:41 [SEVERE] [DynamicMarket]: Database connector not found for sqlite: java.lang.ClassNotFoundException: org.sqlite.JDBC
    2011-03-11 01:19:41 [SEVERE] [DynamicMarket]: Database connector not found for sqlite: java.lang.ClassNotFoundException: org.sqlite.JDBC
    2011-03-11 01:19:41 [SEVERE] [DynamicMarket] Database creation *failed*.
    2011-03-11 01:19:41 [SEVERE] [DynamicMarket]: Database connector not found for sqlite: java.lang.ClassNotFoundException: org.sqlite.JDBC
    2011-03-11 01:19:41 [INFO] [DynamicMarket] version [0.4.8.magik.12] (Shaniqua) enabled
    2011-03-11 01:19:41 [INFO] [iConomy] Logging is currently disabled.
    2011-03-11 01:19:41 [INFO] [iConomy] v4.4 (Arcadia) loaded.
    2011-03-11 01:19:41 [INFO] [iConomy] Developed by: [Nijikokun, Coelho]
    2011-03-11 01:19:41 [INFO] [DynamicMarket] iConomy connected.
    2011-03-11 01:19:41 [INFO] [Permissions] version [2.5.4] (Phoenix)  loaded
    2011-03-11 01:19:41 [INFO] [DynamicMarket] Successfully linked with Permissions.
    2011-03-11 01:19:41 [INFO] [iConomy] Successfully linked with Permissions.
    2011-03-11 01:19:41 [INFO] Done (0.075s)! For help, type "help" or "?"
    2011-03-11 01:19:52 [INFO] 143 recipes
    2011-03-11 01:19:52 [INFO] mike559 [/99.60.171.85:51852] logged in with entity id 118
    2011-03-11 01:19:57 [INFO] Loaded world: world
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item = ? AND subtype = ? AND shoplabel = ?) LIMIT 1] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [INSERT INTO Market (item, subtype, count, name, baseprice, stock, canbuy, cansell, volatility, salestax, stocklowest, stockhighest, stockfloor, stockceil, pricefloor, priceceil, class, jitterperc, driftin, driftout, avgstock, shoplabel) VALUES (?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,?,0,0,0,0,0,?)] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:03 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item >= 0 AND shoplabel = ?) ORDER BY item ASC, subtype ASC LIMIT ?, ?] for sqlite: java.sql.SQLException: no such table: Market
    2011-03-11 01:20:27 [SEVERE] [DynamicMarket]: Error preparing query statement [SELECT * FROM Market WHERE (item >= 0 AND shoplabel = ?) ORDER BY item ASC, subtype ASC LIMIT ?, ?] for sqlite: java.sql.SQLException: no such table: Market
    
     
  16. Offline

    mudzereli

    I think dynamic market is still looking for the sqlite JDBC connector in the /DynamicMarket folder, where all of the other data is now stored in the /DynamicMarket.0.4.8.magik.9 folder by default. Try moving the sqlitejdbc-v056.jar file into a folder named /DynamicMarket and see if that fixes it.
     
  17. Offline

    Andreas Brisner

    Sounds like a big bug to me..

    @Magik Maybe make it use the correct folder again? :)

    @The rest of you
    Anyone trying the new version that supports decimals?
     
  18. Offline

    mudzereli

    After another test, it seems to name the directory after the jar. So you can workaround this issue even easier (also without having to move your existing data) by just renaming the plugin to DynamicMarket.jar.
     
  19. Offline

    KizuOrama

    I haven't had an error on the beta test one, yet, I've tried the /shop add, and used a diamond, it said it was already in the shop, so I went and sold a stack to the cobble and that worked perfectly fine. I haven't tried other commands out that much for it, I know the /shop help work's, and so does the /shop help add.
     
  20. Offline

    Andreas Brisner

    Let me know if you find anything, yea?
     
  21. Offline

    Magik

    yeah, I was assuming you guys were gonna rename the .jar file - the way bukkit is set up, it provides the plugin with the name of the jar, so that's the folder that it creates....
     
  22. Offline

    mike smith

    I should ahve known that.. my bad. All set and heres what i get on fresh server and plugin install when i do a shop list

    Code:
    2011-03-11 19:20:12 [INFO] Starting minecraft server version Beta 1.3
    2011-03-11 19:20:12 [WARNING] **** NOT ENOUGH RAM!
    2011-03-11 19:20:12 [WARNING] To start the server with more ram, launch it as "java -Xmx1024M -Xms1024M -jar minecraft_server.jar"
    2011-03-11 19:20:12 [INFO] Loading properties
    2011-03-11 19:20:12 [INFO] Starting Minecraft server on *:25565
    2011-03-11 19:20:12 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-493-g8b5496e-b493jnks (MC: 1.3)
    2011-03-11 19:20:12 [INFO] Preparing level "world"
    2011-03-11 19:20:12 [INFO] Preparing start region
    2011-03-11 19:20:13 [INFO] [Permissions] version [2.5.4] (Phoenix) was Initialized.
    2011-03-11 19:20:13 [INFO] [DynamicMarket] version [0.4.8.magik.12] (Shaniqua) enabled
    2011-03-11 19:20:13 [INFO] [iConomy] Logging is currently disabled.
    2011-03-11 19:20:13 [INFO] [iConomy] v4.4 (Arcadia) loaded.
    2011-03-11 19:20:13 [INFO] [iConomy] Developed by: [Nijikokun, Coelho]
    2011-03-11 19:20:13 [INFO] [DynamicMarket] iConomy connected.
    2011-03-11 19:20:13 [INFO] [Permissions] version [2.5.4] (Phoenix)  loaded
    2011-03-11 19:20:13 [INFO] [DynamicMarket] Successfully linked with Permissions.
    2011-03-11 19:20:13 [INFO] [iConomy] Successfully linked with Permissions.
    2011-03-11 19:20:13 [INFO] Done (0.076s)! For help, type "help" or "?"
    2011-03-11 19:20:21 [SEVERE] [DynamicMarket]: Error executing query statement [[email protected]] with sqlite: java.sql.SQLException: SQL logic error or missing database
    2011-03-11 19:20:21 [SEVERE] java.sql.SQLException: SQL logic error or missing database
    2011-03-11 19:20:21 [SEVERE]     at org.sqlite.DB.throwex(DB.java:288)
    2011-03-11 19:20:21 [SEVERE]     at org.sqlite.DB.exec(DB.java:68)
    2011-03-11 19:20:21 [SEVERE]     at org.sqlite.Conn.commit(Conn.java:172)
    2011-03-11 19:20:21 [SEVERE]     at com.gmail.haloinverse.DynamicMarket.SQLHandler.executeQuery(SQLHandler.java:126)
    2011-03-11 19:20:21 [SEVERE]     at com.gmail.haloinverse.DynamicMarket.DatabaseMarket.list(DatabaseMarket.java:244)
    2011-03-11 19:20:21 [SEVERE]     at com.gmail.haloinverse.DynamicMarket.iListen.parseCommand(iListen.java:967)
    2011-03-11 19:20:21 [SEVERE]     at com.gmail.haloinverse.DynamicMarket.DynamicMarket.onCommand(DynamicMarket.java:167)
    2011-03-11 19:20:21 [SEVERE]     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:31)
    2011-03-11 19:20:21 [SEVERE]     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
    2011-03-11 19:20:21 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:183)
    2011-03-11 19:20:21 [SEVERE]     at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:381)
    2011-03-11 19:20:21 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:366)
    2011-03-11 19:20:21 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    2011-03-11 19:20:21 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    2011-03-11 19:20:21 [WARNING] Unexpected exception while parsing console command
    org.bukkit.command.CommandException: Unhandled exception executing command 'shop' in plugin DynamicMarket v0.4.8.magik.12
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:33)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:183)
        at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:381)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:366)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.AbstractMethodError: org.sqlite.PrepStmt.isClosed()Z
        at com.gmail.haloinverse.DynamicMarket.SQLHandler.executeQuery(SQLHandler.java:133)
        at com.gmail.haloinverse.DynamicMarket.DatabaseMarket.list(DatabaseMarket.java:244)
        at com.gmail.haloinverse.DynamicMarket.iListen.parseCommand(iListen.java:967)
        at com.gmail.haloinverse.DynamicMarket.DynamicMarket.onCommand(DynamicMarket.java:167)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:31)
        ... 6 more
    
    [MERGETIME="1299900334"][/MERGETIME]
    This one works for me flawless including the decimal system but still, database will erase on server restart.
    [MERGETIME="1299900489"][/MERGETIME]
    BTW, i dont work tomorrow so ill be up all night. Ill leave my irc on, on on the esper server you two use. PM me, mike559 and ill be glad to try new builds of this plugin for you and we can make it solid.
     
  23. Offline

    dumptruckman

    I'm gonna be honest. Your volatility formulas aren't even close to equaling what you say they should. I guess I'm just gonna have to switch to a static shop because trying to set this one up correctly is ridiculous.
    [MERGETIME="1299952337"][/MERGETIME]
    Oh, here's the formulas.. I guess I just never thought that it was a price increase based on the current price. Suppose it could work either way.

    Maximum buy price (when stock = stockFloor): basePrice * (1+(volatility/10000))^(-stockFloor)
    Minimum buy price (when stock = stockCeil): basePrice * (1 / (1+(volatility/10000))^(stockCeil))
     
  24. Offline

    dslip

    Would anyone like to share their 'evolved' shopsDB.csv file with the rest of us, perhaps one with a more complete item list, and also a bit of customization to the floors / ceilings etc ?
     
  25. Offline

    Sparx

    May I suggest adding an option to give discounts to user groups? I would like to give half price to my VIPs and mods :)
     
  26. Offline

    mike smith

    Why even use DM then? That will throw the market off pretty bad is some cases.
     
  27. Offline

    Magik

  28. Offline

    mike smith

    Didnt even try testing in game. server started well and everything loaded. Got an error running /shop importdb. Heres the log.
    Code:
    2011-03-12 22:55:21 [INFO] Starting minecraft server version Beta 1.3
    2011-03-12 22:55:21 [WARNING] **** NOT ENOUGH RAM!
    2011-03-12 22:55:21 [WARNING] To start the server with more ram, launch it as "java -Xmx1024M -Xms1024M -jar minecraft_server.jar"
    2011-03-12 22:55:21 [INFO] Loading properties
    2011-03-12 22:55:21 [INFO] Starting Minecraft server on *:25565
    2011-03-12 22:55:21 [INFO] This server is running Craftbukkit version git-Bukkit-0.0.0-493-g8b5496e-b493jnks (MC: 1.3)
    2011-03-12 22:55:21 [INFO] Preparing level "world"
    2011-03-12 22:55:21 [INFO] Preparing start region
    2011-03-12 22:55:21 [INFO] [Permissions] version [2.5.4] (Phoenix) was Initialized.
    2011-03-12 22:55:22 [INFO] [DynamicMarket] version [0.4.8.magik.13] (Shaniqua) enabled
    2011-03-12 22:55:22 [INFO] [iConomy] Logging is currently disabled.
    2011-03-12 22:55:22 [INFO] [iConomy] v4.4 (Arcadia) loaded.
    2011-03-12 22:55:22 [INFO] [iConomy] Developed by: [Nijikokun, Coelho]
    2011-03-12 22:55:22 [INFO] [DynamicMarket] iConomy connected.
    2011-03-12 22:55:22 [INFO] [Permissions] version [2.5.4] (Phoenix)  loaded
    2011-03-12 22:55:22 [INFO] [DynamicMarket] Successfully linked with Permissions.
    2011-03-12 22:55:22 [INFO] [iConomy] Successfully linked with Permissions.
    2011-03-12 22:55:22 [INFO] Done (0.082s)! For help, type "help" or "?"
    2011-03-12 22:55:29 [SEVERE] [DynamicMarket]: Error executing query statement [[email protected]] with sqlite: java.sql.SQLException: SQL logic error or missing database
    2011-03-12 22:55:29 [SEVERE] java.sql.SQLException: SQL logic error or missing database
    2011-03-12 22:55:29 [SEVERE]     at org.sqlite.DB.throwex(DB.java:288)
    2011-03-12 22:55:29 [SEVERE]     at org.sqlite.DB.exec(DB.java:68)
    2011-03-12 22:55:29 [SEVERE]     at org.sqlite.Conn.commit(Conn.java:172)
    2011-03-12 22:55:29 [SEVERE]     at com.gmail.haloinverse.DynamicMarket.SQLHandler.executeQuery(SQLHandler.java:128)
    2011-03-12 22:55:29 [SEVERE]     at com.gmail.haloinverse.DynamicMarket.DatabaseMarket.hasRecord(DatabaseMarket.java:334)
    2011-03-12 22:55:29 [SEVERE]     at com.gmail.haloinverse.DynamicMarket.DatabaseMarket.inhaleFromCSV(DatabaseMarket.java:622)
    2011-03-12 22:55:29 [SEVERE]     at com.gmail.haloinverse.DynamicMarket.iListen.parseCommand(iListen.java:908)
    2011-03-12 22:55:29 [SEVERE]     at com.gmail.haloinverse.DynamicMarket.DynamicMarket.onCommand(DynamicMarket.java:182)
    2011-03-12 22:55:29 [SEVERE]     at org.bukkit.command.PluginCommand.execute(PluginCommand.java:31)
    2011-03-12 22:55:29 [SEVERE]     at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
    2011-03-12 22:55:29 [SEVERE]     at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:183)
    2011-03-12 22:55:29 [SEVERE]     at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:381)
    2011-03-12 22:55:29 [SEVERE]     at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:366)
    2011-03-12 22:55:29 [SEVERE]     at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
    2011-03-12 22:55:29 [SEVERE]     at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    2011-03-12 22:55:29 [WARNING] Unexpected exception while parsing console command
    org.bukkit.command.CommandException: Unhandled exception executing command 'shop' in plugin DynamicMarket v0.4.8.magik.13
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:33)
        at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:80)
        at org.bukkit.craftbukkit.CraftServer.dispatchCommand(CraftServer.java:183)
        at net.minecraft.server.MinecraftServer.b(MinecraftServer.java:381)
        at net.minecraft.server.MinecraftServer.h(MinecraftServer.java:366)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:272)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    Caused by: java.lang.AbstractMethodError: org.sqlite.PrepStmt.isClosed()Z
        at com.gmail.haloinverse.DynamicMarket.SQLHandler.executeQuery(SQLHandler.java:135)
        at com.gmail.haloinverse.DynamicMarket.DatabaseMarket.hasRecord(DatabaseMarket.java:334)
        at com.gmail.haloinverse.DynamicMarket.DatabaseMarket.inhaleFromCSV(DatabaseMarket.java:622)
        at com.gmail.haloinverse.DynamicMarket.iListen.parseCommand(iListen.java:908)
        at com.gmail.haloinverse.DynamicMarket.DynamicMarket.onCommand(DynamicMarket.java:182)
        at org.bukkit.command.PluginCommand.execute(PluginCommand.java:31)
        ... 6 more
    2011-03-12 22:55:51 [INFO] CONSOLE: Stopping the server..
    2011-03-12 22:55:51 [INFO] Stopping server
    2011-03-12 22:55:51 [INFO] [DynamicMarket] version [0.4.8.magik.13] (Shaniqua) disabled
    2011-03-12 22:55:51 [INFO] [iConomy] All un-saved account data has been saved, plugin is now disabling.
    2011-03-12 22:55:51 [INFO] [Permissions] version [2.5.4] (Phoenix) disabled successfully.
    2011-03-12 22:55:51 [INFO] Saving chunks
    
    [MERGETIME="1299999438"][/MERGETIME]
    there ya go
     
  29. Offline

    Andreas Brisner

    You can never assume that a user will understand that :p Most of them will assume its the correct name for the .jar :)
     
  30. Offline

    unv_annihlator

    @Magik

    I am getting the following error, and it is not letting me do any commands because it is saying that I do not have permissions, however I am an admin and have all permissions given.

    Code:
    2011-03-13 03:16:46 [SEVERE] null loading DynamicMarket v0.4.8.magik.12 (Is it up to date?)
    java.lang.NullPointerException
    at com.gmail.haloinverse.DynamicMarket.DynamicMarket.onEnable(DynamicMarket.java:89)
    at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:118)
    at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:414)
    at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:187)
    at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:83)
    at org.bukkit.craftbukkit.CraftServer.loadPlugins(CraftServer.java:61)
    at net.minecraft.server.MinecraftServer.e(MinecraftServer.java:204)
    at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:191)
    at net.minecraft.server.MinecraftServer.d(MinecraftServer.java:131)
    at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:246)
    at net.minecraft.server.ThreadServerApplication.run(SourceFile:366)
    EDIT: Name was changed with same results.
     
  31. Offline

    Andreas Brisner

    New beta version! http://www.brisner.no/DynamicMarket/0.5.beta2/DynamicMarket.jar

    Info:
    This is the version that supports decimals :)

    Changes:
    I hope this fixes the database resetting. There was some connections that never was closed in the earlier version

    For those that had problems with db resetting before, please do test this and report back :)
     

Share This Page