Enha: remove bot without room
This commit is contained in:
@ -345,13 +345,31 @@ func RemoveBot(botName string, room *models.Room) error {
|
||||
// remove role from room
|
||||
room.RemovePlayer(botName)
|
||||
slog.Debug("removing bot player", "name", botName, "room_id", room.ID, "room", room)
|
||||
if err := repo.PlayerDelete(context.Background(), room.ID, botName); err != nil {
|
||||
if err := repo.PlayerDelete(context.Background(), botName); err != nil {
|
||||
slog.Error("failed to remove bot player", "name", botName, "room_id", room.ID)
|
||||
return err
|
||||
}
|
||||
return saveRoom(room)
|
||||
}
|
||||
|
||||
func RemoveBotNoRoom(botName string) error {
|
||||
// channels
|
||||
dc, ok := DoneChanMap[botName]
|
||||
if ok {
|
||||
dc <- true
|
||||
close(DoneChanMap[botName])
|
||||
}
|
||||
sc, ok := SignalChanMap[botName]
|
||||
if ok {
|
||||
close(sc)
|
||||
}
|
||||
// maps
|
||||
delete(DoneChanMap, botName)
|
||||
delete(SignalChanMap, botName)
|
||||
// remove role from room
|
||||
return repo.PlayerDelete(context.Background(), botName)
|
||||
}
|
||||
|
||||
// EndBot
|
||||
|
||||
func NewBot(role, team, name, roomID string, cfg *config.Config, recovery bool) (*Bot, error) {
|
||||
|
Reference in New Issue
Block a user