summaryrefslogtreecommitdiff
path: root/server
diff options
context:
space:
mode:
authorraven <citrons@mondecitronne.com>2026-03-22 12:10:31 -0500
committerraven <citrons@mondecitronne.com>2026-03-22 12:10:31 -0500
commite7b9f268cb9b41eabb58874a8f7223be096cc307 (patch)
tree0eecaee321d983722b6ba6e21b4a06e0d157d858 /server
parentad4b649f0718b1994feb332741a8cb098e25e09c (diff)
texture packs
serve texture pack from integrated HTTP server
Diffstat (limited to 'server')
-rw-r--r--server/player.go8
-rw-r--r--server/server.go8
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)