InventorySQL
German developer |
---|
I n v e n t o r y S Q L
I n v e n t o r y S Q L
Player inventory saved into a Database
Features
Copy users' inventory in a configurable database, allowing it to be displayed on a website and use it for Server-to-Server Inventories
InventorySQL is designed to be as customizable as possible and Server Owners and Developers can choose how they'd like to save their data. Future versions will feature an automatic conversion tool.
Disclaimer
Metrics
This plugin utilises 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 Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true or turning enable-metrics to false in InventorySQLs Configuration.
Autoupdater
This Plugin uses Updater. It will automatically search for Updates. If you'd like to disable this feature you can turn it off in the Configuration by setting auto-update to false.
For Serverowners
- Addons
- Installation
- Configuration
- Localisation
- Frequently Asked Questions (FAQ)
- For Developers (API)
- Special Thanks
Permissions
InventorySQL.*: description: legacy-styled Permission for anything children: InventorySQL.reload: true InventorySQL.save.*: true InventorySQL.reload: description: Allows you to reload Language or Configuration default: op InventorySQL.save.*: description: legacy-styled Permission for anything related to saving children: InventorySQL.save.other: true InventorySQL.save.self: true InventorySQL.save.other: description: Allows you to save other players default: op InventorySQL.save.self: description: Allows you to save yourself default: true
InventorySQL.switch.self -> switching for yourself (No default yet) InventorySQL.switch.other -> switching for others (No default yet)
Commands
<Optional> [Required]
- /invSQL reload config : reloads config
- /invSQL reload language : reloads language file
- /invSQL save <player> : saves yourself or the given player
- /switch [server] <player> : moves yourself or the given player to the given Server
Links
License
Version 3.0 is now under the zlib/libpng License, Versions before 3.0 are still licensed under Apache License 2.0
Contact
You can find me in IRC: #invsql on irc.esper.net Please do not ask me for any Messenger just because you would like to be in my list.
If you like InventorySQL, please consider donating to the project via paypal, using the link on the top-right of the BukkitDev page :)
Nous avons un problème d'ajouts d'items lorsque qu'il y a plus d'un item à ajouter : Lorsqu'on rentre, par exemple, cette chaîne "[+(264:0)x12],[+(7:0)x3],[+(3:0)x2]" (12 diamants, 3 bedrock, 2 terre), le serveur, après avoir fait un /ichk, va nous donner en réalité 32 diamants, 6 bedrock et 2 terre.
Après plusieurs tests, nous nous sommes rendu compte que le plugin oublie d'enlever l'item précédemment ajouté (ici, il exécute 3 fois la boucle pour les diamants, 2 fois pour la bedrock et 1 pour la terre).
Voilà, merci à toi pour ce beau plugin ! :)
Bonne continuation
Thank you very very much!
@ThisIsAreku
Awesome thank you very much I will try it ASAP. My server has on average 50+ people in it so it needs to be low on memory usage otherwise the server lags like mad!
good thanks a lot !
@Thisnamewilldo
@LtSich
@UbuntuFreak
Version 0.8.2 is almost ready, with huge HUGE code improvements. And also a lightweight mode, to disable the check every x seconds. But even in the classic mode, memory usage is very low now
@Kalorte
C'est pas grave, le problème est d'avoir un inventaire différent par monde, et multiverse-inventories le fait. Après, InventorySQL mettra a jour ce qu'il trouve, donc un inventaire différent dans chaque mondes
@ThisIsAreku
Sauf que multiverse-inventories ne gère pas le SQL ;)
@Qentus
Thing is I don't only use it for a vote system, I use it for many things on my website, and the inventory needs to update every 5-10 minutes for it all to work properly. I'm sure Areku can find out what is causing the performance problems anyway and keep it as checking every 10 minutes without the problems :)
For me it would be great if I can update the inventory only when I use the /invsql check <player>.
With this I can check the inventory with one command, make my change on the pending table, and then reupdate. But only for this player.
I use the plugin for some trading system (with WebSend), I don't need to have the table update every x seconds.
So perhaps just one option to disable automatic update and only update with the /invsql check <player> (in console if possible with admin right).
But yes this plugin is very usefull for me, thanks for your work ! :)
@Thisnamewilldo
So write to your website that people must relog to recieve diamonds. It is better than laggy server.
@UbuntuFreak
This would be no good to me, I need mine to update every 10 minutes as I have coded a system for this to give diamonds when people vote. @ThisIsAreku if you fix the performance issues I will definitely be putting a donation in your wallet :)
@Thisnamewilldo
and @ThisIsAreku: An option to update a player's inventory only on login/quit would be nice :)
This plugin is absolutely amazing as I have said many times, but there is still a performance issue - it lags my server a lot when there are more than 30 people online.
ThisIsAreku: I'd like to use your plugin to have live inventory on the website of my WebAuctionPlus plugin. I'm unsure how this will all work yet, but I don't think it will be to hard. I have a little work to do before I start on this. you might wanna check out this class I made http://code.google.com/p/webauctionplus/source/browse/trunk/java/src/me/lorenzop/webauctionplus/mysql/MySQLConnPool.java it should handle mysql connections very well for multi threaded plugins.
I was taking a quick look at your code, seeing if I could find that memory leak. every time I thought I found it, I think I was wrong. my thought was to try and simplify the CoreSQL classes so fewer objects are created. the way I'd do it, I'd have a hashmap of the processes to run, then a single async scheduler to handle and run the processes, and some code to decide when each one should be run. does that make sense? you might have more experience, just offering my opinion.
This version works BUT I still see mega memory leaks. For example: InventorySQL is sending data to DB every X seconds and uses more RAM than HawkEye which is sending data after every item pickup and a lot of other actions. Why?
This plugin is great, but I can´t use it now because of these memory leaks. I am preparing a Tekkit server so I need every MB of RAM.
I just want to automatically give items to players via web (VIP).
Can you optimize your plugin please and propably add more options to config?
@usunofbeach
v 0.8.1 can backup player's inventory. Restore will be alive for
v 0.8.2v 0.8.3@Qentus
Not now, but I can implement it in the next version
Can I configure plugin to send data only on player login/quit? I want this plugin to be as lightweight as it can be.
wow! Nice plugin! And if it can backup/restore player‘s inventory...then wowwwwwwwwwwwwwww!
@Kalorte
En fait le plugin ne donne pas directement un inventaire par monde, mais il peut gérer différent inventaires, un par monde (option multiworld: true)
Pour avoir un inventaire par monde multiverse, y'a http://dev.bukkit.org/server-mods/multiverse-inventories/ (je crois qu'il marche, j'ai pas testé)
French developer so je parle français :p
Est-il possible de le rendre compatible avec Multiverse? Pour avoir donc un inventaire par monde.
En tout cas, jolie plugin, bonne continuation !