KarmicShare
KarmicShare
About
This plugin acts as cloud storage for items that anyone (with the proper permission nodes or in the same group) can give and take items to/from. However, in order to prevent players from abusing the global / group item pools, there is a configurable per-item karma system in place to limit how many items a player can take without giving back.
This system can effectively create protected item pools that are accessible anywhere: between different locations, worlds, even servers (by sharing MySQL). Essentially, its a "one chest to rule them all" plugin. Players and groups can create these item pools with peace of mind that their items are safe from griefers/theives/accidents. Think of it like Dropbox for items: Just put your items in KarmicShare and access them wherever and whenever.
With integrated economy support, you can use KarmicShare as a global item exchange. One that is completely managed and funded by the players.
Features
- Shared global pool of items based on player item donations to the community.
- Per-item karma multiplier: specify which items have more karma points.
- Admin commands to manage the item pool and player karma.
- Nifty (optional) effects :D
- Enchantment support
- Potion support
- Physical chests that link to the item pool
- Just have a sign with "[KarmicShare]" tag (no quotations, but DO include brackets) on the second line, and it will become a link sign. Have it above a chest and it will link the chest to the item pool.
- Chest page support
- Can hold more than 2000000000 pages of items! More item slots than you will ever need.
- To change the "page" of a linked chest, either left click the chest or click on the sign (left or right click). Or jump to a specific page using an in-game command.
- Group support, groups have their own shared item pool
- Shift click a link sign / chest to cycle through your groups. Or use a command to set your selected group.
- Multiworld control: Define which worlds have / don't have access
- Vault support
- MySQL support
- Way more powerful than native Ender Chests
- Comment on comparison here
- Economy support
Commands and Permission nodes
Configuration
Community Videos
Thanks to @Diamondsftw
Thanks to @damnnicholas
TODO:
- Ability to change config in-game through commands
- Player signs with their current karma
- Faction support (if possible)
- Dynamic karma
- List players of a group
- Group settings with owners / managers
- Per-item amount limits
- Karma rewards
- Manage group item pools via commands (full support soon)
- Blacklist
- Localization
Trello Dev board
Visit the Trello board to see the current todo list for all projects.
You can comment and vote on any of the topics there.
All changes on the Trello board are in real-time.
Feedback is much appreciated :P If this plugin has helped you, please consider donating.
@Mitsugaru
Thx :D
@Serafan
I'll post a fix soon.
Hi, i got this message on the server start:
13:05:52 [SCHWERWIEGEND] Error occurred while enabling KarmicShare v0.316 (Is it up to date?) java.lang.ExceptionInInitializerError at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at java.lang.Class.getEnumConstantsShared(Unknown Source) at java.lang.System$2.getEnumConstantsShared(Unknown Source) at java.util.EnumMap.getKeyUniverse(Unknown Source) at java.util.EnumMap.<init>(Unknown Source) at com.mitsugaru.KarmicShare.config.RootConfig.<clinit>(RootConfig.java: 27) at com.mitsugaru.KarmicShare.KarmicShare.onEnable(KarmicShare.java:71) at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:215) at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader .java:337) at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManage r.java:381) at org.bukkit.craftbukkit.CraftServer.loadPlugin(CraftServer.java:256) at org.bukkit.craftbukkit.CraftServer.enablePlugins(CraftServer.java:238 ) at net.minecraft.server.MinecraftServer.t(MinecraftServer.java:381) at net.minecraft.server.MinecraftServer.a(MinecraftServer.java:368) at net.minecraft.server.MinecraftServer.init(MinecraftServer.java:197) at net.minecraft.server.MinecraftServer.run(MinecraftServer.java:432) at net.minecraft.server.ThreadServerApplication.run(SourceFile:492) Caused by: java.lang.NullPointerException at com.mitsugaru.KarmicShare.config.RootConfig.getVersion(RootConfig.jav a:379) at com.mitsugaru.KarmicShare.config.ConfigNode.<clinit>(ConfigNode.java: 38) ... 20 more
Someone an idea what to do?
I use Bukkit 1.2.5 R4 and KarmicShare v0.316
@GamingG
Sure, I can look into static item pages as well. It'll be a config option, because I feel that it does make things easier when items are consolidated into stacks automatically.
The only issue that I'm going to have to combat is how to deal with skipping page numbers appropriately... Currently, the page numbers cycle to only the number of pages the items take up. So, how do I handle a empty pages between two pages that do have items? I can't skip them because then that page will no longer be accessible. I could shift the other page numbers, but then they'd no longer be static, which is what you wanted.
The other option would be to arbitrarily just show the empty page... This would preserve the static page states. However, then the page increment would not complete one cycle around until you hit the max integer number, which is over 2 billion. For this option, you'd have to resort to using the in-game commands to set the page number for far away pages.
This plugin looks great for my server's "community center", where players can give items to be taken by others that need them. Awesome job!
One thing I'd really like to see, however, is the ability to bind items to a specific page, so I can have a certain chest set to a certain page that I've dedicated for a specific purpose, and I won't have to worry about items from further pages "spilling" into it as it fills up. Perhaps this could be added as an additional configuration option?
@FlukiestEmperor
Good to know :D It'll be rolled in the next release with the next batch of updates.
@Mitsugaru
Exactly as expected, thank you very much!
@FlukiestEmperor
Try this out and tell me if it works as you expect: https://github.com/Mitsugaru/KarmicShare/downloads
A simple suggestion, perhaps use the "event.setCancelled(true);" when right clicking a sign so a block isn't placed? I'd make a pull request on GitHub, but I don't know how to use it very well.
@khanjal
Let me know what you find out because I can honestly not replicate this issue on my test server...
Had to wait till this morning to do the update but the results are the same.
I found out I'm the only one shift clicking. Everyone else is drag and dropping. It takes them at least 2 tries to get items in or out.
I am constructing a small plain server right now where this and only a couple other plugins are installed to see if I have the same results.
@khanjal
I made a few small changes in regards to shift clicks. Try this updated version here: https://github.com/Mitsugaru/KarmicShare/downloads
Also, is this happening only for the shift clicks or is it occurring for all methods of item interactions?
Well the good news is people can deposit and withdraw. It's still taking them two tries however. I am unsure if this was the case for them before since I had no issues and couldn't test.
I had debug on and here is the output: http://pastebin.com/rLukBFHE
This is from a log parser I have so newest is at the top and not the bottom.
Thanks for assisting with this. I cannot pinpoint a change where this stopped working since I am unsure of the exact day it happened.
I do like how the chest auto organizes materials and provides a last blank page to dump stuff to. I noticed that when I first installed it and was wondering how it was going to handle it :)
@khanjal
Hey, can you test this version: https://github.com/Mitsugaru/KarmicShare/downloads
I removed some unneeded code for shift click give item to chest from player. See if that solves that issue.
Also, please realize that the items "reorganize" themselves if the page is being opened for the first time. Thus, the cobble would have appeared back on page one if it had succeeded and if there was free space on page one. Or it would have added onto the existing section of cobble stacks, whatever page that may be.
The purpose of the last page is to make sure that there is always a place where players can give items. That way, if the previous page has no available slots, then the next available page should be made available so that there are slots for it to grow. Thus, the number of pages view-able is always the number of pages the items take up + 1 extra page.
Not that that is your issue... I'm thinking the updated version I have provided ought to work out.
Sent PM. Interestingly the debug I sent you is from me. It took two tries to get the cobble stone (x3) to stay in the chest. Now that it's happening to me I can confirm the smoke effects don't fire off when it's a failed transaction.
Steps I did:
It's takes two times for the item to stay. I'll see if anyone else can replicate this.
Edit, sometimes the item doesn't reappear in inventory properly until you open the chest again.
@khanjal
Here's what I would like you to do:
Grab this version here: https://github.com/Mitsugaru/KarmicShare/downloads
Enable the following new config options:
Then, for an affected player, give me the console output from the debug messages, so I can get a glimpse as to where its possibly going wrong.
They are getting no errors.
I even reset my karma to 0 from console and even still I could remove or deposit being the same rank as them.
If they deposit an item they close the chest and it appears back in their inventory. If they withdraw as soon as they close chest it disappears.
@khanjal
Is there any output on their end? It should have told them the reason why it got denied.
I can't seem to replicate this on my side but several people say when they try to deposit in the chest items get returned to them.
I have set myself at the same rank and am able to deposit items in it. I have the following notes setup: - KarmicShare.chest - KarmicShare.commands.list - KarmicShare.give - KarmicShare.karma - KarmicShare.sign - KarmicShare.take
Is there any particular reason for this? It seems I am the only one unaffected (even as the same rank as them) and in the global group.
@Mitsugaru
Me gusta, thanks