diff options
| author | raven <citrons@mondecitronne.com> | 2026-03-21 00:31:49 -0500 |
|---|---|---|
| committer | raven <citrons@mondecitronne.com> | 2026-03-21 00:31:49 -0500 |
| commit | 3f6a61d993d6c50135c3cefe3cf362390c4027d5 (patch) | |
| tree | 8232e80a845480e01a3769269e1d67156085ecba /server/server.go | |
| parent | 22214f3fea9b2e201a9010ff1bf27bf52aeaf338 (diff) | |
chat commands
Diffstat (limited to 'server/server.go')
| -rw-r--r-- | server/server.go | 29 |
1 files changed, 29 insertions, 0 deletions
diff --git a/server/server.go b/server/server.go index 1bea3cf..2740e09 100644 --- a/server/server.go +++ b/server/server.go @@ -163,6 +163,13 @@ func (s *Server) SendPings() { }) } +func (s *Server) ExecuteCommand( + from CommandSender, auth authLevel, command string) { + s.Act(nil, func() { + executeCommand(s, auth, from, command) + }) +} + func (s *Server) OnDisconnect(cl *client, username string, pl *player) { s.Act(cl, func() { delete(s.clients, cl) @@ -211,6 +218,28 @@ func (s *Server) newPlayer(cl *client, name string) *player { return pl } +func (s *Server) changePlayerAuth( + playerName string, auth authLevel, done func(ok bool)) { + pl := s.players[playerName] + if pl != nil { + pl.SetAuthLevel(s, auth) + pl.Act(s, func() { + done(true) + }) + return + } + loadPlayerData(s, playerName, func(state playerState, ok bool) { + if !ok { + done(false) + return + } + state.Auth = auth + savePlayerData(s, playerName, state, func() { + done(true) + }) + }) +} + func (s *Server) NewPlayer( from phony.Actor, cl *client, name string, reply func(*player)) { s.Act(from, func() { |
