* 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
* 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
* 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>
* 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.
* 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.
* 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
* 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.
* 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>
* 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>
* Add `beforeLogin` event on server
* optional function passin instead of emitted event
* Add documentation and bump version
* undo release push
* add test for `beforeLogin`
* 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
* 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
* 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
* 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