Cannons

Cannons

What can it do?

Cannons is a highly configurable plugin which allows you to fire block build cannons. It is possible to aim and load different amounts of gunpowder to hit targets at different ranges. The power of redstone makes it possible to set the gun to auto load and activate the rapid fire mode. Choose your projectile from a broad spectrum of cannonballs and smash the enemy.

With Cannons 2.0 you are also able to design your own cannons using .schematic files and give each cannon their own settings, as well as different types of projectiles.

http://dev.bukkit.org/media/images/55/103/cannons_650.png

Features

  • Build a cannon out blocks
  • Design your own cannon and save it as .schematic
  • Design and fire different projectiles to smash your enemy
  • Use redstone to fire guns from distance
  • Rapid fire with auto-load possible
  • Destroyed blocks can be restored with CreeperHeal (if 'custom' option is true)
  • Cannons will stay load and aligned due to the database
  • Movement plugins (e.g. Movecraft) are supported if a cannon has a sign to store a tag
  • API for ships plugins (e.g. iSails) to use cannons on ships without signs.

Videos

by Wukkit

by wickedbrother

out-dated video

Alternatvie plugin showcase

Installation

  1. Install WorldEdit first (don't forget this)
  2. Copy the cannons.jar into your Bukkit's "plugins" directory, then run the server.

Dependencies

This plugin requires:

Metrics

This plugin utilises Hidendra's plugin metrics system, which means that the following information is collected and sent to mcstats.org:

  • A unique identifier
  • The server's version of Java
  • Whether the server is in offline or online mode
  • The plugin's version
  • The server's version
  • The OS version/name and architecture
  • The core count for the CPU
  • The number of players online
  • The Metrics version If you wish to disable this feature (/me cries), you can do so by opt-ing out, which you can do in the config file under /plugins/PluginMetrics/

Information for Cannons 2.x

Tutorial:

Additional information:

Cannon Designs

Known Bugs

  • The cannon ball (snowball) becomes invisible after 60 blocks but hits the target.
  • Voxelsniper will delete Buttons/Torches when you load the gun (be careful when you click the barrel)

ToDo

  • Additional events/methods for seamless operation with movement plugins e.g. Movecraft, iSail

Credits

  • Raser4000
  • DreTax
  • JlJlJl
  • and many more

Donate

You must login to post a comment. Don't have an account? Register to get one!

  • Avatar of NOBUTSS NOBUTSS Dec 28, 2015 at 08:17 UTC - 0 likes

    @DerPavlov: Go

    Yeah,I set the cobblestone name and lores just like what you told me.But either the "test" cobblestone and normal cobblestone can't load.

  • Avatar of DerPavlov DerPavlov Dec 27, 2015 at 20:07 UTC - 0 likes

    @NOBUTSS: Go I used 'simple rename' and added:

    • a name '/setname test'
    • first lore '/addlore a1'
    • second lore '/addlore a2'

    The default cobblestone config was edited to:

      loadingItem: 'COBBLESTONE:0:test:a1:a2'
    

    Let me know if I missed something.

  • Avatar of NOBUTSS NOBUTSS Dec 26, 2015 at 21:15 UTC - 0 likes

    Why this do not work?

      loadingItem: 'COBBLESTONE:0:test:a1:a2'
    
    Last edited Dec 26, 2015 by NOBUTSS
  • Avatar of Unpluggeddk Unpluggeddk Dec 19, 2015 at 13:48 UTC - 0 likes

    @DerPavlov: Go

    Im sure that different config per world, probably would be the most effecient way to do it :)!

  • Avatar of DerPavlov DerPavlov Dec 13, 2015 at 15:19 UTC - 0 likes

    @XxNaelxX: Go Copy and rename one of the default projectiles.yml in plugins/Cannons/projectiles. Change the loadingItem to:

    loadingItem: 'SKULL_ITEM:1'
    

    EDIT: Somehow your question changed :)

    Second answer: You can set 'fireAfterLoading'. The cannon will fire when the cannon is loaded (and the projectile pushed, if required). The cannon will not fire automatically if you are sneaking while loading. But it is not owner specific.

    Last edited Dec 13, 2015 by DerPavlov
  • Avatar of XxNaelxX XxNaelxX Dec 13, 2015 at 12:34 UTC - 0 likes

    is there a way to make it fire automatically except at its owner?

    Last edited Dec 13, 2015 by XxNaelxX
  • Avatar of DerPavlov DerPavlov Dec 09, 2015 at 20:49 UTC - 1 like

    @nashoxx: Go There seems to be a divide by zero error while calculating the cannonball velocity. Can you check if your 'maxLoadableGunpowder' is >= 1.

    To disable gunpowder use 'needsGunpowder: False'

    You can always send me your design files, I will have a look and try find the problem.

    Last edited Dec 09, 2015 by DerPavlov
  • Avatar of nashoxx nashoxx Dec 09, 2015 at 18:36 UTC - 0 likes

    I've been trying for several days to add a new custom type of cannon. The results are the same as always, the thing just throws a shit ton of errors in the console. I don't know what I'm doing wrong. I have the schematic, and the .yml file with the same name as the schematic, I load the plugin and I can actually create the schematic. but at the moment of firing nothing fires and when I try to positionate again the cannon to fire it throws a shit ton of errors. I configurated the thing so it doesn't need to use gunpowder or that stick thing to push or clean the barrel. So it just needs the projectile. I'm testing this thing with the cobblestone projectiles which I just modified so it doesn't damages the terrain. Still, I haven't been able to fire a single time. These are the erros I get:

    I'm using Spigot 1.8.8

    [15:31:52] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to Cannons v2.3.8 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:228) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.PlayerInteractManager.interact(PlayerInteractManager.java:463) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:759) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:52) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_45] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_45] at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_45] Caused by: java.lang.ArithmeticException: / by zero at at.pavlov.cannons.cannon.Cannon.getCannonballVelocity(Cannon.java:1441) [?:?] at at.pavlov.cannons.cannon.Cannon.getAimingVector(Cannon.java:1395) [?:?] at at.pavlov.cannons.Aiming.showAimingVector(Aiming.java:995) [?:?] at at.pavlov.cannons.Aiming.updateAngle(Aiming.java:246) [?:?] at at.pavlov.cannons.Aiming.changeAngle(Aiming.java:131) [?:?] at at.pavlov.cannons.listener.PlayerListener.PlayerInteract(PlayerListener.java:446) [?:?] at sun.reflect.GeneratedMethodAccessor85.invoke(Unknown Source) [?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.8.0_45] at java.lang.reflect.Method.invoke(Unknown Source) [?:1.8.0_45] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] ... 17 more [15:31:53] [Server thread/ERROR]: Could not pass event PlayerInteractEvent to Cannons v2.3.8 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:310) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:502) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:487) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at org.bukkit.craftbukkit.v1_8_R3.event.CraftEventFactory.callPlayerInteractEvent(CraftEventFactory.java:228) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.PlayerInteractManager.interact(PlayerInteractManager.java:463) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnection.a(PlayerConnection.java:759) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:52) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.PacketPlayInBlockPlace.a(PacketPlayInBlockPlace.java:1) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.PlayerConnectionUtils$1.run(SourceFile:13) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at java.util.concurrent.Executors$RunnableAdapter.call(Unknown Source) [?:1.8.0_45] at java.util.concurrent.FutureTask.run(Unknown Source) [?:1.8.0_45] at net.minecraft.server.v1_8_R3.SystemUtils.a(SourceFile:44) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.B(MinecraftServer.java:715) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.DedicatedServer.B(DedicatedServer.java:374) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.A(MinecraftServer.java:654) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at net.minecraft.server.v1_8_R3.MinecraftServer.run(MinecraftServer.java:557) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] at java.lang.Thread.run(Unknown Source) [?:1.8.0_45] Caused by: java.lang.ArithmeticException: / by zero at at.pavlov.cannons.cannon.Cannon.getCannonballVelocity(Cannon.java:1441) [?:?] at at.pavlov.cannons.cannon.Cannon.getAimingVector(Cannon.java:1395) [?:?] at at.pavlov.cannons.Aiming.showAimingVector(Aiming.java:995) [?:?] at at.pavlov.cannons.Aiming.updateAngle(Aiming.java:246) [?:?] at at.pavlov.cannons.Aiming.changeAngle(Aiming.java:131) [?:?] at at.pavlov.cannons.listener.PlayerListener.PlayerInteract(PlayerListener.java:446) [?:?] at sun.reflect.GeneratedMethodAccessor85.invoke(Unknown Source) [?:?] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.8.0_45] at java.lang.reflect.Method.invoke(Unknown Source) [?:1.8.0_45] at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:306) [spigot-1.8.8.jar:git-Spigot-5f38d38-18fbb24] ... 17 more

    Last edited Dec 09, 2015 by nashoxx
  • Avatar of DerPavlov DerPavlov Nov 15, 2015 at 17:54 UTC - 0 likes

    @GodsDead: Go I started a section in github for this, but I did not add a link to the bukkit page. Therefore, not shared designs so far.
    https://github.com/DerPavlov/Cannons/wiki/Designs

    @Unpluggeddk: Go I get the idea, but at the moment there is no such feature in Cannons. How is this done in other plugins: Different Config per world or just different settings per world?
    Let me know what would be easier for you.

  • Avatar of Unpluggeddk Unpluggeddk Nov 15, 2015 at 15:47 UTC - 0 likes

    Hi mate, love ur plugin, hoped u could help me a bit.

    Am i blind or is it possible to set the cost of creating a cannon to be different per world. Im making a game with ur plugin, but in this game it shuldnt cost anything to make a cannon.

    But in my Main world it shuld cost something.

What RPG features should be implemented for cannons

  1. Choices:

  1. Results
  2. 4 comments

Facts

Date created
Mar 04, 2012
Category
Last update
Nov 08, 2015
Development stage
Release
Language
  • deDE
  • enUS
License
GNU General Public License version 3 (GPLv3)
Curse link
Cannons
Downloads
81,217
Recent files

Authors