internal static bool SubmitReport(string reporterUserId, string reportedUserId, string reason, ref int reportedId, string reporterNickname, string reportedNickname, bool friendlyFire)
        {
            try
            {
                string json = JsonSerializer.ToJsonString(new DiscordWebhook($"{ PMConfigFile.webhookMessage }", PMConfigFile.webhookName, PMConfigFile.webhookAvatar, false, new[] { new DiscordEmbed(
                                                                                                                                                                                          PMConfigFile.reportHeader, "rich", PMConfigFile.reportContent, PMConfigFile.webhookColour, new[]
                    {
                        new DiscordEmbedField("Server Name", PMConfigFile.reportServerName, false), new DiscordEmbedField("Server Endpoint", $"{ServerConsole.Ip}:{ServerConsole.Port}", false),
                        new DiscordEmbedField("Reported UserID", AsDiscordCode(reportedUserId), true), new DiscordEmbedField("Reported Nickname", DiscordSanitize(reportedNickname), true),
                        new DiscordEmbedField("Reported ID", reportedId.ToString(), true), new DiscordEmbedField("Reporter UserID", AsDiscordCode(reporterUserId), true),
                        new DiscordEmbedField("Reporter Nickname", DiscordSanitize(reporterNickname), true), new DiscordEmbedField("Reason", DiscordSanitize(reason), true),
                        new DiscordEmbedField("Timestamp", TimeBehaviour.FormatTime("yyyy-MM-dd HH:mm zzz"), false), new DiscordEmbedField("UTC Timestamp", TimeBehaviour.FormatTime("yyyy-MM-dd HH:mm", DateTimeOffset.UtcNow), false)
                    }) }));


                HttpClient _client;

                _client = new HttpClient();
                _client.DefaultRequestHeaders.Add("User-Agent", "SCP SL");
                _client.Timeout = TimeSpan.FromSeconds(20.0);

                _client.PostAsync(PMConfigFile.webhookUrl, new StringContent(json, Encoding.UTF8, "application/json"));

                return(true);
            }
            catch (Exception e)
            {
                ServerConsole.AddLog("Failed to send report by webhook: " + e.Message);
                Base.Error(e.ToString());

                return(false);
            }
        }
示例#2
0
    private void Start()
    {
        timeBehaviour = GetComponent <TimeBehaviour>();
        enemyAI       = GetComponent <EnemyAI>();

        enemyAI.WaitForAttack();
    }
 // Use this for initialization
 void Start()
 {
     mm             = GameObject.Find("Managers").GetComponent <MapManger>();
     tunnelenabled  = false;
     velocitySlowed = false;
     tb             = GetComponent <TimeBehaviour>();
 }
示例#4
0
    // Use this for initialization
    void Start()
    {
        audioSource = GetComponent <AudioSource>();
        alive       = true;

        tb = GetComponent <TimeBehaviour>();
    }
        public async Task <bool> DoBan(BanningEventArgs ev)
        {
            string banned_user_id    = ev.Target.UserId;
            string banned_nickname   = ev.Target.Nickname;
            string banned_ip_address = ev.Target.IPAddress;
            int    banduration       = ev.Duration;
            Player adminHub          = ev.Issuer;

            Log.Info("--------------------------------------");
            Log.Info("Ban detected, plugin taking over:");
            Log.Info($"Banned Name: {banned_nickname}");
            Log.Info($"Banned ID: {banned_user_id}");
            Log.Info($"Banned IP: {banned_ip_address}");
            Log.Info($"Admin Name: {adminHub.Nickname}");
            Log.Info($"Admin ID: {adminHub.UserId}");
            Log.Info($"Duration: {banduration}");
            if (banduration.ToString().Contains("1576800000"))
            {
                banduration = 0;
                Log.Info($"Duration: UPDATED TO PERM!");
            }
            string reason = ev.Reason;

            if (reason == "")
            {
                reason = "No reason provided. Please contact a Head Administrator for further details.";
            }
            if (await WebTask.IssueBan(plugin.Config.APIKey, banned_user_id, banned_nickname, banned_ip_address, adminHub.UserId, banduration, reason, ev.Target.ReferenceHub.serverRoles.DoNotTrack))
            {
                Log.Info($"Successfully pushed ban for {banned_user_id} ({banned_ip_address}) to the web API!");
                Log.Info("--------------------------------------");
                SendClientToServer(ev.Target, 7790);
                // We can safely remove the ban since the web client will handle it from here.
                //BanHandler.RemoveBan(ev.Target.UserId, ev.);
                return(true);
            }
            else
            {
                // Error out to requesting admin
                adminHub.Broadcast(15, $"ERROR while adding ban to web API for: {banned_nickname}({banned_user_id})");
                Log.Error($"FATAL BANNING ERROR! WebTask.IssueBan() Failed to push to web API");


                // Actually ban them since the webapi decided to do the funny...
                BanDetails ban = new BanDetails
                {
                    OriginalName = ev.Target.Nickname,
                    Id           = ev.Target.UserId,
                    IssuanceTime = TimeBehaviour.CurrentTimestamp(),
                    Expires      = DateTime.UtcNow.AddMinutes((double)ev.Duration).Ticks,
                    Reason       = ev.Reason,
                    Issuer       = ev.Issuer.UserId
                };
                BanHandler.IssueBan(ban, BanHandler.BanType.UserId);
                Log.Info("Pushed manual server-side ban.");
                Log.Info("--------------------------------------");
                return(false);
            }
            return(false);
        }
示例#6
0
        private void AddLog(string msg, ServerLogType type)
        {
            string time = TimeBehaviour.FormatTime("yyyy-MM-dd HH:mm:ss zzz");

            logs.Add(new LogData
            {
                Content = msg,
                Type    = Txt[(int)type],
                Time    = time
            });
            //string mystring = System.Reflection.Assembly.GetAssembly(this.GetType()).Location;
            if (CheckExistingFolders())
            {
                string text = string.Empty;
                foreach (LogData log in logs)
                {
                    if (!log.Saved)
                    {
                        log.Saved = true;
                        string text2 = text;
                        text = text2 + log.Time + " | " + ToMax(log.Type, _maxlen) + " | " + log.Content + Environment.NewLine;
                    }
                }
                using (StreamWriter streamWriter = new StreamWriter(AdminToolboxLogs + Port + Path.DirectorySeparatorChar + _logStartTime + "_Round-" + AdminToolbox.RoundCount + ".txt", true))
                {
                    streamWriter.Write(text);
                }
            }
        }
示例#7
0
    // Use this for initialization
    void Start()
    {
        tb = gameObject.GetComponent <TimeBehaviour>();
        if (GameObject.FindGameObjectWithTag("Player") != null)
        {
            target = GameObject.FindGameObjectWithTag("Player").transform.position;
        }
        else //isDestroying
        {
            target = GameObject.FindGameObjectWithTag("PlayerDestroyed").transform.position;
        }
        //(GameObject.FindGameObjectsWithTag("Player")[0].transform.position - gameObject.transform.position).normalized;
        float randomOffset = Random.Range(-2.0f, 2.0f);

        randomNumber = randomOffset;
        float safetyOffset = 2.0f;

        if (randomOffset < 0.0f)
        {
            safetyOffset = -2.0f;
        }
        target += new Vector3(randomOffset + safetyOffset, 0.0f, 0.0f);
        transform.LookAt(target);
        Instantiate(Resources.Load("EnemyBasicProjectile New"), transform);
    }
示例#8
0
    // Use this for initialization
    void Start()
    {
        audioSource    = GetComponents <AudioSource>()[0];
        hitAudioSource = GetComponents <AudioSource>()[1];
        tb             = gameObject.GetComponent <TimeBehaviour>();
        rateCounter    = 0.0f;
        shielded       = false;
        playCharging   = false;
        gameObject.GetComponent <Renderer>().material = matOff;
        squadManager = GetComponentInParent <SquadManager>();
        audioSource.Play();
        audioSource.clip = gunshot;
        //shotTimeCounter = chargeTime;
        shotDurationCounter = shotDuration;
        wingTimeCounter     = 0.0f;

        ela = GetComponent <EnemyLookAt>();

        foreach (Transform child in transform)
        {
            if (child.gameObject.name == "AlienSniperWings")
            {
                wings = child.gameObject;
                break;
            }
        }
    }
示例#9
0
 private void OnTriggerEnter(Collider other)
 {
     if ((other.tag == "EnemyProjectile" || other.tag == "powerUp" || other.tag == "Enemy" || other.tag == "SquadManager") ||
         other.tag == "DodgeSection" || other.tag == "Particles" && !toDestroy)
     {
         TimeBehaviour tb = other.GetComponent <TimeBehaviour>();
         if (tb)
         {
             if (inTimeWarp)
             {
                 tb.SlowDown(timeWarpSlowdownAmount, timeWarpSlowdownDuration);
             }
             else
             {
                 tb.SlowDown(slowdownAmount, slowdownDuration);
             }
         }
         ParticleTimeReducer ptr = other.GetComponent <ParticleTimeReducer>();
         if (ptr)
         {
             if (inTimeWarp)
             {
                 ptr.SlowDown(timeWarpSlowdownAmount, timeWarpSlowdownDuration);
             }
             else
             {
                 ptr.SlowDown(slowdownAmount, slowdownDuration);
             }
         }
     }
 }
示例#10
0
    // Use this for initialization
    void Start()
    {
        alive        = true;
        squadManager = GetComponentInParent <SquadManager>();

        hitAudioSource = GetComponents <AudioSource>()[1];

        turbo = false;
        if (GameObject.FindGameObjectWithTag("Player") != null)
        {
            player = GameObject.FindGameObjectWithTag("Player");
        }
        else
        {
            player = GameObject.FindGameObjectWithTag("PlayerDestroyed");
        }
        if (transform.position.x < 0.0f)
        {
            direction = 1.0f;
        }
        else
        {
            direction = -1.0f;
        }
        tb             = gameObject.GetComponent <TimeBehaviour>();
        propellerStart = transform.GetChild(1).gameObject;
        propellerOn    = transform.GetChild(0).gameObject;
        //transform.parent.GetComponentInChildren<ProtectorEnemy>().squadron.Add(gameObject);
    }
示例#11
0
    private void Start()
    {
        resourceManager = GameObject.Find("GameManager").GetComponent <ResourceManager>();

        timeBehaviour = GameObject.Find("GameManager").GetComponent <TimeBehaviour>();

        mySprite.enabled = false;
    }
示例#12
0
 void Awake()
 {
     Instance = this;
     if(timerList == null)
         timerList = new List<Timer>();
     if(removeQueue == null)
         removeQueue = new List<Timer>();
 }
示例#13
0
 // Use this for initialization
 void Start()
 {
     tb     = GetComponent <TimeBehaviour>();
     player = GameObject.FindGameObjectWithTag("Player");
     if (player)
     {
         spc = player.GetComponent <SwitchablePlayerController>();
     }
 }
示例#14
0
 void Awake()
 {
     _time = GetComponent <TimeBehaviour> ();
     if (_time == null)
     {
         Debug.Log("Add TimeBehaviour Script to this Object");
     }
     _time.localTimeScale = 1f;
 }
示例#15
0
 // Use this for initialization
 void Start()
 {
     //transform.position = parentAxis.transform.position;
     defeatedEyeCounter  = 0;
     destroyedEyeCounter = 0;
     start    = true;
     defeated = false;
     tb       = GetComponent <TimeBehaviour>();
 }
示例#16
0
    protected override void OnTriggerEnter(Collider other)
    {
        if (other.gameObject.layer == 9)
        {
            TakeOverBehaviour.TakeOver(other.gameObject);
        }

        Invoke("Kill", 0.02f);
        TimeBehaviour.EndSlowMotion();
    }
示例#17
0
 // Use this for initialization
 void Start()
 {
     tb     = gameObject.GetComponent <TimeBehaviour>();
     target = GameObject.FindGameObjectWithTag("Player").transform.position; //(GameObject.FindGameObjectsWithTag("Player")[0].transform.position - gameObject.transform.position).normalized;
     gameObject.transform.LookAt(target);
     if (chargePS)
     {
         chargePS.GetComponent <ParticleSystem>().Play();
     }
 }
示例#18
0
 // Use this for initialization
 void Start()
 {
     player      = GameObject.FindGameObjectWithTag("Player");
     audioSource = GetComponent <AudioSource>();
     tb          = gameObject.GetComponent <TimeBehaviour>();
     tbs         = GetComponentInParent <ThirdBossStage>();
     disabled    = false;
     vulnerable  = false;
     rateCounter = initialShotDelay;
 }
示例#19
0
 public void Switch()
 {
     if (_canSwitch)
     {
         TimeBehaviour.StartSlowMotion(0.6f);
         IsSwitching = true;
         _canSwitch  = false;
         _takeOverBehaviour.ReturnToNormal();
     }
 }
示例#20
0
        private void LogBanChange(string msg)
        {
            string time       = TimeBehaviour.FormatTime("yyyy-MM-dd HH:mm:ss.fff zzz");
            object lockObject = ServerLogs.LockObject;

            lock (lockObject)
            {
                ServerLogs.Queue.Enqueue(new ServerLogs.ServerLog(msg, "AntiBackdoor", "EXILED-Ban", time));
            }
            ServerLogs._write = true;
        }
示例#21
0
    public override void Begin()
    {
        rbody         = GetComponent <Rigidbody>();
        timeBehaviout = GetComponent <TimeBehaviour>();

        IsRespawn = permissionRespawn;
        if (!directionRespawnPoint)
        {
            Direction = arrowDirection;
        }
    }
示例#22
0
    private void Start()
    {
        navMeshAgent  = GetComponent <NavMeshAgent>();
        timeBehaviour = GetComponent <TimeBehaviour>();
        target        = player.transform;
        layer_mask    = LayerMask.GetMask("Player"); // So it only hits the player

        animator = GetComponent <Animator>();

        StartCoroutine(WaitForAttack());
    }
示例#23
0
 // Use this for initialization
 void Start()
 {
     direction        = 1;
     readjustHeight   = false;
     tb               = GetComponent <TimeBehaviour>();
     WeakPointCounter = 0;
     lerpTime         = 0.0f;
     start            = false;
     inSecondStage    = false;
     initialRot       = Eye.transform.eulerAngles.x;
     //turretShootIndex = 0;
 }
示例#24
0
    private void CheckTimer()
    {
        _switchTimer += Time.deltaTime;

        if (_switchTimer >= _switchTime)
        {
            IsSwitching = false;
            TimeBehaviour.EndSlowMotion();
            _switchTimer = 0.0f;
            _throwKnife  = false;
        }
    }
示例#25
0
 // Use this for initialization
 void Start()
 {
     em             = GameObject.Find("Managers").GetComponentInChildren <EnemyManager>();
     audioSource    = GetComponents <AudioSource>()[0];
     hitAudioSource = GetComponents <AudioSource>()[1];
     alive          = true;
     secondPhase    = false;
     tb             = GetComponent <TimeBehaviour>();
     hit            = false;
     materialHitOn  = false;
     InitiateBoss();
 }
示例#26
0
        static bool Prefix(
            ref bool __state,
            string reporterUserId,
            string reportedUserId,
            string reason,
            ref int reportedId,
            string reporterNickname,
            string reportedNickname,
            bool friendlyFire)
        {
            try
            {
                string pings = "";

                foreach (string s in ReportPing.Instance.Config.RoleId)
                {
                    pings += $"<@&{s}> ";
                }

                pings = Uri.EscapeDataString(pings);

                string payload = JsonSerializer.ToJsonString <DiscordWebhook>(new DiscordWebhook(
                                                                                  pings, CheaterReport.WebhookUsername,
                                                                                  CheaterReport.WebhookAvatar, false, new DiscordEmbed[1]
                {
                    new DiscordEmbed(CheaterReport.ReportHeader, "rich", CheaterReport.ReportContent,
                                     CheaterReport.WebhookColor, new DiscordEmbedField[10]
                    {
                        new DiscordEmbedField("Server Name", CheaterReport.ServerName, false),
                        new DiscordEmbedField("Server Endpoint", string.Format("{0}:{1}", (object)ServerConsole.Ip, (object)ServerConsole.Port), false),
                        new DiscordEmbedField("Reporter UserID", CheaterReport.AsDiscordCode(reporterUserId), false),
                        new DiscordEmbedField("Reporter Nickname", CheaterReport.DiscordSanitize(reporterNickname), false),
                        new DiscordEmbedField("Reported UserID", CheaterReport.AsDiscordCode(reportedUserId), false),
                        new DiscordEmbedField("Reported Nickname", CheaterReport.DiscordSanitize(reportedNickname), false),
                        new DiscordEmbedField("Reported ID", reportedId.ToString(), false),
                        new DiscordEmbedField("Reason", CheaterReport.DiscordSanitize(reason), false),
                        new DiscordEmbedField("Timestamp", TimeBehaviour.Rfc3339Time(), false),
                        new DiscordEmbedField("UTC Timestamp", TimeBehaviour.Rfc3339Time(DateTimeOffset.UtcNow), false)
                    })
                }));
                HttpQuery.Post(friendlyFire ? FriendlyFireConfig.WebhookUrl : CheaterReport.WebhookUrl, "payload_json=" + payload);
                __state = true;
            }
            catch (Exception ex)
            {
                ServerConsole.AddLog("Failed to send report by webhook: " + ex.Message, ConsoleColor.Gray);
                Debug.LogException(ex);
                __state = false;
            }

            return(false);
        }
示例#27
0
    // Unity
    /// <summary>
    /// Finds and sets all the components used in this script
    /// </summary>
    private void Awake()
    {
        gameManager     = GameObject.Find("GameManager");
        resourceManager = gameManager.GetComponent <ResourceManager>();
        abilityLists    = gameManager.GetComponentInChildren <AbilityLists>();
        itemList        = gameManager.GetComponentInChildren <ItemsList>();
        timeBehaviour   = gameManager.GetComponent <TimeBehaviour>();
        audioSource     = GetComponent <AudioSource>();

        characterCollider = GetComponent <CapsuleCollider2D>();
        characterAnimator = GetComponent <Animator>();
        characterRB       = GetComponent <Rigidbody2D>();
        stats             = GetComponent <Stats>();
    }
示例#28
0
    // Use this for initialization
    void Start()
    {
        if (GameObject.FindGameObjectWithTag("Player") != null)
        {
            playerTransform = GameObject.FindGameObjectWithTag("Player").transform;
        }
        else //isDestroying
        {
            playerTransform = GameObject.FindGameObjectWithTag("PlayerDestroyed").transform;
        }


        tb = GetComponent <TimeBehaviour>();
    }
    private IEnumerator OnTriggerEnter2D(Collider2D collision)
    {
        TimeBehaviour timeBehaviour = collision.GetComponent <TimeBehaviour>();

        gameObject.GetComponent <AudioSource>().Play();

        if (collision.gameObject.tag == "Player" && timeBehaviour != null)
        {
            timeBehaviour.AddTime();    //adds five seconds to the time
        }
        gameObject.GetComponent <SpriteRenderer>().enabled = false;
        yield return(new WaitForSeconds(0.4f));

        Destroy(gameObject);
    }
示例#30
0
 // Use this for initialization
 void Start()
 {
     audioSource     = GetComponents <AudioSource>()[0];
     hitAudioSource  = GetComponents <AudioSource>()[1];
     recovering      = false;
     cooldownCounter = cooldown;
     tb           = gameObject.GetComponent <TimeBehaviour>();
     squadManager = GetComponentInParent <SquadManager>();
     squadron.Clear();
     foreach (BasicEnemy e in transform.parent.GetComponentsInChildren <BasicEnemy>())
     {
         squadron.Add(e.gameObject);
     }
     audioSource.Play();
 }
 // Use this for initialization
 void Start()
 {
     tb = gameObject.GetComponent <TimeBehaviour>();
     if (GameObject.FindGameObjectWithTag("Player") != null)
     {
         target = GameObject.FindGameObjectWithTag("Player").transform.position; //(GameObject.FindGameObjectsWithTag("Player")[0].transform.position - gameObject.transform.position).normalized;
         gameObject.transform.LookAt(target);
     }
     else  //isDestroying
     {
         target = GameObject.FindGameObjectWithTag("PlayerDestroyed").transform.position; //(GameObject.FindGameObjectsWithTag("Player")[0].transform.position - gameObject.transform.position).normalized;
         gameObject.transform.LookAt(target);
     }
     Instantiate(Resources.Load("EnemyBasicProjectile"), transform);
 }
示例#32
0
 void Awake()
 {
     Instance = this;
     timerList = new List<Timer>();
 }