Player is getting destroyed, shouldnt be like that

Hello, I wrote a Player Weapon and Player targeting script. The Weapon Script is supposed to destroy the enemy chosen by the Target Script. Before the shooting even starts my Player Model gets destroyed. Below is the code, help would be much appreciated.

private void OnTriggerEnter(Collider other)
    {
        Debug.Log("Name: " + other.transform.name);
        if (other.transform.CompareTag("Wall") || other.transform.CompareTag("Monster"))
        {
            Debug.Log("Name: " + other.transform.name);
            GetComponent<Rigidbody>().velocity = Vector3.zero;
            Destroy(gameObject, 0.2f);
        }

   
}
    private void OnCollisionEnter(Collision collision)
    {
        Debug.Log(" Name: " + collision.transform.name);
        if (collision.transform.CompareTag("Wall") || collision.transform.CompareTag("Monster"))
        {
            Debug.Log("Name: " + collision.transform.name);
            GetComponent<Rigidbody>().velocity = Vector3.zero;
            Destroy(gameObject, 0.2f);
        }
    }

Well, in both cases you destroy the script holder, whoever that is. If you wanted to destroy the object, you’d collide with, you have to use Destroy(collision.transform.gameobject);.