private void Update(TimeSpan deltaTime)
        {
            // Server Tick
            var gameSessions = sessions.GetAll();

            foreach (var session in gameSessions)
            {
                gameSessionProcessor.Update(session, deltaTime);
            }

            lock (objectUpdateMutex)
            {
                var ticksToRemove = new List <EntityTick>();
                foreach (var objectTick in entityIntervalItems)
                {
                    if (objectTick.Invoke(deltaTime))
                    {
                        ticksToRemove.Add(objectTick);
                    }
                }

                foreach (var remove in ticksToRemove)
                {
                    entityIntervalItems.Remove(remove);
                }
            }
        }
        public void Remove(IStreamBot bot)
        {
            lock (mutex)
            {
                bots.Remove(bot);

                // would be better to do: bot.GetAllSessions();
                // but the bot has no references to the session right now

                var sessions = sessionManager.GetAll();
                foreach (var session in sessions)
                {
                    session.UnassignBot(bot);
                }

                logger.LogWarning("Bot: @cya@" + bot.Name + " @red@disconnected.");
            }
        }