ArrowPro
ArrowPro creates many new types of arrows to be used. It also supports the ability to level up an arrow skill and both unlock new arrows and improve your speed, and damage of arrows. Also with the use of MobStats, the arrows can be put in the hands of skeletons and stronger mobs will produce more arrow experience.
To setup the plugin place the .jar file in your plugin folder, start the server, edit the config to your liking, and reload the sever. You are ready to start shooting arrows.
If you have any ideas for new arrows, comment bellow and I will try my best to make it happen. Also tell me of any bugs or feature requests.
Features
- Many special arrows.
- Levels for archery.
- Choose the level and the explosive power (if it explodes) of every arrow.
- Configurable speed, damage, duration, and amplification based on levels using equations.
- Make recipes to craft each bow, and each arrow.
Arrows
- Normal Arrow (Arrow): Works identically to the vanilla minecraft arrow.
- Blind Arrow: Applies the blind effect on the entity that it hits.
- Confusion Arrow: Applies the confusion effect on the entity that it hits.
- Creeper Arrow: Spawns a Creeper where it hits.
- Explosive Lightning Arrow: Strikes lightning and explodes where it hits.
- Fiery Explosive Lightning Arrow: Strikes lightning and makes a fiery explosion where it hits.
- Fiery TNT Arrow: Makes a fiery explosion where it hits.
- Fire Arrow: It is an arrow that catches fire.
- Ice Arrow: Freezes water, and lays down snow where it hits.
- Iron Golem Arrow: Spawns an Iron Golem where it hits.
- Lava Arrow: Places lava where it hits.
- Lightning Arrow: Strikes lightning where it hits.
- Poison Arrow: Applies the poison effect on the entity it hits.
- Redstone Torch Arrow: Places a redstone torch where it hits.
- Skeleton Arrow: Spawns a skeleton where it hits.
- Slow Arrow: Applies the slowness effect on the entity it hits.
- Snowman Arrow: Spawns a snowman where it lands.
- TNT Arrow: Explodes where it hits.
- TP Arrow: Teleports the shooter to where the arrow lands.
- Torch Arrow: Places a torch where it lands.
- Tree Arrow: Generates a tree of a random type where it lands.
- Triple Arrow: Shoots three arrows at once.
- Water Arrow: Places Water where it lands
- Weakness Arrow: Applies the weakness effect on the entity that it hits.
- Zombie Arrow: Spawns a Zombie where it lands.
Crafting Arrows
- Arrows and bows must be crafted.
- The recipe can be found in the arrows description. (see Commands)
- The recipe is configurable. (see Config)
- To shoot an arrow, you need a bow of that type.
There is a bug where when an arrow is shot, if the first slot with arrows in it, isn't the right type, it will still subtract an arrow from there and from the first slot with the right type. The arrow in the slot with the wrong type is not gone though, the number displayed has changed, but the actual number is the same. Forcing the game to grab information from that slot (e.g. moving the arrows out of that slot, or dropping an arrow from that slot) will cause the number to return to normal. This is a minecraft problem.
Commands
Commands are typed by typing /ap [command] <args>
- /ap (nothing after) or arrows: List all arrows that are enabled.
- /ap [some arrow]: Gives a description of the arrow.
- /ap [some arrow] legend [bow/arrow]: Explains what each character in the recipe means.
- /ap me: Tells the player their level, their experience and their current arrow.
- /ap give [some arrow] [amount] [data]: Gives an arrow or a bow of the given type. Use the abbreviation, or the name separated by underscores for arrows, and add _bow to the end for bows.
- /ap help: Explains the commands.
Permissions
For permissions, type arrowpro. and then the abbreviation for the arrow as used in a command.
'arrowpro.give': Permission for the /ap give command.
Config
Experience: Has all the ways of giving players experience. There is Entity and Player and each one contains Hit (when the arrow hits the entity) and Kill (when the arrow kills the entity). For Entity, kill may be changed to Kill Equation to make an equation using a mobs level for the x value (requires MobStats).
Player Levels: This is an equation that will determine, using the player's level, how much experience is needed to level up. The level used is the current level and not the next one.
Arrows: Each arrow has its own section. In this section, the minimum level, and the power may be set in the appropriate section. Crafting recipes are set in each bow's section (see Recipes). All bows have a Speed and Damage equation and arrows that apply effects (Blind, Confusion, Poison, Slow, and Weakness), also have Duration and Amplification (Strength). Excluding an arrow from the config will disable it. A complete list and description of arrows can be found in the info.yml file.
Recipes: Each arrow has two types of recipes, Bow Recipe, and Recipe. They are configured the same way except Bow Recipe, makes a bow, and Recipe, makes an arrow, and can have the amount of arrows created be configured. To configure the amount of arrows each time they are crafted, in the Amount section of Recipe type the amount.
Shape: The Shape sections sets what shape the recipe will take. There are 3 rows to fill called Row 1, Row 2, and Row 3 from top to bottom. Inside double quotation marks (") type three characters in each row. Each character represents one material, putting in an empty space will mean to leave that space empty when crafting.
Ingredients: Type each character used in the shape with a colon after it, then put the id of the item that should go where each character belongs.
Equations: There are many equations that can be used in the plugin to determine values. Each place has been described above but here is how to make them. There are six types that can be used and they are:
- Quadratic: Values are a, b, c to be filled in the equation ax^2 + bx + c. Setting a to 0 makes a linear equation, c is the value when x is 0.
- QWD: A Quadratic but the values for a, b, and c can have a d put next to them to multiply that value by the default value of what is being calculated.
- QMD: A Quadratic that gets multiplied by the default value of what is being calculated after it has been calculated. Setup the same as a regular quadratic.
- Exponential: Values ar a, b, c, d, f which are to be filled into a(b^(c(x - d))) + f.
- EWD: The same as a QWD but using an exponential equation instead.
- EMD: The same as a QMD but using an exponential equation instead.
Put the type in the "type" section of the equation and then for each letter, make its section and assign a value.
All equations can have an upper limit and a lower limit called max and min respectively. These may be excluded to have none. Entity Kill, Player Levels, Duration, and Amplification should not be QMD, QWD, EWD, or EMD since they have no default.
So I have the jar in my plugins file but im not seeing it load on the server are there additional steps I need to take to enable this plugin?
@SKYFM
Okay I think I get it now, so you want an arrow where it shoots without having to hold the mouse button down. I can give this a try.
I am sorry that it is hard to understand English with a weak point
my idea is a blaze does an arrow when I continue pushing the mouse button
@SKYFM
Sorry, I don't understand. Can you please explain a little more?
I found good plugin!!! There is an idea. the bow whose automatic fire is continues push a click possible made?
@Gamerguy14
For a failsafe and probably the easiest way to fix it would be to just not place the torch if there already exists a block other than air, tall grass or a snow tile at those coordinates. Or you could take the more complicated route of attempting to place the torch on the side of the block, maybe whatever side is closest to the player that shot the arrow. That could be much more complicated, and I'm not sure if there is an easy way to do that. But really the first option is fairly acceptable.
Also, one of the main things we use for protection on our server, both spawn and personal, is worldguard. I'd be slightly upset if some random guy started torching up my house :( I'd imagine a worldguard hook for your plugin wouldn't be terribly difficult, considering tons of plugins also respect WG.
I think this plugin has a lot of potential, I look forward to your future updates. Thanks a lot for your help
@Zephedge
I will look into the torch thing. This is because the block that the arrow is in is replaced by the torch. The problem is though, should the torch just not be placed, or should the block be broken, and drop something? These blocks can't have torches on them.
I have been trying to not hurt WorldGuard as much as possible, I will have to look more at its code though.
I must have forgotten to insert the instructions in, thanks for pointing that out for me, I will fix it. The only permissions are to take arrowpro.TheArrowAsYouWouldInACommand.
Normal Arrows are used just with the word Arrow.
The error is from calling /ap without any arguments. This does not do anything but print a stack trace.
This is the coolest arrow plugin I've seen since Torcharrows stop being developed. I'll admit though, that I would only like to use it for specifically the torch placing arrow.
I'll organize these into a list because there are actually more points here than I thought there were. These are mostly suggestions and questions I have about the plugin.
And finally a bug report, using only the command "/ap" results in the following error:
@Gamerguy14 a normal arrow firers with no result and no message but the zombie and triple ones seam to be working now just the ones that poison you and stuff
@xenomorph6
Does an arrow shoot, and the result doesn't happen? Are there any messages that get sent to you? Do you get the messages confirming your changes?
hmm when i select a arrow i dont get the error so i just get it useing normal arrows but the arrow types dont work apart from the lightning one and i got the stuff needed for the arrows and bow@Gamerguy14
edit: i have a basic server (java6) plugins : vanishnopacket,travelportals,PEX,multiverse-core,coredata,essentials,worldedit,playerfreeze,simpleannouncer,epicboss
@xenomorph6
Strange error. Have you selected an arrow for the desired slot?
Hi i really like to try this plugin but when i fire one arrow i get a error on the server log ...please help!
22:50:16 [SEVERE] Could not pass event EntityShootBowEvent to ArrowPro v1.1.2 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.jav a:62) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.j ava:477) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.j ava:462) at org.bukkit.craftbukkit.v1_4_6.event.CraftEventFactory.callEntityShoot BowEvent(CraftEventFactory.java:196) at net.minecraft.server.v1_4_6.ItemBow.a(ItemBow.java:51) at net.minecraft.server.v1_4_6.ItemStack.b(ItemStack.java:282) at net.minecraft.server.v1_4_6.EntityHuman.bO(EntityHuman.java:95) at net.minecraft.server.v1_4_6.PlayerConnection.a(PlayerConnection.java: 506) at net.minecraft.server.v1_4_6.Packet14BlockDig.handle(SourceFile:46) at net.minecraft.server.v1_4_6.NetworkManager.b(NetworkManager.java:290)
at net.minecraft.server.v1_4_6.PlayerConnection.d(PlayerConnection.java: 112) at net.minecraft.server.v1_4_6.ServerConnection.b(SourceFile:39) at net.minecraft.server.v1_4_6.DedicatedServerConnection.b(SourceFile:30 ) at net.minecraft.server.v1_4_6.MinecraftServer.r(MinecraftServer.java:59 8) at net.minecraft.server.v1_4_6.DedicatedServer.r(DedicatedServer.java:22 4) at net.minecraft.server.v1_4_6.MinecraftServer.q(MinecraftServer.java:49 4) at net.minecraft.server.v1_4_6.MinecraftServer.run(MinecraftServer.java: 427) at net.minecraft.server.v1_4_6.ThreadServerApplication.run(SourceFile:84 9) Caused by: java.lang.NullPointerException at arrowpro.listeners.Entities.onEntityShootBow(Entities.java:52) at sun.reflect.GeneratedMethodAccessor33.invoke(Unknown Source) at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) at java.lang.reflect.Method.invoke(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.ja va:425) ... 18 more
@woodsnake420
It probably should work with it.
Does this conflict with mcMMO archery? I'd love to put this on, or at least be able to enable parts of it???
@tata1210
It should, I don't see anyway where they can conflict each other.
will there be factions support for this? as well as protection from pvp in a pve world?
@chakyl
What do you mean? There are already costs specific to each arrow if that is what you mean.
Also, can there be item requirements per type?
@Flenix1
I'll take a look at adding some spout in.