ndleMessage state h channel "missileLaunched" launchedJson = do
  let newLaunch = fromOk $ GJ.fromJSON launchedJson :: MissileLaunched
  logMissilesLaunched newLaunch
  return (State (boardHistory state) (commandHistory state) (missiles state) (newLaunch : (launchedMissiles state)))

h
handleMessage state h channel "missileLaunched" launchedJson = do
  let newLaunch = fromOk $ GJ.fromJSON launchedJson :: MissileLaunched
  logMissilesLaunched newLaunch
  return (State (boardHistory state) (commandHistory state) (missiles state) (newLaunch : (launchedMissiles state)))
handleMessage state h channel "missileLaunched" launchedJson = do
  let newLaunch = fromOk $ GJ.fromJSON launchedJson :: MissileLaunched
  logMissilesLaunched newLaunch
  return (State (boardHistory state) (commandHistory state) (missiles state) (newLaunch : (launchedMissiles state)))