PickupArrows
PickupArrows - Get those arrows back!
Version v7.0.0
Description
Ever wished you could pickup the arrows from skeletons or wanted to pickup arrows from an infinity bow?
Or do you want to disable the collecting of fire arrows?
Well, now you can limit the collecting of arrows.
Comes with a config, permissions!
Features
- Configure which arrows should be picked up again. Support for
- flexible configuration
- Control each entity/block/shooter itself with
- fire arrows
- normal arrows
- tipped arrows
- spectral arrows
- tridents
- Crossbow, Drowned and Pillager support
- Permission check the arrow to pickup (turned off by default)
- WorldGuard support. Deny or allow regions, where the plugin should be active!
- NEW: command to toggle the pickup status
Third party features, all of them can be disabled
Please take a look at the detailed information about bStats below!
- bStats for usage statistics
Config
# For help please refer to the bukkit dev page: https://dev.bukkit.org/projects/pickuparrows # Should we use permissions? If yes, the players will need the permissions below. usePermissions: false #Define the sources you want to pickup arrows from pickupFrom: # each entry controls an own range, fire and normal arrows skeleton: fire: true normal: true spectral: true tipped: true
trident: true player: fire: true normal: true spectral: true tipped: true
trident: true
crossbow:
fire: true
normal: true
spectral: true
tipped: true
multishot:
fire: false
normal: false
spectral: false
tipped: false
trident: true # YEP, support for OWN BLOCKS! dispenser: fire: true normal: true spectral: true tipped: true
trident: true
drowned:
fire: true
normal: true
spectral: true
tipped: true
trident: true
pillager:
fire: true
normal: true
spectral: true
tipped: true
trident: true # fallback if an entry is not found unknown: fire: false normal: false spectral: false tipped: false # Should we enable WorldGuard support? useWorldGuard: false # You can use the list below either as an allow or as a denylist useListAsDenylist: false # Write down your regions you want to add regions: [] # Example of the regions could be #regions: # - test # - spawn
Permissions
If the config value 'usePermissions' is set to false, all people can collect the enabled arrows!
If no permission system is found, all permissions are for OPs only! (as long as 'usePermissions' is set to true)
pickuparrows.allow.normal
Description: Ability to pickup normal arrows (non burning).
pickuparrows.allow.fire
Description: Ability to pickup fire arrows (burning).
pickuparrows.allow.spectral
Description: Ability to pickup spectral arrows.
pickuparrows.allow.tipped
Description: Ability to pickup tipped arrows.
pickuparrows.allow.trident
Description: Ability to pickup tridents.
pickuparrows.*
Description: Includes all sub permissions
pickuparrows.allow.*
Description: Includes all permissions for collecting arrows
Commands
There is one command to toggle the ingame pickup status:
- /pickuparrows (aliases are pa, arrow, arrows, pickuparrow)
Downloads/Source Code/Dev Builds
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.
(Latest dev builds/bleeding edge builds) - - Dev builds from Jenkins
(Source code hosted on GitHub) - - Source Code
Future Plans (a.k.a. ToDo)
- Find a way to determine exactly if the player is allowed to pickup
Known Bugs
- If permissions are enabled, the plugin uses a range check. If there is a player in range and has got the permission, anyone will be able to pick the arrow up.
Changelog
Version 7.0.0
- Updates code to support 1.20.6 and higher
- Older versions than 1.20.6 please use v6 instead
- Rename list option to useListAsDenylist
Version 6.2.4
- Updates bStats
Credits
@mushroomhostage for the original plugin!
Banner
Feel free to use this banner!! :)
Statistics (from bStats)
Donations
If you really like my plugin, you can if you want make a donation via PayPal!
Donation chain: -> I receive some money -> Buy coffee -> Work longer -> Faster Updates -> Your benefit!
There is a button on top of this page :)
I'm accepting bitcoins, too! :)
1NnrRgdy7CfiYN63vKHiypSi3MSctCP55C
License
This plugin is released under the MIT license!
Information about the data usage collection bStats
Disabling bStats
The file ./plugins/bStats/config.yml
contains an option to opt-out.
The following data is read and sent to https://bstats.org and can be seen under https://bstats.org/plugin/bukkit/PickupArrows
- Your server's randomly generated UUID
- The amount of players on your server
- The online mode of your server
- The bukkit version of your server
- The java version of your system (e.g. Java 8)
- The name of your OS (e.g. Windows)
- The version of your OS
- The architecture of your OS (e.g. amd64)
- The system cores of your OS (e.g. 8)
- bStats-supported plugins
- Plugin version of bStats-supported plugins
@Chaznuts
We have to make a difference between an arrow and a mob ;)
Of course both are entities, but the arrow carries the information of the shooter (don't ask me why a dispenser is null then, eh), so I can make a difference between players and skeletons and I'm able to get the skeleton out from this arrow.
However, Bukkit offers no method to check how this mob was spawned.
There it's going to be tricky.
I can add a workaround, but this wouldn't suite into the plugin since it would not be lightweight anymore.
Here are my two possibilities.
I listen to every creature spawn and check if it's spawned by a spawner or natural. Then save the UDID to a list and keep the list always active, to ensure that the entity gets removed from the list, I would need to listen to every creature death and then maybe remove it from the list again.
Variant 2: Equip every mob spawned by a spawner with special metadata and then check again every mob for special metadata again.
This data won't be saved on shutdown however.
There are of course leaky tickets for exactly this problem:
https://bukkit.atlassian.net/browse/BUKKIT-2598
http://forums.bukkit.org/threads/check-if-entity-was-spawned-from-mob-spawner.114451/
TL;DR I will implement such a feature as soon as Bukkit offers a clean, easy and lightweight possibility to get the spawn reason of a mob.
Feel free to prove me wrong, but please with links or code examples then ;)
@xGh0sTkiLLeRx
You sure here? How do other plugins, like mcMMO, mob drop altering plugins, and exp drop altering plugins add in restrictions for spawners? Do you mean you couldn't tell the difference between an arrow shot by a normal skeleton vs spawner skeleton? Because it seems you could tell apart the skeletons themselves.
@quietfreak
Sorry for the delay.
I went into testing, and came to the same result!
This should be due to BukkitForge.
I suggest switching to MCPC+ if possible?
Also upgrading might help,
There is already a 1.5.2 FTB version: http://feed-the-beast.com/15beta.php
And BukkitForge seems inactive...
@xGh0sTkiLLeRx
@xGhOsTkiLLerx:
I am running bukkitforge-1.4.7-257.jar
Thanks for checking this for me!
@quietfreak
Only v2.1.3 will work.
Which build of BukkitForge are you running?
Then I can test if I have these issues, too
I'm running Feed The Beast (minecraft 1.4.7) with BukkitForge. I can get it to run, BukkitForge says that it's enabled, but when I go near the arrow a skeleton shoots, it does not do anything. Nor do I see any kind of activity on the server...
I tried the latest pickuparrows v2.2, and also v2.1.3
does it not work well with BukkitForge?
@ButtCheddaaa
All players, yourself and others, too
Does the "from players" mean from other players, or does it include yourself?
@Chaznuts
I wish I could...
No way to determine whether this skeleton is spawned by a spawner or natural :S
Edit: A workaround wouldn't fit in this plugin, because it would consume a lot more RAM then.
@xGh0sTkiLLeRx
Anyway to make this so spawner skeletons arrows can't be picked up? I don't mind non-spawner arrow farms, because you have to actually work to trap the skeletons, plus they despawn after a while.. but when the arrow farms are pre-built and skeles just pour in to where they can farm them, it's a little much.. Hope you agree and can make a change! :) Thanks!
@MinescapePvP
This error is caused by SurvivalGames, go and ask there for help.
I deleted your comment, because its spamming the page with the stacktrace.
Use pastebin for something like that.
Major update with WorldGuard support released!
@Pokeluigimon
Pssst!
The latest dev build has support for WorldGuard and region black (or white) listing!
The next major version will include this ;)
@Pokeluigimon
Sorry for the delay ;)
I might add some sort of WorldGuard regions options to the next major version, sounds like a good idea!
Is there a way to only activate this only in a certain region? I have the worldguard plugin. I made "Capture the Flag" game, which people need to collect wooden shovels and throw them into a pressure plate to score a point. However, I have dispenser+arrow traps which ofcourse try to kill the player, but my problem is that players can pick up the arrows and throw them down the pressure plate and score that way which is cheating.
I still want players to still be able to collect arrows from dispensers in wilderness, while the other players can't collect arrows from dispensers in Capture the Flag.
Is there some sort of solution to this? Thanks!
1.5.1 version is uploaded! Grab it here, while not approved!
1.5 version is uploaded! Grab it here, while not approved!
http://dev.bukkit.org/server-mods/pickuparrows/files/11
@bitfed
I thought about some limitation, too
However not sure (yet) how to realize this.
I might try something, but it could be too, that this is not possible...
Very cool plugin, nice work. I've always liked this idea, except to keep players from exploiting it, would it be possible to have a 'legit' flag where you can only get 2 arrows per skeleton? This would keep players from farming arrows from skeleton archers.
Thanks
@xGh0sTkiLLeRx
That was the cause. Thank you. :)