Example #1
0
        public Task HandleEventAsync(object?sender, OpenModInitializedEvent @event)
        {
            if (RocketModIntegration.IsRocketModUnturnedLoaded(out _))
            {
                if (s_RocketInitialized)
                {
                    StartRocketModRconWithRocketModSettings();
                }

                // Use RocketModInitializedEvent instead
                return(Task.CompletedTask);
            }

            var rocketRconEnabled = m_UnturnedConfiguration.GetSection("rcon:rocketmod:enabled").Get <bool>();

            if (!rocketRconEnabled)
            {
                return(Task.CompletedTask);
            }

            var bind = m_OpenModConfiguration.GetSection("rcon:bind").Get <string>();
            var port = m_UnturnedConfiguration.GetSection("rcon:rocketmod:port").Get <int>();

            StartRocketModRcon(bind, port);
            return(Task.CompletedTask);
        }
        private void CallRocketPlayerChatted(UnturnedPlayer player, EChatMode mode, string message, ref Color color,
                                             ref bool cancel)
        {
            if (!RocketModIntegration.IsRocketModUnturnedLoaded(out _))
            {
                return;
            }

            m_Logger.LogDebug("Calling the event UnturnedChat.OnPlayerChatted");

            var colorEx  = color;
            var cancelEx = cancel;

            m_PermissionExtensions.CallRocketEvent(player, mode, message, ref colorEx, ref cancelEx);
            if (m_Configuration.GetSection("rocketmodIntegration:canOverrideColor").Get <bool>())
            {
                color = colorEx;
            }

            if (cancelEx)
            {
                m_Logger.LogDebug("RocketMod cancel the message!");
            }
            if (color != colorEx)
            {
                m_Logger.LogDebug("RocketMod override the color! {FromColor} -> {ToColor}", color, colorEx);
            }

            cancel = cancelEx && m_Configuration.GetSection("rocketmodIntegration:canCancelMessage").Get <bool>();
        }
Example #3
0
        private async Task ProcessLoginAsync(RocketModRconPacket packet)
        {
            var arguments = ArgumentsParser.ParseArguments(packet.Body !);

            var rocketModLoaded = RocketModIntegration.IsRocketModUnturnedLoaded(out _);

            if (rocketModLoaded && arguments.Length == 2)
            {
                if (ProcessRocketModLogin(packet))
                {
                    Id = "root";
                    IsAuthenticated = true;
                    await SendMessageAsync("Logged in.");

                    return;
                }

                await SendMessageAsync("Authentication failed.");

                IncreaseFailedAuthAttempts();
                await DisconnectOnFailedLoginAttemptsAsync();

                return;
            }

            if (arguments.Length != 3)
            {
                await SendMessageAsync("Invalid Syntax! Usage: login <username> <password>");

                IncreaseFailedAuthAttempts();
                await DisconnectOnFailedLoginAttemptsAsync();

                return;
            }

            await OnAuthenticatingAsync(arguments[1], arguments[2]);
        }