Skip to main content
A cartoon depiction of the author, wearing a hoodie and smiling

Bukkit => Splash => Soaked

Bukkit is a custom server implementation for playing the multiplayer mode of Minecraft. It supports plugins, and I had need of a very particular plugin for a new project I’m working on: I needed Bukkit to be able to send HTTP requests to a remote server when certain events happen, like when a player joins or quits the server or when they die in the game.

Last week I wrote Splash, a plugin to do just that. You specify the URLs to send different events to and they’ll hit those URLs, presumably some sort of POST-based API, and it will essentially ping the server with that bit of information (what happened and who it happened to).

Before I start on my slightly more ambitious project, I decided that it would be good to have a simple web application so that I could test modifications to Splash. It also presented me with a chance to play with Sinatra, SQLite, DataMapper, and Heroku. That demo became Soaked, which is a barebones Sinatra app to receive and store server events and display them to anyone who visits.

I set up a demo of Soaked on Heroku with some sample data that I inserted while testing. You can load older events, and if you’re lucky enough to be visiting the page while I’m testing my local Minecraft server, you might notice new events pop in at the top of the list.

(update: The Soaked demo is now tracking events from a server some friends of mine from #tumblrs IRC play on, so you might have a better chance of seeing updates appearing on the demo page than you did previously!)

Soaked needs a few things added to it— namely a huge CSS facelift and token-based HTTP auth— but for now I’m moving on to the project I originally wrote Splash for, which I hope to tell you more about soon.