BungeeTabListPlus icon indicating copy to clipboard operation
BungeeTabListPlus copied to clipboard

Tabbing in chat shows BTLP_Slot_1, 2 etc.

Open DanielAlves123 opened this issue 7 years ago • 40 comments

Put space in chat and press tab https://cl.ly/b72f1e65f7c8

DanielAlves123 avatar Aug 22 '18 15:08 DanielAlves123

I've had a look at what causes this and I don't think I can fix it.

CodeCrafter47 avatar Sep 02 '18 11:09 CodeCrafter47

@CodeCrafter47 Any possible update on this to disable tab complete for BTLP slots? :(

mibby avatar Feb 03 '19 05:02 mibby

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.

  1. 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.

  2. 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.

  3. 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.

CodeCrafter47 avatar Feb 03 '19 09:02 CodeCrafter47

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 avatar Feb 10 '19 13:02 CodeCrafter47

@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? :(

mibby avatar Feb 11 '19 08:02 mibby

Should be fixed now.

CodeCrafter47 avatar Feb 11 '19 08:02 CodeCrafter47

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!

mibby avatar Feb 11 '19 09:02 mibby

So, this now occurs without any / or space in the chat, it appears as soon as is pressed.

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?

AeSix avatar Dec 16 '19 17:12 AeSix

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.

CodeCrafter47 avatar Dec 16 '19 18:12 CodeCrafter47

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.

AeSix avatar Dec 16 '19 20:12 AeSix

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 :)

AeSix avatar Dec 16 '19 20:12 AeSix

doesn't seem too difficult https://www.youtube.com/watch?v=7EqMMcyRHsM

toxamin avatar Dec 17 '19 19:12 toxamin

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 💯

AeSix avatar Dec 17 '19 19:12 AeSix

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.

toxamin avatar Dec 17 '19 19:12 toxamin

Ahh, makes sense! Thank you for your efforts! :)

AeSix avatar Dec 17 '19 19:12 AeSix

@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?

CodeCrafter47 avatar Dec 18 '19 08:12 CodeCrafter47

@toxamin @CodeCrafter47 I would love to see this fixed! <3

DanielAlves123 avatar Dec 19 '19 02:12 DanielAlves123

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).

toxamin avatar Dec 22 '19 18:12 toxamin

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 avatar Dec 31 '19 13:12 CodeCrafter47

@CodeCrafter47 Any possible update on looking into this?

mibby avatar Jan 17 '20 05:01 mibby

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.

CodeCrafter47 avatar Jan 17 '20 18:01 CodeCrafter47

Great, hopefully it's an easy fix! For reference, this is what shows up now with dev build 848. link

mibby avatar Jan 22 '20 02:01 mibby

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.

link-br

mibby avatar Apr 20 '20 03:04 mibby

I definitely want to give this another try in the future.

I am not particularly worried about the bedrock support though.

CodeCrafter47 avatar Apr 20 '20 09:04 CodeCrafter47

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.

mibby avatar Apr 23 '20 03:04 mibby

So is this issue patched when player size is 80 or was this patch abandoned for the time being?

ItWasEnder avatar May 16 '20 23:05 ItWasEnder

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.

CodeCrafter47 avatar May 17 '20 07:05 CodeCrafter47

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 avatar May 17 '20 15:05 CodeCrafter47

@CodeCrafter47 Setting experimentalTabCompleteFixForTabSize80: true breaks the tab list for me.

link

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

mibby avatar May 21 '20 01:05 mibby

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.

CodeCrafter47 avatar May 22 '20 08:05 CodeCrafter47