private void SessionChanged(ITorchSession session, TorchSessionState state)
        {
            switch (state)
            {
            case TorchSessionState.Loaded:

                multiplayerManagerBase = Torch.CurrentSession.Managers.GetManager <IMultiplayerManagerBase>();

                if (multiplayerManagerBase != null)
                {
                    multiplayerManagerBase.PlayerJoined += PlayerJoined;
                    multiplayerManagerBase.PlayerLeft   += PlayerLeft;
                }
                else
                {
                    Log.Warn("No multiplayer manager loaded!");
                }

                RemoveGpsFromAllPlayers();

                break;

            case TorchSessionState.Unloading:

                if (multiplayerManagerBase != null)
                {
                    multiplayerManagerBase.PlayerJoined -= PlayerJoined;
                    multiplayerManagerBase.PlayerLeft   -= PlayerLeft;
                }

                break;
            }
        }
Example #2
0
        private void SessionChanged(ITorchSession session, TorchSessionState state)
        {
            switch (state)
            {
            case TorchSessionState.Loaded:
                _multibase = Torch.CurrentSession.Managers.GetManager <IMultiplayerManagerBase>();
                if (_multibase != null)
                {
                    _multibase.PlayerJoined += _multibase_PlayerJoined;
                    MyEntities.OnEntityAdd  += MyEntities_OnEntityAdd;
                    _multibase.PlayerLeft   += _multibase_PlayerLeft;
                }
                else
                {
                    Log.Warn("No join/leave manager loaded!");
                }

                _chatmanager = Torch.CurrentSession.Managers.GetManager <ChatManagerServer>();
                if (_chatmanager != null)
                {
                    _chatmanager.MessageRecieved += MessageRecieved;
                }

                else
                {
                    Log.Warn("No chat manager loaded!");
                }

                Log.Warn("Starting Discord Bridge!");

                DDBridge = new DiscordBridge(this);

                //send status
                if (Config.UseStatus)
                {
                    StartTimer();
                }

                break;

            case TorchSessionState.Unloading:
                if (DDBridge != null)
                {
                    if (Config.Stopped.Length > 0)
                    {
                        DDBridge.SendStatusMessage(null, Config.Stopped);
                    }
                    DDBridge.Stopdiscord();
                }
                Log.Warn("Discord Bridge Unloaded!");

                Dispose();
                break;

            default:
                // ignore
                break;
            }
        }
Example #3
0
        public void LoadSEDB()
        {
            ReflectEssentials();
            if (Config.BotToken.Length <= 0)
            {
                Log.Error("No BOT token set, plugin will not work at all! Add your bot TOKEN, save and restart torch.");
                return;
            }

            if (_sessionManager == null)
            {
                _sessionManager = Torch.Managers.GetManager <TorchSessionManager>();
                if (_sessionManager == null)
                {
                    Log.Warn("No session manager loaded!");
                }
                else
                {
                    _sessionManager.SessionStateChanged += SessionChanged;
                }
            }

            if (Torch.CurrentSession != null)
            {
                if (_multibase == null)
                {
                    _multibase = Torch.CurrentSession.Managers.GetManager <IMultiplayerManagerBase>();
                    if (_multibase == null)
                    {
                        Log.Warn("No join/leave manager loaded!");
                    }
                    else
                    {
                        _multibase.PlayerJoined += _multibase_PlayerJoined;
                        _multibase.PlayerLeft   += _multibase_PlayerLeft;
                        MyEntities.OnEntityAdd  += MyEntities_OnEntityAdd;
                    }
                }

                if (_chatmanager == null)
                {
                    _chatmanager = Torch.CurrentSession.Managers.GetManager <ChatManagerServer>();
                    if (_chatmanager == null)
                    {
                        Log.Warn("No chat manager loaded!");
                    }
                    else
                    {
                        _chatmanager.MessageRecieved += MessageRecieved;
                    }
                }
                InitPost();
            }
            else if (Config.PreLoad)
            {
                InitPost();
            }
        }
Example #4
0
        private void Load()
        {
            _multiBase = Instance.Torch.CurrentSession.Managers.GetManager <IMultiplayerManagerBase>();
            if (_multiBase != null)
            {
                _multiBase.PlayerJoined += MultiBaseOnPlayerJoined;
                _multiBase.PlayerLeft   += MultiBaseOnPlayerLeft;
            }
            else
            {
                Log.Warn("Multibase is Null");
            }

            MyEntities.OnEntityAdd += MyEntitiesOnOnEntityAdd;


            if (Config.Enable && Config.KeepDefaultEnemy)
            {
                Log.Warn($"{CheckRep()} reps altered");
            }
        }
        /// <inheritdoc />
        public override void Dispose()
        {
            if (_multibase != null)
            {
                _multibase.PlayerJoined -= _multibase_PlayerJoined;
                MyEntities.OnEntityAdd  -= MyEntities_OnEntityAdd;
                _multibase.PlayerLeft   -= _multibase_PlayerLeft;
            }
            _multibase = null;

            if (_sessionManager != null)
            {
                _sessionManager.SessionStateChanged -= SessionChanged;
            }
            _sessionManager = null;

            if (_chatmanager != null)
            {
                _chatmanager.MessageRecieved -= MessageRecieved;
            }
            _chatmanager = null;

            StopTimer();
        }
        private void SessionChanged(ITorchSession session, TorchSessionState state)
        {
            switch (state)
            {
            case TorchSessionState.Loaded:
                _multibase = Torch.CurrentSession.Managers.GetManager <IMultiplayerManagerBase>();
                if (_multibase != null)
                {
                    _multibase.PlayerJoined += _multibase_PlayerJoined;
                }
                else
                {
                    Log.Warn("No multiplayer manager loaded!");
                }
                break;

            case TorchSessionState.Unloading:
                if (_multibase != null)
                {
                    _multibase.PlayerJoined -= _multibase_PlayerJoined;
                }
                break;
            }
        }
        private void SessionChanged(ITorchSession session, TorchSessionState state)
        {
            if (Config.BotToken.Length == 0)
            {
                return;
            }

            switch (state)
            {
            case TorchSessionState.Loading:
                ConnectDiscord();
                client.DefaultRequestHeaders.TryAddWithoutValidation("Authorization", Config.APIPassword);
                break;

            case TorchSessionState.Loaded:
                _multibase = Torch.CurrentSession.Managers.GetManager <IMultiplayerManagerBase>();
                if (_multibase != null)
                {
                    _multibase.PlayerJoined += _multibase_PlayerJoined;
                    MyEntities.OnEntityAdd  += MyEntities_OnEntityAdd;
                    _multibase.PlayerLeft   += _multibase_PlayerLeft;
                }
                else
                {
                    Log.Warn("No join/leave manager loaded!");
                }

                _chatmanager = Torch.CurrentSession.Managers.GetManager <ChatManagerServer>();
                if (_chatmanager == null)
                {
                    Log.Warn("No chat manager loaded!");
                }

                Log.Warn("Starting Discord role manager!");

                break;

            case TorchSessionState.Unloading:
                if (_multibase != null)
                {
                    _multibase.PlayerJoined -= _multibase_PlayerJoined;
                    MyEntities.OnEntityAdd  -= MyEntities_OnEntityAdd;
                    _multibase.PlayerLeft   -= _multibase_PlayerLeft;
                }

                if (_discord != null)
                {
                    _discord.DisconnectAsync();
                }

                _conecting.Clear();
                _linkIds.Clear();

                break;

            case TorchSessionState.Unloaded:
                Log.Info("Discord role manager unloaded!");

                break;

            default:
                // ignore
                break;
            }
        }