Sea Battle
Sea Battle
This is a minigame where your goal is to destroy the enemies boat with (snow)balls. After building the arena and the following setup you can start fighting against each other! In version 1.1 economy got added, which means, you can turn this game even into a gambling game :) It works like a jackpot, everyone joins by paying e.g. 10$, but the winner gets everything that got paid back. You'll need Vault for this feature to work.
There's an updated version here, if this one doesn't work for you anymore: http://dev.bukkit.org/bukkit-plugins/minigameslib-seabattle/ Be aware that the commands and permissions changed a bit.
Setup
- Build your arena. Should contain water ;)
- Type in /sb createarena [name] to start the process of saving your arena.
- Next create two spawnpoints for two different teams in the arena: /sb setspawn 1 [arena] and /sb setspawn 2 [arena]
- Create a little lobby and type in /sb setlobby [name] while standing in the lobby.
- That's it!
Now you can create a sign containing the following lines:
- [boat]
- name (your arenaname)
Rightclick this sign and you'll spawn in your arena in a boat and some (snow)balls in your inventory.
As of the 1.5 update you can now add Ammo signs to let people get more snowballs ingame:
- [boat-ammo]
- 64 (this can be any number; it determines, how many snowballs the player gets, 2 stacks would be 128)
These ammo signs are available only once to each player in a game.
Commands
- /sb : Main SeaBattle command
- /sb createarena [name]
- /sb setspawn [number] [name]
- /sb setlobby [name]
- /sb removearena [name] : Remove an arena
- /sb leave : Leave the arena ingame
- /sb list : List all arenas
- /sb reload : Reload the SeaBattle config
- /sb reset [name] : Reset an arena
- /sb recreateconfig : Readds the default config values (doesn't remove arenas)
Permissions
- boatgame.* : all permissions
- boatgame.sign
- boatgame.create
- boatgame.setspawn
- boatgame.setlobby
- boatgame.cleararena
- boatgame.reload
- boatgame.list
- boatgame.remove
Config
- alwaysdropboat: true let boats drop always themselves
- invincibleboats: false invincible boats
- boatlifes: 5 number of snowballs that need to be shot at a boat to crash it
- playerlifes: 2 number of times a player respawns in one game
- use_economy: true true, if you want the gambling feature
- entry_money: 10.0 the entry price, please use numbers with decimal places. Only available, if use_economy is set to true
- maxplayers: 10 defines, how many players can join an arena
- minplayers: 2 defines, how many players are needed to start a sea battle
- starting_cooldown: 11 seconds to wait before an arena game begins
- teams: false enable this to have teams (max 2 teams)! Each team has a different head and uses one of the spawns as teamspawn. Members of a team can't kill themselves.
- itemreward_itemid: 264 Diamonds
- itemreward_amount: 2
- announce_winners: true
- auto_updating: true auto updates the plugin, if there are new releases
- lastmanstanding: true if set to true, the last man standing in a sea battle (if everyone leaves) will win and get the reward
- snowballstacks_amount: 3 the amount of snowball stacks to be added when a players joins a sea battle
- ammo_usage_count: 2 how many times the player can use an ammo sign in one game
Preview
Todo
- extend multiple item prizes with multiple item amounts
- additional weapons like shield in the future
- add MySQL support to store arenas and stats
- min/max players also per arena
- spectator mode
Green bullets are already done, yellow ones are still buggy or being tested, red ones not done yet.
Translation
The Config contains all strings used by the plugin. You can easily change them and the colors to your preferred language.
Additional Info
You can adjust the name of the boatballs by changing the strings.ball_name entry in the config.
You can configure boats to be invincible or drop theirselfs by changing the configfile, too. Defaults:
- alwaysdropboat: true
- invincibleboats: false
- This plugin uses an auto-updater which can be turned off in the config. I don't recommend that for future bugfix releases.
- This plugin also sends things like software information or online player count to MCStats (mcstats.griefcraft.com/plugin/SeaBattle).
Have fun!
Youtube
For those don't want to read all that stuff or don't understand the setup instructions above, here's a youtube video with some gameplay and a tutorial. :P This video is by BukkitHorde, thanks to him for doing that for me!
Here's another review in Spanish:
@trisomo
This Exception shouldn't come up as my classes should all be defined correctly in the plugin.yml and the plugin is working for others. Do you have Vault installed? Also, was this the first start of the plugin? What Craftbukkit version are you using (Build number)?
@brandonn1
Do you mean something like lobby in world1 and arena in world2? Will be added in v1.2 :)
@Gametista
Yep, I think a block place event is called and the sign interaction fails. I could check for block placements and then for a sign behind that blocks, so I'll try to fix that.
Hi there, a little bug :( => 19:27:08 [GRAVE] Could not load 'plugins\comzeboatgame1.6.2.jar' in folder 'plug ins' org.bukkit.plugin.InvalidPluginException: java.lang.ClassNotFoundException: com. comze_instancelabs.boatgame.Main at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j ava:184) at org.bukkit.plugin.SimplePluginManager.loadPlugin(SimplePluginManager. java:305) at org.bukkit.plugin.SimplePluginManager.loadPlugins(SimplePluginManager .java:230) at org.bukkit.craftbukkit.v1_6_R2.CraftServer.loadPlugins(CraftServer.ja va:239) at org.bukkit.craftbukkit.v1_6_R2.CraftServer.reload(CraftServer.java:60 3) at org.bukkit.Bukkit.reload(Bukkit.java:275) at org.bukkit.command.defaults.ReloadCommand.execute(ReloadCommand.java: 23) at org.bukkit.command.SimpleCommandMap.dispatch(SimpleCommandMap.java:18 9) at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchCommand(CraftServe r.java:523) at org.bukkit.craftbukkit.v1_6_R2.CraftServer.dispatchServerCommand(Craf tServer.java:512) at net.minecraft.server.v1_6_R2.DedicatedServer.ar(DedicatedServer.java: 262) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:2 27) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:4 86) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java :419) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:5 82) Caused by: java.lang.ClassNotFoundException: com.comze_instancelabs.boatgame.Mai n at java.net.URLClassLoader$1.run(Unknown Source) at java.security.AccessController.doPrivileged(Native Method) at java.net.URLClassLoader.findClass(Unknown Source) at org.bukkit.plugin.java.PluginClassLoader.findClass0(PluginClassLoader .java:80) at org.bukkit.plugin.java.PluginClassLoader.findClass(PluginClassLoader. java:53) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.ClassLoader.loadClass(Unknown Source) at java.lang.Class.forName0(Native Method) at java.lang.Class.forName(Unknown Source) at org.bukkit.plugin.java.JavaPluginLoader.loadPlugin(JavaPluginLoader.j ava:173) ... 14 more
Can I have the source code of this plugin. I will only use it for my own server.
uuu! good jobs!
@instancelabs
The other bug was fixed and thanks for adding that in by the way!
Regarding the not being able to join with object in hand:
Try a solid block, like cobblestone. I'm unsure if that's normal MC behavior though because I seem to recall you can't interact with a sign when you have cobble or blocks like that in your hand.
@XZhyperX
LOL that's what I was thinking. It doesn't take much to simply create a pool of water and a few obstacles. :)
@MrEkinoxx
To lazy to make you own?
Please give a map for this plugin ! thx :)
@instancelabs
Can you add multiworld support?
@Gametista
Thank you for your great feedback!
I'll fix that two bugs and add a /sb leave command :)
Edit: Added /sb leave, economy support and removed the info message in the console. SeaBattle 1.1 can be downloaded under http://dev.bukkit.org/bukkit-plugins/sea-battle/files/. Unfortunately, I could not reproduce your second bug. What item did the player have in his hand?
@Gametista
Tried it out and seems to work great now!
There are just two minor issues going on:
1. When someone joins (the server) it spits this out:
2013-07-24 09:07:43 [INFO] [comzeboatgame] []
(Didn't think this needed a pastebin!)
2. Players need to have nothing in their hands in order for the snowballs to spawn.
Not a huge deal since I'll just put a sign up, but just making you aware of these things is all.
Thanks again and great work, this is such a fun amusing game. :)
REQUEST:
A way for players to leave if they don't want to wait for someone to play. As it is right now, I'm unsure as to how to get my staff out of the boat when they're in a game! lol
@therealspoljo
Apologies! I just recently discovered the wonders of pastebin, so definitely will be using that in the future. :)
@Gametista
Next time please post the error in Pastebin, so you dont spam the comments :P
@Gametista
Thank you, I uploaded a bugfix release with four bugfixes (containing yours). The problem was, that the plugin tried to remove HP from a non-existing player in an empty boat ;)
Also, the bug mentioned by lANTHONYl should be fixed now.
Tested the latest build and the snowball problem is gone. I got this in my server logs though:
2013-07-20 11:19:16 [SEVERE] Could not pass event VehicleDamageEvent to comzeboatgame v1.0.1 org.bukkit.event.EventException at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:427) at org.bukkit.plugin.RegisteredListener.callEvent(RegisteredListener.java:62) at org.bukkit.plugin.TimedRegisteredListener.callEvent(TimedRegisteredListener.java:30) at org.bukkit.plugin.SimplePluginManager.fireEvent(SimplePluginManager.java:478) at org.bukkit.plugin.SimplePluginManager.callEvent(SimplePluginManager.java:463) at net.minecraft.server.v1_6_R2.EntityBoat.damageEntity(EntityBoat.java:104) at net.minecraft.server.v1_6_R2.EntitySnowball.a(SourceFile:30) at net.minecraft.server.v1_6_R2.EntityProjectile.l_(EntityProjectile.java:156) at net.minecraft.server.v1_6_R2.World.entityJoinedWorld(World.java:1469) at net.minecraft.server.v1_6_R2.World.playerJoinedWorld(World.java:1444) at net.minecraft.server.v1_6_R2.World.tickEntities(World.java:1316) at net.minecraft.server.v1_6_R2.WorldServer.tickEntities(WorldServer.java:517) at net.minecraft.server.v1_6_R2.MinecraftServer.t(MinecraftServer.java:571) at net.minecraft.server.v1_6_R2.DedicatedServer.t(DedicatedServer.java:239) at net.minecraft.server.v1_6_R2.MinecraftServer.s(MinecraftServer.java:481) at net.minecraft.server.v1_6_R2.MinecraftServer.run(MinecraftServer.java:413) at net.minecraft.server.v1_6_R2.ThreadServerApplication.run(SourceFile:582) Caused by: java.lang.NullPointerException at com.comze_instancelabs.boatgame.Main.onVehicleDamage(Main.java:383) at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:57) at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) at java.lang.reflect.Method.invoke(Method.java:601) at org.bukkit.plugin.java.JavaPluginLoader$1.execute(JavaPluginLoader.java:425) ... 16 more
I was playing by myself though to make sure the snowball thing was gone, so I'm not sure if that has an effect.
@instancelabs
Wonderful, can't wait to test again! :)
The invincible boats and boat drop config options apply GLOBALLY not just to arenas.
@lANTHONYl
Right now invincibleboats prevents all damage that a boat can get and is just a test feature :P (if you activate it, you won't crash on obstacles or with other boats. Also, players shouldn't be able to break your boat)
I'll add economy support and upload the source code in 1.0.5.
I've uploaded a new release with the following new features:
Coming soon:
@instancelabs
No problem. Just here to help. I'd like to see this next week on my server :D