diff options
| author | raven <citrons@mondecitronne.com> | 2026-03-22 12:10:31 -0500 |
|---|---|---|
| committer | raven <citrons@mondecitronne.com> | 2026-03-22 12:10:31 -0500 |
| commit | e7b9f268cb9b41eabb58874a8f7223be096cc307 (patch) | |
| tree | 0eecaee321d983722b6ba6e21b4a06e0d157d858 /server | |
| parent | ad4b649f0718b1994feb332741a8cb098e25e09c (diff) | |
texture packs
serve texture pack from integrated HTTP server
Diffstat (limited to 'server')
| -rw-r--r-- | server/player.go | 8 | ||||
| -rw-r--r-- | server/server.go | 8 |
2 files changed, 15 insertions, 1 deletions
diff --git a/server/player.go b/server/player.go index b7698b1..04be3fa 100644 --- a/server/player.go +++ b/server/player.go @@ -275,6 +275,14 @@ func (p *player) OnLevelData(from *level, info levelInfo, data io.ReadCloser) { Height: int16(info.Size.Y), Length: int16(info.Size.Z), }) + p.server.GetInfo(p, func(info ServerInfo) { + if info.TexturePack == "" { + return + } + p.client.SendPacket(p, &classic.SetMapEnvUrl { + TexturePackUrl: classic.PadString(info.TexturePack), + }) + }) p.client.SendPacket(p, &classic.SpawnPlayerExt { PlayerId: -1, Username: classic.PadString(p.name), diff --git a/server/server.go b/server/server.go index 407ae35..b1c64fb 100644 --- a/server/server.go +++ b/server/server.go @@ -21,11 +21,13 @@ var supportedExtensions = []string { } var requiredExtensions = []string { "ExtEntityPositions", + "EnvMapAspect.2", } type ServerInfo struct { Name string Motd string + TexturePack string } type Server struct { @@ -39,7 +41,6 @@ type Server struct { stopping bool stopped chan struct{} } - type worldState struct { LastId levelId SpawnLevel levelId @@ -185,6 +186,11 @@ func (s *Server) ExecuteCommand( }) } +func (s *Server) GetInfo(from phony.Actor, reply func(ServerInfo)) { + info := s.info + from.Act(nil, func() {reply(info)}) +} + func (s *Server) OnDisconnect(cl *client, username string, pl *player) { s.Act(cl, func() { delete(s.clients, cl) |
