Commit Graph

41 Commits

Author SHA1 Message Date
joodicator
a3357762d7 Add tests for FacePlayerPacket, Angle; fix bugs; misc. changes
* Add alias FacePlayerPacket.target for x, y, z fields.
* Replace FacePlayerPacket.OriginPoint type alias with Origin and
  EntityOrigin aliases.
2019-05-18 02:36:36 +02:00
Zachy
e8a0e34aef Feedback: Replace FeetEyes convention with OriginPoint for forward compat 2019-05-17 21:38:57 +01:00
Zachy
a60b513e74 Fix import order 2019-05-17 02:15:01 +01:00
Zachy
93f6d269da Fix tests to work with new Angle type@ 2019-05-17 02:09:27 +01:00
Zachy
22008c5c5c New line at end of file 2019-05-15 14:18:49 +01:00
Zachy
3c594a1386 Remove debugging print statement and make send static 2019-05-15 13:59:23 +01:00
Zachy
7361f761f5 Implement type 'Angle', packet 'EntityLookPacket' and fix Packet Types
Remarks: I chose to implement an angle between 0-360 degrees as opposed to -180 - 180. linear transformation, the maths was far simpler converting an UnsignedByte into positive values instead of a Byte into negative and positive
2019-05-15 13:51:31 +01:00
Zachy
d7b560a9f4 Implement FacePlayerPacket
Called when using the teleport chat command and you specify a facing parameter. `/teleport [<targets>] <x> <y> <z> facing`
2019-05-15 01:28:56 +01:00
joodicator
7b1567c352 Improve test coverage wrt protocol versions; other fixes/improvements
Improvements to the test suite:
* List release version names and numbers in minecraft/__init__.py.
* Make some tests, which previously ran for *all* protocol versions,
  run only for release protocol versions (to improve test performance).
* Make some tests, which previously ran only for the latest protocol
  version, run for all release protocol versions (to improve coverage).
* Print each protocol version being tested to the debug log, to help
  identify sources of errors.
* Use the `nose-timer' plugin to show the run time of each test.

Fix errors revealed by increased test coverage:
* Fix: SoundEffectPacket.Pitch is not serialised correctly for early
  protocol versions.
* Fix: handleExceptionTest finishes later than necessary because
  the test overrode an exception handler used internally by
  `_FakeServerTest', causing the server thread to time out after 4s.
* Add support for multiple exception handlers in `Connection'
  (required for the above).

Improvements to data descriptors:
* Make syntax of property declarations more consistent/Pythonic.
* Factor the definition of several aliasing properties into the
  utility methods `attribute_alias' and `multi_attribute_alias',
  which construct suitable data descriptors.
* Define and use the named tuple `Direction' for (pitch, yaw) values.
2019-05-14 18:41:58 +02:00
joodicator
d24b6eaded Update SoundEffectPacket and UseItemPacket to 1.14; misc improvements 2019-05-13 21:58:59 +02:00
joodicator
faf02acf62 Merge branch 'master' into packets 2019-05-13 21:28:02 +02:00
joodicator
bf719611ec Update RespawnPacket and ServerDifficultyPacket to 1.14. 2019-05-13 18:23:05 +02:00
joo
d627423949 Merge branch 'master' into patch-1 2019-05-13 18:02:01 +02:00
joodicator
612fa8e324 Add support for Minecraft 18w43a to 1.14 (protocols 441 to 477)
This commit introduces two backward-incompatible changes which may break
existing code:

(1) `networking.packets.clientbound.play.SpawnObjectPacket.EntityType'
is no longer accessible as an attribute of the the `SpawnObjectPacket'
class: the values now depend on a `ConnectionContext`, and must be
accessed through an instance, or using `SpawnObjectPacket.field_enum'.
See the text of the `AttributeError` raised from the descriptor for
`SpawnObjectPacket.EntityType` for the full details.

(2) For some subclasses of `networking.types.Type', it is necessary to
call the methods `read_with_context' and `send_with_context' instead of
`read' and `send', supplying a `ConnectionContext' for those data types
- currently only `Position` - whose layout depends on it.
2019-05-11 08:43:51 +02:00
Amund Eggen Svandal
1a1b9803f8 Edit definition of SoundEffectPacket 2019-01-13 23:05:51 +00:00
Amund Eggen Svandal
e21c0d877f Implement the Sound Effect packet
Information gathered from https://wiki.vg/Protocol_version_numbers.
Due to some difficulties the change from "sound_id" to "sound_name" and
the re-implementation of "sound_category" in the packet may be off by
some protocol versions.
2019-01-02 01:38:14 +01:00
Tristan Gosselin-Hane
316ea4d63d Implemented Player List Header And Footer Packet 2018-11-12 21:22:55 +01:00
Zachy24
103b53a97a Change case on GameMode 2018-08-15 22:29:18 +01:00
Zachy24
da103c6d3c Oops 2018-08-13 01:35:34 +01:00
Zachy24
4ba6a40df6 Add aliases for Enums in Packet Definitions 2018-08-13 00:41:21 +01:00
Zachy
aeaf7b5bcb
Import new enums into Packet Definition 2018-08-12 23:12:45 +01:00
Zachy
0198476fa9
Fix packet id for protocol versions 47 and 69. 2018-08-12 22:56:16 +01:00
Zachy
e840fab267
Update __init__.py 2018-08-12 11:04:40 +01:00
Zachy
1a114c1b95
Implement clientbound.play.ServerDifficultyPacket 2018-08-12 10:47:50 +01:00
Zachy
d20344cac1
Implement clientbound.play.RespawnPacket 2018-08-12 10:39:11 +01:00
joo
adc8d15ddc Add support for Minecraft 1.13 and 1.13-pre3 to pre10 (protocols 385 to 393).
Add clientbound.login.PluginRequestPacket and serverbound.login.PluginResponsePacket.
2018-07-19 09:50:13 +01:00
Zachy
d3a8cc8dfb Implement New Type. FixedPointInteger. (#93)
Fix: SpawnPlayerPacket coordinates read wrongly before protocol 100. Add types.FixedPointInteger.
2018-06-20 05:32:35 +01:00
joo
db714f9490 Fix: MapPacket.write_fields() is incorrect. 2018-05-27 17:12:50 +01:00
joo
8578326c2f Add serialisation and tests for SpawnObjectPacket. 2018-05-27 15:36:13 +01:00
joo
709b80b539 Add serialisation and tests for Explosion, {Multi,}BlockChange, and CombatEvent packets. 2018-05-27 13:28:01 +01:00
joo
52c0671f4f Add support for Minecraft snapshots 18w03a-18w20c (protocol 354-377). 2018-05-20 06:58:23 +01:00
joo
c90afe4424 Fix: networking.types.Position.send() doesn't accept a Position. 2018-05-17 06:08:54 +01:00
gurland
c584f29154 Position type fix. Add new PlayerBlockPlacementPacket 2018-05-18 08:50:59 +01:00
joo
ece90fcd9d Fix: MultiBlockChangePacket reads y_coordinate wrongly. 2018-01-13 17:04:39 +00:00
joo
f492adfeff Add support for Minecraft snapshots 17w43a-18w02a (protocol 341-353).
Add support declaration for Minecraft version 1.8.9 (protocol 47).
2018-01-13 01:12:28 +00:00
joo
e9f095de42 Add ClientSettingsPacket and PluginMessagePacket.
Improve Packet string representation.
2017-08-24 05:49:32 +01:00
joo
9765e936c9 Fix incorrect packet IDs for PlayerPositionAndLookPacket for old protocol versions. 2017-08-20 07:35:14 +01:00
TheSnoozer
61b07f52f2 better packet names to match new packet structure 2017-08-09 16:33:41 +01:00
TheSnoozer
346b3081ec fix broken tests 2017-08-09 16:33:41 +01:00
TheSnoozer
4a508f935b use namedtuple for position type and use it as subclass for ClientExplosion.Record 2017-08-09 16:33:41 +01:00
TheSnoozer
8552c6efe5 regorganize packet structure as outlined in https://github.com/ammaraskar/pyCraft/pull/68 2017-08-09 16:33:41 +01:00