move onStart to round and make it use the game proxy
parent
2f2ae6f2ff
commit
674beb6def
|
@ -4,6 +4,7 @@ import akka.actor._
|
|||
import com.typesafe.config.Config
|
||||
import scala.concurrent.duration._
|
||||
|
||||
import lila.game.Game
|
||||
import lila.hub.TrouperMap
|
||||
import lila.socket.Socket.{ SocketVersion, GetVersion }
|
||||
import lila.user.User
|
||||
|
@ -11,7 +12,7 @@ import lila.user.User
|
|||
final class Env(
|
||||
config: Config,
|
||||
system: ActorSystem,
|
||||
onStart: String => Unit,
|
||||
onStart: Game.ID => Unit,
|
||||
gameCache: lila.game.Cached,
|
||||
lightUser: lila.common.LightUser.GetterSync,
|
||||
isOnline: lila.user.User.ID => Boolean,
|
||||
|
@ -90,7 +91,7 @@ object Env {
|
|||
lazy val current: Env = "challenge" boot new Env(
|
||||
config = lila.common.PlayApp loadConfig "challenge",
|
||||
system = lila.common.PlayApp.system,
|
||||
onStart = lila.game.Env.current.onStart,
|
||||
onStart = lila.round.Env.current.onStart,
|
||||
hub = lila.hub.Env.current,
|
||||
gameCache = lila.game.Env.current.cached,
|
||||
lightUser = lila.user.Env.current.lightUserSync,
|
||||
|
|
|
@ -75,18 +75,6 @@ final class Env(
|
|||
captcher -> actorApi.NewCaptcha
|
||||
}
|
||||
|
||||
def onStart(gameId: String) = GameRepo game gameId foreach {
|
||||
_ foreach { game =>
|
||||
system.lilaBus.publish(actorApi.StartGame(game), 'startGame)
|
||||
game.userIds foreach { userId =>
|
||||
system.lilaBus.publish(
|
||||
actorApi.UserStartGame(userId, game),
|
||||
Symbol(s"userStartGame:$userId")
|
||||
)
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
lazy val gamesByUsersStream = new GamesByUsersStream(system)
|
||||
|
||||
lazy val bestOpponents = new BestOpponents
|
||||
|
|
|
@ -80,7 +80,7 @@ object Env {
|
|||
config = lila.common.PlayApp loadConfig "lobby",
|
||||
db = lila.db.Env.current,
|
||||
hub = lila.hub.Env.current,
|
||||
onStart = lila.game.Env.current.onStart,
|
||||
onStart = lila.round.Env.current.onStart,
|
||||
blocking = lila.relation.Env.current.api.fetchBlocking,
|
||||
playban = lila.playban.Env.current.api.currentBan _,
|
||||
gameCache = lila.game.Env.current.cached,
|
||||
|
|
|
@ -6,8 +6,7 @@ import lila.hub.FutureSequencer
|
|||
|
||||
final class Env(
|
||||
system: akka.actor.ActorSystem,
|
||||
playbanApi: lila.playban.PlaybanApi,
|
||||
onStart: String => Unit
|
||||
playbanApi: lila.playban.PlaybanApi
|
||||
) {
|
||||
|
||||
private lazy val hookThieve = new HookThieve(system.lilaBus)
|
||||
|
@ -22,7 +21,7 @@ final class Env(
|
|||
|
||||
private lazy val gameStarter = new GameStarter(
|
||||
bus = system.lilaBus,
|
||||
onStart = onStart,
|
||||
onStart = gameId => system.lilaBus.publish(gameId, 'gameStartId),
|
||||
sequencer = new FutureSequencer(
|
||||
system = system,
|
||||
executionTimeout = 5.seconds.some,
|
||||
|
@ -35,7 +34,6 @@ object Env {
|
|||
|
||||
lazy val current: Env = "pool" boot new Env(
|
||||
system = lila.common.PlayApp.system,
|
||||
playbanApi = lila.playban.Env.current.api,
|
||||
onStart = lila.game.Env.current.onStart
|
||||
playbanApi = lila.playban.Env.current.api
|
||||
)
|
||||
}
|
||||
|
|
|
@ -28,7 +28,6 @@ final class Env(
|
|||
notifyApi: lila.notify.NotifyApi,
|
||||
uciMemo: lila.game.UciMemo,
|
||||
rematch960Cache: lila.memo.ExpireSetMemo,
|
||||
onStart: String => Unit,
|
||||
divider: lila.game.Divider,
|
||||
prefApi: lila.pref.PrefApi,
|
||||
historyApi: lila.history.HistoryApi,
|
||||
|
@ -105,6 +104,9 @@ final class Env(
|
|||
roundMap.tell(pov.gameId, Resign(pov.playerId))
|
||||
}
|
||||
}
|
||||
},
|
||||
'gameStartId -> {
|
||||
case gameId: String => onStart(gameId)
|
||||
}
|
||||
)
|
||||
|
||||
|
@ -246,6 +248,15 @@ final class Env(
|
|||
|
||||
lazy val noteApi = new NoteApi(db(CollectionNote))
|
||||
|
||||
def onStart(gameId: Game.ID): Unit = proxy game gameId foreach {
|
||||
_ foreach { game =>
|
||||
bus.publish(lila.game.actorApi.StartGame(game), 'startGame)
|
||||
game.userIds foreach { userId =>
|
||||
bus.publish(lila.game.actorApi.UserStartGame(userId, game), Symbol(s"userStartGame:$userId"))
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
MoveMonitor.start(system, moveTimeChannel)
|
||||
|
||||
system.actorOf(
|
||||
|
@ -296,7 +307,6 @@ object Env {
|
|||
notifyApi = lila.notify.Env.current.api,
|
||||
uciMemo = lila.game.Env.current.uciMemo,
|
||||
rematch960Cache = lila.game.Env.current.cached.rematch960,
|
||||
onStart = lila.game.Env.current.onStart,
|
||||
divider = lila.game.Env.current.divider,
|
||||
prefApi = lila.pref.Env.current.api,
|
||||
historyApi = lila.history.Env.current.api,
|
||||
|
|
|
@ -45,7 +45,7 @@ object Env {
|
|||
config = lila.common.PlayApp loadConfig "setup",
|
||||
db = lila.db.Env.current,
|
||||
fishnetPlayer = lila.fishnet.Env.current.player,
|
||||
onStart = lila.game.Env.current.onStart,
|
||||
onStart = lila.round.Env.current.onStart,
|
||||
prefApi = lila.pref.Env.current.api,
|
||||
relationApi = lila.relation.Env.current.api,
|
||||
gameCache = lila.game.Env.current.cached,
|
||||
|
|
|
@ -144,7 +144,7 @@ object Env {
|
|||
db = lila.db.Env.current,
|
||||
hub = lila.hub.Env.current,
|
||||
lightUser = lila.user.Env.current.lightUser,
|
||||
onGameStart = lila.game.Env.current.onStart,
|
||||
onGameStart = lila.round.Env.current.onStart,
|
||||
isOnline = lila.user.Env.current.isOnline,
|
||||
asyncCache = lila.memo.Env.current.asyncCache,
|
||||
proxyGame = lila.round.Env.current.proxy.game _
|
||||
|
|
|
@ -7,7 +7,7 @@ import lila.user.User
|
|||
|
||||
final class AutoPairing(
|
||||
duelStore: DuelStore,
|
||||
onStart: String => Unit
|
||||
onStart: Game.ID => Unit
|
||||
) {
|
||||
|
||||
def apply(tour: Tournament, pairing: Pairing, usersMap: Map[User.ID, User], ranking: Ranking): Fu[Game] = {
|
||||
|
|
|
@ -216,7 +216,7 @@ object Env {
|
|||
roundMap = lila.round.Env.current.roundMap,
|
||||
lightUserApi = lila.user.Env.current.lightUserApi,
|
||||
isOnline = lila.user.Env.current.isOnline,
|
||||
onStart = lila.game.Env.current.onStart,
|
||||
onStart = lila.round.Env.current.onStart,
|
||||
historyApi = lila.history.Env.current.api,
|
||||
trophyApi = lila.user.Env.current.trophyApi,
|
||||
notifyApi = lila.notify.Env.current.api,
|
||||
|
|
Loading…
Reference in New Issue