private static bool ProcessDamage(AttackerDamageHandler __instance, ReferenceHub ply)
        {
            try
            {
                var curClass = ply.characterClassManager.CurClass;
                if (__instance.CheckSpawnProtection(__instance.Attacker.Hub, ply))
                {
                    __instance.Damage = 0f;
                    return(false);
                }
                if (ply.networkIdentity.netId == __instance.Attacker.NetId || __instance.ForceFullFriendlyFire)
                {
                    if (!__instance.AllowSelfDamage && !__instance.ForceFullFriendlyFire)
                    {
                        __instance.Damage = 0f;
                        return(false);
                    }
                    __instance.IsSuicide = true;
                }
                else if (!HitboxIdentity.CheckFriendlyFire(__instance.Attacker.Hub, ply))
                {
                    __instance.Damage        *= AttackerDamageHandler._ffMultiplier;
                    __instance.IsFriendlyFire = true;
                }

                return(false);
            }
            catch (Exception ex)
            {
                Logger.Get.Error($"Synapse-FF: ProcessDamage failed!!\n{ex}");
                return(true);
            }
        }