PEP8 and a little more.

Replaced the AlphaString() parts and reduced the PEP8 complaints to
long lines.
Major update everywhere to support new protocol.

This touches almost every part of the code.  I think I did it right.
Checking server status works!  Can't yet log in, but that's just a
matter of time.
Much more progress with updating packets!

Getting much further along the login process.  My current confusion:
bravo.beta.structures and bravo.beta.protocol each have a Slot()
object.  What is the difference?
 Much more progress with updating packets!

 Getting much further along the login process.  My current confusion:
 bravo.beta.structures and bravo.beta.protocol each have a Slot()
 object.  What is the difference?
More major changes to everything.

Moved the Slot() class from protocol to structures and now both
inventory and protocol use it.  For some reason the player is being
destroyed after four chunks are enabled and loaded.  Not sure why!
Minor corrections and cleanup, plus zlib for chunk data.

I don't know how to tell if the zlib thing is working yet.
First successful login.

I don't know if I can actually play, but I was able to log in.
Definitely worth checking in.
Status now shows list of logged-in people.

Server crashes when second player joins.  Oops.
Multiple people can log in -- but can't get wood from punching trees.

Lots of progress.  Multiple people can log in without crashing out.
People can chat.  Blocks can be destroyed by punching them, but you
can't get materials from destroying blocks.  Bleah.
Fixed Slot definition.  So much progress!

Things can be crafted -- but they don't stay crafted.
There's still tons of lag.
I keep having to /ascend when I return.
Another mammoth update.

Lots of PEP8 fixes and more changes to packets based on examining the
protocols and the notes.  Inventory doesn't quite work right when the
same item is picked up more than once, and placing things in the world
doesn't work quite right either -- they don't always stay!
Many tests pass!  Also, encryption!

Most of the tests pass again, which is good.  Some tests need to be
rewritten (parsing packets needs to move to protocol testing for
instance) and new content needs tests, too.  The first/hard part of
encryption support has been added -- the encryption packets are now
properly exchanged!  All that remains on that front is encrypting the
streams.
Fixed more tests!

There's one test that doesn't pass as a whole but passes as an
individual -- the rest of the tests all pass!  The failing test is in
test_furnace.py and I need to fix it.
Adding pcap-parser.py to help with debugging.

I wrote a simple script that will parse tcpdump packets to aid in
debugging.  The script assumes that the server and client are being
run on different IP addresses and that no other traffic is in the dump
file.  The framework is flexible enough for a variety of different
parsers, any of which can be selected by modifying the script.
Eventually command-line options will be added.  This script requires
an additional package which is not included in the requirements.txt
files.
Preparing for stream cipher, and other cleanup.

All packets in the factory and protocol are now written through
write_packets() which will have encryption support.  dataReceived()
will get decryption support as well.  A large part of packets.py was
redundant and was cleaned up.
Making progress with encryption.

The stream ciphers are added but they don't yet work.  The tcpdump
tool is getting encryption support as well.
Moved encryption code to its own module.

Two classes were created, one for each cryptographic protocol.  The
RSA class is for login and key negotiation and it works.  The AES
class is for stream ciphering and it does not yet work.  Not sure why.
Modified code to use new encryption module.

The new encryption module is now being used for encryption and
decryption, but AES does not yet appear to work.
Encryption works -- sort of!

I was able to send and receive encrypted packets to and from the
vanilla client, but it's fragile and I don't exactly know why.  The
tcpdump tester isn't yet doing the right thing on those packets and I
still don't know why.  Time for other folks to help!