CraftArrows
PLEASE DOWNLOAD THE UPDATED VERSION OVER HERE:
https://dev.bukkit.org/projects/lorinthscraftarrows
CraftArrows Suite:
(Click the picture)
News: CraftArrows 2 is here! It's almost like an entirely new plugin!
UPDATING TO CraftArrows v2? READ THIS FIRST:
CraftArrows 2.0 is almost a complete recode. A lot of bugs have been fixed, arrows have been added and more features added. However, as a result you are required to use a NEW config file. You can copy most parts of your old one, but you have to do it manually. YOU HAVE BEEN WARNED! BACKUP YOUR OLD CONFIG!
CraftArrows adds 24 new arrows to your server. Each arrow is highly customizable, you can disable, set the duration and power and even change it's crafting recipe! Some arrows have special settings like: Auto-Cleanup, Block-Damage, Extra-Damage, Heal-Amount etc.
PLEASE NOTE: These arrows are NOT identified by ID's. They all have the SAME ID as the normal arrow. If you ask me to give you the ID's, I will IGNORE your post. Get a better Kit's plugin which supports lore/name!
Currently included are:
- Teleport Arrows - Teleports you to where ever the arrow hits
- Shuffle Arrow - Change position with the player/monster hit
- Poison Arrow - Apply poison to your target
- Weakness Arrow - Apply weakness to your target
- Blinding Arrow - Blind your target
- Confusion Arrow - Confuse your target
- Explosive Arrow - Create an explosion where your arrow hits
- Tnt Arrow - Explode on contact with a player/monster (doesn't destroy blocks)
- Crippling Arrow - Slows down your target
- Lightning Arrow - Strike down a lightning where ever the arrow hits
- Piercing Arrow - Does bonus damage on armored targets
- Razor Arrow - Does bonus damage to unarmored targets
- Fire Arrow - Sets target on fire, sets blocks on fire
- Pull Arrow - Pulls enemy hit towards you
- Blood Arrow - Heals for an configurable amount when hitting an enemy
- Torch Arrow - Places a torch where you shoot the arrow at
- Net Arrow - Places webs around a location or player (Setting to auto-cleanup)
- Water Arrow - Places a water source block (Setting to auto-cleanup)
- Sound Arrow - Plays scary & loud sounds to whoever it hits
- Push Arrow - Pushes stuff away from you
- Vortex Arrow - Sucks enemies in the direction of the arrow
- Forcefield Arrow - Pushes enemies away from the arrow
- Wither Arrow - Shoots an actual witherskull
- Ice Arrow - Turns water to ice
- Medic Arrow - Heals hit player
All arrows can be individually disabled in the config file. The duration and power (where applicable) for potion effects can be changed to your preference. Blinding and Confusion don't scale with power (This is how it works in MineCraft!)
Additional features (can be disabled):
- Skeletons now shoot ALL non-environmental harmful arrows (no explosive arrows)
- Skeletons drop special arrows
- Dispensers can now shoot special arrows using: CraftDispenser
Video for v1.1
It ended up a bit longer than I expected, skip towards the end if you just want to see the config
Permission nodes:
Unless you disable a certain arrow, everyone will be able to craft it. If they do not have the correct permission, their arrows will act like regular arrows. Not using a permission plugin? Simply set "UsePermissions" to false in the config file!
- craftarrow.all - Allows the use of ALL arrows
- craftarrow.tnt - Allows the use of the TnT arrow
- craftarrow.lightning - Allows the use of the lightning arrow
- craftarrow.explosive - Allows the use of the explosive arrow
- craftarrow.teleport - Allows the use of the teleport arrow
- craftarrow.blinding - Allows the use of the blinding arrow
- craftarrow.weakness - Allows the use of the weakness arrow
- craftarrow.shuffle - Allows the use of the shuffle arrow
- craftarrow.poison - Allows the use of the poison arrow
- craftarrow.confusion - Allows the use of the confusion arrow
- craftarrow.cripple - Allows the use of the slowing arrow
- craftarrow.piercing -Allows the use of the piercing arrow
- craftarrow.razor - Allows the use of the razor arrow
- craftarrow.fire - Allows the use of the fire arrow
- craftarrow.pull - Allows the use of the pull arrow
- craftarrow.blood - Allows the use of the blood arrow
- craftarrow.torch - Allows the use of the torch arrow
- craftarrow.net - Allows the use of the net arrow
- craftarrow.medic - Allows the use of the medic arrow
- craftarrow.push - Allows the use of the push arrow
- craftarrow.sound - Allows the use of the sound arrow
- craftarrow.water - Allows the use of the water arrow
- craftarrow.vortex - Allows the use of the vortex arrow
- craftarrow.forcefield - Allows the use of the medic arrow
- craftarrow.medic - Allows the use of the medic arrow
- craftarrow.wither - Allows the use of the wither arrow
- craftarrow.ice - Allows the use of the ice arrow
Changelog
2.0 So many things:
- New arrows including: FusRohDah, Medical, Vortex, Forcefield, Ice, wither, water and more!
- Infinity arrow bugfixed for real!
- Water and Net arrow now clean up after use
- You can now specify META-VALUE of a crafting component
- Almost a complete re-code.
- Skeletons shoot special arrows
- Skeletons drop special arrows and more!
1.6
- Added "Amount" variable to each Arrow in the config file, it sets how many arrows should be produced per craft.
- Fixed a update loop that caused the plugin to try to update on every restart
- Improved teleport algorithm to preserve the players view direction when teleporting, instead of inverting it in the direction the arrow was facing.
1.5
- fixed blood arrows throwing an error if health was full
I tested this with 1.5.1 (CB build 2717) and neither crafting nor shooting arrows threw any errors. Please update to a newer build AND more importantly CHECK YOUR CONFIG FILE FOR ERRORS! Nullpointer exceptions often means your config file is missing something/a material is incorrect.
If the error persists, delete your config file and restart your server. (back up your config beforehand if you've made changes).
1.4
- Added Net Arrows (Webs spawned not yet configurable)
- Fire Arrows now set blocks on fire (can be turned off, see "BurnBlocks: true", set to false)
- Added option to turn off Infinity Enchantment not using up special arrows, will now shoot normal arrows instead (Default is off, if you want Infinity enchantment to work set "InfinityBowWorks: false" to true)
- You can now set the name of the arrow.
- Replaced old Description value and changed name value, IF YOU ARE ALREADY USING THIS PLUGIN, CHANGING DESC. WILL RENDER ALL YOUR OLD CRAFTED ARROWS USELESS! DO NOT GENERATE A NEW CONFIG FILE UNLESS YOU WANT YOUR OLD ARROWS TO BE USELESS!
How the config works:
Errors/Issues/Problems/Can't get it to work?
Use the ticket system:
Try to provide as much information as you can such as:
- Errors (if any)
- CB-version
- startup-log (the complete!)
- Steps to reproduce error (if possible)
And anything else that might be important. Incomplete tickets will be closed.
@Solfurie Glad you figured it out! :)
@CommodoreAlpha Hah! There is really no need to apologize to me about the long text. I for one actually enjoy reading so it wasn't a bother at all. I just had the feeling, the way I asked you to point me into some ideas what cooldowns might be used for, made you think I require a really really long text to be convinced :D.
Anyways, interesting read. Really didn't think about it on that perspective before :)
@CreepCraft
There is my list of plugins I use : CraftArrows, Essentials,EssentialsChat/Spawn, InfinityDispenser, MobHealth, Residence, NoInvDeathDrop, WorldEdit, Minemaze, maybe you're right it's a conflict but in this case I don't know which plugin is in conflict.
EDIT : Sorry for the disruption I didn't see the option in essential "teleport invulnerability", so Thanks for this awesome plugin and good continuation
@CreepCraft
Yeah, sorry about the extremely long response, I just sometimes think my writing doesn't provide substantial evidence even when it's half a page long. And sometimes, there are developers that are really skeptical of suggestions (*cough* mcMMO) no matter how detailed and convincing they are. Anyway, thank you for taking the time to consider that suggestion! Really appreciate it. :)
@Solfurie
That's weird! I don't use any kind of ender pear effects nor do I add invincibility of any sort. Going to have to test it myself but from the sound of it I would think it's some kind of conflicting plugin.
Hi awesome plugin ! but i have a little problem with the pull arrow : when hiting it's work but the player is invincible for a couple of second ( it's because you use ender pearl effect ? ) If you can fix it it'll be very great.
@CommodoreAlpha
Holy crap :D You didn't have to write up a complete essay for me, I'm not that hard to convince :P As long as I have an idea of why it would be useful, I don't mind adding it! I do like the idea however and really didn't see it from that side before, I'll see if I can add it next version.
@6double
Make sure you are using Version 2, not 1.7. Sometimes it helps to read.
Here's an argument for the "cooldown" idea (but by default, all cooldowns should be at 0):
One inevitable "issue" any server will have, is a disparity between older and newer players. This disparity actually becomes much wider on RPG+PvP servers, and there are a few reasons why this disparity exists:
1. Older players were simply around longer; people know them more, and they know the server more.
2. Presumably, they have more assets in wealth, items, and housing because they've played longer.
3. For RPG servers, they have better-leveled skills and such.
Point number two is what I'm going to emphasise on for this argument. When players make special arrows via this plugin, there is only one cost: wealth/assets. Poorer players are less able to manufacture special arrows in large quantities than richer players, simply because poorer players do not have the capital that richer players do. The result? Poorer players have less special arrows than richer players at their disposal.
Now, HAVING a certain amount of arrows isn't the issue. The issue is how one is able to USE those arrows. Say Steve is a poorer player, and he just mined a stack of gold making him a valuable target. He has a few special arrows up his sleeve, but not much. A richer player can easily assassinate him by spamming explosive arrows to trap him into a hole, before finishing him off with any other set of arrows. Why can't Steve fight back? He's simply got less arrows, and he's going to run out before his opponent does.
In other words, arrow type, and amount of each arrow type is what wins the battle. Planning to use a certain set of arrows to kill someone is strategic. Trying to win by having more of those arrows is not.
Why not raise the cost? Because then, NONE of the poorer players would have special arrows, and the richer ones would still be able to afford it. On top of that, no one likes expensive arrows that you can waste in two seconds.
Why not lower the cost? That would mean the arrow is trivial to get, really. No challenge there.
But isn't it riskier for a player to carry more and better arrows, thus deterring players from carrying a lot? Well yes, it's riskier, but if a player knows they will die, they will expend their very best before going down.
So what can be done to balance the field between those who have many arrows, and those who do not? An arrow cooldown. Now, having many arrows won't matter if you can't pump 100 razor arrows into your opponent in 10 seconds. You will have to actually plan better than that; mix up your arrows and launch a bigger variety. And on a side note, another reason for cooldowns is that spamming explosive arrows can be rather annoying when they're going your direction.
In a nutshell, cooldowns are to bridge the gap between rich archers and poor archers.
Hey awesome plugin! But for some reason skeletons won't drop special arrows for me. I can still craft the arrows and everything works fine but the skeletons just won't drop them. I checked the config and I didn't see anything that had to do with the skeletons so I just don't know what to do. Please help!
@CreepCraft Thanks as well! :D
@CreepCraft
Very thank you!
Alright I've found a really neat typo in my code.
If you want to stop bonus drops from Skeletons completely, change in your config file (actual config.yml): SkeletonsDropArrows to SkeletonDropArrows
Next release will have the typo fixed in the code so remember to change it back :P
I've also started working on a way to monitor crafting permissions, so next version you will be able to manually set what the permissions for both using and crafting will be called!
@Sarathis
Yeah this really looks like a conflict. Seems like whatever it can pass to CraftArrows, it can't pass to OtherDrops and the same thing in reverse.
I'm slightly hungover but got nothing better to do so I'll get the code right away and put in a small "death switch" that will completely stop any drop part from working if configured so.
I am currently experiencing conflict issues...
The conflict might be between OtherDrops and CraftArrows trying to drop items from Skeletons. I have it set up so OtherDrops will have skeletons drop different items but I am getting errors as well as the set up not working (I have CraftArrow drops for skeletons turned off to the best I can).
Error Log: http://pastebin.com/wY8LTkdW Version: craftbukkit-1.5.2-R0.1 Reproduction: I spawn a Skeleton with an Egg and kill the skeleton with OtherDrops configured to change the drop of skeletons and with CraftArrows having each arrow at zero.
(If there is a way to add a config option to CraftArrows that would disable the drop portion of the plugin I would love you. However it could just be a workable conflict...)
EDIT: There might be an issue with OtherDrops, I'll give them a bug report since I am using a Beta build of course. Did a non-CraftArrows test and it's bugging out on Skeletons.
@CreepCraft
Thank you for your response. I think that many RP servers will thank you.
@Q2Lummox
I could, just a lot of unnecessary code imo. I see why it could be useful, so I may or may not add that next version.
You could add permissions for crafting?. Just as there are permissions to use these arrows, implement permissions for crafting.
Eg
craftarrow.use.tnt (you can use this arrows) craftarrow.craft.tnt (can crafting these arrows)
Epic plugin, Love it :D thanks
@Barnsey3017
Yes it's called a config file and common sense :)
I'm really busy right now (Final Exams, finding a uni, getting a job for summer) I simply don't have the time to make a fancy picture right now as I've done for the old version. Give me a week and hopefully it will be all settled. Then I'll create one.
@CommodoreAlpha I wasn't saying I wont do it nor saying you mentioned you need them. I was hoping you could give me a valid reason to add cooldowns.
The reason why I don't see a point in adding those, is because the special arrows are limited by resources already, unlike other arrow plugins. Remember that adding cooldowns for each arrow requires a lot of code and stress for the server. (Especially bigger-ish servers with lots of pvp). But if you can give me some examples or tell me why it would be needed I'll see about adding it as an option :) @boushwa
That's impossible. I completely recoded how the infinity stuff is handled. If you are using CraftArrows 2 it should under no circumstances still shoot special arrows.
If and only IF the part of code would be broken, then nothing would happen at all, meaning you wouldn't get any special arrows at all.
@CreepCraft
I don't need cooldowns, I'm just suggesting the idea. Despite the fact that you're crafting the arrows (which is cooler than pulling it out of thin-air), it's not much different from a plugin like Mo' Arrows, where you are still able to fire many arrows of a certain type in quick succession (without a cooldown). If you don't want to implement cooldowns, that's perfectly fine. :)
And CraftArmors sounds like a great idea. For that plugin, you could try looking at Armor Abilities for some ideas. I liked that plugin too, but the developer got busy and such, and I'm not entirely satisfied with his plugin as it currently is.
It also seems some arrows effects won't occur when using enchanted bows, but some arrows work.