6702e0f69b
This reduces the impact of attacks that send a large packet size first and then send data very slowly but frequently enough to not trigger a timeout (as the timeout handler was before the Varint21FrameDecoder). This causes connections to stay open for a long time without much effort from an attacker, while the packet never leaves the Varint21FrameDecpder stage of the netty pipeline (causing no additional checks to happen and no logs of the connection to be created). This will not have an impact on bad connections as without recieving full packets the underlying spigot server would timeout instead. |
||
---|---|---|
.github | ||
BungeeCord@830ee8f27d | ||
BungeeCord-Patches | ||
scripts | ||
.gitattributes | ||
.gitignore | ||
.gitmodules | ||
CONTRIBUTING.md | ||
LICENSE.txt | ||
pom.xml | ||
README.md | ||
waterfall |
Waterfall
Waterfall is a fork of the well-known BungeeCord server teleportation suite.
Waterfall focuses on three main areas:
- Stability: Waterfall aims to be stable. We will achieve this through making the code base testable and discouraging practices that lead to proxy lag.
- Features: Waterfall aims to include more features than canonical BungeeCord.
- Scalability: Waterfall should be able to handle a large number of concurrent players, given a reasonably modern CPU, memory, and good network connection.
Why fork BungeeCord?
Think of Waterfall as a principles fork.
Waterfall was forked because of the fact that upstream does not accept many contributions that are intended to better the ecosystem. Simply put, Waterfall aims to better the ecosystem by allowing changes to be exposed to a wider audience more quickly.
Waterfall will still track upstream BungeeCord and merge changes as needed.
How To (Server Admins)
Download a copy of Waterfall.jar from our homepage here: Waterfall
Waterfall requires Java 8 or above.
How To (Plugin Developers)
- See our API patches here
- Waterfall API JavaDocs here: papermc.io/javadocs/waterfall
- Maven repository (for
waterfall-api
):
<repository>
<id>papermc</id>
<url>https://papermc.io/repo/repository/maven-public/</url>
</repository>
- Artifact information:
<dependency>
<groupId>io.github.waterfallmc</groupId>
<artifactId>waterfall-api</artifactId>
<version>1.16-R0.4-SNAPSHOT</version>
<scope>provided</scope>
</dependency>
Or alternatively, with Gradle:
- Repository:
repositories {
maven {
url 'https://papermc.io/repo/repository/maven-public/'
}
}
- Artifact:
dependencies {
compileOnly 'io.github.waterfallmc:waterfall-api:1.16-R0.4-SNAPSHOT'
}
How To (Compiling From Source)
To compile Waterfall, you need JDK8, git, bash, maven, and an internet connection.
Clone this repo, run ./waterfall b
from bash, get jar from Waterfall-Proxy/bootstrap/target/
Join us
- Feel free to open a PR! We accept contributions.
- Join us on IRC (irc.esper.net #waterfall, webchat) or Discord.
- Visit our forums (https://papermc.io/forums).
Special Thanks To
YourKit, makers of the outstanding Java profiler, supports open source projects of all kinds with their full-featured Java and .NET application profilers. We thank them for granting Waterfall an OSS license so that we can make our software the best it can be.