-
-
Notifications
You must be signed in to change notification settings - Fork 3.2k
Update TerminalConsoleAppender + JLine, use Jansi instead of JNA #2299
New issue
Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.
By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.
Already on GitHub? Sign in to your account
Conversation
|
The JNA change is breaking, this will need to be held until 1.14.4 if that is required. |
It seems so: jline/jline3@9d24f65 Edit: Urgh, this is going to cause me headaches for Forge... |
|
@zachbr Do you use JNA for anything except TCA on Paper? I think I stopped using Jansi back then because I felt it was old and somewhat messy. But it has been continuously updated together with JLine, so it's probably fine. |
|
@DemonWav has a branch for his experimental |
|
I can test this new TCA release in Velocity if you want. |
|
@astei Sure. Any help with testing is appreciated! |
Okay. Either way is fine really. I think I'll just make it clear in the TCA documentation that both can be used. Right now it strongly recommends JNA for no real reason. |
|
Looks good on macOS 10.15 and Windows 10 20H1 |
|
I'm not doing anything fancy with JNA in It's also certainly possible for me to switch to a JNI approach. JNA doesn't require any other native code which is why I went with it, but we'd only need a small amount of C code to use JNI instead which could be a separate project where the prebuilt binary is simply downloaded at build time for Paper. Another option that would be even better if I could get it to work is the JNI code could be part of the So don't worry about me, if removing JNA is the best way forward for this, go for it, using JNI won't be that hard (and will have a lot less overhead too). |
I have decided that I will stop recommending one of them, so you will need to decide what to use in Paper. You could keep JNA now and switch to Jansi later once an alternative has been written for paperd. |
|
I wouldn't mind not using JNA because it would let us backport this change to older versions. I will have to try and find some time to test 1.12.2 and 1.13.2 with the jansi dependency instead. |
|
I've pushed a commit to TCA to stop depending on JNA explicitly. Therefore each project using TCA now has to add an explicit dependency on either I've changed this PR to depend on Jansi instead (and keep the JNA dependency as-is), so it is no longer breaking :) |
|
I'm testing out a new JNI implementation for |
|
|
|
Yay for conflicts! Now fixed :) |
|
I've added a commit to this PR to remove the JNA runtime dependency. |
Great, thank you! I will release the new version of TCA soon and then we can merge this. 👍 |
|
Updated TerminalConsoleAppender to the 1.2.0 release, ready for merge now! @zachbr I squashed your commit into mine. I hope you don't mind :) |
Remove dependency on JNA since it is no longer needed.
|
Thanks for your continued support and assistance with TCA 👍 |
|
Since this update me and a lot of other owners have had this issue with their console: Using Pterodactyl 0.7.14 Using |
|
@HexedHero Yeah I asked Minecrell about this earlier, I've made an issue for the Pterodactyl panel & the workaround PR with those arguments has been merged into parkervcp's eggs. (so this should be built in with the next daemon update) pelican-eggs/eggs#261 |
|
I will need to reproduce this myself with some debugging code to be able to say more. The problem is likely a mixture of many things. JLine prints Unfortunately, Pterodactyl does not quite look like it can be installed in a few minutes.... |
Fixes #1734. Fixes #1690 (?)
There were a few larger changes (new JLine/JNA version, changes in implementation of colors in TCA), so I am looking for some testing before I release the new version of TCA. @zachbr asked for a new release in Minecrell/TerminalConsoleAppender#7, so maybe you'd like to help with testing on Paper. :)
It looks fine to me in IDE+Terminal on Arch GNU/Linux, but I cannot test on macOS or Windows at the moment.