Commit Graph

180 Commits

Author SHA1 Message Date
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
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
ed85cb793a
Implement Enums for Difficulty/Dimension/Gamemode 2018-08-12 23:07:07 +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
f6f6511788 Remove dead code from connection.py. 2018-07-19 12:21:49 +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
joo
bea2222c58 Fix: MutableRecord.__ne__ misspelt as '__neq__'.
Add tests for MutableRecord and Position.
2018-06-21 07:06:45 +01:00
joo
4b6feda1cb Various improvements to utility types:
- Add operations for Vector.
- Move some tests into test_utility_types.py.
- Add tests for PositionAndLook and Vector.
2018-06-21 06:39:55 +01:00
joo
61598eba75 Divide minecraft.networking.types into multiple modules. 2018-06-20 09:54:17 +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
d36b652b69 Fix: reconnecting from an exception handler does not work. 2018-05-29 01:14:23 +01:00
joo
c01f194d06 Raise exception on login disconnect instead of silently stopping. 2018-05-28 17:42:08 +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
92f2eff681 Add several tests for the Connection class. 2018-05-27 07:40:13 +01:00
joo
ab9ca6dfee Add full connection tests with encryption enabled. 2018-05-27 03:30:43 +01:00
joo
52c0671f4f Add support for Minecraft snapshots 18w03a-18w20c (protocol 354-377). 2018-05-20 06:58:23 +01:00
joo
67344f2ceb Add IPv6 support to Connnection. 2018-05-18 12:26:47 +01:00
joo
19a82f51ef Add serverbound.play.PlayerBlockPlacementPacket. 2018-05-18 06:01:31 +01:00
gurland
c584f29154 Position type fix. Add new PlayerBlockPlacementPacket 2018-05-18 08:50:59 +01:00
joo
c90afe4424 Fix: networking.types.Position.send() doesn't accept a Position. 2018-05-17 06:08:54 +01:00
joo
38fa39a236 Extract Hand enum classes to minecraft.networking.types. 2018-03-02 02:07:25 +00:00
TheSnoozer
5c0c95068f fix AttributeError: 'Packet' object has no attribute 'name' (should be 'packet_name' - see https://github.com/ammaraskar/pyCraft/blob/master/minecraft/networking/packets/packet.py#L9) 2018-01-20 19:45:41 -05: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
da7c13076f Fix: client.handshake.get_packets returns a dict instead of a set. 2018-01-13 01:02:00 +00:00
TheSnoozer
821dad72ca Merge remote-tracking branch 'upstream/testing' 2018-01-03 23:53:58 -05:00
TheSnoozer
860628f64b the main hand attribute for ClientSettingsPacket was added in 15w31a [Protocol Version is now 49] and causes the client to send more data than the server expects which result in a instant disconnect while connecting to a 1.8.8 server 2017-11-19 23:22:00 -05:00
joo
af559e181a Remove limits on number of packets read/written per tick.
This addresses possible memory leaks or crashes caused by overflowing packet backlogs.
2017-10-10 04:47:50 +01:00
joo
88a5fdc637 Merge branch 'master' into testing 2017-09-24 06:36:52 +01:00
TheSnoozer
61d9695226 support 1.12.2 2017-09-19 18:30:51 -04:00
joo
e9f095de42 Add ClientSettingsPacket and PluginMessagePacket.
Improve Packet string representation.
2017-08-24 05:49:32 +01:00
joo
b79e7b5f28 Add tests for early and outgoing packet listeners. 2017-08-22 17:50:16 +01:00
joo
9497aae8fa Make FakeServer class more reusable, and extract it into its own module. 2017-08-22 14:22:12 +01:00
joo
593c98f168 Add support for early and outgoing packet listeners. 2017-08-21 21:06:28 +01:00
joo
9765e936c9 Fix incorrect packet IDs for PlayerPositionAndLookPacket for old protocol versions. 2017-08-20 07:35:14 +01:00
joo
46e058dd08 Update all tests, docs and code to use new packet names. 2017-08-09 20:53:54 +01:00
joo
f1ae765458 Add docstring about legacy packet names to packets module. 2017-08-09 19:32:07 +01:00
TheSnoozer
61b07f52f2 better packet names to match new packet structure 2017-08-09 16:33:41 +01:00
TheSnoozer
64cf23436b the class 'Type' needs to have '__slots__ = ()', otherwise every instance of 'Position' will have an unnecessary empty '__dict__' allocated 2017-08-09 16:33:41 +01:00
TheSnoozer
2f0dbf5cbb fix flake error as suggested 2017-08-09 16:33:41 +01:00
TheSnoozer
7eef61bfde use 'zlib.decompressobj' to handle the 'faulty' compression correctly as suggested in https://github.com/ammaraskar/pyCraft/pull/68 2017-08-09 16:33:41 +01:00
TheSnoozer
ab71aeeb7d Revert "deal with faulty compression's"
This reverts commit 357340e6dc.
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
TheSnoozer
f8781c19c8 The packet IDs of Entity Velocity (0x3E), Update Health (0x41), Combat Event (0x2D), and Client Status (0x03) changed in [protocol 336 (snapshot 17w31a)](http://wiki.vg/index.php?title=Pre-release_protocol&oldid=13265) 2017-08-09 16:33:41 +01:00
TheSnoozer
6137436d03 feedback: add write method 2017-08-09 16:33:41 +01:00
TheSnoozer
5349ff2730 feedback: we can use enum since subclass packets do no vary depending on the type id 2017-08-09 16:33:41 +01:00
TheSnoozer
d8fc742862 feedback: pass x, y, z as arguments since types classes are supposed to abstract away the python types and sending them over the network and calling an encode method before sending breaks that a little. 2017-08-09 16:33:41 +01:00
TheSnoozer
9ab2e1ae69 fix tox -e pylint-errors 2017-08-09 16:33:41 +01:00
TheSnoozer
fdb5a0bb72 fix tox -e flake 2017-08-09 16:33:41 +01:00
TheSnoozer
cc466bb0ea fixed an issue with mc 1.8.8 where velocity is not being sent and self.data is negative 2017-08-09 16:33:41 +01:00
TheSnoozer
6fbf75203c add Multi Block Change (client bound) 2017-08-09 16:33:41 +01:00
TheSnoozer
93227e26fa add Block Change Packet (client bound) 2017-08-09 16:33:41 +01:00
TheSnoozer
ca30ff2e74 add spawn object (client bound) 2017-08-09 16:33:41 +01:00
TheSnoozer
3ad5d1abd5 add Explosion Packet (client bound) 2017-08-09 16:33:41 +01:00
TheSnoozer
81f2ae4070 add Combat Event Packet (client bound) 2017-08-09 16:33:41 +01:00
TheSnoozer
fecb1d10e9 add Client Status Packet and allow client to respawn when issuing '/respawn' 2017-08-09 16:33:41 +01:00
TheSnoozer
0dc333237b add Update Health Packet (client bound) 2017-08-09 16:33:41 +01:00
TheSnoozer
6f52ceac0d add Entity Velocity Packet (client bound) 2017-08-09 16:33:41 +01:00
TheSnoozer
9caff502ca add ClientSpawnPlayer packet 2017-08-09 16:33:41 +01:00
TheSnoozer
42ede3f83d deal with faulty compression's 2017-08-09 16:33:41 +01:00
joo
5aa2d3df59 Add support for Minecraft 17w31a and 1.12.1-pre1 (protocols 336 and 337). 2017-08-03 18:31:00 +01:00
joo
cab8d56746 Revert "Remove unnecessary fileno method from FileObjectWrapper"
This partially addresses issue #65.

This reverts commit c87d7bc6f3.
2017-07-18 13:39:56 +01:00
Ammar Askar
f450ef5ff4
Add test for reactors 2017-07-16 20:02:50 -07:00
Ammar Askar
d686b6487f
Add testing for MapPacket 2017-07-16 15:18:09 -07:00
Ammar Askar
5b261b840e
Refactor out the action of writing out the packet header.
This allows subclasses of Packet to just call the new
method instead of having to duplicate the header writing
and compression code.
2017-07-16 13:40:00 -07:00
Ammar Askar
da967a4e56
Minor coverage improvement for packets 2017-07-16 01:20:08 -07:00
Ammar Askar
c87d7bc6f3
Remove unnecessary fileno method from FileObjectWrapper 2017-07-16 01:03:47 -07:00
Ammar Askar
d8226d266f
Improve tests of types.py 2017-07-16 01:00:14 -07:00
joo
2cf1d3cb03 Fix incorrect packet ID for PlayerPositionAndLookPacket.
Fix: PlayerPositionAndLookPacket.apply() does not correctly restrict angles.
2017-07-03 11:32:52 +01:00
joo
ece5fd903d Fix incorrect packet ID for MapPacket. 2017-06-08 06:10:40 +01:00
joo
b7290cf327 Add support for Minecraft pre-release 1.12-pre5 (protocol 332). 2017-05-20 05:27:23 +01:00
joo
b1edff913b Fix comment spacing in previous commit. 2017-04-16 04:19:42 +01:00
joo
df9171edd1 Suppress erroneous Pylint not-context-manager errors.
See: https://github.com/PyCQA/pylint/issues/782
2017-04-16 03:58:35 +01:00
joo
73672401ef Add support for Minecraft snapshot 17w13a (protocol 318). 2017-03-31 08:59:14 +01:00
Ammar Askar
0c31e748e8
Fix flake error caused by doc change.
Love that 79 character line limit >.>
2016-12-19 05:41:28 -05:00
Ammar Askar
9aa369c7da
Fix outdated documentation 2016-12-19 05:26:12 -05:00
joo
bf17f99083 Change version negotiator to use a status query. 2016-11-22 14:47:42 +00:00
joo
d72f05c8b0 Show exceptions by default and add `handle_exception' parameter to Connection. 2016-11-20 06:04:22 +00:00
joo
115693f8c3 Implement full Server List Ping capability with test. 2016-11-20 06:04:22 +00:00
joo
37a9bb66f1 Fix test failures caused by new flake8 version. 2016-11-15 00:02:02 +00:00
joo
7ab7381261 Fix infinite loop in protocol negotiator.
Add missing protocol versions for 1.10.1 and 1.10.2.
2016-10-01 15:52:17 +01:00
joo
864af19f7f Fix erroneous non-integer division in MapPacket. 2016-09-29 09:55:28 +01:00
joo
67bfcaac5b Add support for snapshot 16w38a (protocol 306).
Fix incorrect protocol number in ChatPacket.
2016-09-27 12:26:50 +01:00
joo
03565e24c8 Fix errors caused by the "uncompressed data length" field of compressed packets being erroneously written as the compressed data length. 2016-09-27 12:06:21 +01:00
joo
c4ed8e6d68 Add support for Minecraft pre-release 16w36a (protocol 305).
Add max_length property to ChatPacket.
2016-09-25 22:17:01 +02:00
joo
38deda0d3b Fix race condition causing failed Travis builds #75.3 and #81.1. 2016-09-02 00:26:12 +01:00
joo
ce63626bb1 Add 4 tests in 'test_connection.py' and fix related bugs. 2016-06-18 18:22:18 +01:00
joo
3ff7662684 Update tests to match new API. 2016-06-17 22:54:21 +01:00
joo
c8b3e7a809 Fix several bugs caused or exposed by running in Python 3. 2016-06-17 20:38:18 +01:00
joo
5202b2e6df Add support for Minecraft 1.9.1 (protocol 108) and 1.9.2 (protocol 109). 2016-04-28 04:01:24 +01:00