UltraTrader
Remember the donate button works, I could use some fresh Mt. Dew (I also except BitCoin (address below)
Information
Links | Description |
---|---|
Development builds of this project can be acquired at the provided continuous integration server. These builds have not been approved by the BukkitDev staff. Use them at your own risk. | |
Jenkins | Development Downloads on CI provided by CloudBees |
GitHub | Source Code is hosted by GitHub.com by DemgelOpenSource group |
Website | WebSite is hosted by Github using maven-site |
Donate BitCoin | 17U5koSrxqYphGTSN4nZsd1sDr7Ti96XW4 |
Donating FUN | Some fun options for donating if you don't have money but want to help |
Citizens Wiki | My Wiki entry on Citizens 2 website |
Most Documentation will be on the Website
at http://ultratrader.thedemgel.com
Installation |
Commands | Permissions | Create A Trader | Localization | Configuration | Setting Shop Limits
UltraTrader and Citizens
UltraTrader doesn't require Citizens to run. But it does come ready to integrate out of the box, and most extensions do currently require the use of citizens. UltraTrader will work with Citizens to create NPC traders, but if you don't want to use Citizens, you can easily make blocks/signs into shops.
Buying and Selling
Some notes on buying and selling:
- Owners will always receive items from their shop for free (FREE)
- Owners can never sell items to their own shop. Items placed into a Traders buy screen will just be returned.
External Plugins
As a way to extend Ultratraders without bloating the already sizable amount of code required any farther, I have started to create external plugins that extend UltraTrader. Some of these can be found on the Jenkins Site, but we aware that these are not bukkit tested yet, and may be full of bugs.
Working Extensions (not flawlessly yet)
- UltraRental - Create Rental NPCs
- UltraDenizen - Allows UltraTrader to work with Denizens
- UltraWorldGuard
- Adds some requirements that can be setup by:
- using required traits in limits.yml
- adding required trait permissions "trader.limit.required.default.worldguardowner"
- currently only adds "worldguardowner" (trader must be standing a region the player owns) and "worldguardmember" (trader must be standing in a region a player is a member of)
- Currently should still work, but updates are suspended till I the new repo.
- Adds some requirements that can be setup by:
- UltraFrames
- Currently will show randomly changing items that your shop sells
- add ultraframe trait to NPC
- right click with stick to select
- place item frames and watch the magic.
- Currently will show randomly changing items that your shop sells
Compatibility Extensions
These extensions are there to extend the compatibility of UltraTraders to more specific modes beyond the normal use of UltraTraders. Some planned extensions will likely be a bridge Extension for handling Bukkit->Forge communications, as well as NBT related code that I don't want to place directly into UltraTrader.
Metrics
This plugin utilizes Hidendra's plugin metrics system, which means that the following information is collected and sent to mcstats.org:
- A unique identifier
- The server's version of Java
- Whether the server is in offline or online mode
- The plugin's version
- The server's version
- The OS version/name and architecture
- The core count for the CPU
- The number of players online
- The Metrics version
If you wish to disable this feature (/me cries), you can do so by opt-ing out, which you can do in the config file under /plugins/PluginMetrics/
Some Videos
If anyone wants to create a video demonstrating the use of UltraTrader, please PM me, thanks. I will be creating more as time goes on, but removed the out dated material for now
TODO
- command to allow Ops to not always get items for free from all stores
- Currently I have removed OPs completely from the free sell list (OPs no longer get free items, or shouldn't)
- Players can use the "/traderplayer toggleop" command to toggle paying at their own shop (for test purposes)
- Item to allow click to see shop information
- The command is there (/trader info) but it does nothing yet due to forced update
- adding aliases: "/trader" -> "/ut" - "/traderplayer" -> "/utp" - "/traderadmin" -> "/uta"
- removing logging from ultratrader and using a extension plugin, to hopefully invite some members to add pull requests to add logging features.
Thanks
- dayron1313 - Github issues
- Chriszh - for being persistant ;)
Can this be used as just a server shop as well, setting item amounts in a shop stock to unlimited?
Lastest on Jenkins: (for those that like to test and have nose bleeds)
If anyone is waiting, please use the Jenkins builds right now, it has been about 2 days while I wait for approval from bukkit on the latest upload.
@siemaeniu500
Thanks again for the reports, I hadn't released I missed these when I added the buy screen, the fixes (plus one more that I found) have been fixed and uploaded to Jenkins, I have also uploaded this build to Bukkit, and it will show as soon as they approve, Beta 0.3 now.
@siemaeniu500
It should be cancelling anything but a all_place, I will look into it
@tenowg
Next duplication bug:
I move to buy stock. Sell price for item is for example 100$, I am selling one item (by cliclikng right) , price is like not for one item, but for stack which i holding in hand
Movie: http://www.youtube.com/watch?v=1FEaT9sIwMU
@xk0sk1ngsx
I have had thoughts on how to do this, and I am unsure the easiest way to do this for the player and me... So the idea is already on the drawing board, it is just back burner till I get some of the last core ideas finished first.
@tenowg
Thanks. This bug dissapeared.
Is there any way I can assign which slot the item goes into?
@siemaeniu500
I got some time before I had to work, so I fixed this, it is on my Jenkins, please test and let me know if all works for you (both items were fixed, if no action is recorded, the event is just cancelled, if buy fails, item is returned to owner as planned)
Thanks again
@siemaeniu500
Investigating this error I have found another related bug, so I will fix this as soon as I get home as it will not be as simple as I thought it was going to be to fix. Bukkit does something wierd when you shift left click, it doesn't have an action type for it.
And I made the mistake of not returning the item to you inventory of the shop didn't have the money, not an issue for admin shops, but player shops wold be affected.
Thanks for letting me know.
I found duplication bug.
As default player i switch to buy stock. I am holding shift and clicking by left on empty slot with item what i want to sell. Player get money but item not get out from mouse.
Movie: http://www.youtube.com/watch?v=m4pQqlQqIoQ&feature=youtu.be
@arrexel
There are no plans to directly handle item to item trades within the plugin. An economy plugin would be best, but it would be possible to write a custom wallet to handle item to item trades. I may do this if there is enough requests (as there was one already) but it would not be for some time. I will have the docs up to show how to use custom wallets shortly (hopefully in the next few days, as long as my job leaves me alone for a bit).
It might be a good way to post an example custom wallet, so look for it in the future at some time. No ETA tho
Does this support item for item trades at this point? I am working on a RPG that does not use an economy plugin.
@siemaeniu500
I think I do understand what you are asking for, and unfortunatly, no I will not be easily able to do this as the files are not YAML config files handled by Bukkit... I "could" do it at a later date when I have time. For now, I have added a "/traderadmin debug" that requires "trader.admin.debug" permission, which will toggle the debug of ultratrader, which will display all key->values of all ResourceBundle (language) to console that are displayed in game. This will likely be best used on test servers, as the output will in deed be alot.
@siemaeniu500
l will be adding some sort of logging ability... I have abstracted the data object to be able to handle any type of database, I just need to implement them, likely first will be mysql, or any jdbc connector.
I had planned on the logging from the start, as a way to tell if someone is duping/cheating or even as a way to see who is top shop, etc...
Can u add logging when player buy or sell something and other things. Also mysql and flatfile support.
@tenowg
Worked like a charm! thank you! :)
@duckfan1994
I will see about updating my version of citizens and see if there was something changed with the code, or you might want to check your permissions.
To use a trader you need to have trader.store.use - I would almost assume that is your problem as I don't use citizens for anything other than storing the ID... read the website listed above to see what other permissions you need (or make yourself op)
PS. this is exactly the behavior I get when I unset the trader.store.use permission on my test server...
Hey there, I don't mean to be asking too many questions, but. when i right click the npc after assigning them the trait ultratrader, nothing happens. It says ive successfully assigned it to them, but i cant open up the shop from them. I know i also cant do that with the plugin quests as well, do you know what is going wrong with citizens right now to make your plugin not work with it? Its driving me nuts haha.
I have the latest citizens dev build, and ultratrader build.