BungeeTabListPlus
BungeeTabListPlus copied to clipboard
Tabbing in chat shows BTLP_Slot_1, 2 etc.
Put space in chat and press tab https://cl.ly/b72f1e65f7c8
I've had a look at what causes this and I don't think I can fix it.
@CodeCrafter47 Any possible update on this to disable tab complete for BTLP slots? :(
I do have some ideas on how to mitigate this issue. However none of them fixes the issue completely, and I can't guarantee any of this will ever be added to the plugin.
-
Move the BLTP Slots below the real players in tab completion.
This would be relatively easy. One would have to change the slot name to not start with a space but with a character that is ordered below alphabetic characters. Changing that is easy however some part of the plugin might rely on the slots being first, that would need to be changed.
-
Replace the slot names with smileys.
Same as above, just the smileys in tab completion might be useful to players. Though only if smileys are displayed below the player names. I'd need to test that.
-
BTLP Slots could be removed from command (not chat) tab completion.
For commands that take player arguments the BTLP slots could be completely removed from the tab completion list. However that would be a lot of work to implement.
I've now implemented my first suggestion, i.e. when pressing tab in chat real players are now displayed above the BTLP slots.
Regarding my other ideas:
-
Replacing the slot names with smileys is probably a good way to turn this bug into a useful feature, however it would not be obvious to users which plugin causes this so I'm not sure if I want to do this. Let me know what you think.
-
With command tab completion the only command I found where the btlp slots showed up is
/team. So it's probably not a big issue.
@CodeCrafter47 BTLP dev 810 causes quite a few issues. Disconnecting as soon as I try to login.
https://paste.ubuntu.com/p/wPX2CsStCZ/
Downgrading to BTLP dev 808, all is fine. https://github.com/CodeCrafter47/BungeeTabListPlus/commit/43bf88b856c9c54e02aa246795c234e184f17e71 a broken commit? :(
Should be fixed now.
Crash confirmed fixed.
Tab auto-complete also seems to sort me above all the ~BTLP Slot ## now as well. It's a shame those fake player slots can't be removed from tab altogether, but sorting players above them with them having a tilde in their name seems acceptable. Much better than before!
So, this now occurs without any / or space in the chat, it appears as soon as
Could these fake players be hidden like real players with a Vanish plugin? It's freaking out my players lol. (I tried to /vanish one of them, and it didn't work)
Could pre-pending the names with a : solve the issue? Hacky, but might work as Bungee don't send command (I know it's not a command) to tab completions... worth a shot maybe?
These cannot be hidden. I do not think using a : would fix the issue. How would that be different from the ~ that is currently used?
What do you think about my suggestion of replacing the slot names with smileys? That is definitely possible and will turn something annoying into a (potentially) useful feature.
The only problem I foresee with using smilies and other ascii art, is that you'll need to figure out how many you'll need... I think you'd need a lot more than 60? I'm not sure what a sane amount of slots to show is.
Other than that, I like it.
As far as the :, I was thinking maybe bungee might see it and not send it, but I have no confirmation of this, or any way to test, so, a grasping at straws suggestion.
I'm wondering though, could ProtocolLib be used, as an optional, to re-build the player list, where you would exclude players starting with "~BTLP"? I'm not certain that'd work, but it might. I'll see if my wife, who is actually a programmer, has any ideas when she gets off work.
by the way, this is probably obvious to the old timers and devs, but changing from "FIXED_SIZE" to "DYNAMIC_SIZE" removes the slot players, and so it's not an issue... but at the cost of losing the coolies.
Posting more for anyone else who happens upon the ticket :)
doesn't seem too difficult https://www.youtube.com/watch?v=7EqMMcyRHsM
That's using BTLP with "DYNAMIC_SIZE"? How'd you disappear the fake players? There's a PR? :D Would be wonderful to have that 💯
No, it's not BTLP. It's a PoC, simply proof it's possible. I thought this could be applied to BTLP, however, I'm not sure if major parts of the code base have to be rewritten for this to work.
Ahh, makes sense! Thank you for your efforts! :)
@toxamin How did you prevent the fake players from showing up in tab completion? Is it something specific to 1.15 (haven't looked at that yet) or would it also work for older versions?
@toxamin @CodeCrafter47 I would love to see this fixed! <3
To put it simply, you can't tab complete nothing (aka ""). You can add multiple entries to the tablist with the name "", because in 1.8+, they are identified by their uuids, and not their names. If there are multiple entries with the same name, they seem to be sorted by uuid. So, the solution is to add players with the name "", with unique uuids. This seems to work in 1.8+ versions, however, I have only tested simple things. The blank entries are sorted above normal players (which is good, because I'm not sure if a blank entry can be added to a team).
That seems like a good option. It will only work when using all 80 slots, but that is fine. I will look into implementing this next year.
@CodeCrafter47 Any possible update on looking into this?
I am currently working on a big update fixing most issues on the Far Future milestone. It is mostly done, except for a bit of testing/ fixing some bugs. I will look into this once that is done.
Great, hopefully it's an easy fix! For reference, this is what shows up now with dev build 848. 
Is this something that can be revisited in the future? Fake players still show up in the tab complete at the very bottom with BTLP dev 985, and with Geyser (Bedrock Client Support), players see this.

I definitely want to give this another try in the future.
I am not particularly worried about the bedrock support though.
No worries, I'll be here to help test when you experiment with future changes to try and nail down this problem. :)
Bedrock support would technically be fixed and go hand-in-hand with the fake players no longer being included in the tab-complete list, but obviously it's nothing to worry about since it's an unofficial compatibility hack anyways. Just something I noticed.
So is this issue patched when player size is 80 or was this patch abandoned for the time being?
The patch has been reverted. I plan on adding it back for the next update, with a config option associated to it, so people can enable/ disable it depending on how well it works for them.
I've added the experimentalTabCompleteFixForTabSize80 and experimentalTabCompleteSmileys options to the config.yml. The first one removes all the ~BTLP entries from tab completion if the size of the tab list is 80. The second option can be used to replace the ~BTLP entries with some semi-useful unicode characters. You may use both options at the same time. Let me know how it goes.
@CodeCrafter47 Setting experimentalTabCompleteFixForTabSize80: true breaks the tab list for me.

Had it happen when I switched servers. Also had it happen to someone who logged in / connected. Relogging usually fixes the issue. However I'm able to force it to break by running /btlp reload from Bungee.
Gallery of different breakage. https://imgur.com/a/2G0FFev
How it looks normally. https://i.imgur.com/YSrEAL7.png
Turning the setting off (false) fixes the problem.
BungeeTabListPlus dev 1007
Doesn't happen on my test server. I suspect you might need some other plugins to make the issue happen. Maybe you can try to narrow it down a bit.