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 ;)
@Amealthea
Thanks for reminding me to update plugin.yml with new version.
I think I might have a possible reason for this, my local copy (built with Idea) runs fine... when I use my Jenkins build version (the one I upload here) I get the error...
Let me figure this out and see why the two are different, which they really shouldn't be any differences.
@tenowg
I'm using the bukkit beta (1.7.2-R0.2)
I just downloaded UltraTrader 1.0 (UltraTrader-1.0.jar), but when I start the server up it says 0.92 BETA. Is this right?
No reload and no double folders or .jars in plugins. But still the same problem.
Could it have something to do with other plugins? Should I try to remove one by one?
@Amealthea
Are you using development builds of Bukkit, or Beta builds? The only thing I can see that might be causing this is a depreciated method I am using. I build against development builds, but test on beta builds.
Try upgrading to 1.0 UltraTrader and see if it still happens, but I have yet to recieve this error locally.
Also check the obvious issues that sometimes do get missed:
but anyways,. here is what I have tried:
I get the exact same error.
I'm running Bukkit-1.7.2-R0.2, UltraTrader v.92 and Citizens v2.0.11-SNAPSHOT.
Looks like it clipped off too.
@ArgonathRPG
Sorry either the website, or your console clipped the error, and I can't see the last part of it to know where it happened... I will try to reproduce, but I need to know what versions you are using, for each, bukkit and ultratrader, thanks
Hey, Just curious I'm trying your plugin for the first time however I'm having an issue when it comes to creation of a Npc shop. I've worked with Citizens before so thats fine.. After I put the Trait to the NPC I right click then type create.. However whenever I do this I crash.
Please help if anyone knows what the issue could be.. Thanks
@Soldadosteam
I will look into this more in the next few days, but it looks like it might be the Economy plugin failing at some point.
That is the part of the log that makes be suspect this, but I can't tell you why without more information.
@Exodus37
I have left the usage of shop off by default because it is my personal feeling that admins should fine tune the plugins from the ground up to their liking. True it can be annoying, but leaving it alone and letting each admin figure out how best to do it with their permissions plugin (I can't image any server using plugins without even a basic permissions plugin).
But you are correct, I have to assume that users will not read the website and not setup correctly, so I will make a note of it. But I do urge all admins/ops/owners to at least look at the website, and to definitely look and read the installation page.
Hello, i have a strange problem:
I created a trader, added some items, specified the prices and descriptions. Everything works fine while i'm op, but when i deop myself and try to access the shop (by right clicking) - nothing happens - it seems like non-op people can't open the shop...
Maybe it has something to do with those permissions? If so - how could i change them? (i haven't seen any permissions in the config.yml file)
Edit - i tried changing the inventory type to 'shop' by using the book and quill, but that had no effect... still can't open the shop while being non-op.
Edit2 - found the solution: I had to install PermissionsEx plugin, and from console call the command "pex group default add trader.store.use" This enables normal users to actually open the shops. But seriously - shop usage should be enabled by default. And some info about this on the front page would be useful.
When i write create in conversation i get this
1:15:39 [SEVERE] javax.persistence.PersistenceException: java.sql.SQLException: Interrupted getting connection from pool java.lang.InterruptedException 1:15:39 [SEVERE] at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:356) 1:15:39 [SEVERE] at com.avaje.ebeaninternal.server.core.DefaultServer.createQueryTransaction(DefaultServer.java:2021) 1:15:39 [SEVERE] at com.avaje.ebeaninternal.server.core.OrmQueryRequest.initTransIfRequired(OrmQueryRequest.java:241) 1:15:39 [SEVERE] at com.avaje.ebeaninternal.server.core.DefaultServer.findRowCountWithCopy(DefaultServer.java:1306) 1:15:39 [SEVERE] at com.avaje.ebeaninternal.server.core.DefaultServer.findRowCount(DefaultServer.java:1299) 1:15:39 [SEVERE] at com.avaje.ebeaninternal.server.querydefn.DefaultOrmQuery.findRowCount(DefaultOrmQuery.java:894) 1:15:39 [SEVERE] at com.avaje.ebeaninternal.util.DefaultExpressionList.findRowCount(DefaultExpressionList.java:185) 1:15:39 [SEVERE] at org.gestern.gringotts.data.EBeanDAO.hasAccount(EBeanDAO.java:71) 1:15:39 [SEVERE] at org.gestern.gringotts.Accounting.getAccount(Accounting.java:28) 1:15:39 [SEVERE] at org.gestern.gringotts.api.impl.GringottsEco.account(GringottsEco.java:38) 1:15:39 [SEVERE] at org.gestern.gringotts.api.impl.VaultConnector.has(VaultConnector.java:79) 1:15:39 [SEVERE] at org.gestern.gringotts.api.impl.VaultConnector.has(VaultConnector.java:221) 1:15:39 [SEVERE] at com.thedemgel.ultratrader.shop.ShopHandler.createShop(ShopHandler.java:76) 1:15:39 [SEVERE] at com.thedemgel.ultratrader.conversation.createshop.CreateShopCreatePrompt.getNextPrompt(CreateShopCreatePrompt.java:31) 1:15:39 [SEVERE] at org.bukkit.conversations.MessagePrompt.acceptInput(MessagePrompt.java:30) 1:15:39 [SEVERE] at org.bukkit.conversations.Conversation.outputNextPrompt(Conversation.java:264) 1:15:39 [SEVERE] at org.bukkit.conversations.Conversation.acceptInput(Conversation.java:213) 1:15:39 [SEVERE] at org.bukkit.craftbukkit.v1_6_R3.conversations.ConversationTracker.acceptConversationInput(ConversationTracker.java:52) 1:15:39 [SEVERE] at org.bukkit.craftbukkit.v1_6_R3.entity.CraftPlayer.acceptConversationInput(CraftPlayer.java:802) 1:15:39 [SEVERE] at net.minecraft.server.v1_6_R3.PlayerConnection.chat(PlayerConnection.java:881) 1:15:39 [SEVERE] at net.minecraft.server.v1_6_R3.PlayerConnection.a(PlayerConnection.java:842) 1:15:39 [SEVERE] at net.minecraft.server.v1_6_R3.Packet3Chat.handle(SourceFile:49) 1:15:39 [SEVERE] at net.minecraft.server.v1_6_R3.NetworkManager.i(NetworkManager.java:213) 1:15:39 [SEVERE] at net.minecraft.server.v1_6_R3.NetworkManager.c(NetworkManager.java:351) 1:15:39 [SEVERE] at net.minecraft.server.v1_6_R3.NetworkReaderThread.run(SourceFile:94) 1:15:39 [SEVERE] Caused by: java.sql.SQLException: Interrupted getting connection from pool java.lang.InterruptedException 1:15:39 [SEVERE] at com.avaje.ebeaninternal.server.lib.sql.PooledConnectionQueue.getPooledConnection(PooledConnectionQueue.java:253) 1:15:39 [SEVERE] at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getPooledConnection(DataSourcePool.java:658) 1:15:39 [SEVERE] at com.avaje.ebeaninternal.server.lib.sql.DataSourcePool.getConnection(DataSourcePool.java:646) 1:15:39 [SEVERE] at com.avaje.ebeaninternal.server.transaction.TransactionManager.createQueryTransaction(TransactionManager.java:339) 1:15:39 [SEVERE] ... 24 more
@tenowg
no worries thanks for your work.
@Mavhill
My bad, fixing
New file uploaded, give them time to approve it
1.0 download links to UltraRental jar
I have finally been able to sit for a few more minutes and have pushed a new fresh build to Jenkins, doesn't include much, just a small fix, and the introduction of Events.
Also you may notice a new Extension, UltraDenizen, I will attempt to put up a new page here on BukkitDev with more documentation if possible.
UltraDenizen is just an extension that will allow some control of UltraTrader from Denizen scripts (such as, set prices, process sales without opening inventory, give items from Ultratrader shops, etc)
@tenowg OK, I see ! Thank you :D
@Bemina
Well, there are two things you need to do, one is why it is happening, the other is you are using an old version of Ultratrader.
As a side note, I can do nothing about this bug, it is a client bug not a UltraTrader bug... there is a work around in a later build that will remove any items from inventory that manage to slip through this bug. Also to note, these items should be ghost items as well, with a few cases of being able to make them real, but again, it is not something I can fix as it is a minecraft bug with that version of the client.
My bukkit is '1.7.2-R0.3', citizens is '2.0.11 (alpha 2 for MC 1.7.2)', Vault is '1.7.2-R0.2', and put this plugin in the server
why I can do this .. ? (both gamemode 1/0 ) Video
@setzer1411
You would create a different shop for each NPC with different categories.
How can I set it so that specific shops show specific categories? I would like to have various shops throughout my spawn.
@eliludwig
I am not really so sure I follow the need to simplify it any farther, adding in the ability to edit with an NBT editor would just complicate it more for most people. Currently it asks you 2 questions when you drag and drop the item to the trader
1) Name of the category: DisplayName 2) Description: Lore, word wrapped to 30 characters
the third part is created from the DisplayName (category ID)
I don't see how this could get much simpler, the other method would require I write a special NBT editor to enforce the constraints I have in place in the background.
I failed to test colors and other special characters (slipped my mind) but believe they should work.
I usually do offer a "none" answer, I might have missed it in this case, and I will look into it.
The other option you do have is to copy the shop yaml file (the ones in stores), #.yml and manually edit the NBT in that file, stop the server, copy the file over, and restart.. just be careful to not break anything, these can be large files.