summaryrefslogtreecommitdiff
path: root/server/server.go
diff options
context:
space:
mode:
Diffstat (limited to 'server/server.go')
-rw-r--r--server/server.go19
1 files changed, 14 insertions, 5 deletions
diff --git a/server/server.go b/server/server.go
index 66daf22..cd899e8 100644
--- a/server/server.go
+++ b/server/server.go
@@ -6,6 +6,7 @@ import (
"log"
"fmt"
"time"
+ "iter"
"strconv"
"strings"
"os/signal"
@@ -257,7 +258,7 @@ func (s *Server) newLevel(info levelInfo) (levelId, *level) {
}
log.Printf("creating new level with id %d", s.LastId)
info.Id = s.LastId
- l := newLevel(s, info)
+ l := createNewLevel(s, info)
s.levels[info.Id] = l
return s.LastId, l
}
@@ -372,7 +373,9 @@ func (s *Server) removeListEntry(name string) {
func (s *Server) getLevel(lvl levelId) *level {
if s.levels[lvl] == nil {
- s.levels[lvl] = loadLevel(s, lvl, lvl == s.SpawnLevel)
+ s.levels[lvl] = initLevel(s,
+ levelInfo {Id: lvl, IsSpawn: lvl == s.SpawnLevel},
+ )
}
return s.levels[lvl]
}
@@ -613,9 +616,10 @@ func (cl *client) SendPacket(from phony.Actor, packet classic.Packet) {
})
}
-func (cl *client) SendPackets(from phony.Actor, packets []classic.Packet) {
+func (cl *client) SendPackets(
+ from phony.Actor, packets iter.Seq[classic.Packet]) {
cl.Act(from, func() {
- for _, packet := range packets {
+ for packet := range packets {
if cl.conn == nil {
return
}
@@ -628,7 +632,12 @@ func (cl *client) SendPing(from phony.Actor) {
cl.Act(from, func() {
if cl.conn != nil {
cl.conn.SetWriteDeadline(time.Now().Add(10 * time.Second))
- cl.handleError(classic.WritePacket(cl.conn, &classic.Ping{}))
+ err := cl.handleError(
+ classic.WritePacket(cl.conn, &classic.Ping{}),
+ )
+ if err != nil {
+ cl.conn.SetWriteDeadline(time.Time{})
+ }
}
})
}