[INACTIVE][ECON] BetterShop 1.6.5- iConomy Global Command-based Shop [602 & 677]

Discussion in 'Inactive/Unsupported Plugins' started by jjfs85, Feb 4, 2011.

  1. Offline

    jjfs85

    BetterShop - The "better" global command-based shop that ties into iConomy:
    Version: v1.6.5 (1.6.5.3)
    Download: (static jar) BetterShop.jar
    (older, 602 compatible) BetterShop_1.6.2.8.jar
    (older, 556 compatible) BetterShop_1.6.2.5.jar
    (older versions are not supported, sorry)
    Authors: jascotty2, and jjfs85, with a little help from lologarithm.

    Webpage coming soon.

    Want the most up-to-date info on usage, features, the changelog, and more?
    Read the README!

    Plugin Information (as of v1.6.5.3 - 4/11/11)

    Commands (open)

    • /shop
      • for those used to a plugin having one command, this is another way to get to the following commands
    • /shophelp (shelp) [command]
      • shows you all the commands you can use
      • can show specific help for a command
    • /shoplist (sl,slist) [pagenum]
      • shows a listing of items for sale
      • (if -1, all, or full given, will show full list. (mainly for console use))
    • /shopitems (sitems)
      • show full listing of items in shop, without prices
    • /shopcheck (sc,scheck) <item>
      • lookup a specific item so you don't have to read through pages of prices
    • /shopbuy (buy,sbuy) <item> [amount]
      • buy an item for the price in the shopshop ("all" is accepted as an amount)
    • /shopbuyall (buyall,sbuyall) <item>
      • buy all of an item that you can hold
    • /shopsell (sell,ssell) <item> [amount]
      • sell an item for the price in the shop
    • /shopadd (sadd): <item> <buy> [sell]
      • add an item to or update an item in the price list
    • /shopremove (sremove): <item>
      • remove an item from the price list
    • /shopload (sload):
      • reload prices from pricelist database
    • /shopsellall (sellall): [inv] [item [...]]
      • Sell all of item from your inventory (alias to command /shop sell all)
      • (inv will not search lower 9 slots)
    • /shopbuystack (buystack): <item> [item | amount]
      • buy a stack of an item (usually 64)
    • /shopsellstack (sellstack) <item> [amount]
      • sell a stack of an item (usually 64)
    • /shopbuyagain (buyagain,sba):
      • repeat last buy action
    • /shopsellagain (sellagain,ssa):
      • repeat last sell action
    • /shopkits (skits):
      • show a listing of avalliable kits (will be elaborated later)


    Dependencies (open)

    BetterShop's dependencies:

    Economy plugins supported:


    iConomy
    - or
    BOSeconomy

    Supported Plugins:

    • Permissions v2.5.0+ by people - permissions and groups plugin
    or​
    • GroupManager by not Zenexer after all- a replacement for Permissions that is fully compatible with plugins that require it (using FakePermissions)
    • Help 0.2+
    • MinecraftIM


    Features (open)

    Features:
    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
    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
      • Code:
         [*][BetterShop]
         [*]buy [amt], buyall, buystack, sell [amt], sellall, sellstack
         [*]item name (recommended) or id:data, or for sellall: onhand, inv
         [*](unused line)
         [*]
      • 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
      • can scan for uxexpected sign destruction (tnt) & replace it
    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)
    • can backup the current pricelist: /shop backup
    • on start, can check the download page to see if there is an update available
    • /shop ver[sion] shows version # and if is up-to-date
    • 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
    • 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)
    • help main page integration can be disabled
    • global shop can be disabled & only allow signs to be used


    Installing (open)

    Installation instructions:

    New Installation?
    Upgrading?

    • lots more added to config.yml all the time..
    • to 1.6.3+ ? Itemsdb.yml has been expanded to include entities
    • from before v1.6.1.3 ? Itemsdb.yml has been expanded:
      • not required to update, but recommended
      • if you've already edited yours, you can look here and see what i've added
        • mainly: leaves, charcoal, tools & armor damage, some more aliases
    • from version 1.5.9b - 1.6.1.0 and use MySQL transaction logging?
      • ALTER TABLE BetterShopMarketActivity ADD COLUMN PRICE DECIMAL(11,2);
      • ALTER TABLE BetterShopMarketActivity CHANGE COLUMN SOLD SOLD TINYINT;
        • optional, but useful for php
    • from version between 1.5.5 - 1.5.9 and use MySQL pricelist?
      • ALTER TABLE minecraft.BetterShop CHANGE COLUMN BUY BUY DECIMAL(11,2);
      • ALTER TABLE minecraft.BetterShop CHANGE COLUMN SELL SELL DECIMAL(11,2);
    • from an earlier version?
      • Will import your old pricelist.yml into the db you have setup in the config :)
      • Items.db is no longer used - delete it :)
    Permissions:

    Just add the following nodes to Permissions' world.yml file (or data.yml file for GroupManager):


    - 'BetterShop.user.*'
    ^ Allows the user to use the list, sell, buy, and help commands
    - 'BetterShop.admin.*'
    ^ Allows the user to use the add, remove, and load commands

    Alright, so you have the plugins in place and set up, and permissions nodes added to the Permissions' config.yml. Now just place the BetterShop.jar file in the server's plugins directory. Then just start the server and add things to the shop. That's all!

    Adding Items:
    There are two ways to add things to the shop:
    1. Recommended, but slow: use /shopadd [item] [buy-price] [sell-price]
    2. Faster: use a text editor or spreadsheet program to edit the pricelist.csv


    TODO (open)

    features listed here may already be in the works, or may be on the back burner
    if you want a new feature, or want something sooner, ask :)

    • calculated/derived item prices
    • /shopvalue item[@amount] item to show the current trade value for two items
    • discount system: users or groups can be charged less/more for an item or all items (sell prices also affected)
    • dynamic market pricing, based off of logged market activity
    • region shops (items added while in a region defined as a shop are only added to that shop)
    • add option for amount in stock for surplus decreases how much item is worth to the shop
    • /shop alias <item> - show the itemname, with a list of aliases
    • add pages for /shopitems
    • more descriptive kit listing, similar to shoplist:
      • - pages
      • - show what makes up a kit
      • - enable admin.add to see avaliable kits
    • SQLite support?
    • tie item prices to stock quotes?
    • craftables' stock is tied to source material stock (if using sell craftables)
    • make LivingEntities follow the owner around?
    • change buystock if itemStock is enabled so that if trying to buy multiple stacks (buystack item 20) and stock runs out to stop buying (stop showing "out of stock")
    • individually-customizable restock stock values per-item
    • chest shop interface ?
    • automatically add missing config nodes (preserving comments)
    • add a simple builtin economy system, if none found?
    • add categories to items
      • - can search, buy, & sell with category
    • user-owned shops (signs, linked to chests)
    • 4th line for configurable prices or shop profit owner


    Changelog (open)

    Changelog:
    (the (?) means plugin didn't report that as the version.. sorry :))

    Version 1.6.5.3 - 4/11/11 - jascotty2
    • added option to disable sign protection
    • added sign action wait, to prevent sign click spamming
    • fixed a nullpointer error when selling
    Version 1.6.5.2 - 4/11/11 - jascotty2
    • removed spawnwolf debugging line
    • wolves bought have correct health
    Version 1.6.5.1 - 4/10/11 - jascotty2
    • removed a debugging line
    • wolfs bought have their owner already set (need to increase health)
    Version 1.6.5.0 - 4/10/11 - jascotty2
    • corrected new settings (missed some previously)
    • fixed default sign pricecheck showing wrong one
    • fixed messenger formatting error
    • misc. null fixes
    • BOSEconomy support added
    • changed block protection from scan to save (should improve performance)
    • added tnt protection, in the form of a scanner that routinely checks that all shop signs & their anchors still exist
    • added syntax check for /buy & /sell # [item] (like the sign syntax)
    • allowbuyillegal now defaults to true
    • fixed color set (hidden logic error)
    • signs can have the item name colored according to the defined item color
    Version 1.6.4.2 - 4/9/11 - jascotty2
    • fixed sign destroy permission check to only check bettershop signs
    Version 1.6.4.1 - 4/8/11 - jascotty2
    • "inhand" and "inv" added as valid sellall/buyall items (signs only)
      • - "in hand" buys/sells all of the type of item in the player's hand
    • sign destroy protection algorithm improved (still can't check for explosions :( )
    Version 1.6.4.0 (?) - 4/8/11 - jascotty2
    • stock message error fixed when selling too much
    • fixed <curr> causing a server freeze
    • added amount to pricecheck, so can check the result buy/sell price
    • fixed a buying error when already has some of the item
    • added a sign interface
      • - 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 to pricecheck
      • - right-click to run action
    • if a unauthorized player destroys a block a sign is on, is canceled
    • fixed column check for table updating
    • updated for 670
    • configuration nodes are moved to more organised parent nodes (easier to edit if using an intelligent text editor)
      • - older nodes are still supported (for now)
    Version 1.6.3.6 - 4/6/11 - jascotty2
    • again, previously forgot to update the date in last version
    • - added additional checks to prevent future false-positives
    • -- (also checks if comment on download matches plugin, not if plugin >= comment version)
    • figured out the integrity check errors :)
    • now runs checks on changed tables to check if needs updating (and adds columns as necessary)
    • - just transaction log table for now (only table with added columns)
    • another option added: AutoUpdate
      • - if a new update is found, will download & install
      • - can also run manually with /shop updade (OP-only, since forces update & restarts server plugins)
    Version 1.6.3.5 - 4/4/11 - jascotty2
    • fixed a rare null exception in integretycheck?
    • fixed saving errors when transaction logging disabled
    • implemented infinite stock (setting stock to -1 makes infinite)
    • # 1,000+ downloads in one day!
    Version 1.6.3.4 - 4/3/11 - jascotty2
    • fixed a rare invalid function signature error
    • fixed if a player tries to buy/sell air
    • OPs now completely bypass security checks
    • more changes to error reporting format: added a custom message
    • # 10,000+ lines of code :)
    Version 1.6.3.3 - 4/2/11 - jascotty2
    • renamed monstertamer package, to avoid conflicts if you're using the monstertamer plugin
    • should have a reported bug in integrety check taken care of.. not sure of the cause, though
    Version 1.6.3.2 - 4/2/11 - jascotty2
    • fixed more error reporting bugs (still can't find one stupid stock flatfile bug)
    • added stock messages to config
    Version 1.6.3.1 - 4/1/11 - jascotty2
    • fixed chickens & buying more than one animal
    • updated error reporting(again)
    • rand libary update for my (jascotty2's) version of CookieMonster
    Version 1.6.3 - 4/1/11 - jascotty2
    • fixed buy/sell == 0 ? no (in shoplist, 0 incorrectly showed as no)
    • updated for 612 (and 600+ .. had accidently been using the wrong libary)
    • LivingEntities can now be purchased! :D
      • special thanks to fullwall for the MonsterTamer plugin, from which this ability comes from (1.3)
      • if capable, will attack the anything attacking the purchaser (if nearby)
    Version 1.6.2.8 - 3/31/11 - jascotty2

    • nullpointer fixed if running 602 with old groupmanager
    • other misc. null fixes
    • removed redundant reload points for iConomy
    • repaired a mysql totalTransactionLog format error
    • error reporting now begins with a portion of the date, so i can see them listed in order
    • more info added to error reports.. still can't figure out the stock flatfile save bug
    Version 1.6.2.7 - 3/30/11 - jascotty2

    • improved error reporting format & removed a few unnecessary send triggers
    Version 1.6.2.6 - 3/30/11 - jascotty2

    • now checks for missing & unused configuration nodes
    • strings have default values if missing
    • auto error reporting added (can be disabled)
    • now compatible with bukkit 602
    • help main page integration can be disabled
    • hidden changes to get one step closer to dynamic pricing
    Version 1.6.2.5 - 3/28/11 - jascotty2

    • forgot to update the date in the last release, so a false 'newer release' was showing up
    • fixed help support when help loaded before bettershop
    Version 1.6.2.4 - 3/25/11 - jascotty2

    • Added support for my new plugin: MinecraftIM :)
    • removed a stock debugging line i forgot to remove
    • manually set locale for updating date format.. should fix non-us countries?
    Version 1.6.2.3 - 3/23/11 - jascotty2

    • added stock db to reload
    • fixed a stock update on sell
    • updated plugin commands to include sellstack (oops :oops:)
    Version 1.6.2.2 - 3/23/11 - jascotty2

    • more commands added to register with help
    • fixed a MySQL update syntax error for stock
    Version 1.6.2.1 - 3/23/11 - jascotty2

    • fixed a plural search bug
    • added /sellstack (much like buystack)
    • fixed a buyagain logic error
    • /shop import <file> - insert values from file in plugin folder
    • /shop restore <file> - clear shop & load from saved backup file
    • flatfile itemstock repaired
    Version 1.6.2 - 3/23/11 - jascotty2

    • stock option - items can have a finite amount
      • selling to the shop increases the stock, buying decreases
      • can have a minimum update interval: time before will reset stock to initial amounts
      • maximum stock: most will hold
      • noOverStock: will not allow selling if item stock is full
    • note on stock: does not track each item's damage values (if tools)
      • (selling a damaged good allows 1 intact to be bought)
    • /shop restock (permission BetterShop.admin.restock) to update how much stock the shop has
    • permission node BetterShop.admin.backup added for backing up the pricelist
    • added Help plugin integration: will automatically register commands with help
    • added some more MySQL db connection reconnect points (autoReconnect=true not working is becomming irritating)
    • more checking for iConomy account editing failures (i've had more problems with it)
    • fixed a format error if using a replacement char in listing (like <l.>)
    • retructured sellall inventory editing
    • # passed 7500 lines of code! (430KB)
    Version 1.6.1.4 - 3/21/11 - jascotty2

    • (hopefully) fixed MySQL region formatting errors (such as europe where the decimal is a comma)
    • addto/updated help menu
    • added [command] to help: lookup a specific command (also accepts aliases)
    • fixed flatfile total transactions log
    • shop ver[sion] also shows if the plugin is up-to-date
    Version 1.6.1.3 - 3/20/11 - jascotty2

    • default color for items
    • plural-insensitive items: if not found, will check if plural & remove "s"
    • fixed transaction log insert missing the price
    • was having problems reading bit from php, so shanged SOLD column from bit to tinyint
      • alter table BetterShopMarketActivity change column SOLD SOLD TINYINT;
    • finished flatfile support for transaction logging
    Version 1.6.1.2 - 3/20/11 - jascotty2

    • runs MySQL connection check before executing database queries, and manually attempts reload if not connected
      • (still trying to iron out MySQL connection bugs, but this should end those errors)
    • removed list debugging lines i forgot to remove earlier
    Version 1.6.1.1 - 3/19/11 - jascotty2

    • removed double negative add check.. can add an item for -1, -1
    • fixed some Item errors: color and .equals(ItemStack).. fixes itemdb colors and sellall
    • fixed page numbering for when there are hidden items
    • fixed sell for 0: a <= instead of < .. thought i'd fixed that, but apparently not all of those.
    Version 1.6.1 - 3/19/11 - jascotty2

    • update check is optional (in config)
    • /shop backup to save pricelist to a backup csv file
    • updates itemsdb on shopload, in case the admin wanted to update colors/kits and such
    • added price column in marketHistory table
      • upgrading from older version?
      • ALTER TABLE BetterShopMarketActivity ADD COLUMN PRICE DECIMAL(11,2);
    • added flatfile support for transaction logging (uses csv)
    • removed pricelist save file on close (is already saved on edit)
    • if an item is marked as no buy, no sell, don't show on shoplist
    • itemsdb names can be saved (and outputted) with title formatting (eg RedstoneTorch)
    • - included itemsdb also expanded & names formatted
    • case-insensitive item matching
    Version 1.6.1 alpha - 3/18/11 - jascotty2

    • Checks git to see if there is a newer version avaliable
    • fixed price = 0 to be free
    • fixed null in sellall if selling all sellable
    Version 1.6.0f - 3/18/11 - jascotty2

    • better error check for config & importing old yml pricelist
    • MySQL pricelist can be cached for a given timespan (decreases table selects)
    • fixed sell bug (selling one would credit for amount in the first stack)
    Version 1.6.0e - 3/17/11 - jascotty2

    • fixed a removal error - there was a typecast exception previously
    Version 1.6.0d - 3/17/11 - jascotty2

    • if the old PriceList.yml file exists, will import into whatever db is enabled, then rename the file
    • fixed public message bug - would send broadcast (num_players-1) times
    Version 1.6.0c (?) - 3/17/11 - jascotty2

    • added more options: allowbuyillegal, usemaxstack, buybacktools
    • fixed buystack history
    • major buystack logic error repaired - previously didn't work correctly
    • buystack can now be given multiple items, or number of stacks: "/buystack wool 5" or "/buystack wool blackdye reddye"
    • damaged tools can now be resold for an adjusted value of sellprice*(1-(damage/maxdamage))
    Version 1.6.0b (?) - 3/16/11 - jascotty2

    • fixed a minor buy error if tried to buy more than they can hold, and could hold 0 more
    • major MySQL problem fixed - pricelist table wasn't being created
    Version 1.6.0 - 3/16/11 - jascotty2

    • major code restructure & reorganization
    • changed item db to a more descriptive yml file
      • can define what items make an item (for calculated/dynamic costs)
      • can change what color it will be outputted as in the listing
      • define kits (sold.. store won't buy them)
    • MySQL buy & sell fields increased to decimal(11,2), and cap in program set to 999,999,999
    • shoplist can now optionally not show listing tail (or head, but recommended to leave <page> of <pages>)
    • removed value check - can now "sell" items that sell for 0
    • added /shop command alias - for if a user is more used to "/shop help" than "/shophelp"
    • many commands have sub-aliases.. eg. shoplist kits will run shoplistkits
    • now does pre-check for if user can hold as much as they're trying to buy
      • and "all" to try to buy as many as they can hold
    • items can be marked as illegal, and can only be purchased by a select few (using permissions)
      • also not shown to users who cannot buy them, except with pricecheck
    • option in config to make transactions publicly broadcasted
    • option in config to have a custom sort order
    • shopsellall can be given multiple items (/sell all cobble gravel flint dirt)
    • now shows what items were sold when using shopsellall
    • fixed bug where single sell parameter would == sell [item] all
    • all, full, -1 added as a pricelist pagenumber: will print the full list (intended for console use)
    • marketactivity table truncate logic repaired..
    • marketactivity MySQL table changed with primary key(DATE, USER, ID) (instead of DATE, USER) to resolve conflicts with sellall
    • items can be marked as 'legal: false', and only those with permissions can buy them (can still sell)
    • if encounters errors while editing a player's account, will attempt to reload iConomy
    • sellall can be given "inv" as first parameter to only sell from inventory (not in quick access slots)
    • shopcheck given partial name matching: "/shopcheck wool" (not "shopcheck 35") will show all colored wool prices :)
    • fixed sellall bug when an item not for sale
    • /shopbuystack (buystack): buy a stack of an item (usually 64)
    • /shopbuyagain (buyagain,sba): repeat last buy action
    • /shopsellagain (sellagain,ssa): repeat last sell action
    • /shopkits (skits): show a listing of avalliable kits (will be elaborated later)
    • can now buy kits :)
    • /add now has sell as an optional parameter.. will set to -1 if not given (or if is a kit)
    Version 1.5.9b - 3/11/11 - jascotty2

    • width outputting in minecraft chat (for /shoplist): now can have item (or listing) right-align, left-align, or centered
    • implemented transaction log and total transactions record
    • no longer dependent on permissions: if missing, ops have .admin.* & everyone has .user.*
    • bugs: MySQL buy & sell is decimal(6,2), limiting price to 9,999 (plus a nondescriptive error)
      • to fix (db minecraft, table BetterShop):
      • alter table minecraft.BetterShop change column buy buy decimal(11,2);
      • alter table minecraft.BetterShop change column sell sell decimal(11,2);
    • unknown error: MySQL connection seems to get dropped & won't connect until restart plugin
      • seems to stem from iConomy (v4.4 (Arcadia)) or v0.2 [Coelho].. i only have 4.4, but .2 is being logged
      • shopload should fix this, but iconomy will still be down.. if you have a plugin like hotswap, reload iConomy
    • not a bug, but forgot to remove: debug output of select statements being executed
    Version 1.5.8(?) - 3/10/11 - jascotty2

    • fixed a sell error for one parameter
    • major-ish code restructure - removed data redundancy
    • / shopsell all [item] (alias to /shopsell [item] all)
    Version 1.5.7(?) - 3/10/11 - jascotty2

    • / shopsell [item] all added: sell all of an item that you have
    • fixed total sell value min to .01 instead of 1 (if your server uses low prices)
      • before this fix, one could get around this check by trying to sell alot of an item
    • now automatically downloads mysql dependency (zip from mysql mirror & unzip or from iConomy mirror)
    Version 1.5.5(?) - 3/9/11 - jascotty2

    • Pricelist can now be in a MySQL database
    Version 1.5.4 - 3/2/11

    Fixed some lingering bugs with lologarithm's help.


    Version 1.5.3
    Fixed sell 0 < sellprice < 1 bug.


    Version 1.5.2
    Now it'll convert your old pricelist.yml to the new 1.5.x format automagically!


    Version 1.5.1
    Fixed the bug where setting a price to -1 didn't disable it
    Fixed the "LOLWTFDOESN'TWORK" bug.
    Made price-list listing configurable in config.yml. The way it was 'sposta be.

    (older versions not shown..)

     
  2. Is there a german Translation??
    I tried myself but everytime i get an error.
     
  3. Offline

    Fabianius

    In my opinion you ought to add the item price as well because it may change in the future. When the admin realises that the price is set too high or low he probably wants to change it but still track how much a user paid or received in the past for a certain item. When you add dynamic market as a new feature it becomes even more necessary to track all transactions on your server. Whenever you buy or sell an item the price is different. When you also log the prices then it would ease the process of checking if the dynamic market is working as it should. Maybe the price increases or decreases too fast after every transaction and the log file would help you check if a user is responsible for that (maybe somebody bought or sold too many items at once).
     
  4. Offline

    Zace66

    I love this add on, and the fact you are so active on it.
    When I start my server I get this message.
    > 18:16:49 [INFO] Loading BetterShop version 1.6.0 ...
    > 18:16:49 [INFO] [BetterShop] BetterShop.csv loaded.
    > 18:16:49 [WARNING] [BetterShop] iConomy not yet found...
    > 18:16:49 [INFO] BetterShop version 1.6.0 is enabled!

    And yes iConomy is working fine as I then get the message:

    > 18:16:49 [INFO] [iConomy] Logging is currently disabled.
    > 18:16:49 [INFO] [iConomy] v4.4 (Arcadia) loaded.
    > 18:16:49 [INFO] [iConomy] Developed by: [Nijikokun, Coelho]
    > 18:16:49 [INFO] [BetterShop] Attached to iConomy.
     
  5. Offline

    Stephen92

    apparently I can't remove anything from the shop after I put something in says error! my cb is 556.
     
  6. Offline

    lenocinor

    Found another bug. If I'm an admin, and do a check on an "illegal" item that I'm allowed to buy (I have that option set), it shows the price and I can buy it. If I'm a regular user and do a check on that same item, it lists the buy price as "No" but I can still buy and sell it for the correct price. Oddly the sell price is listed correctly, though.

    EDIT: Another bug. It seems like items with stack size less than 64 don't buy or sell correctly. Try buying a bed and then another. You'll be charged for the second but you won't receive it. Or if you buy, say, 5 snowballs, and then another snowball, the stack of 5 snowballs will be "overwritten" with the one snowball.
     
  7. Offline

    jascotty2

    guess i never thought of it, but reloading the itemsdb should've been included, since that's where kits are defined
    leaf types are supported, just i never thought to add them to the itemsdb.. they'll be in the next release
    armor is counted as a 'tool', so can be sold back just like a tool can

    you'll have to be more descriptive than "i got an error"
    most messages (and more soon) are configurable, so you should be able to translate those
    error messages will remain english, so i have some idea where it's coming from if you need help

    while going over the semantics, i realized i was adding the wrong column.. item price should be added, not total.
    if you want the total, use "select *, ROUND(AMT * PRICE, 2) as "Total" from BetterShopMarketActivity;"

    thanks for finding these :)
    first was easy to fix.. will be included with the next update
    the second will take a little longer.. not sure what's causing that yet..
    edit: ok, was an easy fix.. one of those dumb logic errors.
    expect another release soon.

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

    lenocinor

    You sure? I have a diamond helmet, slightly used, in my inventory that isn't selling. If I buy a new one, the new one sells just fine.

    Thanks for getting on all these bugs so quickly! God using this shop is a lot better. :) Are you going to add list pages to /shopcheck as well, by the way?

    EDIT: And are you able to reproduce the /sellall bug where items in the top don't get sold and items in the bottom do? This kinda prevents /sellall from being useful at the moment. :)
     
  9. Offline

    jascotty2

    Version 1.6.1 is out :D
    changes:
    update check is optional (in config)
    /shop backup to save pricelist to a backup csv file
    updates itemsdb on shopload, in case the admin wanted to update colors/kits and such
    added price column in marketHistory table
    - upgrading from older version?
    - ALTER TABLE BetterShopMarketActivity ADD COLUMN PRICE DECIMAL(11,2);
    added flatfile support for transaction logging (uses csv)
    removed pricelist save file on close (is already saved on edit)
    if an item is marked as no buy, no sell, don't show on shoplist
    itemsdb names can be saved (and outputted) with title formatting (eg RedstoneTorch)
    - included itemsdb also expanded & names formatted
    case-insensitive item matching

    armor: yes, but they're not there because i forgot to add maxdamage to armor.. i'll do that & upload to git
    shopcheck pages: maybe.. have to work out some higher-priority features yet.. pages shouldn't be commonly needed for now..
    i may, if the # of results is > pagesize, show a list of possible matches & ask the user to refine their search
    /sellall bug: cannot reproduce right now.. if still getting the bug after upgrading, could you give more info on how you would go about getting that error?

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

    lenocinor

    Noticed something else just now - if you try to sell an item with no value, it won't sell, but /sellall WILL sell that item (for 0). Is this the functionality you wanted?

    Also, my players seem to want to sell items that sell for 0, just to get rid of them. Is there any way you could make this option configurable?

    And downloading the new shop version for testing. :)

    EDIT: I just downloaded from your link (6:35 EST). Has it actually been updated? New features tested:
    - Don't show items not buyable: They show in my /shop list, and furthermore, they now have the coloring removed. :(

    - Reload itemsdb.yml: Doesn't change colors when I change them in the file. Requires a server restart to show changes.

    - Title formatting: Not working. Still shows as all lower-case.

    - Maxstack < 64 buying bug: Still present.

    And I'm able to replicate the /sellall bug easily. I buy a single clay ball and put it in my upper 27 slots, buy a single torch, put it in my lower 9 slots, then /sellall. The clay ball does not sell and the torch does.

    EDIT2: I see the filesize changed on the JAR, so probably a new version is there now. Retesting...

    Retested. All the bugs I listed above are now fixed, except for the /sellall bug. Try it with the clay ball and the torch.

    For more info, when my friend tried it with a bunch of items, his compass and bed and paintings sold from his lower 9 slots (they were the first three items sold) but not his tools, and the items that didn't sell up top were glowstone dust, flowers, redstone torches, and a water bucket.
     
  11. Offline

    jascotty2

    "don't show not buyable" AND not sellable - for if you have a db with items (like a template) but nothing for buying/selling
    sell for 0: a <= instead of < .. thought i'd fixed that, but apparently not all of those.
    itemsdb: does reload, but there was a copy function where i forgot to add color
    title formatting requires titlecase in the itemsdb.. delete the old one, and the new one will have the formatting
    sellall: i've found another sellall bug, possibly related... once i resolve this one, i'll check if that is still a problem
    i'll upload these fixes in 1.6.0.1 (moving to sub-numbers in hex instead of alphabet:))
     
  12. Offline

    Rhuen

    Hey,

    i use bettershop...it works...it makes that what i will...but can i make prices for stacks?!
    So: /shopadd stone 64 10 5
    64 Stones...sell for 5 and buy for 10 coins?! is that possible?!
    When i make Stone für 1...and anyone sell stonestacks he becomes 64 coins...that is to much coins :D 1 gold for 2.000 coins ?:p i will that dynamic.

    idea?!
     
  13. Offline

    lenocinor

    I had already changed all the title cases myself, but thanks. :) It's showing fine now. Item coloring still doesn't show in "/shop list", by the way.

    And a new bug: my shop list stops at 22 pages. I know there should be more because the items after that page are buyable in the shop. I think I know why; in order to keep my dyes in my spreadsheet in the same order as my colorable cloths, the subdata field starts at 15 and counts down to 0 for the dyes, and that seems to mess up /shop list (although the items still import fine, as I can buy them). Page 23 is where the dyes WOULD be listed if they were there.
     
  14. Offline

    jascotty2

    define a kit in the itemsdb, and sell that instead
    (the kit would be like 1@64 for stone, 4@64 for cobble (or cobble@4))
    could you send me your pricelist so i can see this? (if your db is in MySQL, use /shop backup)
     
  15. Offline

    Rhuen

    Hm can i have a right example for copy paste?!

    Cobblestone and Glass...64x stacks.

    And then what i have to type /shopadd .....

    i Will Cobblestone sell 64 for 5 coins, and buy for 10 coins
    And Glass sell 64 for 8 coins and buy for 15 coins.

    Please a right example for the itemsdb and then right text für die command ingame.

    thx a lot.
     
  16. Offline

    jascotty2

    Version 1.6.1.1 is now avaliable :)
    removed double negative add check.. can add/update an item for -1, -1
    fixed some Item errors: color and .equals(ItemStack).. fixes itemdb colors and sellall
    fixed page numbering for when there are hidden items
    fixed sell for 0: a <= instead of < .. thought i'd fixed that, but apparently not all of those.

    kits would be something like this in itemsdb:
    Code:
        kit4:
            name: cobblestonestack
            aliases: cobblestack, stackcobble, stackcobblestone
            items: cobble@64
    
    then to add, like any other item: shopadd cobblestack 5
    (don't need sell price, since it won't buy kits back, but sellall or sell cobble 64 would work)
    (just divide the sell (5) by the amount (64) and you get the new sell for cobble (.08 should do))
    HOWEVER: there is already a command for buying a stack of an item: buystack
    unless you want a minimum purchase amount for cobblestone, you should probably let the users know of that one if you just want to sell stacks
     
  17. Offline

    lenocinor

    Almost there! I tested all the bugfixes you made, and all of them work...except /sellall. It now seems to sell everything in my inventory, unfortunately INCLUDING the bottom 9 slots.
     
  18. Offline

    jascotty2

    supplying "inv" as sellall's first parameter won't sell from the lower 9
     
  19. Offline

    lenocinor

    Ah cool, it works. This is wonderful. :) Thanks for all your hard work on this! Off to work some more on my chapel...

    EDIT: One more bug report, as always. :) I think you may have missed damage on fishing poles for selling, too.

    EDIT2: Another tiny bug. When items are sold in bulk using /sellall, the color tags for items don't appear to be closed properly. I had a redwood log sold near the end, the only item still colored "red" in my itemsdb.yml, and it colored the other two items sold after it as red too in the server notification.
     
  20. Offline

    Amin Azman

    can i disable /shop [command] ? i want to use /shopbuy /shopsell /shoplist
     
  21. Offline

    Kostronor

    Just a small suggestion i thought of, using the plugin
    It should be possible to define some groups of items, who can be sold together, so /shopsellall monsterstuff sells all strings,arrows,bones and gunpowders.
    What do you think?
     
  22. Offline

    Aaron Warshaw

    This is great, THANK YOU!
     
  23. Offline

    jascotty2

    no, but it's just an alias. the old commands work the same (along with a few improvements, anyway)
    that's what a kit is for.. buying, anyway... i may get around to adding the ability to sell kits, but that's low-priority, and wouldn't work if the amounts weren't in the same ratio as defined in the kit
    instead, use something like
    /sellall feather string gunpowder bone arrow
     
  24. Offline

    serenewaffles

    I have a problem with the latest version: stock doesn't work. Also, I would like to have the initial stock set to 0 and to never reset. Such that items cannot be bought until they are sold and items are never removed from the shop unless someone buys them. I am running 1.6.1.2 according to "bettershop version" console command
     
  25. Offline

    jascotty2

    yes.. there are features i have options for in the config, but not yet finished... i suppose they're like teasers for what i have planned
    if you want to see what works & what doesn't, it's listed in the readme: features & todo
    right now, only the dynamic market & stock sections are inoperable
     
  26. Offline

    Braelyn

    Thanks for the files. I hadn't realized there was a newer version than that listed in the OP. I updated it, and that error is gone in 1.6.1. Sorry to have bugged you about it :)
     
  27. Offline

    lenocinor

    Is kit listing broken in the newest version? I tried with both my itemsdb.yml and with the file the plugin auto-generates and neither lists any kits when I do /shopkits.

    EDIT: Also, if I do a /shopcheck for kits I've added, they show up but say they can't be bought or sold.
     
  28. Offline

    jjfs85

    You can open the BetterShop.jar file in an archiver and then edit plugin.yml in a text editor. Remove the following lines and save everything:
    Code:
      shop:
        description: Check prices for an item
        usage: /<command> [check|list|buy|sell|add|remove|[re]load|help]
        aliases: [bettershop]
    That will remove the registration of the /shop command in BetterShop. This should work ok based on my understanding of jascotty's code restructure. NOTE: untested.
     
  29. Offline

    Amin Azman

    so there are no way to disable the alias, because i got another plugin uses /shop as well
     
  30. Offline

    jascotty2

    Version 1.6.1.3 :D
    default color for items
    plural-insensitive items: if not found, will check if plural & remove "s"
    fixed transaction log insert missing the price
    was having problems reading bit from php, so shanged SOLD column from bit to tinyint
    - alter table BetterShopMarketActivity change column SOLD SOLD TINYINT;
    finished flatfile support for transaction logging

    what jjfs85 said is correct: open the jar using an archive manager & edit the plugin.yml to remove the shop section & the command will no longer register when the plugin is loaded in bukkit

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

    lenocinor

    I noticed you fixed the coloring bug in announcements (though the ending parenthesis is still the wrong color, ha ha :) ). But the damaged fishing pole not selling bug and the kits not working bug are still present, FYI.
     

Share This Page