Commit Graph

491 Commits

Author SHA1 Message Date
joodicator bcd156e83b Fix: 1.16.5 is erroneously marked as unsupported 2022-01-02 15:41:36 +01:00
joodicator 33293a2395 Fix: Travis pypy test environment fails to install 2021-12-16 20:51:46 +01:00
joodicator bf49006553 Add support for Minecraft 1.18 and 1.18.1. 2021-12-16 19:39:13 +01:00
joodicator 1ae9a2b48a Merge pull request #238 into pull request #230 2021-12-16 19:36:41 +01:00
Andrew So c04e831e19 update to 1.17.1 and minor fixes 2021-12-10 14:53:18 -08:00
Mike Shlanta 63b8e614cd Move virtualenv upgrade to before_install 2021-12-05 13:13:17 -05:00
Mike Shlanta c58e809dbf Address missing rustc for py36 in TravisCI 2021-12-05 13:08:06 -05:00
Mike Shlanta f01584ec01 Flake8: E502, E131 2021-12-05 12:28:37 -05:00
Mike Shlanta fad399d5d7 E501 2021-12-05 12:21:06 -05:00
Andrew So 99a97df753
Merge pull request #1 from jyooru/pull230
fix linting issues
2021-07-07 20:52:34 -07:00
jyooru 37bd22172c
lint: E231 2021-07-05 15:57:25 +10:00
jyooru e40fb466ae
lint: W293 2021-07-05 15:56:37 +10:00
jyooru 317f3e62b2
lint: E302 2021-07-05 15:56:07 +10:00
jyooru 550886b414
lint: W292 2021-07-05 15:55:22 +10:00
Andrew So 3db741ad52 got all basic requires for it work for 1.17 2021-06-13 00:22:34 -07:00
Andrew So 0169e0aa75 updated all other packets that needed updating 2021-06-12 10:38:15 -07:00
Andrew So dd5c77545b fixed compression typo 2021-06-12 09:08:56 -07:00
Andrew So 6400602625 initial 1.17 update changes 2021-06-11 10:34:27 -07:00
joo 2813d02ae7 Fix: Connection.file_object is not closed on disconnection 2020-12-07 23:59:10 +01:00
joo 73728957e7 Allow reconnection from within exception handlers
This implements the changes suggested in
<https://github.com/ammaraskar/pyCraft/issues/146#issuecomment-738914064>,
i.e.:

1. `minecraft.networking.Connection.disconnect' now correctly terminates the
   new networking thread if it is still waiting to replace the old one, and

2. `minecraft.networking.Connectoin._handle_exception' no longer calls
   `disconnect' if any exception handler has initiated a new connection.
2020-12-07 23:47:48 +01:00
joo 93db454cb5 Add test case reproducing #146 (fixed to behave consistently) 2020-12-04 17:06:39 +01:00
joo 7693961fb9 Let fake server tests override the default client exception handler
This can by done by adding an exception handler with `early=True'
in the `_start_client' method of a subclass of
`fake_server._FakeServerTest'.
2020-12-04 15:37:49 +01:00
joo 252e60a6e2 Add support for Minecraft 20w45a to 20w48a (protocol 2^30+5 to 2^30+7). 2020-12-02 16:27:28 +01:00
joo 969419da3f Fix: non-monotonic protocol versions are not correctly handled
After 1.16.3, Mojang started publishing snapshot, pre-release and release
candidate versions of Minecraft with protocol version numbers of the form
`(1 << 30) | n' where 'n' is a small non-negative integer increasing with each
such version; the release versions continued to use the old format. For
example, these are the last 8 published Minecraft versions as of this commit:

release           1.16.3      uses protocol version 753
pre-release       1.16.4-pre1 uses protocol version 1073741825 == (1 << 30) | 1
pre-release       1.16.4-pre2 uses protocol version 1073741826 == (1 << 30) | 2
release candidate 1.16.4-rc1  uses protocol version 1073741827 == (1 << 30) | 3
release           1.16.4      uses protocol version 754
snapshot          20w45a      uses protocol version 1073741829 == (1 << 30) | 5
snapshot          20w46a      uses protocol version 1073741830 == (1 << 30) | 6
snapshot          20w48a      uses protocol version 1073741831 == (1 << 30) | 7

This means that protocol versions no longer increase monotonically with respect
to publication history, a property that was assumed to hold in much of
pyCraft's code relating to support of multiple protocol versions. This commit
rectifies the issue by replacing any comparison of protocol versions by their
numerical value with a comparison based on their publication time.

Newly defined is the dictionary `minecraft.PROTOCOL_VERSION_INDICES', which
maps each known protocol version to its index in the protocol chronology. As
such, the bound method `minecraft.PROTOCOL_VERSION_INDICES.get` can be used as
a key function for the built-in `sorted`, `min` and `max` functions to collate
protocol versions chronologically.

Two utility functions are provided for direct comparison of protocol versions:
    `minecraft.utility.protocol_earlier` and
    `minecraft.utility.protocol_earlier_eq`.

Additionally, four methods are added to the `ConnectionContext` type to ease
the most common cases where the protocol of a given context must be compared to
a given version number:
    `minecraft.connection.ConnectionContext.protocol_earlier`,
    `minecraft.connection.ConnectionContext.protocol_earlier_eq`,
    `minecraft.connection.ConnectionContext.protocol_later` and
    `minecraft.connection.ConnectionContext.protocol_later_eq`.
2020-12-02 15:11:39 +01:00
joo 4052136d30 List support for Minecraft 1.16.4 in README.rst 2020-12-02 14:28:59 +01:00
Vesek 4a4b699b85 Add support for Minecraft 1.16.4-pre1, 1.16.4-pre2, 1.16.4-rc1 and 1.16.4 (protocols 1073741825, 1073741826, 1073741827 and 754) 2020-12-01 05:20:30 +01:00
BD103 2e77cf5f77
Update README.rst (#198)
Added 1.16.3 to the list of supported versions
2020-12-01 02:46:53 +01:00
Tristan 4e01fdd310
Update travis distro to focal (#203)
Fixes OpenSSL version no longer being supported
2020-11-11 20:59:28 -05:00
joo 903c20f9e2 Add support for Minecraft 1.16.3-pre1 and 1.16.3 (protocols 752 and 753) 2020-09-12 07:02:22 +02:00
joo f37feeca18 Fix: MultiBlockChangePacket.ChunkSectionPos reads/writes incorrectly 2020-09-10 16:35:53 +02:00
joo cf93923acc Fix: EntityPositionDeltaPacket.delta_{x,y,z} use wrong format 2020-09-01 00:49:35 +02:00
joo eae6e5c9cd Fix EntityPositionDeltaPacket format for 1.8.9; closes #190 2020-09-01 00:39:49 +02:00
joo e434497dc7 Add type for general fixed-point numbers 2020-09-01 00:37:48 +02:00
joo 3c84c2a429 Merge branch 'v1.16' into master 2020-08-19 20:27:11 +02:00
Radon Rosborough 095191a77c
Change package name from 'minecraft' to 'pyCraft'
* Use setuptools instead of distutils
* Fix package name
2020-08-17 18:32:16 +02:00
joo 51fa0bd2d1 Change setup.py to use setuptools instead of distutils 2020-08-17 18:25:50 +02:00
Amund Eggen Svandal d01dfd4812 Requirements moved to setup.py 2020-08-17 18:25:50 +02:00
Amund Eggen Svandal 1f42f61620 Install minecraft in editable mode 2020-08-17 18:25:50 +02:00
Amund Eggen Svandal 4a8fab1138 Add requirements to setup.py 2020-08-17 18:25:50 +02:00
laundmo 2947aa6619
Added listener decorator documentation (#161)
* added decorator example to connection.rst

since decorators are more pythonic, it was put in front of the register method.

* Expanded listener decorator docstring

* changed autofunction to autodecorator

* removed whitespace in empty line

* remvoed trailing whitespace

i didn't even edit there WTF
2020-08-17 17:49:25 +02:00
joo 2d9479cc12 Change Travis config to use pypy3 instead of pypy 2020-08-17 12:01:26 +02:00
joo fcacb8abf8 Remove trailing space from join_game_and_respawn_packets.py 2020-08-17 12:01:03 +02:00
joo 3f4a5d46a6 Update README with supported versions; increment package version 2020-08-17 11:31:02 +02:00
joo 4c35517157 Fix support for Minecraft 20w06a to 1.16.2 (protocols 701 to 751) 2020-08-17 11:25:30 +02:00
joo b79f8b30eb Remove support for Python 2.7 2020-08-17 07:10:10 +02:00
joo 3723655fa3 Add .vscode to gitignore 2020-08-17 05:40:40 +02:00
joo 84df884ca4 Remove 'Packet.packet_id' attribute, replacing with 'id' 2020-08-17 05:39:48 +02:00
joo c6afe25429 Remove 'UUIDIntegerArray' type, as 'UUID' already exists 2020-08-16 05:40:13 +02:00
Sillyfrog 8a098b399b Support for v1.16.2 2020-08-13 22:19:04 +10:00
Sillyfrog 3dcefae645 v1.16.1 support 2020-06-26 17:46:33 +10:00