Welcome to Bravo! Bravo is a Minecraft server.

Back in Business

Hey, all! It's been a while. I hope you're all doing well.

Remember Bravo? The little server that could? It's back. Or, rather, the development team is back. Along with a couple friends, I'm going back to work on Bravo, and Bravo 2.0 will be along soon, with a cleaned-up plugin system, Minecraft 1.4 compatibility, and a whole chockload of bugfixes and features.

Oh, and we gained PyPy compatibility, making us faster than ever. In preliminary benchmarks, Bravo runs sixty times faster on PyPy than on CPython, and you can expect dramatic speedups when using this configuration. We'll be sure to tell you more about it later.

Thanks to the community for welcoming us back so openly. We missed you too.

~ C. and the Bravo Team

Hiatus

I'd like to say that this is a hard post for me to write, but to be honest, it's been quite easy, so I'm gonna just say it:

Bravo is officially on hiatus. No features will be added, nor bugs fixed, without either patch or cash.

Why? Well, Minecraft's final version came out. It's horribly buggy, looks bad, is very laggy, and has not really improved the user experience. I stopped playing recreationally in February, and really haven't missed any part of the game at all. Minecraft isn't fun, and the novelty wore off over a year ago.

Nobody else contributes to Bravo. I don't mean to marginalize the other committers, all of whom are highly valued and have worked hard, but let's throw down some numbers: I have committed 1910 times to Bravo. The next committer has 39 commits. I've written 88% of this thing. It's not really a team effort when one guy is doing all of the driving. Bravo can't continue with the other 12% alone, especially when most of them drove by, added a patch, and then took off again.

I've gotten zero donations for Bravo. When every other open-source project in the Minecraft world, and quite a few non-open-source projects, get donations, it's kind of disheartening to not get any cash, but more importantly, Bravo represents a significant time sink, and I can't afford to continue dedicating time to Bravo when I have other things I could be doing.

Here's what Bravo has accomplished in the past 13 months:

  • March 2011: Helped implement Numpy in PyPy.
  • April 20, 2011: First big adopter of Exocet.
  • May 8, 2011: First big adopter of wok.

Additionally, I've become a big supporter of, and occasional contributor to, Twisted, which I consider to be very important in the Python ecosystem.

And, of course, nearly 30,000 lines of code, documentation, and supporting materials were written, not counting the contributions to the Minecraft Coalition.

It's been a fun ride. ~ C.

Bravo 1.8.1

Bravo 1.8.1 is out. This is a bugfix release only, but nonetheless some features managed to sneak in when I wasn't looking.

The diffstat's dominated by code which was nuked out of Exocet. If that's discounted, then we see a small diff of new unit tests and some cleanup in utilities and plugins.

A highlight of this release is that digging works in creative mode again. Additionally, for third-party plugin authors, syntax errors in your plugins will now be logged, which should aid your plugin debugging. Other bugfixes include slightly faster and more accurate world illumination and support for some blocks from Beta 1.7 and Beta 1.8.

As always, thank you for flying Bravo, and we hope to see you again soon.

Compatibility

  • Syntax errors in plugins are now caught and logged

Features

  • Cleaned up furnaces to be slightly more efficient (#361)
  • Added new blocks for 1.7/1.8 (#364)
  • Sped up chunk lighting slightly
  • Added redstone circuit for levers
  • Rewrote redstone to be enabled for torches, plain blocks, and levers

Bugfixes

  • Fixed lighting not being regenerated after block changes (#132)
  • Fixed blocks not being diggable in creative mode (#349)
  • Fixed /time command failing when no seasons are enabled (#360)
  • Fixed block representations not being printable
45 files changed, 1044 insertions(+), 3586 deletions(-)
  4.8% bravo/plugins/
  3.9% bravo/tests/plugins/
  5.8% bravo/tests/utilities/
 10.4% bravo/utilities/
  9.6% bravo/
 27.8% exocet/test/
 35.2% exocet/

Bravo 1.8

Bravo 1.8 is out! This is a massive release, with so many changes that it feels wrong to try to summarize them. Thus, the entire changelog is reproduced below.

100 files changed, 9294 insertions(+), 5646 deletions(-)
 17.1% bravo/beta/
  3.3% bravo/factories/
  5.9% bravo/inventory/
  4.2% bravo/packets/
  4.5% bravo/plugins/recipes/
 18.1% bravo/plugins/
  8.1% bravo/protocols/
  8.6% bravo/tests/inventory/
 11.6% bravo/tests/
  4.2% bravo/utilities/
 10.0% bravo/
  3.0% docs/

1.8 Changelog

Compatibility

Blocks

  • Block drops now consider both the primary and secondary attributes of a drop
  • Several blocks have been renamed to avoid block/item conflicts
    • Block "lapis-lazuli" to "lapis-lazuli-block"
    • Block "bed" to "bed-block"
    • Block "diamond" to "diamond-block"
    • Block "wooden-door" to "wooden-door-block"
    • Block "iron-door" to "iron-door-block"
    • Block "sugar-cane" to "reed"
    • Block "cake" to "cake-block"
  • "Light green" blocks are now "lime" (#344)
    • Block "light-green-wool" to "lime-wool"

Modules

  • All Beta-related classes have been reconsolidated under the bravo.beta namespace

Plugins

  • Recipes have been completely reworked to carry their own crafting table logic; see bravo.beta.recipes for helper classes
  • New simple hooks for taking action when windows are opened, clicked, and closed
  • New simple hook for taking action at the beginning of a digging action
  • Pre-build hooks have an altered signature for pre_build_hook(), with a new return value and new semantics
  • Post-build hooks explicitly have their input coordinates pre-adjusted

Features

  • Support for Beta protocol 17 (Beta 1.8.x) (#346)
    • Server polling and announce (#350)
    • Controls for factory modes: Creative and survival (#353)
    • In-game player lists (#358)
  • Complete rework of inventory handling
    • Support for creative inventories
    • Support for chests (#256)
    • Support for furnaces (#261)
  • Rework of recipes
    • Support for crafting ingredient-based recipes
    • Crafting dyes (#331)
    • Crafting with non-white wool (#336)
  • Support for total and per-IP connection limits (#310)
  • Connection timeouts for clients (#319)
  • Support for placing beds (#255)
  • Chunk feeding for automatons (#271)
  • Worldmap web plugin scrolling support
  • Documentation reorganization to aid new administrators and developers

Bugfixes

  • Fixed certain crafting operations crashing Beta 1.6+ clients (#302)
  • Fixed sand and gravel not replacing water and lava when falling (#317)
  • Fixed tracks not orienting when placed (#326)
  • Fixed dropped items reappearing on reconnect (#330)
  • Fixed lapis lazuli ore not dropping lapis lazuli dye (#357)
  • Fixed grass automaton taking excessive amounts of time to grow new grass
  • Fixed long-running web plugins causing superfluous exceptions

Bravo 1.7.2

Bravo 1.7.2 is now out. This is a maintenance release with not a lot going on.

17 files changed, 426 insertions(+), 176 deletions(-)
  9.3% bravo/plugins/
 22.7% bravo/protocols/
 30.6% bravo/tests/plugins/
 28.4% docs/
  7.3% website/content/

Bravo 1.7.1

Bravo 1.7.1 is out! Very little going on here; the big thing is Beta protocol 14 support for Beta 1.7.x clients, but otherwise not much has changed. There's lots of work left to be done, and I'm getting back on the job, so hopefully we'll see lots of improvements soon!

22 files changed, 481 insertions(+), 134 deletions(-)
  25.9% bravo/plugins/
   6.3% bravo/protocols/
  35.3% bravo/tests/plugins/
   6.5% bravo/tests/protocols/
  21.8% bravo/

Bravo 1.6.1

Bravo 1.6.1 has been released. This is a patch-level release containing only a few minor documentation updates, and support for Beta protocol 13, the protocol used by Beta 1.6.x servers and clients.

Have fun!

Protocol 13 Support

Thank you for your patience! I know that it's been a rough half-day waiting for Bravo to acquire support for the newest Minecraft Beta release, and there were some tough times. Many of you were wondering where I was, and why I was slacking off and doing things like eating, sleeping, and taking midterm exams, rather than writing code. Well, I have good news for you all.

Preliminary protocol 13 support has been pushed to the main repository. This means that, when running from git, Beta 1.6 clients are now supported. In addition, several bugs for Bravo 1.7 have been opened, targeting the new features of Beta 1.6, like long grass, maps, and Nether support. Not all of the new features are going to make it into Bravo, though; for example, the 100% CPU usage of the new Notchian server isn't likely to be replicated in Bravo, for technical reasons.

If you are one of the brave souls testing the git repository, feel free to give us feedback on whether or not things work. If you aren't using git, why not give it a whirl? There are tarballs and zipballs located on the Github download page which are ready-to-go.

Bravo 1.6

Welcome to Bravo 1.6! Lots of things have changed, but most of them aren't very obvious; this release is very much about incremental improvement rather than big features. As usual, the changelog might be a good thing to read through. A handful of new plugins (grass, fertilizer, doors) dominate the diffstat, as well as some old ones (trees, water) which have been rewritten to suck less.

63 files changed, 3270 insertions(+), 924 deletions(-)
  3.4% bravo/factories/
 37.7% bravo/plugins/
  4.1% bravo/protocols/
 17.9% bravo/tests/plugins/
  5.1% bravo/tests/
  3.3% bravo/utilities/
 13.8% bravo/
  7.3% website/media/
  4.9% website/

Bravo 1.6 Will Be Late

What the title says, guys. Sorry. The basic reasoning is as follows: It's Sunday night, a few hours before the deadline, and there are still iffy kinks in the newly-rewritten automaton subsystem which are not exactly confidence-inspiring in my eyes. Additionally, only about half of our target bugs have gotten handled since 1.5, and overall I'm just not happy with the current state of the tree. This release is definitely not very big compared to 1.5; most of the features are architectural and relate to cleanup and organization. This is, at best, a maintenance release which bumps the minor version number by coincidence.

Now that I've said all that, I'm still aiming for Wednesday for a release. I'm taking solace in the fact that I'm still going to be releasing before the next Notchian Beta release, so there's a silver lining to this cloud.

Speaking of clouds, I noticed nobody has requested weather support. Is this just not something that people want?

Bravo 1.4

Bravo 1.4 is out, late and without all the features we wanted. Hopefully, the features that did make it in will be enough to keep you all busy. Here are some highlights:

  • The plugin loader was rewritten to use Exocet. This provides a bunch of benefits for very little cost, like free plugin reloading and some security features.
  • Mobs now show up! They don't move around yet, though. That'll be next release.
  • There's now a web status service. You'll need Twisted 11.x to be able to use it, and it doesn't do a whole lot, but I thought it was nifty.
  • In-game lighting is a lot better thanks to a wall of community fixes and improvements.
  • Several broken recipes, including ladders, shovels, TNT, and fishing rods, were fixed.

That's not all, of course. The complete changelog is on Github, at https://github.com/MostAwesomeDude/bravo/blob/1.4/CHANGELOG.rst, for your viewing pleasure. It looks like 1.4 ended up being a much bigger change than I had expected.

85 files changed, 9049 insertions(+), 1198 deletions(-)
  5.7% bravo/packets/
  5.2% bravo/plugins/
  8.0% bravo/terrain/
  5.8% bravo/tests/
 15.9% bravo/
 23.4% exocet/test/
 33.4% exocet/

Looks like the exocet introduction dominated this time around, but there were still around 1500 LOCs added to Bravo's core. Here's to another release in two weeks!

Bravo 1.3

Bravo 1.3 is released! Highlights include IP banlists and /getpos support. There have also been lots of bug fixes and small improvements here and there, like better water support, and enhanced terrain generation, including ores and caves. Go and grab it from PyPI!

Documentation Domain is Up

http://docs.bravoserver.org/ now has a copy of the latest documentation from Bravo, and will get updated whenever the code is updated. Rejoice as appropriate.

There are a couple important things in the documentation that have been recently added. In particular, there is now an administration guide for new server administrators which hopefully will be useful to people.

Settling In

Welcome to bravoserver.org! We're still getting situated, and hopefully we'll have more content up soon, but for now, just sit back and enjoy the lack of information. I know I will.

Valid CSS!