#waterfall-github

1 messages ยท Page 4 of 1

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

[20:38:49 INFO]: [/IP|Michu_toja_] -> UpstreamBridge has disconnected
[20:38:49 INFO]: [IP|Michu_toja_] DownstreamBridge [lobby] has disconnected

I have well-configured ip addresses, because I can connect to them normally. But when I turn on the waterfall and enter through it, it pops up, and writes that it is impossible to connect to the server (added in the waterfall), I will enter the lobby, but from the lobby to other I can not and in other directions, as I am on survival, then not ...

#
[PaperMC/Waterfall] New branch created: plugin\-messages
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Many of the issues with EF fixes are irrelevant to bungee, however, waterfall fixes many of the other issues where viable, we cannot impede on the behavior of the protocol and generally aim to leave stuff like firewalling to an actual firewall; I do have some stuff incoming down the line when I'm not too ill, but, if exploits are a concern, you'd be better off looking into alternative options like velocity, where many of these issues are not compounded by the software itself

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

https://github.com/PaperMC/Waterfall/blob/master/BungeeCord-Patches/0003-Rename-references-from-BungeeCord-to-Waterfall.patch#L51

*** Please download a new build from https://ci.destroystokyo.com/job/Waterfall/ ***

The link requires a GitHub login. If I log in, I get greeted with the following page (see screenshot). I do not understand why authorization would be required for a download. If it is not a mistake and an auth really is required for whatever reason, maybe redirect to a webp...

#

Well, that patch I linked is actually overridden by a different patch: https://github.com/PaperMC/Waterfall/blob/281e7310b8999ef9cbaaf3ba348bfa50f9d531f9/BungeeCord-Patches/0034-Improve-outdated-build-message.patch#L16

I found this while searching for the same issue on Travertine.

I guess you have some redundant stuff in there, but whatever, I'm closing this issue, since it does not exist in reality.

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Hi

I saw this issue on a new exploit and updated my Waterfall Proxy so we're running the newest build; Waterfall-Bootstrap:1.16-R0.4-SNAPSHOT:2eae08f:393

Today we were hit by (I believe?) the same attack, causing some interruption.
At first this is spammed in the console; https://pastebin.com/c28c1kna
Then this: https://pastebin.com/jwMsncRt
And finally Session server times out, because of too many requests I guess; https://pastebin....

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

BungeeCord Changes:
3d701fbe #3028: Add protocol level string length limits
e95da111 Bump Netty/SnakeYAML/MySQL versions

Minor edits: Remove readString method from 0048-Use-proper-max-length-for-serverbound-chat-packet.patch
Reason: Now included in upstream

buoyant shoreBOT
#

Hello there, i have been target of a lot of ratkids attacking my server recently, my server is premium (for those haters that were going to say, online-mode: true).

I received a lot of different attacks and i could collect the console output of 3 of them:
1: https://i.imgur.com/UvrYZzo.png
2: https://i.imgur.com/66xqRZH.png
3: https://i.imgur.com/amtBSos.png

I know theres another one that profits from "query_enabled" and spams the console with "Incorrect magic" or "Invalid magic".

...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Really a nice job. But I am getting some errors with 20w51a and 21w03a recently.
The first one is that any potion effect will cause player disconnect, but the console log is normal.
The second one is this:
[Netty Worker IO Thread #7/WARN]: [/39.187.231.241:31521|lky] <-> DownstreamBridge <-> [PreviewServer] - overflow in packet detected! Cannot receive string longer than Short.MAX_VALUE (got 1822273 characters)

Really hope that there can be a fix on this. Thanks!

buoyant shoreBOT
#

@Xuwznln I can not reproduce your issue.
<img width="1552" alt="Bildschirmfoto 2021-01-31 um 14 46 30" src="https://user-images.githubusercontent.com/10787350/106386016-43b33780-63d3-11eb-9ae8-d21734aa7f78.png">
Please provide me with:

  • Description of your setup
  • Complete list of plugins on the proxy (yes those matter a lot in this case as they may not work with the snapshots)
  • Complete list of mods or plugins on the downstream server
  • A way to reproduce this issue
buoyant shoreBOT
#

Snapshot 21w03a Waterfall
21w03a fabric server with fabric-installer-0.6.1.51_2 and fabric-api-0.29.5+1.17
and other paper servers.

proxy plugins:

  • BungeeResourcepacks
  • LuckPerms
  • SkinsRestorer
  • BungeeCommandBlocker
  • PartyAndFriends
  • AnnouncementsEverywhere
  • Triton
  • Friends-Online-Info-On-Join-For-PAF
  • BungeePluginManager
  • TTCW
  • AntiFakePlayer
  • BungeeTabListPlus
  • BungeeBan

fabric server mods:

  • fabric-api-0.29.5+1.17
  • fabric-carpet-21w03a-1.4.24 v210120
    -...
buoyant shoreBOT
#

@Xuwznln It has to be a plugin or mod causing this. I don't suspect its the carpet mod on the server, I suspect its a Bungee plugin. I tried it with a 1.16.5 paper server with the ViaVersion-dev release and a snapshot server running the same fabric, fabric-api and fabric-proxy. Please try to find it by removing plugins one by one until it stops.

buoyant shoreBOT
#

Recently more overload DoS attacks have been observed on Minecraft proxies.
@astei mitigated these types of attacks on the Velocity project by introducing an upfront check for packet sizes
The commit in question can be found here

This patch aims to bring the same mitigations found in Velocity to Waterfall.
Additionally, this patch contains some additional mitigations by limiting the generation...

buoyant shoreBOT
buoyant shoreBOT
#

Currently (Version: 1.16.4 / #393) when a player connects to the proxy, when another connection for the same player is still online (out of whichever reasons), it can happen that the login event for the new connection is called before the old connection has their disconnect.

This situation can lead to some problems for custom plugins / development with the order of events and you can't make sure that the order is always disconnect and than login. So you maybe have to do some ma...

buoyant shoreBOT
buoyant shoreBOT
#

I already found an open issue in Bungeecord #https://github.com/SpigotMC/BungeeCord/issues/2815 for that which aims at my problem described. But this has been open and unprocessed for a long time.

A user has already added his draft there. Maybe the paper team could take a look at it. This wrong order of the events can lead to the fact that custom user data from plugins could be first loaded and then removed again by the subsequent disconnect, which is very annoying and certainly so many de...

buoyant shoreBOT
#

The draft mentioned in this issue doesnโ€™t take a lot of channel logic into account. Fact of the matter is that to actually get this to follow the right order a completeable future would have to be issued from the Channel disconnect future of the existing client. That isnโ€™t the greatest of ideas as this part of the login sequence is rather time-critical and it can take several seconds or more to complete the disconnect event as you want to wait on that. The player should be identifiable by ses...

#

Yes you are right. The design is probably not the best. But I don't think handling user data on the basis of the session is a good idea either, as this complicates the whole thing very much.

I can understand the point with the time-critical behavior to a limited extent. In general, it should be the exceptional case that a player tries to connect with a second connection and if this happens, then the time span of the login does not really matter.

Due to this fact, I currently regulate ...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Hi,
I'm using Waterfall version git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:c031df1:395. However, when I try to login to one particular server which is my skyblock server I get this error on the proxy.
[18:32:20] [Netty Worker IO Thread #2/INFO]: [_DJDan] ServerConnector [skyblock] has connected
[18:32:20] [Netty Worker IO Thread #2/ERROR]: [_DJDan ServerConnector [skyblock] - encountered exception: net.md_5.bungee.util.QuietException: Unexpected packet received during server login proc...

buoyant shoreBOT
buoyant shoreBOT
#

This is a bandaid-fix for an issue that should never occur-
This should only ever occur if proxy uses "Fast switching" (or its inherent logic) when it shouldn't. In any other case we shouldn't end up here.
Todo: Amend Patch 0046 Provide an option to disable entity metadata rewriting to reflect this.
ALSO TODO:
Add a new patch to detect a modded connection and disallow the fast-switching method and the inherent limitations such as this one on connection being established for the rest...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Hello there.

The recent DoS fixes did not really do much (at least in my case). I have a sample of the java application used for sending attacks. For security reasons, I uploaded it here with a password. A developer/staff member can request me to remove the password should you wish for everyone to be able to grab this tool. Otherwise, you can contact me on Discord (OpenSource#2021) to get the file password.

Launch attack command: `java -jar jar...

buoyant shoreBOT
#

Being personally honest, there is only so much we can do about DDoS attacks, they take advantage of the fundamental nature of software exposed to the internet: they accept connections.

We can deal with some aspects, e.g. reducing the impact of eronious data, but, large number of connections being opened to one machine, that's out of the bounds of what waterfall can sanely defend against. Configure your firewall and look at proper load balancing to mitigate these things, such is the modern ...

buoyant shoreBOT
#

Hello Waterfall team, I have a problem:

Players connecting to 1.16.5 servers cannot return to 1.12.2 servers. Whenever a player uses the / lobby command to return to spawn, they are disconnected with the fallback message. However, going from one 1.12.2 server to another 1.12.2 server does not happen.
In the Waterfall console this message is displayed: [xx: xx: xx WARN]: No client connected for pending server!
![2021-02-09_15 11 38_2](https://user-images.githubusercontent.com/55663598/107...

buoyant shoreBOT
#

@electronicboy

I analysed a pcap dump from him and based on that, bad connections are just not closed in a reasonable timeframe, like at max 0.5 seconds. They are not even closed in the full length of 2 seconds of his pcap dump. This happens because bungeecord is still waiting for the "Login Start" packet (the packet with the name field) to finish over the wire, before handling it and noticing that its too big. When this happens with thousands of connections, it gets overloaded.

The pro...

#

There is always further stuff we can do, I cannot however commit too much due to personal health; If somebody wants to submit a PR in the meantime I can look into it, but a lot of these issues would be dealt with better in firewall vs trying to deal with app code; Stuff like this would be much easier to pull off outside of bungee due to the way the entire stack is setup

buoyant shoreBOT
buoyant shoreBOT
#

@Janmm14 thank you very much for pointing out the importance of this issue and the ways on how to fix it ๐Ÿ™‚

There is always further stuff we can do, I cannot however commit too much due to personal health; If somebody wants to submit a PR in the meantime I can look into it, but a lot of these issues would be dealt with better in firewall vs trying to deal with app code; Stuff like this would be much easier to pull off outside of bungee due to the way the entire stack is setup

Unfortunately...

#

with my health in particular, my interest/ability to dig deep into these issues, especially to solve stuff in a manner that doesn't involve just rewriting parts of the entire system and breaking plugins, etc. None of the things PR'd are actual fixes to the issues but workarounds to the side-effects of it, my personal interest in playing cat and mouse to resolve these issues when I have catastrophic health conditions and am not paid for this is severely limited, especially around issues which ...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Hi I do not know why I got this problem.
I am using network, dedicated..
And using FastLogin for /premium.

[13:56:38 ERROR]: Error authenticating Sr_Rawr with minecraft.net
io.netty.channel.ConnectTimeoutException: connection timed out: sessionserver.mojang.com/143.204.163.105:443
at io.netty.channel.epoll.AbstractEpollChannel$AbstractEpollUnsafe$2.run(AbstractEpollChannel.java:576) ~[waterfall-1.16-395.jar:git:Waterfall-Bootstrap:1.16-R0.5-SNAPSHOT:c031df1:395]
at io....

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

I'm also getting the the server you were previously on went down, you have been connected to a fallback server Disconnect message, this happens about 1 out of 4 times I switch servers from my 1.16.5 Survival server to my 1.8 Lobby (w/ Via Version on the proxy). No errors are shown on the proxy server nor on the two game-servers.

This happens on both Waterfall versions I have tested (The lastest release 395, and release 393).

Proxy Plugins
![image](https://user-images.githubuserco...

buoyant shoreBOT
buoyant shoreBOT
#

Hello, I'm currently experiencing a problem when I switch servers from my 1.16.5 Survival server to my 1.8 Lobby (w/ Via Version on the proxy).

This happens roughly around 1 out of 4 attempts I switch server (From Survival to Lobby) and sometimes there's an error in console regarding this but there have been multiple times without an error provided.

This happens on both Waterfall versions I have tested (The lastest release 395, and release 393).

This error looks like it's related to ...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Error when logging in the server by wayf of the waterfall:

This server has mods that require FML/Forge to be installed on the client. Contact your server admin for more details.

Except that, mods are present on the client with forge 1.16.5 (3306).

ip-forwarding true with forge true in the config.yml in waterfall config.
On the forge server (I use Mohist 1.16.5) there are bungeccord: true in spigot.yml and in the bungee.yml : connexion-throttles = -1.

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

@PurpleIsEverything here is how my implementation looks like for now

  1. Server list has a second ping response type to indicate PROXY and mark it with an extra type compatible icon
  2. Upon connection to the proxy, before login plugin messages start a proxy:identify payload is communicated.
  3. Proxy then starts connection to downstream and sends proxy:ready back to the client.
  4. Client connects to the server
  5. Upon switching servers a proxy:reconnect payload is sent from the proxy to th...
#

Iโ€™ve tried many things and among long convoluted hacks that try to reset the client state without closing the connection- No. Forge mods canโ€™t be expected to be completely reset if you do that. The only way to be sure is to force a complete disconnect so the client must undergo a full new connection. Itโ€™s also the most maintainable way

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

It would be really poggers if we could change some of the chat logging to have custom locale, especially the errors.
The current setup is really technical for an end users experience, ex.
image
It would be much preferable if we could just edit a config file to whatever we wanted it to be
or at the very minimum, disable the chat logging.

buoyant shoreBOT
buoyant shoreBOT
#

Please don't bump PRs unless you have something to add, have you tested it? does it work? etc

In the issue, the issue creator already wrote that it does fix the exploit.

I think the changes done in this PR are quite straightforward and it should get merged soon.

I'm happy to assist when problems arise due to this change.

One thing that might change is the way the software reacts when another bungee with ip/uuid/skin forwarding enabled is pointed to a waterfall instance with this...

buoyant shoreBOT
#

Ah yeah I forgot the stuff which mods might do. My bad.

I guess we'll have to wait for some people who use Waterfall in combination with modpacks to see if forge / any modpack sends long data in the first 4 packets to test it out.
While I am happy to assist with potential errors arising due to mods (like increasing the already big limits or adding some config option to only check the first 3 instead of 4 packets or so), I don't feel like digging into modpack server & client installations ...

buoyant shoreBOT
buoyant shoreBOT
#

Hello!
I am using Waterfall 1.16 but whenever i try to join i get this error
disconnected with: Exception Connecting:BadPacketException : Unexpected packet received during server connector process!
my config

server_connect_timeout: 5000
listeners:
- query_port: 25565
  host: 0.0.0.0:25565
  motd: 'no lol'
  max_players: 1
  force_default_server: false
  tab_size: 60
  forced_hosts:
    pvp.md-5.net: pvp
  tab_list: GLOBAL_PING
  bind_local_address: true
  ping_passthrough...
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

[09:29:20 INFO]: [/127.0.0.1:58763] InitialHandler has pinged
[09:29:24 INFO]: [/127.0.0.1:58764] InitialHandler has connected
[09:29:24 WARN] [io.netty.util.concurrent.AbstractEventExecutor]: A task raised an exception. Task: net.md_5.bungee.connection.InitialHandler$6$1@2f3eb76d
java.lang.ClassCastException: java.util.LinkedHashMap incompatible with java.util.Collection
at net.md_5.bungee.conf.YamlConfig.getPermissions(YamlConfig.java:329) ~[waterfall-1.16-403.jar:git:Waterfal...

#

We had some issues getting waterfall to compile against 11, might take another stab at it at some point but getting the java 11 stuff working is a goal, I don't however use windows, so generally maintaining libs for platforms I don't use is generally an issue, and given that linux in general is the most popular platform for running the proxy, non-linux platforms are shamefully not a high priority here (I do use macOS, but, not really a platform I specifically aim to put too much effort for op...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

I've been using this build for a long time now, and I can confirm that on a normal Waterfall with a moderate amount of players, some plugins, and continuous bot/DDoS attacks (I run a JH AntiBot test server), it performed really well. No issues at all. This is a MUST to be merged. Default Bungee implementation is not only allowing for a network overload, but also getting overloaded itself, consuming an unlimited amount of RAM during the attack, which does not get cleared automatically, eve...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Hello Waterfall community, i'm owning a smaller minecraft server with about 50 max concurrent players.
I am recently facing bot attacks where multiple ips (proxies?) connected to the bungeecord, each allocating 16MB direct memory and thus rendering the server unusable.

I've allocated 512MB memory to bungeecord, which was plently for the last 3 years. I still doubled it to 1 gig for now, but the DOS "attack" still manages to fill the ram in seconds.

This exception is spammed to console ...

buoyant shoreBOT
#

You could argue that this is a ddos attack and can't be fixed by bungeecord/waterfall.

Yes thats true, bungeecoord/waterfall had many exploits but md5 claims that they don't even work xd, waterfall does something but still their "antidos" is trash.

However, the host machine was using about 30% cpu and 10% of it's network resources, it's really only bungeecord that is struggeling to keep up with that many requests.

Imo bungeecord has fucked networking system, even vanilla's one is...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

@narumii
This offensive language will not get you anywhere. You did not provide any useful information.

I suggest that the maintainers of waterfall delete your comment.

I suggest that you try out #609, there's also a link to a test Waterfall jar in there. That might help with your problem.

Yeah telling truth is offensive :(
Big "DoS mitigations" that doens't works, also "DoS mitigations" from velocity doesn't work properly idk why /shrug

#

There is a difference between telling the truth and just being an ass about
it

Each event pipeline thread iirc gets its own native buffer, this would
imply that too many event threads fired up or something, don't think there
is an actual leak here but I have no means to reproduce this to
investigate. Many of these issues can be mitigated with basic configuration
of s firewall to throttle connections in the event of an attack

On Sat, 10 Apr 2021, 18:28 ใชใ‚‹ใฟ, @.***> wrote:

@narumii <h...

buoyant shoreBOT
#

Is that amount of server list pings normal for your server?

Yeah pretty much. 2-3 pings per second is what i would consider normal.

Many of these issues can be mitigated with basic configuration of s firewall to throttle connections in the event of an attack

As already mentioned, i am rate limiting connections, filetering bad packets and limiting total connections per ip.
How about telling the "basic firewall configruation" so i can configure mine.

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Such a important pull request is not gonna be merged any time soon. Multiple large hosting providers have tried to "mitigate" it with firewall, but idk how do you expect to block legit Minecraft connections (bots) with firewall... I've been using this for months and there are just no issues. Why waiting more? Reject it or accept it...

Your condescending attitude is unhelpful. Leave it at the door.

buoyant shoreBOT
buoyant shoreBOT
#

@Proximyst wrote:
This looks extremely janky. Why do we not parse what the packet is first, then to check expected packet length which is already defined in their classes?

That is already done by the current version of the patch this PR modifies.

The attack sends a large packet size and sends the data very slowly but frequently enough to not trigger a timeout (as the timeout handler is before the Varint21FrameDecoder). This causes the connections to stay open for a long time w...

buoyant shoreBOT
#

No additional reports of this, I don't have a windows machine and chasing down endless problems with an OS I don't have the means to test on and where reproduction of these issues is generally spotty as all heck, I have 0 interest in wasting my time on.

if somebody can spot the issue, feel free to open a PR, but I will not be investing personal time into terminal support issues on windows

#

Seems like there is no real interest in this issue, pressing escape has 0 bearing on the proxy itself and suggests that some mod really doesn't like server transfers, there are some things in the proxy these days which can help but chasing down edge case issues with 200 in 1 mod packs is not something I can commit to

#

Java does not cooperate that well with Docker. We have experienced a lot of OOM issues on our network and we managed to fix our issues with our proxy by allocating twice the proxy heap uses in overhead.

The primary reason is because aside from JVM overhead you need to also have room for direct buffers, which can get big.

One startup option I would recommend is . By default Netty pools up to 16MiB buffers and Minecraft only sends packets 2MiB in size, maximum. This option will bring it d...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#
[PaperMC/Waterfall] New branch created: ServerConnectRequest\-sendFeedback
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

With the recent threat of sophicisticated backdoor malware plugins over on spigotmc, it should be considered that PaperMC uses some sort of certificate to sign their official builds of Waterfall. Could also be self-signed for 999 years or so. This allows for better checking of jar file modifications and some jar file modifications might even be stopped from running.

buoyant shoreBOT
buoyant shoreBOT
#

I try to connect to my forge server from another spigot server and nothing happends.
This is what shows up in the console:

[00:53:05] [Netty Worker IO Thread #1/INFO]: [Rankzy|/127.0.0.1:64231]  ServerConnector [Sammycraft] has connected
[00:53:05] [Netty Worker IO Thread #1/INFO]: [Rankzy|/127.0.0.1:64231]  ServerConnector [Sammycraft] has disconnected

The only fix i found is to set "online_mode: false" but this removes player skins and causes other issues.

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Hey so recently commit (c19c4771deb96ad88e01781674d7d716dd10d3c0) was dropped which blocks empty packets from players, but allows them from the server-side. I don't understand why this change has been made because now players are always getting kicked for these empty packets and I would like to know how these empty packets are created and how we could prevent them. We did upgrade Waterfall to the latest version to fix a crasher but now our players are being kicked for the reason said above.

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Sorry,
It would be great if you could add a bit better documentation. If you want to start a new project, you just got the information how to get the API. I just started and don't know how can I start with the plugin.

It would be nice if there was an "Getting started" section where the basics are shown. Enrtry point to the plugin (onEnable())

Like this:

Getting Started

Hello World

@Override
public void onEnable() {
    getLogger().info("Hello World");
}

...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Please don't bump PRs unless you have something to add
I've already stated why I'm not fond of this PR, I'm not going to merge something in I'm not happy with unless it's ultimately needed and no better solutions exist.

as I've stated elsewhere, on the basis that this is only holding registration stuff and the brand, I'd much more be inclined if we just stored a list of registered channels and resend those, rather than storing the full plugin message, same for the brand too, offers a much...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

This seems like a great idea, especially to add to the list of platforms with native support, which further allows for the scale of cross compatibility that I think Adventure is designed around. I donโ€™t want to seem like Iโ€™m trying to take over or anything, but Iโ€™d love to give this one a go, modelling after Paperโ€™s implementation of this. Iโ€™ll see what I can come up with and make a PR.

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

This PR (hopefully) adds everything that Adventure has to offer to the BungeeCord API (please let me know if I missed anything)

I know there was a conversation in Discord about moving this patch higher up the list, but unfortunately, I don't have a big enough brain for that :slightly_frowning_face:
If anyone else much, much better than me with Git wants to give that a try, feel free. I thought it might be better to let someone else try and do it instead of trying to baby me on how to res...

buoyant shoreBOT
#

skimmed thru...couple of other general things;

  • You need to pick a comment indent level and stick to it, you're using two different ones
  • Imports need to be fully qualified for non-adventure stuff, adventure stuff should be its own block at the end of other imports
  • I don't know how I feel about commenting out large portions of code considering patches are meant to apply easy. Should probably use if (true) to bypass that?
buoyant shoreBOT
buoyant shoreBOT
#

@JRoy wrote:
skimmed thru...couple of other general things;

  • You need to pick a comment indent level and stick to it, you're using two different ones
  • Imports need to be fully qualified for non-adventure stuff, adventure stuff should be its own block at the end of other imports
  • I don't know how I feel about commenting out large portions of code considering patches are meant to apply easy. Should probably use if (true) to bypass that?

Waterfall so far did not use `...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

I decided on a rule for fully qualifying here, though not sure whether everyone will agree on it: if it is used more than once or twice in a file (excluding comments of course, there's no reason to import if it's only used in comments), it should be imported, else it should be fully qualified, and I've tried to stick to that rule as best as I can in my latest commit, though I believe that you guys will still find faults in it anyway because I probably forgot somewhere.

Also, @Janmm14 , I t...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Not trying to sound like a dick or anything like that, but I think you should've provided a reason why you closed this issue. I asked a simple question and you could've told me "This is not the place to answer questions. If you would like help, please go to (insert website here) and ask your question there."
Instead, you just closed it and I'm still here with the same question I had 18 hours ago.
This does sound like I'm hating this, but I'm not. I just find it annoying that you couldn't ev...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Is your feature request related to a problem?

With the newest minecraft versions moving towards more newer java versions, it is rather hard to allow users to switch between multiple different jars without impacting user experience due to possibly running the wrong java version. This issue aims to solve this problem (in the future releases) by allowing indicating the recommended version for automated tools (e.g. game panels automatically choosing the wanted version) to avoid having to r...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Although not useful for everyone, it can have a purpose.

The command simply shows what plugins are active on the proxy, in the same way as /plugins does on Bukkit. It would be useful for developers that might not be able to view a full console (due to line limits with hosts) to see if their plugin has been loaded/enabled. It can also be used by owners to see if a plugin has loaded or to see what plugins are installed without having to access files directly.

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Hey, i'm developing for Waterfall and need to retrieve the server list every now and then.
I'm using the getServersCopy() method provided by Waterfall in the ProxyServer instance, as the other one is marked as deprecated.
However, i started to notice some weird behaviour lately, throwing the following exception everytime the getServersCopy() method is called:

[21:43:23] [pool-10-thread-5/ERROR]: java.util.NoSuchElementException
[21:43:23] [pool-10-thread-5/ERROR]:     at gnu.trove....
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

modifying the servers list is best done with the remove/add methods on the ProxyServer class, we already lock the collection in many cases but there is a limitation due to getServers itself returning a mutable list, part of the ideal setup would be to make this immutable, but, shamefully plugins get in the way of that, but, I question if the better alternative might be to override the relevant methods to direct calls to remove, etc, to the synchronized methods for this, but it is pretty gros

buoyant shoreBOT
buoyant shoreBOT
#

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

BungeeCord Changes:
39a80e41 #3093: Support names with '.', block names with ' '
ab9153dd Further increase length limit for TO_CLIENT chat packets
7ec1f487 Remove ipv6 scope from forwarded addresses

buoyant shoreBOT
#

modifying the servers list is best done with the remove/add methods on the ProxyServer class,
Found them in the Configuration class, thanks. They synchronize on the serversLock object. Is this a feature from Waterfall, as i can't find this in BungeeCord itself?
Also, i found that there are still many cases where the map is accessed without synchronizing on the serversLock object even in Waterfalls own code. This can eventually cause the same issue, or am i wrong?

What is the reason for...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

@Sneakometer The idea is probably that for most servers the server map is not changing, that's probably why it is using a fast map and manual synchronization

I'm not a java expert, but i can't believe that troves map is that much faster for those few entires (max few 100) in the server map.

I'm going to sound like a broken record, but that's just one reason why @electronicboy encouraged me to go on my own instead.

I already thought about switching ...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

There have been no changes to the logic here in months. If anything you should open an issue downstream on bungeecord in this case because Waterfall doesnโ€™t really modify logic here. Plus unless you have actual evidence that Waterfall is at fault, or describe a reliable way to reproduce this problem, this issue is invalid.

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Greetings,

After updating to the latest waterfall builds, Geyser and Floodgate compatibility seems to be broken. The error displayed is...
InitialHandler - overflow in packet detected! A string was longer than allowed. For more information, launch Waterfall with -Dwaterfall.packet-decode-logging=true

https://mclo.gs/RGl14af
https://mclo.gs/M88VBKU

The last compatible build appears to be #419 which means I won't have 1.17 support ;-;

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Is this possible in the config.yml from waterfall that I configure when players use /server server1 that the player connected forcly to world1 (at spawnpoint) from server1?

On server1 mutliverse is running. When the player goes (with multiverse) into server1 on world2 and logout and login again the player is still on world2. My final is, that the player which is logout in world2 after a relogin is by default and automatically in world1 (on the spawnpoint).

I've already set the sp...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#
  • Use Java 8 lambda map access in EventBus
    Improves speed as HashMap doesn't have to calculate hash multiple times.
  • Speed up event calling with LambdaMetafactory BiConsumer creation
    Using lookup of special class loaded by a class loader which can delegate to all PluginClassloaders.
  • Replace reflection inside netty with ChannelFactory.
    Thanks for pointing it out @MrIvanPlays
  • Remove unused AttributeKeys in PipelineUtils
  • Use switch in "BungeeCord" plugin message handling
  • Include...
buoyant shoreBOT
#

I have a problem with this discussion.

If we can not only detect that the client is FML, but that it is in fact FML protocol 2 during the handshake, why can't we just follow forge's protocol and forward the payloads beyond that point as is expected? All this reconnecting business seems completely unnecessary to me.

#

handshaking is done during the LOGIN protocol, and handshakes are initiated by the server itself, not the client, so we'd have no way of knowing what mods are installed and if they're even an FML client until they join a forge server, which, if the first server which they join is not forge, you're not gonna handshake

and then you've got the data to deal with when actually switching servers, noting that this is all done in login, there is no way to actually do any form of handshake without ...

buoyant shoreBOT
buoyant shoreBOT
#

Continuing the previous discussion, though, I still don't see why the client should be required to actually disconnect from the proxy.

It seems like all we're missing is a single "plugin message" that, when executed by the client, would: notify all the mods that the player disconnected (despite this not being the case) so that they reset themselves, clean up the forge connection internals (registries & etc.), and restart the LOGIN process from the beginning.

As for where ip-forwarding...

#

notify all the mods that the player disconnected (despite this not being the case) so that they reset themselves,

The problem, if I understand correctly, is that Forge mods are currently expecting the registries, etc. to remain the same from the time that the player connects to the time that they disconnect. As such, the simplest and most backwards-compatible approach is to always disconnect and reconnect the player when they switch servers. Otherwise, a new event needs to be added to Fo...

#

The idea of a disconnect is that it's a more cross-platform solution for these niche environments which is less bug-prone, allows mods to properly clean up after themselves without us expecting that they'll be happy to just be slammed back into the login phase unexpectedly

The idea is to try and do this properly and maintain the typical connection flows for mods that mods expect so that this general solution can be applied across the board to these solutions rather than a software-specific...

#

notify all the mods that the player disconnected (despite this not being the case) so that they reset themselves,

The problem, if I understand correctly, is that Forge mods are currently expecting the registries, etc. to remain the same from the time that the player connects to the time that they disconnect
Right, but what I'm getting at is that this change in states could be emulated without any new events or other behavior required for mods to implement. To them it would seem li...

#

The issue is that either way you do it there will be new behavior, the proxy currently doesn't have any forms of means of understanding that a client may slam back into an earlier connection state, and all of the server switch logic relies on the client still being in the PLAY state, which makes me super weary about touching this logic without just rewriting the entire class as-is given it's already somewhat messy with the optional removal of entity metadata rewriting

I think getting rid o...

buoyant shoreBOT
buoyant shoreBOT
#

This PR brings Waterfall on a forwarding-feature-level with Velocity for better security.
Implemented:

  • Velocity modern forwarding support, courtesy of @astei and the Velocity contributors, this forwarding mode uses a 1.13 and newer feature for a more standardised and less volatile forwarding solution.
  • Bungeeguard forwarding support (natively), courtesy of @lucko this forwarding type is an extension to the standard/legacy Bungeecord forwa...
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

On every startup my config.yml gets shuffled around, I'm not sure if this is intentional or not but it's a bit annoying. I'll put an example below, the particular entries that move are server_connect_timeout, prevent_proxy_connections, and stats.

Before:

server_connect_timeout: 5000
listeners:
- max_players: 69
  host: ip:port
  bind_local_address: true
  ping_passthrough: true
  tab_list: GLOBAL_PING
  tab_size: 60
  forced_hosts:
    example.com: survival
    creati...
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Upstream has released updates that appears to apply and compile correctly.
This update has not been tested by PaperMC and as with ANY update, please do your own testing

BungeeCord Changes:
6f7331e8 #3138, 3140: Check for the new leak detector netty flag
1b489bcc Attempt to fix java 8 native crash
da27924a #3115, #3125: Update natives build script, switch to Cloudflare zlib
15b39887 #3133: Directly disconnect on illegal chars
f9583a76 #3129: Replace ConnectTimeoutException with a more user-fr...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

This occurs after updating waterfall to support 1.17+

I am running waterfall-1.17-445

Proxy Java : 16
Server attempting to connect: Java 11 ( Minecraft Version: 1.16.1 )

Unknown fix or bypass. Only occurs when the server starts the minigame.

UpstreamBridge - encountered exception
io.netty.util.IllegalReferenceCountException: refCnt: 0, decrement: 1
	at io.netty.util.internal.ReferenceCountUpdater.toLiveRealRefCnt(ReferenceCountUpdater.java:74) ~[waterfall.jar:git:Waterfal...
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

Hi,
So I've been having a few issues lately where players have been timing out when specific things happen.
I've only been able to identify the cause of one of the issues, and that's when a particle is sent with a speed of 0. If I set the particle speed to something small like 0.000001, it works fine. I've tried using this with basic bungeecord & waterfall but nothing has changed. I don't think it's something to do with the server though because I tried doing it without a proxy and no timeo...

buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
buoyant shoreBOT
#

[12:51:02 ERROR]: Exception in thread "main" java.lang.ClassCastException: java.util.LinkedHashMap cannot be cast to java.util.Collection
[12:51:02 ERROR]: at net.md_5.bungee.conf.YamlConfig.getListeners(YamlConfig.java:245)
[12:51:02 ERROR]: at net.md_5.bungee.conf.Configuration.load(Configuration.java:92)
[12:51:02 ERROR]: at io.github.waterfallmc.waterfall.conf.WaterfallConfiguration.load(WaterfallConfiguration.java:50)
[12:51:02 ERROR]: at net.md_5.bungee.Bunge...