Florian Wesch
de220e1fa1
set unavailable fields to null
2013-08-26 14:22:53 +02:00
Florian Wesch
170566d700
New way to handle conditional fields in packets
...
Some packets have conditional fields. The previous way to handle
those was to provide a single condition for each packet type
which determined if additional fields are appended to the packet.
Unfortunately this is not enough for some packets: They have
complex conditions that cannot be expressed this way.
This diff changes the way conditional fields are handled: For
each field in each packet there is a new optional 'condition'
function which will be called with the packet data. Only if
the 'condition' function returns true, the field is de/encoded.
This diff also adds new (previously missing) conditions.
2013-08-26 13:00:28 +02:00
roblabla
6a530522a6
Add an unlimited string length for server chat packet
2013-08-07 19:05:59 +02:00
Xabier de Zuazo
c0a66738a3
packet 0x2c: writing fixed, UUID format simplified
2013-07-12 13:19:34 +02:00
Xabier de Zuazo
c597436b70
packet 0x2c: properties updated to support 1.6.2 version (elementList added)
2013-07-11 12:08:46 +02:00
Xabier de Zuazo
6b09737dec
Added packet 0x85 (Tile Editor Open)
2013-07-11 08:15:53 +02:00
Xabier de Zuazo
ae2046d991
packet 0xfe (ping): some fields renamed, put the correct protocol version in mc.ping()
2013-07-11 08:15:53 +02:00
Matt Bell
f3657f74e0
Bumped protocol version for 1.6.2
2013-07-10 21:33:17 -07:00
Xabier de Zuazo
767f64153b
improved 0x64 packet support, code refactorized using an optional_fields hash
2013-07-08 10:07:07 +02:00
Xabier de Zuazo
c9a081fd6a
client ping fixed
2013-07-07 20:25:59 +02:00
Xabier de Zuazo
e46fd6f1c7
packet 0x27: leash from int to ubyte
2013-07-07 19:15:39 +02:00
Xabier de Zuazo
058d6eb12e
packet 0x64 (OpenWindow): support for the optional entityId field
2013-07-07 12:29:18 +02:00
Xabier de Zuazo
1ac3e12099
packet 0xfe (ping): updated to support 1.6.1
2013-07-07 11:04:15 +02:00
Xabier de Zuazo
9c3f671a22
packet 0x13: added jumpBoost field
2013-07-07 10:24:49 +02:00
Xabier de Zuazo
dcbaf3836e
packet 0x27: leash from bool to int
2013-07-07 09:13:53 +02:00
Matt Bell
e46a98a5a5
Updated to protocol version 73 (1.6.1)
2013-07-07 09:05:05 +02:00
Xabier de Zuazo
2665649363
protocol version updated to support minecraft 1.5.2
2013-05-05 04:08:12 +02:00
Xabier de Zuazo
664c7e380a
print sent and received packet contents in debug mode
2013-04-15 06:40:09 +02:00
Xabier de Zuazo
120da4a20f
packet 0x66 (Click Window): shift
field renamed to mode
2013-04-14 11:27:53 +02:00
Xabier de Zuazo
8760ff55bc
in packet 0x66, "shift" must be of type byte instead of boolean
2013-04-13 16:41:53 +02:00
Robin Lambertz
6c945b6265
Fix packet 0xce, "create" should be a byte.
...
Renamed "create" to "action", and made it a byte.
According to wiki.vg, 0 is create, 1 to remove, and 2 to update.
2013-04-08 15:35:35 +02:00
Xabier de Zuazo
34e06bdd48
added entity metadata debugging message
2013-04-06 21:48:39 +02:00
Xabier de Zuazo
086d47b725
errors printing in readEntityMetadata() improved
2013-04-06 19:48:22 +02:00
Xabier de Zuazo
353f156d1a
fix buffer length checking bug in readSlot()
2013-04-06 19:34:10 +02:00
Xabier de Zuazo
e176938682
Protocol version updated to 1.5.1
2013-04-06 05:41:40 +02:00
Xabier de Zuazo
936ba5832d
added debug output for read/written packet ids
2013-04-06 05:04:47 +02:00
Xabier de Zuazo
b699d5506a
added debug() method for NODE_DEBUG=mc-proto
2013-04-06 05:02:36 +02:00
Xabier de Zuazo
0ff49078ff
friendlyFire on 0xd1 package id changed from bool to byte type
2013-04-06 04:48:05 +02:00
Xabier de Zuazo
38f46998e3
Unrecognized packetId error printing id in hex
2013-04-06 04:45:32 +02:00
Matt Bell
2c00c9f8be
Fixed bug where the wrong type was used when serializing entityMetadata
2013-03-18 14:13:03 -07:00
Matt Bell
367b8a96da
Switched from constructors to functions in serialization code
2013-03-18 13:02:57 -07:00
Andrew Kelley
09a80dddd2
all tests passing with newest protocol
2013-03-13 23:27:15 -04:00
Matt Bell
4a366d75b5
Added stringArray datatype
2013-03-13 17:57:18 -07:00
Matt Bell
5f6abad700
Updated to protocol 60 (1.5.0)
2013-03-13 17:06:28 -07:00
Andrew Kelley
8e6d11b09e
minor refactor
2013-02-10 21:05:42 -05:00
Andrew Kelley
b335f201a8
fix objectData writer
2013-02-03 14:32:14 -05:00
Robin Lambertz
fdc01db825
Pass the original error around, and emit an error event on the client
2013-01-29 17:39:33 +00:00
Robin Lambertz
997071ef41
Changed if(typeof var === undefined) to if(var). Made errors error objects.
2013-01-29 08:53:23 +00:00
Robin Lambertz
529355782e
Added errors in case of wrong MetaData or wrong Chunk Data
2013-01-29 01:05:33 +00:00
Robin Lambertz
5b67cec4e0
ups. Fixed a syntax error.
2013-01-29 00:48:01 +00:00
Robin Lambertz
eaa895120a
Original skeleton changes.
2013-01-29 00:44:00 +00:00
Andrew Kelley
804397928c
y values when only 1 byte are always unsigned
2013-01-22 09:01:29 -05:00
Andrew Kelley
75c52bdf00
0x0e: face is an unsigned byte
2013-01-19 17:45:42 -05:00
Andrew Kelley
dbb0a4ccbe
add additional assertion
2013-01-12 05:17:17 -05:00
Andrew Kelley
5a85aa454f
fix incorrectly swapped stance and y on 0x0d
...
add test that would have caught the bug
2013-01-10 20:34:56 -05:00
Andrew Kelley
0aa52864df
simplify and fix entityMetadata parsing and serializing
2013-01-08 02:44:17 -05:00
Andrew Kelley
c03ac963d9
all writers finished and tested. closes #15
2013-01-08 01:53:30 -05:00
Andrew Kelley
817fb9b51e
add writers for most data types
2013-01-08 00:50:43 -05:00
Andrew Kelley
10cb3e0100
test all packets
2013-01-07 23:36:14 -05:00
Andrew Kelley
5df31e4d88
refactor data types
2013-01-07 22:20:40 -05:00
Andrew Kelley
8a6d4bc725
add ushort writer
2013-01-07 22:14:14 -05:00
Andrew Kelley
a50bf7926b
0x38: remove chunkColumnCount. Use meta.length
2013-01-05 23:02:47 -05:00
Andrew Kelley
08f71f11dc
add chunkCount to 0x38
...
changed some more things for more API consistency
* 0x33: compressedData -> compressedChunkData
* 0x38: meta.chunkX -> meta.x
* 0x38: meta.chunkZ -> meta.z
* 0x38: meta.primaryBitMap -> meta.bitMap
* 0x38: add chunkCount
2013-01-05 16:51:42 -05:00
Andrew Kelley
5f769caebc
minor API update
...
* move constants.STRING_MAX_LENGTH -> protocol.STRING_MAX_LENGTH
* expose protocol.version
* expose protocol.minecraftVersion
* expose protocol.sessionVerson
* expose protocol.parsePacket
* expose protocol.createPacketBuffer
2013-01-05 05:17:27 -05:00
Andrew Kelley
150c89cc6d
passing test: pinging a real minecraft server
2013-01-04 21:42:31 -05:00
Andrew Kelley
8096a08afd
avoid dependency on iconv. makes it easier to use on windows. see #12
2013-01-04 19:04:06 -05:00
Andrew Kelley
3a8bfaf8e3
refactor + createServer support
2013-01-04 01:45:57 -05:00
Andrew Kelley
d38dad2d56
move packets to protocol, refactor
2013-01-03 23:14:19 -05:00