Releases: mjt-project/Mini-Java-Terminal
3.0.0-SNAPSHOT+1
Full Changelog: 2.5.0...3.0.0-SNAPSHOT+1
2.5.1
What's New?
Fixed
- Fixed KeepAliveBot duplicate login behavior.
- Prevented the bot from creating a second session while the first session is still active or connecting.
- Improved reconnect loop stability.
- Reduced repeated disconnect / reconnect spam.
- Improved bot session cleanup after disconnect.
- Improved behavior when using the same offline-mode bot username.
Notes
KeepAliveBot is designed for Minecraft servers using:
Full Changelog: 2.4.7...2.5.1
2.5.0
MJT v2.5.0
This release adds the new KeepAliveBot feature for Minecraft servers.
KeepAliveBot is an offline-mode Minecraft bot that can join the server as a normal player and help keep the server active when enabled. This is useful for hosting environments that support renew / keep-alive behavior.
Main new feature:
- Added KeepAliveBot service
- Added offline-mode bot login
- Added bot reconnect loop
- Added bot configuration commands
- Added bot status display
- Added support for using the bot with local Minecraft server address
Recommended for:
- Minecraft servers with online-mode=false
- Hosts that allow renew / keep-alive behavior
- Servers that need one persistent bot player to stay active
New commands:
.mjt bot show
.mjt bot status
.mjt bot start
.mjt bot stop
.mjt bot set enabled true
.mjt bot set host 127.0.0.1
.mjt bot set port 25565
.mjt bot set username MJT_Renew
.mjt bot set reconnect 30
Basic setup:
.mjt bot set enabled true
.mjt bot set host 127.0.0.1
.mjt bot set port 25565
.mjt bot set username MJT_Renew
.mjt bot set reconnect 60
.mjt bot start
Expected behavior:
- Bot connects to 127.0.0.1:25565
- Bot joins as MJT_Renew
- If disconnected, bot waits and reconnects automatically
- Bot can be stopped manually with .mjt bot stop
Minecraft server requirement:
online-mode=false
Recommended server config:
server-ip=127.0.0.1
server-port=25565
online-mode=false
If the bot name is already online:
- The server may return duplicate_login
- Change the bot username or stop the old MJT process first
Example:
.mjt bot set username MJT_Renew2
.mjt bot stop
.mjt bot start
Release title:
v2.5.0 - KeepAliveBot Release
2.4.7
Strict command rule:
.mjt = MJT internal command
.command = Linux shell command
no prefix = Minecraft console input only when Minecraft target is running and mode is MINECRAFT
Start flow:
.mjt ssh start
.mjt gateway help
.mjt minecraft start
Then Minecraft console:
say hello
list
stop
Shell while Minecraft is running:
.command ls
.command pwd
.command curl https://example.com
Do NOT use:
bash start-minecraft.sh
.command bash start-minecraft.sh
Use managed target instead:
.mjt minecraft start
Full Changelog: 2.3.26...2.4.7
2.3.27
2.3.26
What's Changed
- Update to 2.3.26 for release version by @SimonNg-code in #3
New
-
Released version
2.3.26. -
Added experimental Gateway Service for single-port TCP routing.
-
Added Gateway startup information showing:
- Public TCP
- HTTP status
- SSH/SFTP target
- TCP status
- TCP default route
- TCP route list
-
Added Gateway command group to the main
helpoutput. -
Added dedicated
gateway-helpcommand. -
Added Gateway core commands:
gateway-helpgateway-showgateway-set <key> <value>gateway-default <route|close>
-
Added manual TCP route commands:
gateway-route-add <name> <host> <port>gateway-route-remove <name>gateway-route-enable <name>gateway-route-disable <name>
-
Added Gateway HTTP config commands:
gateway-set gateway.http.enabled truegateway-set gateway.http.enabled falsegateway-set gateway.http.root /home/container/wwwgateway-set gateway.http.index index.htmlgateway-set gateway.http.spa truegateway-set gateway.http.spa false
-
Added Gateway SSH/SFTP proxy config commands:
gateway-set gateway.ssh.enabled truegateway-set gateway.ssh.enabled falsegateway-set gateway.ssh.host 127.0.0.1gateway-set gateway.ssh.port 2022
-
Added clearer SFTP compatibility alias section in
help.
Changed
-
Improved the main
helpdisplay. -
Reorganized
helpoutput into clearer sections:- Terminal Runtime
- Cloudflare DDNS
- SSH / SFTP Server
- SFTP Compatibility Aliases
- Gateway
- Safety
- Commands not recommended
-
Moved detailed Gateway usage into
gateway-help. -
Improved Gateway command examples for Minecraft Java and Velocity-style local TCP routes.
-
Improved command readability by aligning command names and descriptions.
-
Kept
shutdown-terminalas the current official stop command for this release. -
Kept
terminal-state.propertiesas the current runtime config file for this release.
Fixed
-
Fixed confusing
helpcommand output by separating command groups. -
Fixed Gateway command documentation being mixed into the main help too densely.
-
Fixed Gateway help readability by separating:
- Gateway Core
- HTTP Static File Service
- SSH / SFTP Gateway Proxy
- Manual TCP Routes
- Examples
-
Fixed unclear TCP fallback usage by documenting
gateway-default close. -
Fixed unclear route examples by adding direct examples for:
mcvelocity
Gateway Commands
gateway-help
gateway-show
gateway-set <key> <value>
gateway-default <route|close>
gateway-route-add <name> <host> <port>
gateway-route-remove <name>
gateway-route-enable <name>
gateway-route-disable <name>
Gateway Help Sections
Gateway Core
HTTP Static File Service
SSH / SFTP Gateway Proxy
Manual TCP Routes
Examples
Manual TCP Route Example
gateway-route-add mc 127.0.0.1 25565
gateway-default mc
gateway-show
To close TCP fallback:
gateway-default close
Note
- This is an experimental development release.
- Gateway Service is intended for controlled and authorized testing environments.
- Manual TCP backend routing is experimental and may require additional testing depending on the target service.
- Minecraft Java routing is experimental.
- This release focuses on Gateway commands and clearer help output.
- This release does not include the larger config-folder refactor yet.
Full Changelog: 2.2.14...2.3.26
2.3.22-prevew+1
What's Changed
New
-
Added Gateway Service for routing multiple protocols through a single public TCP port.
-
Added built-in HTTP service directly inside
server.jar, allowing a web page to run without opening an additional HTTP port. -
Added SSH/SFTP gateway proxy support, allowing external SSH/SFTP connections through the public port while forwarding internally to a local SSH service.
-
Added manual TCP route configuration through
terminal-state.properties. -
Added support for dynamic TCP route management, including adding, removing, enabling, disabling, and selecting a default TCP route.
-
Added Gateway command support:
gateway-helpgateway-showgateway-set <key> <value>gateway-route-add <name> <host> <port>gateway-route-remove <name>gateway-route-enable <name>gateway-route-disable <name>gateway-default <route|close>
-
Added support for reading the public gateway port from the hosting environment variable
SERVER_PORT. -
Added dynamic Gateway configuration reload for new incoming connections.
-
Added a cleaner routing structure where HTTP, SSH/SFTP, and manual TCP routes are handled separately.
-
Added experimental support for routing Minecraft Java traffic to a local backend service through the Gateway.
Fixed
- Fixed SSH/SFTP connections closing immediately after successful password authentication.
- Fixed TCP proxy timeout behavior by resetting socket timeout after protocol detection.
- Fixed SSH/SFTP conflict with the public port by allowing SSH/SFTP to run internally on a local port such as
127.0.0.1:2022. - Fixed the issue where Gateway protocol detection could consume the first bytes of a connection without forwarding them to the backend.
- Fixed unstable SSH proxy behavior when the SSH client waits for the server banner first.
- Improved handling of unknown protocols through the Gateway.
- Improved Gateway logging for HTTP, SSH/SFTP, TCP proxy, unknown protocols, and backend connection errors.
- Improved compatibility with hosting environments that provide only one public port.
- Improved project structure for future support of additional internal services.
Changed
- Gateway now owns the public TCP port instead of the SSH service.
- SSH/SFTP is now expected to run as an internal service and be accessed through the Gateway.
- HTTP no longer requires a separate web server or additional port.
- Manual TCP routes are now controlled through Gateway configuration instead of hardcoded Java variables.
- Default TCP route can be changed without rebuilding the project.
- The project is moving toward a single-port multi-service runtime architecture.
Gateway Configuration Example
gateway.http.enabled=true
gateway.ssh.enabled=true
gateway.ssh.host=127.0.0.1
gateway.ssh.port=2022
gateway.tcp.enabled=true
gateway.tcp.default=mc
gateway.tcp.routes=mc
gateway.tcp.mc.enabled=true
gateway.tcp.mc.host=127.0.0.1
gateway.tcp.mc.port=25565Gateway Command Example
gateway-route-add mc 127.0.0.1 25565
gateway-default mc
gateway-showTo disable the default TCP backend:
gateway-default closeTo remove a route:
gateway-route-remove mcNote
- This is an experimental development build.
- This version focuses on single-port Gateway routing for restricted hosting environments.
- HTTP and SSH/SFTP have been tested through the same public port.
- TCP backend routing is experimental and may require further testing depending on the target service.
- Minecraft Java routing is still experimental and should be tested carefully.
- UDP routing is not included in this version yet.
- This build is intended for controlled testing environments and may not be stable for production use.
Dev by @SimonNg-code
Full Changelog: https://github.com/SimonNg-code/Mini-Java-Terminal/commits/2.3.22
2.2.14
What's Changed
New
- Supports updating the public IP address specifically for Cloudflare DNS records.
- Supports SSH and SFTP.
- Changed the project name to reflect the development direction.
- Released version 2.x.
Fixed
- Cloud not start cloudflare loop when using cloudflare-ddns-start (not cloudflare-ddns-once)
- Cloudflare DNS's automatic Record ID detection feature cannot recognize zone ID names.
- The commands cannot be executed in the SSH service.
- Commands being entered are not displayed.
- SSH connections via Windows/Linux/MacOS terminals or any shell frequently fail to display after typing and sending the command to execute.
- Some commands requiring sudo privileges and commands that run as a shell graphic editor (such as nano, micro, vim) are blocked because they are not yet supported and frequently encounter errors upon initial use.
- Refactoring source code from javac to maven results in package installation and compatibility issues.
- Switching to standard English (multilingual support is still unavailable).
Note
- This version is numbered higher than usual because it has been developed beyond the previous scope.
- This version now offers good support on various hosting servers.
Dev by @SimonNg-code in #1
Full Changelog: 1.0.0...2.2.14
1.0.0
Terminal Console Monitor v1.0.0
Initial release of Terminal Console Monitor.
Features
- Display only public ipv4
- Run commands directly from the console
- Display live command output
- Save command logs automatically
- Track current working directory
- Support basic commands such as
help,pwd, andcd - Configurable command timeout
- ANSI-colored console messages
Notes
This version is focused on simple command monitoring, process output tracking, and runtime logging in a controlled environment.