Releases: retrixe/EnderChat
v1.0.0-alpha.7
1 year anniversary since the previous release... better late than never though 🎊
- Fixed issues with Microsoft Login being unresponsive
- Fixed various bugs around missing translations, respawns, death messages and health messages
- Added support for Minecraft 1.20.1 through 1.20.6 🎉 (1.19+ signed chat still has issues...)
- Added support for displaying action bars 🎉
- Added various useful links to the Settings tab
Commits
Minor Changes
- Rework Microsoft Login prompt to remove tap bugs: 86d75b5
- Add 1.20.1, fix broken Send icon, add placeholder: b2aed00
- Tweak chat text field padding: 9870cad
- Add Android 12 monochrome logo: 8e330a3
- Prepare for 1.20.2 with CONFIGURATION conn state: 23c8a81
- Support 1.20.2 config state in Android native conn: 452fa2d
- Support 1.20.2 config state in native and JS conns: b32f3b4
- Add 1.20.2 IDs, handle config state in ChatScreen: c6e95f8
- Add Feedback/Support, Discord server to Settings: f7b41f1
- Fix 1.20.2 login, enable 1.20.2 support, edit TODO: 996f5c7
- Switch to Yarn v4 from npm: 1eb1449
- Update to RN 0.73 stable (new arch works!): d6a5e18
- Initial 1.20.3 work, fix pinging certain servers: 0846183
- Acknowledge resource packs (accept if forced): 2795733
- Order servers, trim server names: 0c6c7a5
- Refactoring for 1.20.4 enablement: 7c3b831
- Parse action bars, use hardlinks to save space: e56f8fc
- Save action bars, support NBT chat parsing: 174c968
- Support 1.20.3 disconnect, enable 1.20.3/4 support: 809ff69
- I... may have rolled my own NBT implementation Would be interesting to flesh this out into a library and benchmark it!: bd62c78
- Display action bars 🎉: fd9739a
- Add Minecraft 1.20.5/1.20.6 packet IDs: edb7d40
- Update React Native, enable 1.20.6 support: 3c47484
- Fix 1.20.6 IDs, fix chat bug, support keybind chat: 096c514
Patches
- Better release signing config, "fix" release build: de15fca
- Update React Native to stable, fix RN Fabric bugs: 0e26e1a
- Upgrade all packages to latest versions: 0b275ff
- Enable a slew of ESLint rules: edff8e5
- Require explicit function return types w/ ESLint: 94feb06
- Update RN 0.72.4, remove inverted chat workaround: 3a3d805
- Reorganise ChatScreen code, reduce unneeded state: d49f3e5
- Fix ESLint conflict bugs, remove weird patch: d03506a
- Fix respawning connecting to a server when dead: ddcb358
- Fix death messages being broken on 1.20: 1e17e72
- Add missing translations: 59b9f6f
- Ceil player health on health update: b4cff94
- Update README, lint release builds again: 356d147
- Update to RN 0.73.0 RC, use builtin Kotlin support: 794bebb
- Remove unused callback from writePacket: 7420409
- Update React Native, shrink connection code: fa253e3
- Update to RN 0.74, edit README: 3b14cfb
v1.0.0-alpha.6
This release adds various bug fixes, adds a big performance improvement, internal code cleanup, and adds Minecraft 1.19.3, 1.19.4 and 1.20 support (chat signing is still WIP).
Minor Changes
- Add protocol ID map, filter parsed native packets. We now provide an array of accepted clientbound IDs to the native connection module when creating a connection. This reduces JavaScript<->native communication considerably: 18dad9e
- Add support for Minecraft 1.19.3: eeb4702
- Update React Native, add sponsor button: 4d379a0
- Fix compile error, add initial 1.19.4 support: 6564b8e
- Add 1.20 support ahead of release: c80b24a
Patches
- Fix Microsoft Login removing all accounts: 3f6a937
- Update README, fix Microsoft Login issues on Pixel: aea1312
- Update to React Native 0.71, update other deps: 9e33466
- Fix Minecraft chat trimming and boolean parsing. Weird servers return booleans as strings, this adds sanitation for them: 4396f48
- Update to React Native 0.71.1, fixes lag in debug: 1b8fba4
- Fix WebView on new architecture, fix deprecations: 45b5d6c
- Update README, React Native to 0.71.3: 4b14002
- Fix Microsoft Login clearing all accounts: a95b3a7
- Make toggles in the Settings screen smooth: 7767ddf
- Implement support for "Ping (play)" packet: fcef88f
- Update to React Native 0.72.0-rc.5: 8f1b08a
v1.0.0-alpha.5
Absolutely massive performance updates in this release 🎉
Changelog
- Mojang login support has been removed, as it is no longer supported. EnderChat cannot handle migration to Microsoft Account, please do so via https://minecraft.net or the official launcher.
- 1.19-1.19.2 support has been added experimentally. A lot of work needs to go into making sure that chat signing works correctly, though, and many things may be broken. So far it has only been tested on Hypixel and MythicMC, vanilla servers WILL have issues.
- Minecraft connections are now handled natively, so the app is now more multithreaded, considerably faster and a lot more responsive, especially on older devices 🎊 online mode is fully functional with this massive improvement 🎉 🎉 🎉
- The view distance is now set server-side which should help greatly with slow internet connections 🎉
- Many performance bottlenecks have been identified and eliminated, the app is significantly smoother as a result 🎉
- The connection loading screen has been massively improved thanks to changes behind the scenes 🎉
- Microsoft Account credentials are now cached when the app is started. More improvements can be made.
- There's a sponsor button on the GitHub repository if you would like to support my work 🍰
- An icon has been added for Android (thanks to Lexply), as well as a privacy policy.
- Pressing the back button in chat will actually take you back now lol
- Join message has been disabled by default at the moment.
- Trying to connect to servers too new is now blocked.
- Disconnect dialog is now always shown correctly.
- The link prompt setting has been removed.
- /spawn is now sent on world change.
- Servers can now be edited 🎊
- MANY other miscellaneous bugs and crashes have been fixed, and the code has been cleaned up considerably underneath 🎉 🎉 🎉
Known Issues
- No icon has been set.
- Settings need to be worked on.
- Many translations may be missing.
- Action bars are currently not supported.
- There are no dialogs for URL and command click events.
- Command history is currently not shown (missing feature).
- 1.19.x support is incomplete. Chat signing doesn't work, various types of chat messages may not function, and 1.19.3 is unsupported.
Commits
Major Changes
- Drop CompressionModule, work on ConnectionModule.: 175d6b2
- Enable ConnectionModule by default, fix bugs. - Fixed issue with reading packets from socket. - Add logging event to the connection module. - Use I/O dispatcher for scheduling tasks. - Set version field correctly for Android app.: 9597fc4
- Return connection immediately, add connect event. Resolving the connection ASAP allows the client to close it during a connection attempt. Instead, a connect event is used to signal success.: 6e9c45a
Minor Changes
- 1.19 login support. No chat support yet. - 1.19 is unlisted and 1.18.2 is still default. - Add disconnect translations for 1.19. - Support new 1.19 login packet format. - Chat signing is broken, so is chat format parsing.: 3a0d6e6
- Support editing servers, ignore unknown settings.: f7a6814
- Add toggle to disable 1.19 chat signing, fix crash: 1f7cd8e
- Support 1.19 offline mode servers, fix a crash.: 446e5e8
- Initial Minecraft 1.19.1/2 support, fix 1.16, jsbi: 69f6e68
- Use RN 0.69.5, remove linkPrompt, disable join msg: 24c1eb7
- Finish initial ConnectionModule (not working atm).: 031c008
- Add native encryptConnection (bad write perf).: f5ca01a
- Much better loading screen logic with feedback. The loading screen now shows actual feedback of what's happening. If you close a connection, it won't connect if it was reloading premium.: 1942c40
- Add packetFilter API, lazily decode Base64 data. Further fruit for optimisations: - Improve Base64 decode performance with fast-base64 or js-base64. - Use packetFilter API. - Use TurboModules/JSI for decoding.: aed52ce
- Cache system color scheme, fix memoised ChatToJsx. This commit improves performance considerably when there's lots of Text. - useColorScheme seems to cause unnecessary performance lag, and is called everytime Text is invoked. It is now only called once globally for the entire application, and passed via React context. - Memoising ChatToJsx properly reduces CPU load from chat parsing. ChatToJsx is no longer improperly memoised by default, and the item renderer in ChatScreen is memoised correctly instead.: 49ae5c4
- Add Android icon and privacy policy.: 92be133
- Update privacy policy, send /spawn on world change: 0fc08ef
- Send client settings to reduce view distance.: 69f3b75
Patches
- Update to React Native 0.69, fix Kotlin deps. @react-native-picker/picker is breaking peer deps.: 308cd7c
- React Native 0.69.1, remove Mojang login support.: ca2f071
- Work on support for 1.19 signed Login Start.: 9eaef66
- Write README, remove Mojang MS client ID.: 3209317
- README, disconnect dialog, 1.19 and misc fixes. - Fix disconnect dialog disappearing randomly. - Fix disconnect dialog under 1.19 connections. - Fix duplicate default settings in SettingsContext and App. - Improve 1.19 Login Start code.: 2540aee
- Fix BigInt, a crash and needing to relog every day This is done by adding refresh support to ServerScreen. This can cause a slight delay for the first connection. A loading screen should be implemented for this.: 040341a
- Refactor ChatScreen to split off packet handling.: 18b0681
- Add zustand and create an unused sessionStore.: 5322c8a
- Split connection creation, add param to ChatScreen: 935d328
- Add sponsor button to repository page: 4d87389
- Update to React Native 0.69.4.: 1753531
- Handle unsigned 1.19 chat, nested translations.: 3c53937
- Handle nested translations correctly. This means translations in the
extra
property of PlainText, or in thewith
property of Translated, will be handled correctly.: 32e77e3 - Fix 1.16 death respawn, tweak chat handling.: fb338f0
- Delegate connection creation to ChatScreen.: 69c3287
- Prepare for a Connection NativeModule.: a0c4701
- Update Android Kotlin, reorganise native modules.: 59d509c
- Fix error handling, work on native backend issues. Share encryption packet handling between JS and native backends.: b47fc6e
- Fix many bugs with Android native connection. - Rename writeToConnection to writePacket. - Timeout correctly after 20 seconds of no data received. - Fix Login Start packet being malformed. - Fix incorrect UUID being returned from openConnection. - Break read thread loop correctly when an error occurs. - Properly read lock and write lock in the socket read thread. - Avoid conflicts with other NativeModules using ecm: prefix for events.: 460520f
- Buffer chat messages, fix bugs, update TODOs. Fix log event handler not being unregistered. Disable login start with certificates (for now).: ae1a54b
- Android: Fix online mode issues, more coroutines. - The read thread is now a coroutine. - Convert closeConnection to coroutine. - Set connection timeout explicitly to 30s. - Replace runBlocking with custom scope. - Reject promises when ID is incorrect, instead of resolving false. - Fix lock contention between the read coroutine and encryptConnection.: f777277
- Fix ChatScreen setting back function, online mode. Going back via the system back button will now work. Last online mode bug with encryption/decryption fixed.: 43d9b97
- Fix Kotlin warns, show disconnect reason on error.: afaaaa1
- Update to RN 0.69.6, reorganise code.: 55052e6
- Update to React Native 0.70.2, patch broken scaleY: 3214261
- Update all dependencies.: caf449a
- Hotfix React Native, improve chat message parsing.: c73557d
- Refactor AccountScreen and ServerScreen Move big UI elements into their own individual components.: a86e7e9
- Fix bug sending empty join message.: b530855
- Fix join messages and /spawn on join on 1.19+.: f519614
- Update ESLint, React Native, TypeScript, zustand.: fb02fc9
- Fix TS and account screen bugs, update all deps.: 955b8e9
- Mark 1.19 WIP and block servers too new.: 8cc3c4b
Check the Known Issues list before reporting any issue. A bunch of other improvements are being worked on as well. ChatCraft features like ta...
v1.0.0-alpha.4
More bug fixes, lots of other improvements 🎉
Changelog
- Support command click events.
- Close inventories when they are opened to not trigger any anti-cheats.
- Add respawn support and alert user when health is lost.
- Add Minecraft 1.18.2 support.
- Add online mode support.
- Add iOS support (no binaries available currently).
- Reorganise the internal connection code to better work with native Java/Swift code.
- Fixed issue with join messages not working.
- Fixed fatal errors that would cause the app to crash and improve error handling.
- Fix missing chat message translation.
- Improve account screen UI.
Known Issues
- Settings could use better defaults.
- Link prompt setting does not work.
- No support for reloading accounts.
- Split-screen causes server disconnect.
- Microsoft Login is laggy on Android 12.
- No icon and lack of configuration in app.json.
- Performance is terrible in online mode, and slow phones can suffer in offline mode too.
Commits
Minor Changes
- Rename link setting, support command click events.: 1add228
- Add HoverEvent type, close inventories on open. Should avoid EnderChat triggering false positives with anti-cheats.: 71e694a
- Add automatic respawn and health damage alerts.: 6039a8f
- Reorganise Minecraft network-facing code.: 316234b
- Add Minecraft 1.18.2 support.: 2478c73
- IOS support: 6972263
Patches
- Fix issue with join messages not working.: 29d1772
- Fix Encryption Response using RSA PKCSv1 padding.: d32a684
- Edit TODOs, clean code, handle unknown host error. Clean code by optimising Java imports.: cce6c88
- Upgrade Prettier ahead of React Native 0.68.: 581fd41
- Update to React Native 0.68: #8
- Update to React Native 0.68.0: d92338a
- Handle unknown translation, better account screen.: 5f73f75
- React Native 0.68.2 + peer warning fix.: 15b134d
- Improve error handling, fix packet parsing crash.: 14dfd67
- Async JS packet handling + native compression. Native compression is actually slower? So It's disabled at the moment.: a66a917
Check the Known Issues list before reporting any issue. A bunch of other improvements are being worked on as well. ChatCraft features like tab list will be added after 1.0, right now the focus is on perfecting the art of chatting.
For now, the app is only available as an unsigned APK download from here. If you have a modern phone, use arm64-v8a
, if you have an ancient one or you are unsure, use armeabi-v7a
, if you have an Intel phone (eww who uses these anymore) then use x86_64
.
v1.0.0-alpha.3
More bug fixes, lots of other improvements 🎉
Changelog
- Redesigned the tab navigation on the Home screen with support for swiping between tabs.
- Shipped various performance improvements to packet parsing for improved responsiveness.
- Added support for Minecraft 1.18.1.
- Wrote initial code for online mode servers (currently broken).
- Added radio buttons to DarkModeSetting dialog.
- Added a new colour map for light mode theme which is much more readable.
- Added support for parsing obfuscated text.
- Added length limit on message input.
- Fixes to EnderChat to eventually allow supporting versions older than 1.16 e.g. not asserting chat is JSON format.
- Added support for the open URL and copy text click events.
- Fixed red outline on redesigned text fields being missing.
- Fixed Gradle builds running out of memory.
- Fixed titles and text wrapping on Oppo and OnePlus devices.
- Save command history (not yet displayed though).
- Fixed Microsoft Login being broken on Android 12+ (very laggy, but passable for now).
- Fixed the server disconnect reason not showing sometimes.
- Changed default join message.
- Tidied up some code.
Known Issues
- No respawning on death.
- The app still has some fatal errors.
- No support for online mode servers.
- Settings could use better defaults.
- No icon and lack of configuration in app.json.
- Link prompt setting does not work.
- No support for reloading accounts.
- Split-screen causes server disconnect.
- Microsoft Login is laggy on Android 12.
- There seem to be crashes on slow phones.
- Run command and suggest command click events are not supported.
Commits
Major Changes
- Switch to react-navigation/material-top-tabs. Enabled swiping between tabs, and looks good as well: e5870e6
Minor Changes
- Parse packets inside runAfterInteractions: a454359
- Update to RN 0.66.4, add react-native-aes-crypto: 90b1b89
- Remove aes-crypto, add formal 1.18.1 support: 7ea29ae
- Add online mode support (not working properly): 10fe4d4
- Write two-way cipher/decipher for online mode. Also remove Redmi Note 4-specific issue as it was caused by lag: e04763e
- Update to React Native 0.67.1: 16dd57e
- Add radio button to dark mode setting dialog: ef81fe9
- Add light mode colour map (much better!): ca1239b
- Add obfuscated text support: bec582f
- Respect message length limit (256, 100 for <1.11): da74e34
- Add open URL and copy text click events support: a6dc348
Patches
- Fix TextField red outline, reprioritise TODOs: 4fa0849
- Bump Gradle memory use, add tab screen swipe TODO: 32a378d
- Workaround text wrap on Oppo, make assets folder. See react-native#15114 for info. Also applies to OnePlus devices: a665866
- Line Settings with other headers, fix dc reasons. Disconnect reason dialog will no longer randomly disappear: bc0d628
- Stop asserting that all chat is in JSON format: 4a64609
- Save command history, fix MS login on Android 12: 3b695c5
- Tidy colorMap in ChatScreen, add settings TODO: 4965b0b
- Re-prioritise TODOs, change default join message: 9ad7f14
Check the Known Issues list before reporting any issue. A bunch of other improvements are being worked on as well. ChatCraft features like tab list will be added after 1.0, right now the focus is on perfecting the art of chatting.
For now, the app is only available as an unsigned APK download from here. If you have a modern phone, use arm64-v8a
, if you have an ancient one or you are unsure, use armeabi-v7a
, if you have an Intel phone (eww who uses these anymore) then use x86_64
.
v1.0.0-alpha.2
Lots of bug fixes 🎉
Fixed Issues
- Light mode shows white text in text fields when system theme is dark mode.
- Chat input and Send button is clipped on phones with rounded corners.
- Scrolling through chat causes enormous lag on Android 10+ devices.
- Chat message parsing errors aren't handled gracefully.
- Settings button in chat screen doesn't do anything.
- No support for chat.type.* translations.
- You can send empty chat messages.
- Spaces aren't trimmed from the left.
- No limit on amount of chat loaded.
- Text fields could use a redesign.
- No 20 second timeout yet.
Changelog
- Add 1.18 support.
- Split APKs by architecture.
- Use Hermes engine by default.
- Redesign text fields throughout the UI.
- Began initial work on online mode encryption.
- Destroy connections after 1000ms of having ended them.
- Moved disconnect packet parsing into ServerConnection to ease code for the app putting its own reasons.
Known Issues
- No support for online mode servers.
- Settings could use better defaults.
- APK size can be shrunk by reducing icons shipped.
- No icon and lack of configuration in app.json.
- URL settings don't work.
- No support for click events.
- Chat limit length isn't respected.
- No support for obfuscated messages.
- The colour map is terrible in light mode.
- No support for reloading accounts.
- Split-screen causes server disconnect.
- Keyboard doesn't show up after tapping on chat field on Redmi Note 4.
- There seem to be crashes on certain phones.
- OnePlus 3T titles are wrapped.
- Microsoft login is broken on Google Pixel with Android 12 (frozen WebView).
Check the list before reporting any issue. A bunch of other improvements are being worked on as well. ChatCraft features like tab list will be added after 1.0, right now the focus is on perfecting the art of chatting.
For now, the app is only available as an unsigned APK download from here. If you have a modern phone, use arm64-v8a
, if you have an ancient one or you are unsure, use armeabi-v7a
, if you have an Intel phone (eww who uses these anymore) then use x86_64
.
v1.0.0-alpha.1
Initial release of EnderChat 🎉 Most basic stuff works now, there's a whole bunch of work to do before 1.0,
Known Issues
- No support for online mode servers.
- No 20 second timeout yet.
- Settings could use better defaults.
- APK size can be shrunk by reducing icons shipped.
- No icon and lack of configuration in
app.json
. - URL settings don't work.
- No support for click events.
- No support for obfuscated messages.
- No support for chat.type.* translations.
- The colour map is terrible in light mode.
- Chat message parsing isn't handled gracefully.
- Settings button in chat screen doesn't do anything.
- No support for reloading accounts.
- Some other features are also a WIP.
- Spaces aren't trimmed from the left.
- Split-screen causes server disconnect.
- Light mode shows white text in text fields when system theme is dark mode.
- Keyboard doesn't show up after tapping on chat field on Redmi Note 4.
- There are some performance issues.
- No limit on amount of chat loaded.
- Chat input and Send button is clipped on phones with rounded corners.
- Text fields could use a redesign.
- You can send empty chat messages.
- OnePlus 3T titles are wrapped.
For now, the app is only available as an unsigned APK download from here. If you have a modern phone, use arm64-v8a
, if you have an ancient one or you are unsure, use armeabi-v7a
, if you have an Intel phone (eww who uses these anymore) then use x86_64
.