Tags
Creators
Details
Licensed MIT
Published 11 months ago
Updated 3 weeks ago
All versions
1.6.1
Release
Squash upload of version from 1.4.5 to 1.6.17 months ago 63
Compatibility
Minecraft: Java Edition
1.21.x
Platforms
Bukkit
Paper
Purpur
Spigot
Changes
[1.6.1]
Added
- Minimalist UI: Completely redesigned the web interface with a focus on typography, intentional whitespace, and a unique aesthetic.
- Clickable Commands: The /portel help menu now features fully interactive, clickable subcommands and links.
- SmallFont Consistency: Applied SmallFont formatting across all in-game messages and command outputs.
- Source Filtering: Added source tracking to WebSocket messages to prevent duplicate display on the web interface.
Changed
- Refactored PortelCommand to use the Adventure Component API for more robust event handling.
- Cleaned up console output by removing verbose debug and serving logs.
- Organized project documentation into a dedicated guides/ directory.
[1.6.0]
Added
- Hot-Reloading: Added a FileWatcher service that automatically clears the internal web cache when files in the web/ directory are modified, created, or deleted. No more manual restarts needed after editing assets!
- Added hot-reloading toggle in config.yml.
Changed
- Refactored onDisable and reload logic to properly manage asynchronous services.
[1.5.0]
Added
- Shared SSLUtils to unify SSL configuration between Web and WebSocket servers.
- Configurable chat prefix and colors for web-to-game messages.
- In-memory static file caching for faster asset delivery.
- Asynchronous cleanup task for the RateLimiter to prevent memory growth.
- Thread pool (10 threads) for the web server to handle concurrent requests better.
Fixed
- Security: Blocked unauthenticated web-to-game chat injection via a new toggle.
- Security: Implemented strict path validation to prevent Path Traversal attacks.
- Security: Added HTML escaping to PlaceholderAPI output to prevent XSS.
- Fixed a bug where default assets were overwritten on every startup.
- Synchronized IP logging to prevent thread-safety issues and file corruption.
- Renamed ips.yml to ips.log and made the log file name configurable.
Optional dependencies
Any compatible version
Projects on Modrinth are automatically available through a Maven repository for use with JVM build tools such as Gradle. To learn more about the Modrinth Maven API, click here.
Note: When available, you should use the creator's maven repo instead as it will have transitive dependency information that the Modrinth Maven API does not. You may also end up with duplicate dependencies if you use a mix of Modrinth and non-Modrinth Maven repositories for your dependencies, because the group identifier will be different when served through the Modrinth Maven API.
Maven coordinates:
Version ID:
build.gradle:
repositories {
exclusiveContent {
forRepository {
maven {
name = "Modrinth"
url = "https://api.modrinth.com/maven"
}
}
// forRepositories(fg.repository) // Uncomment when using ForgeGradle
filter {
includeGroup "maven.modrinth"
}
}
}
// Standard Gradle dependency
dependencies {
implementation "maven.modrinth:KXDQZwc3:6iYMHZQ6"
}
// Legacy Loom dependency
dependencies {
modImplementation "maven.modrinth:KXDQZwc3:6iYMHZQ6"
}

