ViaRewind

ViaRewind

7.4k Downloads

[Bungee] 1.7 Duplicate Scoreboard Crash

linsaftw opened this issue · 10 comments

commented

Environment:
Proxy: FlameCord (Travertine)
Server: SportPaper 1.8
Affected Client: Vanilla 1.7.10
Running ViaRewind (1.5.3) & ViaVersion (3.2.1) on Bungee

Steps:

  1. Join a server that defines a scoreboard objective.
  2. Switch to a server that defines a scoreboard objective with the same name.
  3. Client crashes because of "Duplicate" scoreboard entry.

This doesn't happen when using ViaRewind on all Spigot servers. This only happens on Bungee version.

commented

Please fix it! I have the same issue here :(

commented

Same issue here

commented

Same issue anyone knows?

commented

????????????????????????????

commented

The issue is still happening. The plugin cannot be run in BungeeCord if the sub-servers have same Scoreboards.

commented

Good luck!

commented

Try Protocol Support?

commented

Try Protocol Support?

I just switched to ProtocolSupport on all Spigot servers and ViaVersion on BungeeCord. CPU Usage is lower for some reason.

commented

Logger - ViaRewind Objective Handler:

image

One of this crashes appear randomly when switching servers.

Crash 1:
java.lang.IllegalArgumentException: A team with the name 'line: §c1§8/§420' already exists!

Crash 2:
java.lang.IllegalArgumentException: An objective with the name '2LSScoreboard' already exists!

As you can see in the log, the objective is added twice without it getting removed.

commented

Alright, the problem seems to be that the connection re-inits on server switch which causes Bungee to not detect the old objectives before the switch was done so it can't remove the old objective.

Before adding the "crashing" objective i am receiving a scoreboard packet (mode 1) which means the server is trying to remove the objective but ViaRewind doesn't detect it as an existing objective.

I think this can be fixed by passing the old UserConnection scoreboard values to the new one or removing all scoreboard values before switching to a new server.