-
Notifications
You must be signed in to change notification settings - Fork 58
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
1.7.10: Player name tags show as MISSING #141
Comments
self.players on empty when accessed in on_player_spawn, expected to be populated with on_player_info but it is different for 1.7, this bug corresponds to this comment: fn on_player_info_string(&mut self, _player_info: packet::play::clientbound::PlayerInfo_String) {
// TODO: support PlayerInfo_String for 1.7
}
fn on_player_info(&mut self, player_info: packet::play::clientbound::PlayerInfo) { https://wiki.vg/index.php?title=Protocol&oldid=6003#Player_List_Item
translates to online=false Remove, ping=UpdateLatency, but what about uuid? It is not in this packet, only the player name. |
Something broke? Testing on 1.7.10 with master branch 56f9c0e (56f9c0e), I only see a disembodied head, no name tag not even There were changes to src/render: https://github.com/iceiix/stevenarella/commits/master/src/render Reverting back to 710a773 (Tue Nov 24 19:35:55 2020), the full model appears (with MISSING name tag, as expected due to this bug). Testing on 0aa062f (Fri Dec 25 10:00:22 2020), which is the commit that introduced the port to glow, this disembodiment problem does reproduce. Was it introduced with #262? Reverting to the previous commit before glow, 9700ffe (Sun Dec 20 16:21:02 2020), the player model is intact. So it does look like #262 broke it. Maybe set_float_multi_raw() The change to this call was sketchy. Commenting it out, no model shown at all, not even the player head. Aha, the wrong length is passed to from_raw_parts(). It should be times #[allow(clippy::missing_safety_doc)]
pub unsafe fn set_float_multi_raw(&self, data: *const f32, len: usize) {
glow_context().uniform_4_f32_slice(Some(&self.0), std::slice::from_raw_parts(data, len * 4 * 4)); |
Regression introduced in #262 by the glow port, correct the raw size to account for the matrix. See #141 (comment)
Regression introduced in #262 by the glow port, correct the raw size to include all elements in set_float_multi(). See #141 (comment)
Back to the original issue of the
post-1.7.10:
both PlayerInfo packets are meant to "update the user list ( We keep track of players in the Server struct, field pub struct PlayerInfo {
name: String,
uuid: protocol::UUID,
skin_url: Option<String>,
display_name: Option<format::Component>,
ping: i32,
gamemode: Gamemode,
} Is this players list supposed to be the player entities in range, or all the players on the server? We don't have the Perhaps the solution is to have a separate self.online_players list, with only player names and pings, for the tab list, and use self.players for 1) nearby players, 1.7.10, and 2) all players, >1.7.10. Post-1.7.10, populate both lists. In on_player_spawn_i32_helditem_string(), populate self.players before calling the generic on_player_spawn() handler (which calls entity::player::create_remote with PlayerInfo looked by uuid). Thinking through other alternatives: change most of the fields of self.player PlayerInfo to be |
Broken in 1.7.10, works in 1.8.9+
The text was updated successfully, but these errors were encountered: