Skip to content
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

Cannot enter commands in Git Bash on Windows #3497

Open
3 of 4 tasks
mareksipos93 opened this issue Aug 3, 2023 · 2 comments
Open
3 of 4 tasks

Cannot enter commands in Git Bash on Windows #3497

mareksipos93 opened this issue Aug 3, 2023 · 2 comments

Comments

@mareksipos93
Copy link

mareksipos93 commented Aug 3, 2023

Bungeecord version

git:BungeeCord-Bootstrap:1.20-R.01-SNAPSHOT:23fb838:1722

Server version

git-Purpur-2016 (MC: 1.20.1)

Client version

1.20.1

Bungeecord plugins

None yet

The bug

Bug description:

Server starts successfully and shows first prompt (>) for command input. I can type my command in git bash.
When I hit enter or shift+enter, command is not sent on the server - newline is written instead.

I can input commands to normal git bash terminal (without bungeecord instance).
I can input commands to backend server.
I cannot input commands to bungeecord.
I tried Velocity and I can input commands there as well.

Note: I have noticed that there are also no colors in git bash running bungeecord. Only white text on black background.

Feel free to ask for questions.

image


OS: Windows
Terminal: Git Bash
Git Ver: 2.40.0.windows.1

Startup bash script (executed by double-click from Windows Explorer):

#!/bin/bash

JAVA_EXECUTABLE="C:/Program Files/Java/jdk-19/bin/java.exe"

# Detect proxy executable
PROXY_FILENAME=$(
   find . -maxdepth 1 -type f \( \
   -iname "proxy*.jar" -o \
   -iname "bungee*.jar" -o \
   -iname "velocity*.jar" \
   \) -print -quit
)

# If proxy was not found, exit
if [ -z "${PROXY_FILENAME}" ]; then
   echo "Failed to find executable of the proxy"
   read -p "Press enter to exit"
   exit 1
fi

# Successfuly found some suitable JAR file, start
echo "Starting ${PROXY_FILENAME}"
sleep 2

# Set chmod to allow executions (needed only on Linux)
chmod +x ${PROXY_FILENAME};

"$JAVA_EXECUTABLE" `# IMPORTANT - the -jar argument must be exactly where they are` \
   -Xmx2048M -Xms2048M `# Maximum (XMX) and starting (XMS) memory allocated, for proxy 2 GB is enough` \
   -XX:+UseG1GC `# Enable G1 garbage collector` \
   -XX:+ParallelRefProcEnabled `# Use multiple threads for weak references checks in GC` \
   -XX:+UnlockExperimentalVMOptions `# Unlocks some JVM features` \
   -XX:+AlwaysPreTouch `# Allocates all of the RAM to the server on startup` \
   -XX:G1HeapRegionSize=4M `# Fewer objects for old gen, less time spent cleaning old gen memory` \
   -XX:MaxInlineLevel=15 `# Tends to improve performance in general` \
   -jar ${PROXY_FILENAME} `# IMPORTANT - the -jar argument must be exactly where they are`

read -p "Press enter to exit"

Log output (links)

11:49:27 [INFO] [Iwitrag] <-> ServerConnector [survival] has connected
>list

list


when I hit enter, newline is written instead of sending command


Checking

  • I am using BungeeCord and not a fork. Issues with forks should not be reported here.
  • I think this is not an issue with a bungeecord plugin.
  • I have not read these checkboxes and therefore I just ticked them all.
  • This is not a question or plugin creation help request.
@mareksipos93
Copy link
Author

mareksipos93 commented Aug 3, 2023

After further investigation it seems that JLine2 (library bungeecord uses) is resolving git bash on Windows incorrectly.
So when I run bungeecord with this param to explicitly set terminal:

-Djline.terminal=jline.UnixTerminal

Command input is working again. There is still no colorized text, but at least it works.
List of available terminals can be found there:
https://github.com/jline/jline2/tree/12b98d94589e3bd6a60719c495b0ab911c571329/src/main/java/jline
You can use any class extending TerminalSupport, e.g. jline.AnsiWindowsTerminal.
However note that bungee currently uses jline2 ver 2.12.1 and some terminals may not be available because of that. Refer to @since javadoc.

@mareksipos93
Copy link
Author

Interestingly - when using Spigot 1.20.1 with similar startup script WITHOUT explicit terminal setting, git bash window still has no font colors BUT commands input is working correctly.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

No branches or pull requests

1 participant