Scavenger
About Scavenger
This is a continuation of the Scavenger plugin originally written by SirHedgehog. This plugin will automatically recover items for players after they die.
Features
- Automatic item recovery at death.
- Individual item recovery based on permissions if enabled.
- Automatic level and experience recovery at death.
- Supports SuperPerms
- Supports Vault based economies.
- Persistent recoveries. If the server is stopped before a player can recover inventory the inventory is saved to disk.
- Slot based recovery
How to install
Just drop the jar file in your plugins directory and restart your server. Configure permissions.
Links
Hooks
Scavenger hooks into several plugins to play nice with their inventory controls.
- Multiverse-Inventories
- MultiInv
- Mob Arena
- PVP Arean
- Ultimate Arena
- Battle Arena
- WorldInventories
- Minigames
- xInventories
Scavenger also hooks into Residence to provide item recovery override per residence.
Scavenger also hooks into Factions to provide item recovery override in enemy territory.
Scavenger optionally hooks into authentication plugins via Authenticator. Update the config.yml accordingly. More info here.
Dependencies
- To use an economy plugin you will need Vault and an economy plugin.
Permissions
- scavenger.scavenge - Enable item recovery
- scavenger.scavenge.damage_cause
- scavenger.level - Enable level recover
- scavenger.exp - Enable experience points recovery
- scavenger.free - Free item recovery
- scavenger.reload - Reload config
- scavenger.drop.[ITEM] - If SingleItemDrops is true then don't recover these items.
- scavenger.keep.[ITEM] - If SingleItemKeeps is true then only recover these items.
- scavenger.self.on - Allows players to enable item recovery for themselves.
- scavenger.self.off - Allows players to disable item recovery for themselves.
- scavenger.disable - Allows players to completely disable Scavenger.
- scavenger.enable - Allows players to completely enable Scavenger.
- scavenger.list - Allows player to list all pending recoveries. (Purely informational)
If you enabled slot based recovery you will need to give each player a permission node for each slot.
- Armour:
- scavenger.armour.X - Armour slots where X is 0, 1, 2, or 3.
- Armor: 0 = boots, 1 = leggings, 2 = chestplate, 3 = helmet
- scavenger.armour.X - Armour slots where X is 0, 1, 2, or 3.
- Inventory
- scavenger.inv.X - Inventory slots where X is 0 to 35.
- Inventory bar: 0 - 8
- Inventory row 1: 9 - 17
- Inventory row 2: 18 - 26
- Inventory row 3: 27 - 35
- scavenger.inv.X - Inventory slots where X is 0 to 35.
- Offhand (shield etc...)
- scavenger.offhand.1
FAQ
Q) How do I explicitly keep items?
A) Set SingleItemKeeps true. Then use scavenger.keep.[ITEM] to keep the ITEM.
Q) How do I explicitly drop items?
A) Set SingleItemDrops true. Then use scavenger.drop.[ITEM] to drop the ITEM.
Commands
- /scvr - Reload configuration
- /scvron - Self enable scavenger
- /scvroff - Self disable scavenger
- /scvrlist - List all pending recoveries
Videos
Configuration
Donations
Doge: DEaQKfC9ivumNgs3feo53xndhjhd4PV5Yk
BTC: 3Nthksfx8fNKkUgZnHWRTaH4MjUMe4dQG8
ETH: 0xf65cB1960e176ea980545f525f687cF2354D310d
XCH: xch1jgtw6vxyy4wv302xlhyuzwtfen67w5yrvcwc2gz2us3fwtjp3uxq6hlzhc
[23:20:09 ERROR]: Could not pass event PlayerDeathEvent to Scavenger v1.8-4
java.lang.NoSuchMethodError: com.sk89q.worldedit.bukkit.BukkitAdapter.asVector(Lorg/bukkit/Location;)Lcom/sk89q/worldedit/Vector;
at com.cnaude.scavenger.ScavengerEventListenerOnline.isScavengeAllowed(ScavengerEventListenerOnline.java:128) ~[?:?]
at com.cnaude.scavenger.ScavengerEventListenerOnline.onPlayerDeathEvent(ScavengerEventListenerOnline.java:61) ~[?:?]
at com.destroystokyo.paper.event.executor.asm.generated.GeneratedEventExecutor239.execute(Unknown Source) ~[?:?]
at org.bukkit.plugin.EventExecutor$2.execute(EventExecutor.java:70) ~[patched_1.13.2.jar:git-Paper-474]
at co.aikar.timings.TimedEventExecutor.execute(TimedEventExecutor.java:78) ~[patched_1.13.2.jar:git-Paper-474]
at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) ~[patched_1.13.2.jar:git-Paper-474]
at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:513) ~[patched_1.13.2.jar:git-Paper-474]
at org.bukkit.craftbukkit.v1_13_R2.event.CraftEventFactory.callPlayerDeathEvent(CraftEventFactory.java:527) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.EntityPlayer.die(EntityPlayer.java:515) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.EntityLiving.damageEntity(EntityLiving.java:1088) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.EntityHuman.damageEntity(EntityHuman.java:823) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.EntityPlayer.damageEntity(EntityPlayer.java:655) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.EntityLiving.W(EntityLiving.java:259) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.Entity.tick(Entity.java:357) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.EntityLiving.tick(EntityLiving.java:2102) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.EntityHuman.tick(EntityHuman.java:162) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.EntityPlayer.playerTick(EntityPlayer.java:403) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.PlayerConnection.Y_(PlayerConnection.java:145) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.NetworkManager.a(NetworkManager.java:262) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.ServerConnection.c(ServerConnection.java:130) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.MinecraftServer.b(MinecraftServer.java:1129) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.DedicatedServer.b(DedicatedServer.java:439) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.MinecraftServer.a(MinecraftServer.java:943) ~[patched_1.13.2.jar:git-Paper-474]
at net.minecraft.server.v1_13_R2.MinecraftServer.run(MinecraftServer.java:841) ~[patched_1.13.2.jar:git-Paper-474]
at java.lang.Thread.run(Thread.java:748) [?:1.8.0_181]
In reply to danechek:
In reply to danechek:
In reply to cnaude:
Please help me with a scavenger.drop i tried many times, but this not working for me!
Sorry for my bad English
Google Translatorupdate to 1.13.1 please
In reply to danechek:
In reply to danechek:
Could you add a% dropout function to the slot, that is, we give the perm group a chance that its things will be 85% and 15% that they fall out
In reply to Korolys:
Hi! I really love your plugin, but I guess don't work with spigot 1.12.2, I tested with spigot and paper spigot 1.12.2 and don't work for me :c you have on mind update this plugin? I hate use dropprotect >_< haha, your plugin is 1000% superior.
In reply to KayrokMagick:
Hi @cnaude
I have a question: is it possible to have group of players who has a chance to keep their items (for instance 0.5%) and group of players who always keeps their items?
Also I have some ideas:
- add commands to be able to enable/disable "XP restore" and "items restore" separately (if player has both permissions, he is able to choose if he does not want to restore one of both)
- add two config options to choose if items with "Curse Of Vanishing" or "Curse Of Binding" enchant are restore or not? (if both enchants on once item, keep if at least one option is "keep")
Please could you tell me what do you think about these features?
How do I delete or change [Scavenger] before messages?
In reply to Biskabos:
In reply to cnaude:
Thanks for update this useful plugin, keep it up!
Offhand item can't be restore in 1.11.2
I've tried many times.
But slot 45 can not be saved