MCForge/MCForge-MCLawl — pull request #10 by QuantumHive (2012-12-15 16:50:43+00:00)
Title: /undo command is now fixed from some major exotic bugs

I don't really know why the /undo command previously did/didn't work..
It's weird because the undoBlah() (now called undoOffline()) method was really full with bugs that would throw zillions of exceptions.
Also one major mistake here was the DateTime format! I think the /undo command for offline players would work sometimes in emericaaah, but not in countries that use different DateTime formats. This is now fixed so it should work in every country.
Another thing here was whenever a player rejoins the server the p.undobuffer list was empty.
I couldn't find any reference for whenever the player rejoins. So what I did is use the undoOffline method together with the new empty buffer. This buffer only gets added when the player makes new block changes. So when you use undo, the players current 'live' buffer gets undone. And after that, the undoOffline method gets called to check whether some things in the past also needs to be undo.

If anyone bumps into some weird bugs, just let me know and I'll look after it. But I think this should fix most problems now. I tested this with Arrem and it worked.