Commit Graph

415 Commits

Author SHA1 Message Date
joodicator
e3d2b1a368 Improve metadata and auxiliary methods of existing packets.
* Add multi-attribute aliases to some packets, for user convenience.
* Add support for writing PlayerListItemPacket.
* Add 'fields' attributes to manually-read/written packet classes,
  implementing 'field_string' where appropriate to allow enable the
  default __repr__ implementation.
* Modify data constructors where appropriate so that __repr__
  implementations match their constructor protocols.
* Improve comments on type aliases within packet classes.
* Add/modify tests to cover the new functionality.
2019-06-08 15:39:24 +02:00
joodicator
234e57716c Increment package version to 0.6.0 2019-05-29 18:47:14 +02:00
joodicator
d1e1da85c8 Declare support for 1.14.2 pre-releases 1-4 (481-484); update README 2019-05-29 18:26:06 +02:00
Sillyfrog
6d9d15845a Support for 1.14.2 (same packet format) 2019-05-29 15:37:25 +10:00
joo
b83b33f8df
Merge pull request #125 from SirGhostal/new-packets
* Add Angle type for byte-encoded rotation angles.
* Fix: SpawnPlayerPacket and SpawnObjectPacket use wrong type for pitch/yaw.
* Add FacePlayerPacket and EntityLookPacket.
2019-05-18 03:04:59 +02:00
joodicator
1012ee8640 Revert: Add tests for Angle (were already present) 2019-05-18 02:54:21 +02:00
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
a6c11bbb34 Flake8: Correct E501 line too long (81 > 79 characters) 2019-05-17 21:56:32 +01:00
Zachy
b0a9a3693c Remove white space 2019-05-17 21:45:21 +01:00
Zachy
e8a0e34aef Feedback: Replace FeetEyes convention with OriginPoint for forward compat 2019-05-17 21:38:57 +01:00
Zachy
0b127da0ca Feedback: Correct Fixed Point conversion & take mod of angle send value 2019-05-17 21:31:33 +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
0fc8c3bbfe Add tests for new Angle type. 2019-05-15 13:52:13 +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
6ef868bc5b Update README.rst 2019-05-13 22:36:36 +02:00
joodicator
b3cf00a856 Add support for Minecraft 1.14.1 Pre Release 1 to 1.14.1 (protocols 478 to 480) 2019-05-13 22:25:40 +02:00
joo
6d62d3956a
Merge pull request #116 from Amund211/packets
Implements the sound effect and use item packets
2019-05-13 22:05:40 +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
e4f8b5583a Fix: networking.types.utility.__all__ is incorrect. 2019-05-13 21:24:41 +02:00
joo
4956d5e70d
Merge pull request #103 from SirGhostal/patch-2 2019-05-13 19:14:37 +02:00
joodicator
41ea36c642 Add test coverage for @listener. 2019-05-13 19:04:35 +02:00
joodicator
24ca96accb Merge branch 'master' into patch-2 2019-05-13 19:02:23 +02:00
joo
7ae6d599fb
Merge pull request #102 from SirGhostal/patch-1
Add RespawnPacket and ServerDifficultyPacket.
2019-05-13 18:39:20 +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
f248006b86 Fix: doc build fails due to unused 'sphinx.ext.pngmath'. 2019-05-11 09:28:57 +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
56d1300db1 Updated id of UseItemPacket 2019-01-13 22:06:39 +00:00
L1LxHa
9b43d6f004 Fix hanging indefinitely while making auth-related requests (#117) 2019-01-04 20:22:42 -05:00
Ammar Askar
b4c58477f4 Fixes for flake8 2019-01-04 20:12:07 -05:00
Ammar Askar
6adefa8c75 Add test for new invalidate_previous functionality 2019-01-04 19:59:45 -05:00
Amund Eggen Svandal
bea661860d Add Use Item packet 2019-01-02 01:38:53 +01: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
Amund Eggen Svandal
c67652d7e8 Add option to invalidate previous access_tokens to authenticate
This changes the default behaviour to include `self.client_token`
when using `authenticate`. If `self.client_token` is `None`, a new
token is generated using uuid4 (like the vanilla client does).
2019-01-02 01:16:02 +01:00
Tristan Gosselin-Hane
316ea4d63d Implemented Player List Header And Footer Packet 2018-11-12 21:22:55 +01:00
joo
527f3d3146 Add support for Minecraft 1.13.2-pre1, 1.13.2-pre2 and 1.13.2 (protocols 402 to 404). 2018-10-26 19:58:20 +01:00
joo
48e1003f42 Fix issue #109 and add regression test. 2018-10-12 17:07:04 +01:00
Billy SU
eb302094aa Fix typo of arbitary to arbitrary 2018-10-08 18:46:15 +02:00
joo
0eec179f48 Add support for Minecraft 1.13.1 and 1.13.1-pre2 (protocols 400 to 401). 2018-08-23 07:42:28 +01:00
joo
720868fab7 Add support for Minecraft 18w80a to 1.13.1-pre1 (protocols 394 to 399). 2018-08-19 18:11:12 +01:00
Zachy24
103b53a97a Change case on GameMode 2018-08-15 22:29:18 +01:00
Zachy
409c619eb0
return method 2018-08-15 20:53:13 +01:00
Zachy
6d6a592f07
Add decorator for register_packet_listener() 2018-08-13 01:57:16 +01:00