OpenCTF
Summary
The goal of this plugin is to bring CTF to Minecraft without limiting the players imagination. I do not like reapeating, prebuilt maps and I do not like limiting the players abilities to create their own strategy from everything Minecraft offers. In most plugins an administrator builds a map, sets two bases and you have to fight in there. Open CTF allows you to choose a new game area everytime you play a new game! In addition you can freely choose the position of your base within this area to hide it from your enemies and place smart traps on the path to it.
Procedure
The first player who joins a game is supposed to choose a game area. They can fly around and have to place a block to mark the center of the area. They are not able to modify the world. As soon as the area is set everyone on the server can choose a team and class.
Both teams are supposed to build their bases now by placing the flag - a colored block of wool - wherever they find it suitable. A base is built around the flag and a countdown gets started to mark the end of the building phase. The bases are indestructible.
As soon as the building phase is over both team have to capture the enemy's flag by right clicking on it and carry it back to their own base. If you carry the flag you are not able place or break blocks anymore but you are able to defend yourself by using your weapons.
Currently, the game ends if a restart vote is succesful or a /reset is issued. Vicotry conditions are work in progress.
Classes
All players are marked with a colored leather helmet. Currently available classes are:
- Fighter
- Iron Sword
- Iron Armor
- Wooden Shovel
- Archer
- Bow with infinite Arrows
- Chain Armor
- Iron Axe
- Wooden Sword
- Pioneer
- Stone Sword
- Colored Leather Armor
- Iron Pickaxe
- Iron Shovel
- Spy
- Stone Sword
- Leather Armor
- Compass that points to enemy base
- Ability to get invisible while sneaking
This is how the team/class selection chest looks like:
Commands
<arg> - necessary argument
[arg] - optional argument
- /all <message> - Send a message to all teams
- /ctf join - Switch from current world to CTF world and participate
- /ctf leave - Restore last location and inventory and leave CTF
- Permission: openctf.ctf (set by default)
- /score - Show a scoreboard
- /team - Change team
- /vote restart - Start a vote for starting a new game
- /vote kick <name> [reason] - Start a vote for kicking a player
- /yes|/no - Vote yes or no
Permissions necessary:
- /config <setting> <value> - Change settings
- openctf.cfg
- /performance - Show computation time; for debugging purposes
- openctf.performance
- /reset - Start a new game
- openctf.reset
Install
- Download OpenCTF.jar
- Download PatPeter's SQLibrary
- Put them both into your plugins folder
- Start the server
Special Features
MySQL/SQLite Support
Thanks to PatPeter's SQLibrary v4.2, statistics of the game are saved locally into a SQLite database or optionally into a MySQL database. I am planning to create a simple web interface to show how one could present stats of the games, rankings and much more.
Customizable Structures
Open CTF uses schematic files in mcedit format to make various objects customizable. So if you do not like the bases included, just change them! Create your own bases and export them with WorldEdit as schematic files or do the same in MCEdit. Here is a description of how to customize structures.
Configuration
This plugin has many configurable values such as respawn time, dimension of the game area and other options. We are working on making everything configurable.
Translation
Currently there are only bad phrased english messages in the game. We are working on improving that. Despite that, you can freely change every message that is send through the plugin and translate it in your language for example. All messages use a simple color code you can use.
Beta Stage
At this point, I would like to point out that this plugin is quite complex and has not been tested by a larger amount of players yet. If you would like to test it, please feel free to join us at our server dev.wrenchbox.de:25575 or download the beta version and follow the installation instructions.
Metrics
In order to determine some statistics about popularity of versions and the plugin itself I am using the Metrics plugin. If you do not want your server to be tracked, please turn Metrics off on your server.
From Hidendra: "As a server owner, you are free to question the service, welcome it, or deny it. All plugins that support Metrics use the same opt-out and as such you may opt out of further data at any time. You may ask myself any question and I will do my best to answer it - I am as open as possible with Plugin Metrics / MCStats and hope this will help you understand what exactly it is.
Opting out of this service can be done by editing plugins/Plugin Metrics/config.yml and changing opt-out to true. If this folder does not exist, you do not have any metrics-enabled plugins installed :)"
Contact Us
If you have any questions or concerns feel free to contact us on IRC or leave a comment below.
- Host: irc.esper.net
- Channel: #wrenchbox
- Webchat
Why, is it not giving me a reposnce when I do /ctf join.
@AmShaegar13
That's weird... must be spigot 1.8.. Thanks
@ipodtouch218
It's the same permission for join and leave. See config:
@AmShaegar13
My default Members can't join any games. There is only permissions for /ctf leave in the commands section, which works
@ipodtouch218
What is you question? The necessary permissions for the commands are listed in the Commands section.
Permissions?
Nope, it wont. Sadly, I'm not that active anymore to update myself :-( I stopped working on it when CraftBukkit went offline.
Does this work with spigot 1.8.*?
Error loading the plugin... Agh, none of the CTF plugins I've tried actually work Dx
@AmShaegar13 Oh, ok. So, what do you think of spigot? There downloads are still available.
EDIT: Awww, not anymore... All this turned into something REALLY bad... =/
@HimG
SQLibrary shouln't be a problem. It's completely independent from Bukkit. But I think, we have to wait to see if they can resolve their legal issues soon -.-
@AmShaegar13
All right, got the subscription :D
Well that's what happened: 10 Seconds after my post i opened minecraft and saw that 1.8 was released... -.- Anyway, i tested your updated version on my bukkit 1.7.9 server and it gave me the old problem, where it just says "Usage: /ctf <join:leave>" when i type in "/ctf join" (see report below). Did you tested it on your server? Probably because SQLibrary is still on 1.7.2? Anyway, now 1.8 is out. Since some slow communication with the sponsor (and holidays) i still didn't opened the server for public. But i've got a deadline: During the next 3 weeks i have to open the server. After that date i will travel to an other country, and the server is one thing, that has do be finished before that step! (; Because of bukkits slow updating + currently closed downloads, i will probably start using spigot, but since it got the bukkit api there shouldn't be a problem with your plugin i assume. Thanks for you work & time!
EDIT: Oh, here is the error: [12:14:30] [Server thread/INFO]: [OpenCTF] Enabling OpenCTF v0.5 [12:14:30] [Server thread/ERROR]: Error occurred while enabling OpenCTF v0.5 (Is it up to date?) java.lang.ExceptionInInitializerError at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method) [?:1.7.0_65] at sun.reflect.NativeMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_65] at sun.reflect.DelegatingMethodAccessorImpl.invoke(Unknown Source) [?:1.7.0_65] at java.lang.reflect.Method.invoke(Unknown Source) [?:1.7.0_65] at java.lang.Class.getEnumConstantsShared(Unknown Source) [?:1.7.0_65] at java.lang.System$2.getEnumConstantsShared(Unknown Source) [?:1.7.0_65] at java.util.EnumMap.getKeyUniverse(Unknown Source) [?:1.7.0_65] at java.util.EnumMap.<init>(Unknown Source) [?:1.7.0_65] at lib.PatPeter.SQLibrary.Factory.DatabaseConfig.<init>(DatabaseConfig.java:16) [?:?] at de.wrenchbox.ctf.Util.SQL.createDatabase(SQL.java:22) [?:?] at de.wrenchbox.ctf.CaptureTheFlag.onEnable(CaptureTheFlag.java:74) [?:?] at org.bukkit.plugin.java.JavaPlugin.setEnabled(JavaPlugin.java:316) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] at org.bukkit.plugin.java.JavaPluginLoader.enablePlugin(JavaPluginLoader.java:324) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] at org.bukkit.plugin.SimplePluginManager.enablePlugin(SimplePluginManager.java:404) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] at org.bukkit.craftbukkit.v1_7_R3.CraftServer.loadPlugin(CraftServer.java:446) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] at org.bukkit.craftbukkit.v1_7_R3.CraftServer.enablePlugins(CraftServer.java:380) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] at net.minecraft.server.v1_7_R3.MinecraftServer.n(MinecraftServer.java:352) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] at net.minecraft.server.v1_7_R3.MinecraftServer.g(MinecraftServer.java:326) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] at net.minecraft.server.v1_7_R3.MinecraftServer.a(MinecraftServer.java:282) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] at net.minecraft.server.v1_7_R3.DedicatedServer.init(DedicatedServer.java:182) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] at net.minecraft.server.v1_7_R3.MinecraftServer.run(MinecraftServer.java:436) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] at net.minecraft.server.v1_7_R3.ThreadServerApplication.run(SourceFile:628) [craftbukkit.jar:git-Bukkit-1.7.9-R0.1-10-g8688bd4-b3092jnks] Caused by: java.lang.NullPointerException at lib.PatPeter.SQLibrary.Factory.Parameter.updateCount(Parameter.java:44) [?:?] at lib.PatPeter.SQLibrary.Factory.Parameter.<init>(Parameter.java:30) [?:?] at lib.PatPeter.SQLibrary.Factory.Parameter.<clinit>(Parameter.java:11) [?:?] ... 22 more
@HimG
Subscriptions: http://dev.bukkit.org/bukkit-plugins/open-ctf/manage-subscriptions/
Hope to find some time soon.
@AmShaegar13
Ah, thanks!!! Just saw it today, i'm late, sry! Do you know if there a way to get e-mail notifications on new posts? Anyway, i will install it right now and keep you up to date (; Again, many thanks for updating it!!! :D
Version 0.5 is updated for 1.7.9. Things to do for the next content update:
@HimG
I think I will put some more work into it! Maybe your server will promote this a bit. :)
Just need to find some spare time.
@AmShaegar13
Yeah, i see, it doesn't makes sense for you to invest so much time if it isn't used. But i guess what keeps server owners from 24/7 servers from installing it is, that it doesn't ends automatically. Also if you set up info signs about the "/register" there would still be enough people who wouldn't reed it or some people in-game that don't want to restart, and others that want to restart.
At the moment i totally renew my server (it was up since 2011 but at 1.5.1 for the last 1-2 years or something and had only 4-10 slots). But now i want to change some things, got a new pvp world ect. & some minigames, to make the server more attractive. I've got a german minecraft mod-tutorial youtube channel with about 60k subs and would like to start an event where viewer-teams can sign up and fight agains a team of my friends & myself. That's why i update the server, but in the meantime when i'm not recording it will be a normal server. At the moment i'm still updating (= whitelist), but when i got everything ready (hopefully during the this week) i plan to ask a big german server hoster (where i rented the server for the last 2,75 years) to sponser my server with at least 24 slots (because that is, what i would need if i want to make a personal hunger games with some subscribers). They have a sponsoring program for youtube channels that start at 15k subs, so i'm pretty sure they will accept me.
Yeah, and therefore i'm looking for good minigames like yours ;) It would be cool to play your plugin against some subscriber teams on the event that i'm planing i think. ...well, i also plan to do a "server setup" series this summer. I don't planed to make plugin vids, but because i really like your plugin idea and think it should be more popular i could probably l make a short vid about your plugin too... but i can't promise you that because in two weeks i go to holyday for 2 weeks, and at the beginning of september i will travel to australia for 3-9 month and will only make really necessary videos every 2 weeks or something to keep my subscribers happy (this will be mod tutorials, because i'm a mod tutorial channel in first place).
Yeah, so that's how it looks, sry for all the text, but i though i just tell you the whole story, so you can decide for yourself if the work would pay off for you.
In fact i just played the set up mode of the plugin on your server yet, because you need 4 players to play a real round & i got the same problem Enderman09871234 got on my server. But 'cause he got it to work, i hope i can make it too ;)
EDIT: Ah, damn, i maybe found what's causing the problem: "[17:34:00] [Server thread/ERROR]: Error occurred while enabling Open_CTF v0.4b (Is it up to date?)" My server ist on 1.7.9 but the plugin & your test server runs on 1.7.2. Seams, that the 1.7.2 version isn't compatible with 1.7.9, or do you know 1.7.9 servers running it? Can you maybe download craftbukkit 1.7.9 and put it on your server to test if you got the same problem on an completely plugin-empty server?
@HimG
To be honest, I thought this plugin would just die :D I think I am not a good promoter and nobody plays it. Currently, I can't lookup the stats but the plugin is only used on 2 or 3 servers...
But if you can tell me, that this is actually used I would love to join for a game and make some plans on implementing that feature. :)
@AmShaegar13
All right, thanks for the infos! You are right, i forgot function of the spy and that you have to get in & out of your base. Than it's in case no problem. And also thanks for you config explanation =) Do you already know when you got time to add an automatic game and after 3 wool captures or 15 minutes of playtime? EDIT: Yeah, i think an automatic "/restart" command after 15 minutes (or an configurable time) should be easier to implant for you, you already got times e.g. for the build time. This would be very so i could let the players play it "alone" (just because i don't think they can arrange with the /restart vote;).
@HimG
Hi there,
thanks for your comment! Regarding your main concern: You can't disable building phase but you can configure its duration to 0s :)
Although, hiding bases is intended. That's what the spy is for. The compass of the spy always points to the opponents base, up to a certain accuracy. I want players to hide and search, explore the area and the best way to enter the base. The point is, that you can't return the flag when there is no entrance and you can't destroy blocks when carrying the flag.
border-type is the kind of block, that marks the border of the game area. 7 is bedrock.
change-team-range is the maximum distance in blocks you can have to your own flag when changing the team by sending /team or clicking on your armor in your inventory.
force-ctf let's a player who joins the server automatically join the ctf world.
return-flag-exp is the amount experience you gain for returning the opposite flag. 17 is the amount you need for lvl 2.