Inactive [ECON] BetterShop 2.0 - A 'Better' Server-wide Shop - Spout compatible :) [1240]

Discussion in 'Inactive/Unsupported Plugins' started by jascotty2, Jul 6, 2011.

  1. Offline

    jascotty2

    BetterShop - The "better" global command-based shop
    Version: 2.0
    Download: (static jar) BetterShop.jar
    download page with older versions


    BetterShop is now primarily on BukkitDev

    (you can still come this forum for some help, though)


    this plugin (original concept) was first made by jjfs85 here
    however, he stopped development (that i know of) once i started

    Features:
    plugin support
    for economy, currently dependent on one of:
    Permissions support

    Help support

    configurable
    Fully configurable colors and message text in config.yml file
    shoplist can have text alignment (read config for more info): <item> <l(eft-aligned)> <buy and sell info>
    - uses minecraft font character spacing, so is very close to perfectly aligned in chat
    shoplist can optionally not show listing tail (or head, but recommended to leave <page> of <pages>)
    Items can be colored in the new itemsdb.yml file
    also in itemsdb.yml: kits!
    - define your own kits that the shop can sell
    - three examples provided, edit and add to your liking
    Configurable Options:
    -max pagesize when printing shoplist
    -whether to broadcast all transactions publicly
    -name of the pricelist file/table
    -customsort: a custom sorting order, so you can have items at the top of the shop list
    -allowbuyillegal: if someone without BetterShop.admin.illegal can buy illegal items
    -whether maxstack should be honored
    -if used tools can be bought back
    -default color for items
    - and more!

    shop flexibility
    shopcheck will run a name comparison check, and return all matching items
    Item sub-type support for dye colors, cloth colors, etc: magentacloth = 35:2 = cloth:magenta
    "all" is a valid amount when buying or selling: "/sell cobblestone all" or "/sell all cobblestone"
    damaged tools can be resold for an adjusted value of sellprice*(1-(damage/maxdamage))
    buystack can be given multiple items, or number of stacks: "/buystack wool 5" or "/buystack wool blackdye reddye"
    shopsellall can be given multiple items (/sell all cobble gravel flint dirt)
    plural-insensitive items: if not found, will check if plural & remove "s"
    not just items can be bought anymore: can now buy LivingEntities, like dogs (wolf)
    signs can be used for buying & selling
    - first line: [BetterShop] (not case-sensitive)
    - second line: action: buy [amt], buyall, buystack, sell [amt], sellall, sellstack
    - third line: item (name, id, etc)
    - fourth line: unused (was going to make price, but decided on pricecheck instead)
    - to activate, someone with BetterShop.admin.makesign must left-click the sign.. the first line will change color when active
    - left-click for price check (or activate), right-click to buy/sell
    - if a unauthorized player destroys a block a sign is on, is canceled
    item categories
    - can search for items by category (in shoplist)
    players using Spout (if installed & enabled) can use a GUI Menu for buying & selling
    - default button is 'b'
    - displays items in shop in top half
    - item detail below with # in stock, buy/sell price, & buttons to buy & sell
    - amount to buy/sell can be set in text box or with up/down buttons

    administration
    Every item and subtype can be priced differently
    Disable buying or selling of an item by giving it a price of -1 (0 makes it free)
    command aliases to stop carpal tunnel
    many commands have sub-aliases.. eg. shoplist kits will run shoplistkits
    MySQL pricelist support
    MySQL pricelist can be cached for a given timespan (decreases table selects) (flatfile is cached until manually updated)
    Transaction records (MySQL or flatfile as .csv)
    Downloads mysql-bin.jar dependency automatically
    buy/sell cap in program set to 999,999,999 (not that you'd be using that much, but the cap is to prevent other errors)
    if encounters errors while editing a player's account, will attempt to reload iConomy (i've had issuses with it before)(may remove in a future update.. seems to work better now)
    can backup the current pricelist: /shop backup
    can restore from backup: /shop restore <file>
    can import new prices in a batch from a csv (or old yml format) : /shop import <file>
    on start, can check the download page to see if there is an update available
    shop can be given a finite stock from which to buy & sell
    /shop ver[sion] to check the current version & see if there's an update
    /shop update to manually download & install the most recent version
    MinecraftIM support: forward errors or all messages
    checks for missing & unused configuration nodes
    strings have default values if missing
    auto error reporting added (can be disabled)
    custom message you can send with the error report
    help main page integration can be disabled
    global shop can be disabled & only allow signs to be used
    can use permissions to define discounts for certain users
    - uses nodes in "BetterShop.discount.xxxx"​
    - nodes defined in config under discountGroups​
    - ex: discountGroups:​
    VIP: 10 # gives 10% discount to players with BetterShop.discount.VIP​

    Version 2.0 - 9/24/11
    near-complete rewrite
    - more modular, should be easier to add new features
    added region-based shop support
    - just main shop for now
    - config modes:
    - - shop.commandShop: global
    - - - regions are areas where command-based shop access is disabled
    - - shop.commandShop: regions
    - - - globally disabled, except for within regions
    - - shop.commandShop: both
    - - - allows command-based shop access from anywhere
    - - shop.commandShop: none
    - - - cannot use commands (or spout) to use the shop
    - regions are defined by first selecting a region in worldguard
    - - after regions have been defined, can put the WorldEdit.jar in the lib folder
    now checks from 2 mirrors (still on git)
    - not really needed, but the code behind it looks cleaner
    finally adopted some license to support open development.
    - now the source is licenced under the GNU General Public License
    - http://www.gnu.org/licenses/gpl.txt
    added pages menu option (default) so spout scrolling goes by page, not column
    added a fix for a spout button error
    fixed a spout error where may show amount stock can sell, not buy
    added category switching (spout)
    - can use 'cycle' for a button to cycle through the categories (shows more per-page)
    - or use 'tabbed' for buttons at the top that can be selected
    chest shop interface added :D
    - to define a chest, point at the chest & type "/shop chest define"
    - automatically detects double-chests
    - multiple users can use the same chest shop
    - - each user gets a customized chest screen
    - - items in the display show either max stack, or max of that item the user can afford
    - setting for "chestSellBar", which allows selling to a chest which is full (without buying anything)
    tnt explosion cancelation settings for sign/chest shop added
    - should be more efficient than prior method
    commandlog format moved in config & added more formatting options
    updated Register methods (fixes iCo6 errors)
    added a rudimentary spell check routine
    - if an item name doesn't match at first, and there is 1 match for closeness, returns that item
    sign shop handling rewrote
    - should be more efficient
    - can now define custom prices for transactions
    - - 4th line contains cost, doen't have to just be a number
    - - - "1.23", "$1.23", "1.23 Dollars", "$1.23 total" are all acceptable
    - - for a given amount, define the total cost
    - - if using "sellall" or "buyall", define unit cost
    categories have been implemented in buy & sell
    - can sell all items in a category, or buy an amount of each item in a category
    - ex. "/sellall food"
    sign & chest shops are protected from endermenv (if shop.(sign & chest)DestroyProtection = true)
    sql routines updated for foreign locales

    Full changelog can be found in the readme on git

    Support development!
    if you really like this & don't want to see it go by the wayside, [​IMG]
    (i make no money maintaining plugins)
    if you can't donate, at least a "like" would help ;)
     
  2. Offline

    e_zach

    i get these errors as well when shutting down the server. it complains that it is unable to commit the transaction logs, so i basically ignore this as they don't matter much to me or the server. #953 and 1.6.6 not a major issue, but it would be nice if it were fixed. i can post a severe log msg if you'd like....
     
  3. Offline

    alfw

    anyone have a good price list they want the share?
     
  4. Offline

    leMi

    Look at my reply on page 1.
     
  5. How do I set up the cloth colours/wood types in the csv file? Putting 35:2 as the id causes an error
     
  6. Offline

    jascotty2

    the csv file has two different fields for id & data
    so you can input
    Code:
    35,2,[buy],[sell]
     
  7. Ohh thanks, I didn't notice, your plugin is epic btw :D
     
  8. Offline

    staticfactory

    I am also receiving the "SQL Commit error" when shutting down the server:


    Code:
    2011-07-26 11:08:53 [SEVERE] [BetterShop] failed to run COMMIT on database
    java.sql.SQLException: failed to run COMMIT on database
        at com.jascotty2.MySQL.MySQLPriceList.commit(MySQLPriceList.java:82)
        at com.jascotty2.Shop.PriceList.close(PriceList.java:239)
        at com.nhksos.jjfs85.BetterShop.BetterShop.onDisable(BetterShop.java:332)
        at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:128)
        at org.bukkit.plugin.java.JavaPluginLoader.disablePlugin(JavaPluginLoader.java:899)
        at org.bukkit.plugin.SimplePluginManager.disablePlugin(SimplePluginManager.java:288)
        at org.bukkit.plugin.SimplePluginManager.disablePlugins(SimplePluginManager.java:281)
        at org.bukkit.craftbukkit.CraftServer.disablePlugins(CraftServer.java:157)
        at net.minecraft.server.MinecraftServer.stop(MinecraftServer.java:312)
        at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:391)
        at net.minecraft.server.ThreadServerApplication.run(SourceFile:422)
    Caused by: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 49,072,498 milliseconds ago.  The last packet sent successfully to the server was 49,072,525 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
        at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)
        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Source)
        at java.lang.reflect.Constructor.newInstance(Unknown Source)
        at com.mysql.jdbc.Util.handleNewInstance(Util.java:407)
        at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1116)
        at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3348)
        at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1967)
        at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
        at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2620)
        at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1662)
        at com.mysql.jdbc.StatementImpl.executeUpdate(StatementImpl.java:1581)
        at com.jascotty2.MySQL.MySQL.commit(MySQL.java:238)
        at com.jascotty2.MySQL.MySQLPriceList.commit(MySQLPriceList.java:80)
        ... 10 more
    Caused by: java.net.SocketException: Software caused connection abort: socket write error
        at java.net.SocketOutputStream.socketWrite0(Native Method)
        at java.net.SocketOutputStream.socketWrite(Unknown Source)
        at java.net.SocketOutputStream.write(Unknown Source)
        at java.io.BufferedOutputStream.flushBuffer(Unknown Source)
        at java.io.BufferedOutputStream.flush(Unknown Source)
        at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3329)
        ... 17 more
    2011-07-26 11:08:53 [INFO] BetterShop now unloaded
     
  9. Offline

    registered

    thank you, love the addon

    one question: in one of the suggest csvs it uses decimals, but in game they're truncated... is it or is it not supposed to support decimals? be nice if it did
     
  10. Offline

    e_zach

    it should support decimals, it depends on how your currency is setup. (i have decimals on my server.)
     
  11. Offline

    Southpaw018

    Huh. I don't, and I'm using Essentials Economy. What are you using?
     
  12. Offline

    e_zach

    iConomy
     
  13. Offline

    registered

    i am using boseconomy

    when people do /shop check or /shop buy, it shows a value different from what actually is set.

    SHOP: Selling 10 Gravel at 1 coin each.. 8 coin total!

    for example (gravel is set to sell for .75)

    any clue how to fix this?
     
  14. Offline

    Southpaw018

    My guess is that EssentialsEco and BOSEconomy are rounding their display via Register, but iConomy isn't for some reason.
     
  15. Offline

    davejavu

    My console says BetterShop attached to iConomy, but in game when I make a sign and left/right click it, it says "there is no economy system"
     
  16. Offline

    Soladir

    Does this work with the Permissions plugin? If not, is there any plan to make it work with Permissions? I am using another shop mod but I really like the idea of having prices in a configuration file that I can edit easily if needed.
     
  17. Offline

    e_zach

    it does, it says so on the OP.
     
  18. Offline

    goldseed

    I love you!

    will solve
    after long time.

    invisible hand?

    EDIT by Moderator: merged posts, please use the edit button instead of double posting.
     
    Last edited by a moderator: May 17, 2016
  19. i can't change the name from the entities for expamle Chicken or Wolf.
    But i can change the name from the itemes, only the entities can't change the name :(
     
  20. Offline

    davejavu

    For me it says 'There is no economy system' when I have iConomy installed.... help?
     
  21. Offline

    Sayshal

    This 'error' doesnt cause any problems. But I'm just wondering why it shows up:
    Code:
    2011-08-04 03:59:16 [INFO] Loading BetterShop version 1.6.6.6 ...
    2011-08-04 03:59:16 [INFO] [BetterShop] Notice: Unused Configuration Nodes:
    strings.commandlog, strings.listalias
    2011-08-04 03:59:18 [INFO] [BetterShop] Newer BetterShop version found on git (Tue Jul 19 16:35:07 MDT 2011)
    2011-08-04 03:59:18 [INFO] [BetterShop] BetterShop.csv loaded.
    2011-08-04 03:59:18 [INFO] [BetterShop] Attached to iConomy.
    2011-08-04 03:59:18 [INFO] [BetterShop] Attached to Permissions.
    2011-08-04 03:59:18 [INFO] BetterShop version 1.6.6.6 is enabled!
    I'm looking at:
    2011-08-04 03:59:16 [INFO] [BetterShop] Notice: Unused Configuration Nodes:
    strings.commandlog, strings.listalias
    &
    2011-08-04 03:59:18 [INFO] [BetterShop] Newer BetterShop version found on git (Tue Jul 19 16:35:07 MDT 2011)
    Help me out?
     
  22. Offline

    e_zach

    is's basically saying that those nodes are missing from your config. i had the same issue, but they're not required to run better shop.
     
  23. Offline

    DJAddi

    Hey!
    Pretty nice shop plugin, good job so far.
    But the illegal buy is not working. Before you ask: Yes, it is enabled in the config.yml:
    Code:
        allowbuyillegal: true
    And yes, I tried giving me the permission AND using the group that has all permissions:
    Code:
    BetterShop.admin.illegal
    Anyway, when trying to buy something without having the money for it I get the message that I don't have enough money. Hope to get a fix soon...
    Have fun,

    Addi
     
  24. Offline

    e_zach

    do you mean that you do have enough money to buy it? otherwise thats expected behaviour....
    sorry, just clarifying.
     
  25. Offline

    Southpaw018

    I was actually looking for that yesterday. I didn't check the code itself, but it appears that feature has been pulled.
     
  26. Offline

    DJAddi

    @e_zach: Tried both (if I have enough money I have to pay anyway and if I don't, it won't give me the item).
    @Southpaw018: Ok...
     
  27. Offline

    Kohle

    Wondering if you could add the ability to have all the money taken added/taken away from a specific player name?

    On my server I created a account Government (fake username used as a bank sort of thing) with iConomy.

    So if someone did /buy sand and sand costs 1 Dollar, Government would receive 1 Dollar. If someone did /sell sand and they can sell it for .40 Dollars, Government would have .40 Dollars taken away from their balance.

    Get what I'm saying here?

    Hope this could be added... I would love it forever. ;)
     
  28. Offline

    DJAddi

    Searched for plugin problems... tested on an empty server with the latest build and PEX permissions, illegal buying is still not working. But as I request help anyway, could you add that if you do not have to pay for things, you also don't get money for selling them?
    Have fun,

    Addi
     
  29. Offline

    SpankyzieJr

    does this come with money... like you buy things with money... if not can you tell me a mod that uses the command /money
     
  30. Offline

    Sayshal

    iConomy
     
  31. Offline

    Azlodin

    Hello.

    When adding entries within the bettershopmarketactivity table, can you please use the PlayerName and not DisplayName? The characters added by plugins which alter the player DisplayName can be a pain to strip when performing queries.

    Thanks
     

Share This Page