FAQ About Plugin Channels

So far I've seen an amazingly good response to my previous announcement, but I've also seen a lot of people with (reasonable!) questions and some thought of their own. I hope to address those here :)

"I'm A Beginner, What Does All This Actually Do?"

Basically, right now the mod community is fairly fractured - there's a huge divide between client mods and server mods, and getting these mods themselves to talk with eachother isn't so simple. We at Bukkit partnered with Mojang to introduce a new official system that should help alleviate the pressure on this, and make things easier for everyone involved. You can now efficiently talk to a client mod from the server, or vice verca, without having to worry about compatibility issues or conflicts or bandwidth or anything like that. It's all so very easy.

If you want this even simpler and a real world example of it all, think of Bukkit server plugins communicating effectively with MCP client mods. Before, this was a pain. Now, it should be very simple :)

What The System Is

The new system is a tool. It's something to use in the background and just forget about it. It's something for mods to implement silently, and it will immediately grant them 100% protection from now until the future against any conflicts on a network level. You're guaranteed that they will never interfere with the client/server if it's running something else, and that other mods will never interfere with your mod in return. You're safe in knowing that it's efficient, and you'll never waste a single byte sending data to someone who doesn't know what to do with it.

What The System Is Not

It's not a replacement ...

Continue reading

Minecraft Plugin Channels + Messaging

Some keen eyed developers may have noticed that there's a new packet in Minecraft 1.1, with no purpose or usage anywhere in the codebase. You may be wondering why this was added, and what use it could possibly have. You may also be wondering who cares, and why you have this page open. I'm here to answer all of these questions in a nice little (disclaimer: may not be little) blog post!

Update: See the FAQ on this over here! Now with simple questions like "but what does this actually mean?"

Backstory

We did some thinking a while back, about how the state of client mods and server mods for minecraft isn't really what it could be. There's so many problems with conflicts and one mod causing a bug in another and so forth, that it's really harming the potential of Minecraft modding in general. While we by no means think that we can solve this, we did start hypothesizing ways that could at least improve how mods play together, and try to make things a nicer experience for everyone - the users, the client modders, and the server modders. Most importantly, those who fit in all of the above!

One of the biggest issues with client and server modding is that having both can be hell for your users. If you have a server mod that needs a client mod, if a user without the client mod tries to join then they'll crash with seemingly no cause. Ditto for users with client mods joining a server and crashing themselves, because the server mod isn't compatible with that client mod.

Honestly, this whole thing is a mess. I'm sure most people will agree with me here. There are attempted workarounds, sure, but ...

Continue reading

Minecon and christmas!

I'm still alive! Just so very busy lately.

Minecon was a blast, I met lots of interesting people (some of which wanted my photo or signature, for some reason. I think they're PIs in disguise.) and had lots of fun! We held a small 1-hour long panel for people to come learn a little more about us, and you can check out the recorded videos of that over here.

We're all working hard trying to get an RB out for Minecraft 1.0.0 ASAP, and it should hopefully be very soon now! I've been losing so much sleep over it trying to get everything fixed and perfect, but it'll all be worth it in the end.

In other news, it happens to be the same month as Christmas! And by jolly tradition at this time of year, today I found out that I have exactly -£21.58 in my bank account. Oops. I'll probably have to borrow some money to pay for my rent again, which really isn't so fun - especially at this time of year :(

That's all for this post, back to working on bukkit!

Continue reading

Engage!

Somehow I'm now engaged to Ola. That is all.

(Yay!)

Continue reading

Reddit Secret Santa!

So RedditGifts are trying to break the Guinness world record for the largest online Secret Santa. I figured this year I should join in! It should be lots of fun, and I encourage other people to come join in for random love and gifts. You might get me, in which case please be nice! Or I might get you, and I promise it'll be something cool.

Come join in!

Continue reading

Blizzcon and meetups!

So I got back from my trip to Blizzcon last week. It was lots of fun, I met most of the curse peeps, and the rest of the bukkit team were there too so we all met for the first time in person!

The flights were rather bad, I managed to get my name on some kind of blacklist somehow which got me a long random security check before I even checked in for my first flight! They asked me a bunch of random questions, such as if I had any letters from the bank as proof of address on me (why would I bring that to a holiday :(), and took my luggage to a special screening area with half a dozen employees watching the baggage screening monitor closely like it's about to explode. Personally, I'm blaming my new beard.

After some long meetings with Curse, we took a trip out to Disney Land for teambuilding. I managed to break my phone pretty early on, not quite sure how yet but I think I must have crushed it. It was ok at first, just a cracked screen but worked, however it's pretty much dead now and I think I'll wait for the Nexus Galaxy and buy that when it's out.

I managed to get sick pretty early on, and I lost my voice for blizzcon so I didn't get to spend much time there - I decided to just sleep it in. I did meet Gabe Newell though! Invited him to the Curse afterparty, he said sure but didn't come :( Ola met with Richard A. Knaak + Christie Golden and she was really excited about that!

The Curse party was excellent, lots of people there - famous and cool - and it was pretty fun. Unfortunately, loud ...

Continue reading

Minecraft 1.9 has rcon and query!

However, there's absolutely no documentation on how it works. Considering it came out just earlier this day I'm not really surprised, but I thought I'd go fix that. Here's a tech document for you guys on how the status query works. To clarify: This means lots of tech data that probably means little to anyone else. Helpful for those of you who run websites for this kinda stuff, not helpful to Mrs. Sue who's looking for a new recipe for crafting her own bread.

The status system is incredibly simple, with only 2 possible packet types that you can send to it. It runs on UDP and thus supports multicast requests (initially), but individually replies to each one. In addition, it uses a challenge token which is explicitly designed to prevent multicast status updates, so you can request a challenge with no issues but when it comes to actually asking for the server status, you're outta luck. Keep in mind, all my diggings into this is from datamining, I am not an absolute authority over the meaning of any of these values. In addition, the protocol is very likely to change in the future. In the case that it does change, I'll update this post (and make a new one saying the changes).

It's also designed to carry a custom 4 bytes (a single int or 4 chars, whatever floats your castle) between requests so you can easily pair-up any data you receive with a request that you initially sent.

Every packet you send must be prefixed with two magic bytes (0xFE, 0xFD), followed by a packet-type (again, a byte). There are two current packet types: 0x00 and 0x09. 0x00 is responsible for actually giving you the status of the server but ...

Continue reading

Just a thanks!

Since 1.8 came out, I received an amazing amount of donations (to me personally) and I was really surprised and touched. I didn't have time to personally reply to each one, but I'm going to do so now and also on my blog!

Before now, the most I've ever had in donations could have bought me a single pizza at Dominos. I'm certainly grateful for them, as it's the thought not the money, but I never really did much that deserved people donating towards me - lo is the life of working behind the scenes :D

But these, my word, I couldn't believe it. I really appreciate every single one, no matter how big or small they were, and everyone else who emailed me or tweeted me or left a comment over here to say "thanks!" - it was really touching. Thank you all <3

With recently moving house, my girlfriend moving country with no job*, and two big company trips coming up - it's pretty tough dealing with all the bills and stuff we have to get sorted out. You have no idea how much all your donations helped us both, and we're really grateful for each and every one. The majority of the money either was or will be spent on bills and typical nasty stuff we need to get out of the way, the rest went straight to delicious pizza!

Thanks again for all your wonderful words and assistance! If you ever need my help with something techy or programming, just drop me an email! :)

(*She has a job now! Yay! Don't forget to check out her blog at missmarzenia.com <3)

Continue reading

Blizzcon, Minecon and 1.9!

Yay, it's almost that time of year again! Where I spend over a full day travelling to meet some friends at blizzcon and waste all my money :D

I'm getting my flights, hotel and blizzcon tickets paid for by Curse, so this year that's a huge load off my mind. I got my flight info through yesterday... doesn't look so good. 3 stops both ways, and each one is in US :( I don't like being manhandled by US customs!

Unfortunately only a couple of my friends from MMO-Champion will be there this year, but I should see a bunch of other people whom I know and it should be a lot of fun. Any of you guys going too? :D

I won't be working on Bukkit while I'm out... unless mojang release while we're out and then I'll have to. But let's hope it doesn't come to that. I go on holidays to avoid work, not to find new scenery to work in :(

Speaking of, I have a nasty feeling that Notch wants to release Minecraft live at Minecon in november. The entire Bukkit team will be there, so it may look like we're all going to have to work together in person to get that some. Should be... interesting!

1.9 should hit us fairly soon, and we've been doing everything we can to prep for it. It shouldn't be as large of an update as 1.8 was, but it's still fairly big in terms of code changed. I managed to get a build of Bukkit working on 1.9 pre-1 but I decided instead to work on optimizing our deobfuscation stuff, which means I have to redo 1.9 pre-1 but it ...

Continue reading

Bukkit 1.8 dev diary

So I woke up Thursday morning to a strange surprise. I had a few tweets saying "good luck with 1.8" and suddenly many more "when is 1.8 gonna be updated lol" than I usually had. What a curious thing!

Unfortunately, sleepy me didn't realise what this meant at this point in time, and was unaware that he was better off just staying in bed all day, so he decided to go investigate. Some time later, it hit me. Like a wall full of irc highlights. Mojang released 1.8 much earlier than we thought they would. Uhoh!

IRC update checker bot

It appeared that I was a couple of hours late, so I thought, maybe it's ok and we've already started to work on it. But checking our repos and irc channels... it seems I was the only one who was available to handle it. It was just a bad time for all of us. The best part about our team is also the worst part; we're each in a separate timezone so there's always one of us awake for the major hours, but times like this it's just not possible for anyone else.

What's a bone supposed to do, but update the server by himself? First things first, though, is to tell everyone DON'T PANIC and that I'm working on it. Done! That wasn't so hard. Things might be easier than I expected!

So, to the actual updating. We have a top-secret-ultra-sensitive-really-hackish 3 step process of handling updates. Four, if you count the pizza time afterwards. The first two steps are essentially deobfuscation, and the third is almost rewriting the entirety of Craftbukkits net.minecraft.server section. That's a whole lotta code. We have some very fancy tools written by ...

Continue reading

Page 2 of 5 « 1 2 3 4 5 »