diff options
Diffstat (limited to 'server/player.go')
| -rw-r--r-- | server/player.go | 28 |
1 files changed, 22 insertions, 6 deletions
diff --git a/server/player.go b/server/player.go index 86a32fa..e436714 100644 --- a/server/player.go +++ b/server/player.go @@ -284,9 +284,10 @@ func (p *player) OnLevelData(from *level, info levelInfo, data io.ReadCloser) { TexturePackUrl: classic.PadDString(info.TexturePack), }) }) - p.client.SendPacket(p, &classic.SpawnPlayerExt { - PlayerId: -1, - Username: classic.PadString(p.name), + p.client.SendPacket(p, &classic.AddEntity2 { + EntityId: 255, + InGameName: classic.PadString(p.name), + SkinName: classic.PadString(p.name), X: classic.Fixed(p.state.Pos.X), Y: classic.Fixed(p.state.Pos.Y), Z: classic.Fixed(p.state.Pos.Z), @@ -312,9 +313,10 @@ func (p *player) OnLevelError(from *level, message string, info levelInfo) { func (p *player) OnPlayer( from *level, id levelPlayerId, name string, pos entityPos) { p.Act(from, func() { - p.client.SendPacket(p, &classic.SpawnPlayerExt { - PlayerId: int8(id), - Username: classic.PadString(name), + p.client.SendPacket(p, &classic.AddEntity2 { + EntityId: byte(id), + InGameName: classic.PadString(name), + SkinName: classic.PadString(name), X: classic.Fixed(pos.X), Y: classic.Fixed(pos.Y), Z: classic.Fixed(pos.Z), @@ -328,6 +330,20 @@ func (p *player) OnRemovePlayer(from *level, id levelPlayerId) { }) } +func (p *player) OnAddListEntry(from *Server, entry listEntry) { + p.client.SendPacket(p, &classic.AddPlayerName { + NameId: int16(entry.id), + PlayerName: classic.PadString(entry.playerName), + ListName: classic.PadString(entry.listName), + }) +} + +func (p *player) OnRemoveListEntry(from *Server, id listId) { + p.client.SendPacket(p, &classic.RemovePlayerName { + NameId: int16(id), + }) +} + func (p *player) OnMovePlayer( from *level, id levelPlayerId, pos entityPos, facing entityFacing) { p.Act(from, func() { |
