Eredrim / pvparena

Controlled violence since 2011
https://www.spigotmc.org/resources/pvp-arena.16584/
GNU General Public License v3.0
24 stars 36 forks source link

Option to delay scoreboard setting. #35

Closed mibby closed 4 years ago

mibby commented 4 years ago

Paper dev 273 (Spigot 1.15.2) PVPArena dev 319

Example Config https://paste.ubuntu.com/p/rnw2MWyQkw/

https://prnt.sc/se7os2 https://prnt.sc/se7o68 https://imgur.com/a/6q7mGq2

I'm running into an issue where PVPArena is not colorizing team colors or player names correctly when players join the arena. It doesn't seem to happen for everyone but happens a good portion of the time that there is breakage every game, enough that it is breaking colors being set and causing confusion with white player names.

I use the plugin TAB to colorize nametags outside of arenas. However TAB is configured to not auto-refresh and is set to disable in the arena world void to prevent conflict. https://www.spigotmc.org/resources/tab-1-5-x-1-15-x-free-version.57806/ https://github.com/NEZNAMY/TAB

TAB Config Reference https://paste.ubuntu.com/p/zVQVY5KYrd/

Removing TAB's disabled nametag world feature lets players keep their "outside" scoreboard group colors when they join the arena world, but PVPArena does not override the scoreboard with the game's own colors when they join. So I keep TAB's world disabled setting enabled in the arena world.

My guess why there is a problem;

Assumed solution would be adding an option to delay scoreboard setting / restoring by x number of ticks.

mibby commented 4 years ago

@Eredrim Doing some testing with dev 316, it seems that your newer commits actually broke this when you delayed lounge teleport and player state setting?

https://github.com/Eredrim/pvparena/commit/7a09dca54fe6d286d97659fb963cde56e5424a17#diff-34cd60560f13889b35e23cfc9e309cccR231 https://github.com/Eredrim/pvparena/commit/2c528d6fa00f04f50ca0edef4d228ffed706581e

On dev 316, scoreboard teams and coloring properly sets. There is no issues with white names or team colors missing.

Eredrim commented 4 years ago

Interesting... Thanks for your tests !

Eredrim commented 4 years ago

Normally fixed in 1.15.0

mibby commented 4 years ago

Compiled as of commit https://github.com/Eredrim/pvparena/commit/568dbe89e261cf7316d252995b8a10e15ceaf772

Scoreboards / nametag color seem to be working again.

mibby commented 4 years ago

@Eredrim RE: https://github.com/Eredrim/pvparena/commit/8d218c4677f861fce09462c8dceedb99c8379e78

Can you also delay the scoreboard restoring on game end?

Got a report that it happened to a few people in CTF. link

Eredrim commented 4 years ago

I delayed scoreboard reset at the end of arenas. Can you try dev build 325 (or above) and confirm all is right ?

mibby commented 4 years ago

Sure, I'll update to dev 325 today and give it a try.

However with dev 324, getting reports of players crashing on arena join most likely due to scoreboard setting. It doesn't happen all the time but happens frequently enough to enough players since updating from dev 316. The crash happens once you are put into the lounge for class choosing. Could it be conflicting with TAB or another plugin adjusting scoreboards at the same time?

link5

Dev 316 does not have this problem.

Edit: @Eredrim Might only occur when players rejoin the arena immediately after it ends. Quote corroborated by three people.

I play with vanilla mc with optifine, when it happened to me, we finished a game, and i immediatly typed /ctf as soon as I was out of the arena and and it was a crash straight away, not in lobby or seeing any scoreboards

Eredrim commented 4 years ago

I delay scoreboard init once again so that scoreboard resetting doesn't have conflict with scoreboard creation when a player enters in an arena. Your can test it in build #326 or above.

mibby commented 4 years ago

@Eredrim Players are still being kicked when in an arena as the countdown ends. It was as the countdown hit zero and teleported them out of the arena.

Using PVPArena dev 327

link5

Players claim it had never happened on the countdown at the end of a game before updating to the newer dev build and that it had only ever happen when joining the arena. Now it happens on end.

PVPArena dev 316 does not have this problem.


For reference, this time it happened in my Beatdown game which is a FREE based scoreboard / team assigning.

Beatdown.yml https://paste.ubuntu.com/p/8mGg2tP9qn/

The global scoreboard plugin I use (TAB) does not auto-refresh and is disabled in the void world where the arenas are located. PVPArena tries to restore players back to their scoreboard group for nametags which is just the placeholder variable %rank%, which is just their prefix color. Everything else in TAB is disabled.

TAB config https://paste.ubuntu.com/p/mNZCydfHbf/

I do also use BungeeTabListPlus on my proxy network (BungeeCord) with bridged plugins, but I do not believe this affects anything. It assigns scoreboard groups for global tab list sorting.

mibby commented 4 years ago

Here is one of the user's client logs where you can see PA is spamming errors such as

[00:48:55] [Render thread/FATAL]: Error executing task on Client
java.lang.IllegalStateException: Player is either on another team or not on any team. Cannot remove from team 'free'.
    at cwl.b(SourceFile:236) ~[1.15.2.jar:?]
    at dnp.a(SourceFile:2112) ~[1.15.2.jar:?]
    at os.a(SourceFile:122) ~[1.15.2.jar:?]
    at os.a(SourceFile:16) ~[1.15.2.jar:?]
    at lv.a(SourceFile:21) ~[1.15.2.jar:?]
    at lv$$Lambda$2315/1534187732.run(Unknown Source) ~[?:?]
    at ais.c(SourceFile:144) [1.15.2.jar:?]
    at aiw.c(SourceFile:23) [1.15.2.jar:?]
    at ais.w(SourceFile:118) [1.15.2.jar:?]
    at ais.bk(SourceFile:103) [1.15.2.jar:?]
    at dbn.d(SourceFile:956) [1.15.2.jar:?]
    at dbn.d(SourceFile:619) [1.15.2.jar:?]
    at net.minecraft.client.main.Main.main(SourceFile:204) [1.15.2.jar:?]

https://paste.ubuntu.com/p/QcVSM4MZDW/

Eredrim commented 4 years ago

Hey !

I spent a part of the afternoon testing tablist issues (with TAB and nametagEdit). I made a rework of all scoreboard features these last days and, I don't know if it's that, I was not able to reproduce any issue listed in this topic. I precise that I used your TAB config file as-is (just group names were changed in order list). So, I invite you to test latest dev build and tell me what's on.

NB: if despite everything it doesn't work, please tell me if players make cross-world teleportation when they type /pa <yourarena>.

mibby commented 4 years ago

Hi @Eredrim,

Apologies for the late reply. Testing dev 328, scoreboards seem to have issues. Players are not able to see their current team colors on the scoreboard or above player names. For example, players on team red see red as white.

Players do make cross-world teleportation when they type /pa <arena>. All arenas are in a separate void world. Usually players join from the overworld (world) or spawn world (spawn).

So far there has been no client disconnecting issue with the newest dev build upon quick testing, just scoreboard issues.

Eredrim commented 4 years ago

Hello, I think cross world is the origin of the problem. I tried to initiate scoreboard differently and just after teleportation. This development can be unstable (my first tests are success) but I think it worth to try. Can you test build 329 and give me a feedback please ?

NB: if you use one of the following mods: Aftermatch, battlefieldGuard, flySpectate, realSpectate, singlePlayerSupport or Spectate, please update them with mods build number 207.

mibby commented 4 years ago

Hi,

Initial testing with dev 329 and modules 207 is very good! No scoreboard issues with the usual testers, teammates/enemies properly get their scoreboards for FREE and TEAM based games, and restoring is fine without crashing the client.

I'll leave this up to you if you want to close the ticket, but I think the issue is finally taken care of. :) I'll keep an eye on what players are experiencing over the next couple days and let you know if any issues with scoreboards are reported.

mibby commented 4 years ago

Just a quick follow-up. There has been no scoreboard issues since the change. No complaints of team names or colors not being set.

However I am running into a few reports of players losing their main inventory when leaving an arena mid-game or arena lounge -- with the class inventory overriding their dumped inventory. Did you make any changes to inventory restoring?

One such quote from a player;

I was in the /duel hub area, no one had joined. So I left the arena. Through leaving the arena, the duel kit. (iron sword,axe, bow, and full iron armour) had not disappeared from my inventory, but had saved into survival, it had deleted my original survival inventory. This would include my tools and all my armour.

Eredrim commented 4 years ago

Hi ! What a good news ! About inventory loss, I didn't made any change that could affect inventories, but I personally get this kind of problem in the past and reproducing this is really uncertain. If you have players who join arena in cross world situations and if you have separated inventories for theses worlds, so that explains why it happens. The only solution solution I found, at this time, was in blocking "/pa" commands from other worlds.

If issue happens too much, I invite you to open a new dedicated issue with the most of information you can get to reproduce the problem. Like that I would be able to close this issue.

mibby commented 4 years ago

Unfortunately I don't separate inventory groups for worlds players are allowed to join arenas from. Worlds that do have a separate inventory group, PA joining is blocked since I also ran into that restoring/switching issue.

I'll see if I can get people to reproduce the inventory dump / arena inventory overwriting and open a new ticket. Since this issue is fixed now, I'll go ahead and close this.

Eredrim commented 4 years ago

Thank you