Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Problem using ChangeSkinBungee API #216

Open
Kyumar opened this issue Apr 7, 2021 · 14 comments
Open

Problem using ChangeSkinBungee API #216

Kyumar opened this issue Apr 7, 2021 · 14 comments
Labels
bug Something isn't working

Comments

@Kyumar
Copy link

Kyumar commented Apr 7, 2021

When i set from bungee a skin using applySkin# method, some players cant see the skin of the player who changed it.

@games647
Copy link
Owner

games647 commented Apr 7, 2021

Is the server configured with instant skin updates?

@games647 games647 added the bug Something isn't working label Apr 7, 2021
@Kyumar
Copy link
Author

Kyumar commented Apr 7, 2021

instantSkinChange? it's on true

@games647
Copy link
Owner

games647 commented Apr 7, 2021

Is the plugin also installed on the Spigot server?

@Kyumar
Copy link
Author

Kyumar commented Apr 7, 2021

Yes

@Kyumar
Copy link
Author

Kyumar commented Apr 7, 2021

I'm using redisbungee. To update the skin, from spigot I send a message to bungee and bungee send a redis message to all proxies, when redisbungee receive the message, it update the skin. It works, but sometimes, some players cant se other players's skin

@games647
Copy link
Owner

games647 commented Apr 8, 2021

Do you see any pattern? Is it only happening if they are on different proxies or servers? Did you see any errors in the console? When is the skin updated? During player join or later?

@Kyumar
Copy link
Author

Kyumar commented Apr 8, 2021

For example, i have 2 proxies, bg1 and bg2, if i'm in bg1, when i send packet from spigot to bungee, bungee send it to redis and redis manages it. It gives the error when i change skin with API because it doesn't found player in bg2

@games647
Copy link
Owner

games647 commented Apr 9, 2021

I'm not familiar with the internals of RedisBungee. Normally it should be enough to forward it to the Bungee server the player is online. It will then tell the Spigot server to send a skin change packet. BungeeCord doesn't intercept the packet, so the change should propagate to the player back even if present on a different proxy.

EDIT: Found that BungeeCord does indeed intercept the packet. It's the PlayerList packet. Minecraft protocol can be complicated.

some players cant see the skin of the player who changed it.

So does it only happen if players switch the server or is it also happening for players that are visible to each other at the time of the change? Does it work if both players are on the same proxy and so on?

@games647
Copy link
Owner

games647 commented Apr 9, 2021

Do you have a plugin that changes the tablist?

EDIT: Just to make sure, you have ProtocolLib on the Spigot server installed right?

@Kyumar
Copy link
Author

Kyumar commented Apr 9, 2021

Hi, sorry for the late reply. Anyway, I'll explain. I have a plugin that uses the changeskin API, when you change skin, spigot it sends a message to bungeecord and consequently bungeecord forwards it to redisbungee. From redisbungee I change the skin, but rightly takes that player in both proxies, obviously a player if it is in proxy1 cannot be in proxy2, so all those who are in the same proxy as the player will see the skin, the others will see the skin of Steve or Alex. By making sure to apply the skin only to the proxy the player is in, could it happen that the players do not see the skin anyway? Anyway yes, I have a plugin that modifies the TABList

@games647
Copy link
Owner

From redisbungee I change the skin, but rightly takes that player in both proxies, obviously a player if it is in proxy1 cannot be in proxy2, so all those who are in the same proxy as the player will see the skin, the others will see the skin of Steve or Alex.

What about if they rejoin the spigot server and do you have ProtocolLib installed? I'm trying to find the origin of this bug. Propagating the change on join of the server is a lot easier than doing instantSkinChange, so I need to know that.

@Kyumar
Copy link
Author

Kyumar commented Apr 12, 2021

When a player change server / quit the skin applied change, it restore default skin. I need to keep changed skin only when player is in the skin, if player rejoin skin restores correctly, it works. But when i change skin with API, when i change it players who aren't in player's bungee doesn't see the skin, they see Steve or Alex skin. If you have discord or teamspeak i can give you more information and i can show you the plugin, ok?

@Kyumar
Copy link
Author

Kyumar commented Apr 19, 2021

Hey(?)

@Kyumar
Copy link
Author

Kyumar commented May 2, 2021

Sorry, can we talk on discord or Teamspeak?

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
bug Something isn't working
Projects
None yet
Development

No branches or pull requests

2 participants