Commit graph

46 commits

Author SHA1 Message Date
William Gaylord
1d9a38253a
1.20.3 / 1.20.4 support (#1275)
* Inital 1.20.3 update, bring in minecraft-data with 1.20.3 support and add it to the versions

* Add data for packetTest for explosion packet.

* Add 1.20.4 to version list.

* Add fix for 1.20.3+ NBT isntead of strings for chat. Not happy with this but it does work.

* Fix linting

* Update version.js

Remove 1.20.3 since its the same as 1.20.4. (As suggested)

* Comment how handleNBTStrings works.

* Removed debug console.log

* Update README.md

* chat packet nbt handling fix, use feature

* big endian UUID, add back `text` wrapper

* use prismarine-chat in client test

* expose _handleNbtComponent

* use prismarine-chat exposed processNbtMessage

* fix pre-1.20.4

* Update package.json

* Update server.js

* Update server.js

add missing import

* update server hello world

---------

Co-authored-by: Romain Beaumont <romain.rom1@gmail.com>
Co-authored-by: extremeheat <extreme@protonmail.ch>
2024-02-26 01:14:49 +01:00
extremeheat
112926da0c
Pc1.20.2 (#1265)
* Initial changes for 1.20.2

* add NBT serialize tag type handling

* update tests

* Update pnbt and mcdata for nbt change

* lint

* fix wrong param to sizeOfNbt

* fix dupe NBT types

* move nbt logic to prismarine-nbt

* update tests

* update tests

* disable protodef validator in pluginChannel

* Fix state desync

* dump loginPacket.json in test output

* enable validation

* remove testing line in ci.yml

* update pnbt to 2.5.0

* update doc for `playerJoin`

* Update serializer.js

* update examples

* lint

* disable client bundle handling if bundle becomes too big

* Update client.js

* bump mcdata

* add soundSource and packedChunkPos example test values

---------

Co-authored-by: Romain Beaumont <romain.rom1@gmail.com>
2023-12-28 00:48:10 +01:00
Vitaly
9e99109476
Allow to create custom client & communication between clients (#1254)
* allow to create custom client & communication between client

* pass client context

* customClient should not be required

* allow to override Server impl to use

* better docs & typings

* refactor: add new client class for customCommunication

* fix doc

* move custom client to prismarine web client

* restore customPackets
2023-12-27 16:34:45 +01:00
extremeheat
d643d40415
reapply on master (#1067) 2023-05-28 10:28:56 +02:00
IceTank
d9e37e3d76
Add ipc connection option for servers (#1113)
* Add ipc connection option for servers

* Fix linting error
2023-05-20 15:03:55 +02:00
Frej Alexander Nielsen
e3e20757ef
Use consistent parameter naming for systemChat event (#1076)
* Use consistent parameter naming for systemChat event

* Update docs

* Update types
2023-01-27 01:01:47 +01:00
Frej Alexander Nielsen
cf1f67117d
Update to 1.19.3 (#1069)
* Add 1.19.3 player_info parsing

* player_remove packet parsing

* 1.19.3 chat parsing

* Outgoing chat for 1.19.3

* Fix lint

* Server chat validation

* add 1.19.2 and 1.19.3 in version.js

* Add 1.19.2 and 1.19.3 in ci.yml

* Deprecated client.verifyMessage for server clients

* Update docs

* Deprecate client.verifyMessage for server clients

* Fix tests

* Fix lint

* Fix packetTest

* Fix test

* Remove unneeded log statement

* Update types/docs

* Remove unnecessary feature check

* Remove _session from docs

Co-authored-by: Romain Beaumont <romain.rom1@gmail.com>
2023-01-21 20:31:17 +01:00
Frej Alexander Nielsen
92a5219915
Add more fields to playerChat event (#1068)
* Add sender and target name to playerChat event

* Update docs

* Update docs

* Remove unnecessary displayName parsing
2023-01-20 22:09:35 +01:00
Frej Alexander Nielsen
2a5ec378c4
Fix chat previews not working (#1054)
* Fix chat previews not working

* Update signMessage to account for chat previews

* Fix lint

* Fix signMessage function

* Server side chat preview verification

* Fix default value overriding provided value

* Only sign previews when they are formatted

* Sign undecorated messages when text is changed

* Update docs
2023-01-15 18:39:48 +01:00
LucienHH
28093fb1fb
Realm Joining (#1056)
* Add docs

* Implement Realm joining

* Check for Microsoft auth

* Remove on chat event

* Add realmName option to example

* Passthrough client to `realmAuthenticate`

* Fix overwriting existing authflow

* Don't use  `??=`

* Lint
2023-01-15 18:30:33 +01:00
Frej Alexander Nielsen
0526edf5f3
Update convenience chat events so higher-level clients can properly parse chat (#1055)
* Emit systemChat event in 1.19+

* Pass both plain message and unsigned content

* Rename property for clarity

* Fix verifyMessage throwing in 1.19

* Update docs

* Document systemChat event
2023-01-15 18:28:46 +01:00
extremeheat
367c01567c
Initial 1.19.1/2 signed chat support (#1050)
* Initial 1.19.1/2 signed chat impl

* lint

* remove node 15 nullish operators

* fix undefined uuid error

* handle player left

* fix

* add some feature flags

* fix

* Fix test to use new client.chat() wrapper method

* refactoring

* corrections, working client example

* refactoring

* message expiry checking

* Fix UUID write serialization

* Remove padding from client login to match vanilla client

* Fix server verification

* update packet field terminology

* Add some tech docs
Rename `map` field in Pending to not conflict with Array.map method

* update tech doc

* lint

* Bump mcdata and pauth

* add doc on playerChat event, .chat function

* update doc

* use supportFeature, update doc

Co-authored-by: Romain Beaumont <romain.rom1@gmail.com>
2023-01-14 20:33:04 +01:00
extremeheat
d7c5053a13
1.19.0 support (#1027)
* Bump mcdata for 1.19

* 1.19 in version.js

* 1.19.0 in ci yml

* Update ci.yml

* Update version.js

* Update package.json

* No fail fast

* Update mcdata

* Update package.json

* Update ci.yml

* [1.19] fix tests and library session code (#1020)

* make tests work, add todo's

* clean up, varlong test, additional todo

* removed log statements, fix for older versions

* Update mcdata

* Update ci.yml

* Update ci.yml

* remove excessive version comments near supportFeature checks

Co-authored-by: Romain Beaumont <romain.rom1@gmail.com>

* chat signing implementation

* Update ci.yml

* move some boilerplate to pauth

* update tests

* update chat example

* bump pauth, update doc

* modify test nextMessage func

* lint

* update default version

* add server player verifyMessage

* update doc

Co-authored-by: Romain Beaumont <romain.rom1@gmail.com>
Co-authored-by: Rob9315 <dev.robk@gmail.com>
2022-08-16 00:57:26 +02:00
Jordan Jones
60379eb7d2
Provide interface for using not at all supported alternative accounts. (#1026)
* Handle auth potentially being an function

* "Simple" example of how in theroy it would work

* Add package.json

* Fix lint

* add type declarations

* Remove mcleaks example

* Add doc changes

* adjust warning

* Fix lint from rebase manual edit.
2022-07-29 18:41:43 +02:00
Jordan Jones
e079e9b0f6
Use offline mode as default authentication, fallback to offline mode if invalid option. (#998)
* Default n-m-p to use offline unless specified.

* Remove expression

* actually make offline default

* Revert examples

* Revert all example changes

* Add deprecation warning that mojang servers are no longer accepting mojang auth tokens.
2022-07-29 18:03:20 +02:00
IceTank
9cb16b8b12
Update doc add listening and close events (#1003) 2022-06-06 11:51:28 -04:00
Matthias Neid
83f1e85480
allow false as beforePing callback result to ignore pings and terminate the connection (#986) 2022-05-15 00:51:18 +02:00
Matthias Neid
7a1d857602
Fallback version for dynamic versions (#983)
* added fallbackVersion to dynamic version support

* mark fallbackVersion as optional in docs

* added fallbackVersion to ping responses

* don't enable dynamic cross version support if version is undefined
2022-05-15 00:39:20 +02:00
IceTank
a9cc6cee85
Add motdMsg to createServer (#996)
* Add motd as MessageBuilder object

* Fix chatMessageMotd type

* Fix test (?)

* Update API.md

* Remove MessageBuilder dependency and type

* Minor code refactor

* Update docs/API.md

Co-authored-by: u9g <git@u9g.dev>

* chatMessageMotd => motdMsg

Co-authored-by: u9g <git@u9g.dev>
2022-05-13 18:49:08 -04:00
Matthias Neid
ffe912b2fe
Export defaultVersion (#984)
* export defaultVersion

* added defaultVersion to api documentation
2022-04-13 13:50:42 +02:00
jojomatik
68e6400e30
fix: cross version ping (#976)
* docs: explain version parameter

Explain version parameter more explicitly. Remove reference to outdated versions. Describe dynamic cross version support with parameter value `false`.

* fix(types): allow `false` for version parameter

Allow value `false` for version parameter. This makes dynamic cross version support usable in typescript projects.

* fix: enable cross version support for ping

Enable dynamic cross version support for ping by responding with the client version and protocol version if dynamic cross version support is enabled.
2022-04-10 14:45:04 +02:00
Richard Dorian
f7ef27dd70
add protocolValidation field to server and client options (#964)
* add protocolValidation field to server and client options

* add doc

* change option name
2022-03-08 15:40:57 +01:00
IceTank
fadf5ea9cd
Session doc fix (#937)
* Fix session usage in API.md

* Grammer fix

* Update to include selectedProfile

* Update api.md with selectedProfile

* update session typings
2021-12-26 15:53:25 +01:00
Richard Dorian
bde8cd2818
favicon now include in types (#938) 2021-12-26 15:52:52 +01:00
Oscar
809c226c02
Fixed typo's (#915) 2021-11-04 16:20:56 -04:00
Ghqst
9813670271
Add the ability to send a fake hostname in set_protocol (#913)
* Update index.d.ts to more closely match API.md

* Update to fit more in line with my API.md

Reorder things for my additions and reorders in API.md

* Update API.md from index.d.ts

* Explain writeChannel

* Clarified on all TODOs

* Add fakeHost to client options

* Reorder index.d.ts

* Fix me forgetting options.fakeHost instead of just fakeHost

Co-authored-by: u9g <43508353+u9g@users.noreply.github.com>
2021-11-04 16:19:32 -04:00
Ghqst
e305bbdf5c
Improve Typescript definitions and API.md (#888)
* Update index.d.ts to more closely match API.md

* Update to fit more in line with my API.md

Reorder things for my additions and reorders in API.md

* Update API.md from index.d.ts

* Explain writeChannel

* Clarified on all TODOs

Co-authored-by: u9g <43508353+u9g@users.noreply.github.com>
2021-09-24 17:07:14 +02:00
circuit10
3c63cd17ba
Update API.md (#883) 2021-08-01 13:40:42 -04:00
Rob9315
78f038cae6
Add beforeLogin function option on server (#871)
* Add `beforeLogin` event on server

* optional function passin instead of emitted event

* Add documentation and bump version

* undo release push

* add test for `beforeLogin`
2021-07-06 12:42:00 +02:00
AngeryFrog
da4f293860
Mc.ping return a promise and use callbacks (#849)
* Added promised based ping

* made it possible too use both promises and callbacks

* Forgot too mention the callback is optional

* Tests

* Promisify the ping function
2021-06-19 22:03:26 +02:00
Grooble
1796b9693d
Add a way to encode a packet only once and send it to multiple clients (#851)
* Added Server#.writeToClients()

* Documented server.writeToClients()

* Added test for Server#writeToClients()

* Bad arguments for Promise.all()

* Fixed tests

* Fixed tests

* Fixed tests

* Updated tests

* Reverted timeout to the normal
2021-05-02 01:12:37 +02:00
extremeheat
8f2a027812
Msa device code auth (#806)
* initial msa work

* rm debug code

* Update package.json

* lint, seperate constants, create missing msa cache

* support multiple profiles

* lint

* use shared constants

* fix path issues

* fix token variable

* fix caching msa profile data

* switch clientId to one from microsoft

* store caches in .minecraft, fallback to dev code auth when user+pass fails

* update electron demo, fix error handling, add docs

* fix caching dir

* fix lint

* move to class scope, token fixes

* retry on fail, terminology fixes

* fix promise bug

* cleanup
2021-01-30 01:21:03 +01:00
Jordan Jones
5d723e9a04
Integrate Authentication for Microsoft Accounts (#788)
* add node-fetch and @xboxreplay/xboxlive-auth for microsoft/xbox auth

* decide which authentication to use based on options;

if options.auth === 'microsoft' then use microsoft/xbox auth, else use Yggdrasil until they kill that.

* push working auth

* commentary

* eslint does not like me :(

* User-Agent works just fine without version

* linting = 95% of development

* revert changes to encrypt.js

* set haveCredentials to whether or not we have a token.

Technically this will always be true so...?

* eslint

* mod+create: api + example

* mod: readme.md
2020-12-11 21:30:48 +01:00
Romain Beaumont
011b6a189a
Revert "Revert "Add token authentication (#780)""
This reverts commit 14c4886ac4.

Adds back token auth now that mineflayed is fixed
2020-12-06 18:48:52 +01:00
Romain Beaumont
14c4886ac4
Revert "Add token authentication (#780)"
This reverts commit 0277091ddc.
This commits introduced a bug in offline mode.
We don't know yet how to fix it, so better revert first and fix later
2020-12-06 01:57:40 +01:00
ph0t0shop
0277091ddc
Add token authentication (#780)
* Add token authentication

* Update package.json

* Update src/client/auth.js

Co-authored-by: David Duarte <deltaduartedavid@gmail.com>

* Remove some deps

* Fix merge conflict + fix some token stuff

* Fix even more stuff + testing

* Change back echo example

* Let -> const + bugfix

* Fixed error handling

* Revert client_echo again...

* Fix linter errors

* Profile improvements

* Stupid linter errors

* Update yggdrasil, remove token auth example, move to client_echo instead

* Update client_echo

* Linter error...

Co-authored-by: David Duarte <deltaduartedavid@gmail.com>
2020-12-05 23:28:12 +01:00
Romain Beaumont
8f0ae218b1 add options.noPongTimeout to handle server that don't answer to ping packet
useful for example for minersbr.enxada.host in auto version mode
2020-10-25 15:14:22 +00:00
redcarti
0881d85577
client.end with full reason (#771)
* init

* updated docs
2020-10-25 14:25:44 +01:00
Romain Beaumont
330ab5a829 Support ipv4 and ipv6 by default in createServer
fix #759
2020-09-27 19:24:04 +00:00
Romain Beaumont
eb5bf74565 add buffer to packet event 2020-08-16 22:22:21 +00:00
Romain Beaumont
edece010bb
add auth and session server to doc 2020-08-03 01:48:23 +02:00
Romain Beaumont
4d092bb4dc
increase closeTimeout default to 2min and add to API 2020-08-03 01:37:35 +02:00
Romain Beaumont
7a30326403
add some doc to mc.ping 2020-07-14 16:22:21 +02:00
Idan Horowitz
54380a3cb7
Pass through http agent option to yggdrasil for proxy support (#676)
* initialize yggdrasil with agent option if it exists

* standardjs

* move require statements to the top

* add agent option to docs and ts type information
also removed useless typescript import and moved class fields from wrong class to the correct one

* update proxy examples and add http agents for proxying yggdrasil

* update to agent supporting yggdrasil version
2020-02-11 12:31:24 +01:00
vlakreeh
297d40b17d add skipValidation flag for authentication 2018-11-09 11:06:12 -05:00
Romain Beaumont
273337d630
add issue template 2018-10-08 22:30:45 +02:00
Renamed from doc/README.md (Browse further)