AShops
Version 2.3 is now available!
AShops allows players to sell and buy items with a chest. Unlike many other shop plugins, it doesn't use signs to represent a shop offer. Instead, it uses chest inventories and item descriptions and thereby makes possible to sell or buy (or both) items of different types using only a single chest. It means less chests and time spent on creating shops. Using description as an offer details source makes shopping also more friendly than reading a raw text from a sign, and by representing an offer as a real item, not only it is easier to find what you need, but it also allows you to sell/buy the exact item you have in your inventory, with all data it contains.
(prepared by Lambert from Bosnia and Herzegovina)
What's new in 2.0?
- New shop interface! You don't have to use commands anymore. (see the next section for more info)
- Transaction notifications work even when a shop owner is offline.
- + old features: income taxes, shops limits, minimal price limits, server shop account.
How to use the new interface?
- To create a new shop you have to place a chest and attach a sign to it or above it. For a player shop set first line to :as:, for a server shop: :ass:.
- To manage your shop (add offer, open/close it, remove it) shift-right-click on the sign and use menu icons. Read icon descriptions for more info on manager options.
- To sell/buy items from other players' shops left click on a shop sign and then on an item you want to buy/sell. Read icons' descriptions for more info on trade options.
- To load/collect items from/to your shop left click on a shop sign and then on an offer's icon. If you manage other players' shops or server shops, you will have to use a right mouse button to manage an offer.
- You still can use commands to create and manage shops. Use /ashops command to list all available commands.
How to install this plugin?
- Place AShops.jar file in the /plugins/ folder.
- Set database to MySQL in the bukkit.yml file in a server main directory.
database: username: userName isolation: SERIALIZABLE driver: com.mysql.jdbc.Driver password: databasePassword url: jdbc:mysql://hostName/databaseName
- Make sure you set the following properties to the correct values: username, password, url.
Permissions
- ashops.operator - a set of permissions for a server operator.
- ashops.manager - allows to: create a new player shop for other players.
- ashops.player - a set of permissions for a player.
- ashops.servershop - allows to: create a server shop.
- ashops.playershop - allows to: create a player shop.
- ashops.buy - allows to: buy items from shops; buy items in own shops if a player has also permission to create one.
- ashops.sell - allows to: sell items to shops; sell items in own shops if a player has also permission to create one.
- ashops.free - allows to: create player shops for free.
- ashops.unlimited - allows to: create create any number of player shops.
- ashops.anyitem - allows to: sell or buy any item.
- ashops.anyprice - allows to: sell or buy items for any price.
To the Users of previous versions
AShops 2.0 is not backward compatible. We changed a database system to more reliable one and now we have to use other structure of tables. AShops doesn't support a flat files storage system anymore - now it works only with MySQL databases and, hopefully, it will support SQLite soon. All features that used WorldEdit will be released as a separate file.
@Peragana
So, probably it's problem with your MySQL server configuration, if HawkEye doesn't works too. Or you're making a mistake in ashops and/or hawkeye configuration.
@krisukun
I attempted to install HawkEye and it doesn't seem to be working however it isn't showing up in the /plugin area at all. Nevertheless I have a little more information and that is when I used /plugins, ashops appears and it appears green as in it should work, as well as when I use /ashop in chat it gives me the information. However when I try to make a shop, it tells me
"Error occurred. Please try again or ask server operators for help."
@Peragana
Do you have any error code? Can you run other mysql-only plugins like HawkEye on your server without errors?
I didn't test ashops 2.X with MCPC+, versions from 0.1 to 0.5 works with MCPC+ and pixelmon. I will do that in few next days.
Can someone please help me with my problem?
I'm trying to make a pixelmon server and there is literally no better plugin for it than this one and I can't get it to work. I haven't used mysql before so I might have messed something up but as far as I know I did everything correctly
@xSnowBlitzz718
Yes, it does.
Does this plugin work with 1.7.x?
@wdele
Hmm... So, I don't really know what thing is causing this error.
If you want, I can do some further testing to check some possible scenarios of this error. I can do that in few next days. I must install and configure again mysql software on my computer.
@krisukun This is the first time, however after it didn't work I have installed some other versions to see if they do work.
@wdele
Is it your first installation of this plugin, or you are having this plugin from some time and this error happened suddenly?
@krisukun Everything is correct.
@wdele
Check your MySQL server and bukkit.yml configuration.
Same problem @Peragana:
[15:40:30 INFO]: Can not test connection as heartbeatsql is not set [15:40:30 INFO]: Closing Connection[AShops.0] psReuse[0] psCreate[18] psSize[18] [15:40:30 INFO]: DataSourcePool [AShops] grow; id[AShops.2] busy[3] max[20] [15:40:30 WARN]: pl.austindev.ashops.ShopDataException: Could not create a new player shop in the database for: wdele18, in : Location{world=CraftWorld{name=Robinemap},x=-232.0,y=72.0,z=193.0,pitch=0.0,yaw=0.0}. [15:40:30 WARN]: at pl.austindev.ashops.playershops.PlayerShopsManager.createShop(PlayerShopsManager.java:61) [15:40:30 WARN]: at pl.austindev.ashops.playershops.PlayerShopsHandler$6.run(PlayerShopsHandler.java:414) [15:40:30 WARN]: at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftTask.run(CraftTask.java:58) [15:40:30 WARN]: at org.bukkit.craftbukkit.v1_7_R1.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53) [15:40:30 WARN]: at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145) [15:40:30 WARN]: at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615) [15:40:30 WARN]: at java.lang.Thread.run(Thread.java:744) [15:40:30 WARN]: Caused by: javax.persistence.PersistenceException: ERROR executing DML bindLog[] error[Field 'id' doesn't have a default value] [15:40:30 WARN]: at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:116) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.insert(DmlBeanPersister.java:76) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.persist.DefaultPersistExecute.executeInsertBean(DefaultPersistExecute.java:91) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeNow(PersistRequestBean.java:500) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeOrQueue(PersistRequestBean.java:530) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.persist.DefaultPersister.insert(DefaultPersister.java:406) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.persist.DefaultPersister.saveVanillaInsert(DefaultPersister.java:377) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.persist.DefaultPersister.saveVanillaRecurse(DefaultPersister.java:361) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.persist.DefaultPersister.saveRecurse(DefaultPersister.java:308) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.persist.DefaultPersister.save(DefaultPersister.java:282) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.core.DefaultServer.save(DefaultServer.java:1629) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.core.DefaultServer.save(DefaultServer.java:1619) [15:40:30 WARN]: at pl.austindev.ashops.playershops.PlayerShopsManager.createShop(PlayerShopsManager.java:59) [15:40:30 WARN]: ... 6 more [15:40:30 WARN]: Caused by: java.sql.SQLException: Field 'id' doesn't have a default value [15:40:30 WARN]: at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073) [15:40:30 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593) [15:40:30 WARN]: at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525) [15:40:30 WARN]: at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986) [15:40:30 WARN]: at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140) [15:40:30 WARN]: at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626) [15:40:30 WARN]: at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111) [15:40:30 WARN]: at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2407) [15:40:30 WARN]: at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2325) [15:40:30 WARN]: at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2310) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.lib.sql.ExtendedPreparedStatement.executeUpdate(ExtendedPreparedStatement.java:164) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.type.DataBind.executeUpdate(DataBind.java:74) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.persist.dml.InsertHandler.execute(InsertHandler.java:158) [15:40:30 WARN]: at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:105) [15:40:30 WARN]: ... 18 more
@krisukun
No need to aplogize, not your fault or austin his fault. Bugs always happen, even big one's... Goodluck with version 3 and thank you for your support.
@Pixiyo
Well... Only one thing I can do now is say "Apologize" for this situation...
I'm not a developer of this plugin and I can't do anything to repair these bugs. Austin promised version 3.0 but nothing more at the moment is confirmed. At the moment version 2.4 is really needed now, 2.3 is too buggy and as I can see now - it's too dangerous to use this version on server with regular players.
For version 3.0 we will wait a bunch of months. Austin currently don't know how to make new version of this plugin, because 0.5 structure is too complicated and it's taking too much server resources, version 2.X structure with bukkit database tools is too complicated to use as I can see. Austin don't know how to make lightweight+easy+safe to use ashops with flat file and mysql support at the moment.
Version 2.4 or 0.6 ( temporary continuation of 0.5) is really needed now and I will do everything I can to rush him to make new, bug free version before 3.0 will come. I'm going to leave this plugin team, if no new version will available before end of march. My patience is ending up, and my irration is growing up really quickly... At the moment, this plugin with tons of bugs much likely is "dead" in my opinion.
This plugin.. People on my server got a trick so they can duplicate items like hell. Economy on a 100+ player server is destoryed. I know it's not the developers problem, still not nice at all...
http://i.imgur.com/MENpLWR.png
@Pixiyo
I told Austin about this bug, but I don't know when he's going to fix it. Maybe will be version 2.4, but much likely it will be fixed in upcoming 3.0.
@jozefmery
As far as I know, it's blocked because Bukkit has too many bugs with inventories, and it's too risky to use this plugin with Creative Mode. But maybe it's possible to unlock this feature for OPs or with special permission only for admins, I wil ask about this.
@_austin
Can u allow OPs to edit shop with gm ?
Found a mayor bug: if a user toggle's his shop off and then there's a restart later the shop won't activate anymore. It won't respond anymore, items gone, you can even delete the sign without removing the shop.
@_austin
Nice! Version 3.0 :)
Got this error while trying to use the plugin.
16.02 22:38:17 [Server] SEVERE ... 18 more
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:105)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.persist.dml.InsertHandler.execute(InsertHandler.java:158)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.type.DataBind.executeUpdate(DataBind.java:74)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.lib.sql.ExtendedPreparedStatement.executeUpdate(ExtendedPreparedStatement.java:164)
16.02 22:38:17 [Server] SEVERE at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2310)
16.02 22:38:17 [Server] SEVERE at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2325)
16.02 22:38:17 [Server] SEVERE at com.mysql.jdbc.PreparedStatement.executeUpdate(PreparedStatement.java:2407)
16.02 22:38:17 [Server] SEVERE at com.mysql.jdbc.PreparedStatement.executeInternal(PreparedStatement.java:2111)
16.02 22:38:17 [Server] SEVERE at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2626)
16.02 22:38:17 [Server] SEVERE at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2140)
16.02 22:38:17 [Server] SEVERE at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:1986)
16.02 22:38:17 [Server] SEVERE at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3525)
16.02 22:38:17 [Server] SEVERE at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3593)
16.02 22:38:17 [Server] SEVERE at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1073)
16.02 22:38:17 [Server] SEVERE Caused by: java.sql.SQLException: Field 'id' doesn't have a default value
16.02 22:38:17 [Server] SEVERE ... 6 more
16.02 22:38:17 [Server] SEVERE at pl.austindev.ashops.servershops.ServerShopsManager.createShop(ServerShopsManager.java:45)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.core.DefaultServer.save(DefaultServer.java:1619)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.core.DefaultServer.save(DefaultServer.java:1629)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.persist.DefaultPersister.save(DefaultPersister.java:282)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.persist.DefaultPersister.saveRecurse(DefaultPersister.java:308)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.persist.DefaultPersister.saveVanillaRecurse(DefaultPersister.java:361)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.persist.DefaultPersister.saveVanillaInsert(DefaultPersister.java:377)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.persist.DefaultPersister.insert(DefaultPersister.java:406)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeOrQueue(PersistRequestBean.java:530)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.core.PersistRequestBean.executeNow(PersistRequestBean.java:500)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.persist.DefaultPersistExecute.executeInsertBean(DefaultPersistExecute.java:91)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.insert(DmlBeanPersister.java:76)
16.02 22:38:17 [Server] SEVERE at com.avaje.ebeaninternal.server.persist.dml.DmlBeanPersister.execute(DmlBeanPersister.java:116)
16.02 22:38:17 [Server] SEVERE Caused by: javax.persistence.PersistenceException: ERROR executing DML bindLog[] error[Field 'id' doesn't have a default value]
16.02 22:38:17 [Server] SEVERE at java.lang.Thread.run(Unknown Source)
16.02 22:38:17 [Server] SEVERE at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
16.02 22:38:17 [Server] SEVERE at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
16.02 22:38:17 [Server] SEVERE at org.bukkit.craftbukkit.v1_6_R3.scheduler.CraftAsyncTask.run(CraftAsyncTask.java:53)
16.02 22:38:17 [Server] SEVERE at org.bukkit.craftbukkit.v1_6_R3.scheduler.CraftTask.run(CraftTask.java:58)
16.02 22:38:17 [Server] SEVERE at pl.austindev.ashops.servershops.ServerShopsHandler$1.run(ServerShopsHandler.java:79)
16.02 22:38:17 [Server] SEVERE at pl.austindev.ashops.servershops.ServerShopsManager.createShop(ServerShopsManager.java:47)
16.02 22:38:17 [Server] SEVERE pl.austindev.ashops.ShopDataException: Could not create a new server shop in the database in: Location{world=CraftWorld{name=world},x=216.0,y=103.0,z=1023.0,pitch=0.0,yaw=0.0}.
16.02 22:38:17 [Server] INFO DataSourcePool [AShops] grow; id[AShops.2] busy[3] max[20]
16.02 22:38:17 [Server] INFO Closing Connection[AShops.1] psReuse[1] psCreate[8] psSize[8]
16.02 22:38:17 [Server] INFO Can not test connection as heartbeatsql is not set
What do I do