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.
So um maybe this is a nooby question but..how do I craft them?
You should add a "Cupid Arrow". When you hit a neutral mob with it, it will be ready to breed, when you hit a hostile, it will become friendly! Just an idea that I had, that I think would be a pretty cool addition to this awesome collection of arrows!
Is there a way to disable their effectiveness in PvP or have a pvp permission?
@brainfreeza
I ment that if you click LeftMouseBreak that you see a text with for example: You chose FIRE ARROW! or something like that would be very nice. If you could put this in the next update it would be nice and I would use this plugin for sure in my server.
(sorry if my grammar sucks, I'm Dutch)
Hi, can you please add, I really need it, that you can chosse wich of the arrows you shoot from your inventory, for example by clicking left mouse break or another key. It would be super nice! Grtz, Brainfreeza
Hi, is it possible to change the pink description under the custom arrows ? Edit: I red older post and saw its possible just re-craft them.
Does creeperheal (or similiar plugin) heal TNT arrow damage ? if not some kind of hook would be great.
Also update to 1.7.x or if its not needed then i can use R: CraftArrows 2 for 1.5.2 Jun 04, 2013 for my 1.7.2 server ?
And new arrow recipes would be nice.
PS: MUNDO THINK YOU A BIG SISSY (ingorethislol)
@therennon
As a general workaround, grab a plugin that not only lets you create your own recipes, but also supports lores/names. With such a plugin, you can make a new recipe, where you can input a "deprecated" arrow, and the "newer" version of the arrow (with the correct lore) will be the result. In effect, you've created a seamless converter that your players can use freely, and you will no longer have to worry about "breaking" arrows.
@CreepCraft
I know man :)
I've tried changing the translation and create new arrows. But new arrows do not appear with the new name. So I wrote the message.
Greetings and thanks
@therennon No you can, you are just doing it wrong. Old arrows dont magically change, you need to craft new ones.
@KevinABC96 Ive already said it's possible but requires me to use native minecraft code. Aka every tiny minecraft upgrade will break my plugin. I can't support that. I dont even have time for anything atm.
Hello,
is impossible to change the translation of the arrows.
I tried changing the names and description, but you can not, nothing happens.
Spigot 1.7.2 last version and last version CraftArrows
thanks
@CommodoreAlpha
@KevinABC96
Wow wow wow. That's a lot of discussing going on there :p.
However you are both kinda wrong with the dispenser part :D.
I haven't looked at the code in a while (at least several months) but if I recall correctly then the problem is not getting the coordinates but more finding out which arrow corresponds to which location.
Let me get the "lore" solution out of the way: Lore is only something for the user, it's nothing I really need to identify an arrow. I have easier and simpler methods.
Now for the explanation: Eg: Player shoots an arrow -> In the event that happens, it gives me, the coder information back: name of the player, the arrow (lore, name etc) and most importantly the ENTITY ID of the arrow. You see, once the arrow is shot, it transforms from an ITEM to an ENTITY. Therefore it loses everything, lore, location, name...
When an arrow is shot from a dispenser, it doesn't tell me the entity ID. Therefore once the arrow is shot, I do not know which arrow "Entity" the arrow actually is. Sure, if you shoot the arrow, the newest created arrow is the entity. That's how my code works, however if you fire more than one dispenser at the same time, it could get confused. It's not 100% failsafe, but it's pretty good.
At the other ideas: I once tried to implement "shuffle arrows on left click" for the bow, but it didn't work right due to a bug with the inventory. I might give it a try again sometime in the future, but I can't promise anything. Same for the firework arrow, easy to do but I will have to see whether I have the time to do so.
@CommodoreAlpha
Wow I really love that idea so much more! Cool particle trail, and when it hits something, create a fireworks explosion! Hopefully CreepCraft takes the idea into consideration for his next update!
How would I switch between arrows? I'm interested in this plugin, but how do I have 3 different types of arrows in my inventory and choose which one to shoot?
@KevinABC96
Good point, but I don't like using the bow to scroll around. It seems annoying. I'd rather introduce some sort of "quiver" item (NOT a chestplate like some plugins) which lets you scroll via left click and right click, and lets you open up an inventory GUI via crouching and right-clicking.
When you're in the middle of a fight, the last thing you'd want to do is scroll around too, because you could end up fumbling and firing the wrong arrow type. Besides, it's the player's responsibility to come prepared for a fight. ;)
As for carrying "favorite arrow types" that's just a bad tactic, as different situations call for different solutions. So it is very much worth it - it's not worth it to those "type" of people you mention, and that will be their fault.
Full configurability sounds like a good idea, but I'm sticking with my viewpoints. People should learn to give up convenience for potential/organisation, not the other way around.
@KevinABC96
I'd probably prefer an Inventory-GUI-based system where you can select the type of arrow you want to use (which defaults onto the first arrow-stack in your inventory if the selected arrow isn't found). The selected arrow type would then be saved to the player (until server restart, probably). I don't like "scrolling around" for arrows, or assigning a bow to a specific type of arrow.
@KevinABC96
Ah, all good points. But...
I'm sure there's a better implementation than lore, though. The issue with dispensers, I presume, is that the Bukkit API doesn't provide much support for them, so the developer has to find his own method to support dispensers and whatnot. It's not impossible (not that you said it was impossible), just probably plain tricky. Lores would probably be a bulky solution because it's an indirect way of solving something, rather than just locating the dispenser directly (yes, it's tricky, but it's more direct).
Now, the problem with what you just stated, is that the lore will get added when the arrow is fired from the dispenser. That defeats the entire purpose of your solution. We wanted to make locating the dispenser, and its fired arrow easier. Now we have to find that arrow, then add the lore... but wait, the lore was supposed to help us find the arrow. So then the point of adding that lore is defeated. You could add lore beforehand, but again, bulky and indirect solutions make for bad implementation. Instead of adding information to an arrow, then listening for an event, then reflecting off that information, you could just listen for an event and make edits to the fired arrow as necessary (e.g. adding an effect).
The problem with fake players, is well, that it would just unnecessarily complicate the situation. Fake players are tricky to work with, and would cause more problems (especially with other plugins that interact with player entities).
Besides, it's just one more .jar file you have to download. Instead of going through all the crap above, you could probably just trust the developer's skills and have one more plugin on your server. Again - the current implementation is non-intrusive, and your suggestions would be intrusive. To me, I could either have one more plugin installed on my server, or an implementation I don't like. I'd rather have one extra plugin. I don't see the problem with that.
@TRaiOdYo
Actually, there's a particle effect that involves "rainbow" redstone dust. (Imagine redstone dust breaking, but the particles are rainbow instead of dark red.) It would be cool if that were the trail, and wherever the arrow hits causes a firework explosion. It would be even better if the arrow could explode into a firework explosion after traveling "x" blocks.
But I would rather that all effects (colours, particles, etc.) be configurable, in that "flare/firework arrows" could be set to have one effect all the time, or that they could be set to have the "random" effect (every firework arrow generates a random effect).
@CreepCraft
I'm going to make a ticket for this soon, but would it be possible to have some sort of method to choose which arrow gets fired out of the bow, in case we have multiple arrows in the same inventory? I know the "first" arrow stack from the inventory is what the bow fires, but it seems sort of... inconvenient? Maybe some sort of way to select an arrow to fire, like a "quiver" system or something else.
@CreepCraft
That'd be awesome. Just one fireworks arrow would be awesome. Perhaps you could do something along the lines of code a cool firework trail to follow the arrow, and have the color(s) be the only customizable thing?
@KevinABC96
One unique line of lore for every arrow within each dispenser. What are the implications of this? (That's a rhetorical question.) In the end, my philosophy is "get it done, and do it well", not just "get it done". What you're suggesting feels more like "get it done, and only care that you got the goal done and nothing else."
Besides, you're simplifying the problem way too much. It's not just a matter of "where was the arrow fired?" There are a lot of other things, I would think, that are involved in this. The arrow, if lores were implemented, would just spit out a coordinate point. What is it supposed to do with that coordinate point? Spawn an arrow at that point? Then what? Reading information off of dynamic lores seems like a bad idea, because I've the feeling it's a pretty unstable and messy/complicated way to implement a feature. Hence why I think using lores is just a bad way to implement dispenser support.
For instance, what happens if you remove an arrow with lore-coordinates? Remove the lore? What if the arrow had more lore from another plugin? What if you moved an arrow from one dispenser to the next? Update the lore? Update the lore when? Every ten seconds? Every time a dispenser gets opened up? What if I don't want to see the lore, because it's really ugly? What if, I want the dispenser-support feature, but I don't want lores? See now, that's an issue, because your way of implementation is imposing on everyone using the plugin, whereas the current way is not. Don't force people to have something they don't want to have because you want it and you're fine with the drawbacks.
@KevinABC96
That just sounds like a really bad implementation, partly due to the fact that it'll lead to... incredibly messy results. You'd have lores flying left and right, and the plugin scrawling to keep track of everything. It'd be one jumbled mess.
@CreepCraft
Instead of having the effects of "Flare Arrows" be based directly on their ingredients, perhaps it can be configured so that it always has one type of effect/colour/power, or it can be defined to have a random effect, colour, and/or power each time.