(solved) How to stop a void

(I’m new to coding and to Unity)
The following code keeps on repeating the PasteClicked void even tho I clicked the button to start CopyClicked void.
I would like that my code start the PasteClicked or CopyClicked void only once and if the button is reclicked it re-start it only once.

using System.Collections;
using System.Collections.Generic;
using UnityEngine;
using UnityEngine.UI;


public class AddorCopy : MonoBehaviour
{
    public Button paste;
    public Button copy;
    public Material presets1;
    public Material presets2;
    public Material presets3;
    public Material presets4;
    public Material presets5;
    public Material presets6;
    public Material Base_material;
    public Button button1;
    public Button button2;
    public Button button3;
    public Button button4;
    public Button button5;
    public Button button6;

    public void Start()
    {
        paste.onClick.AddListener(PasteClicked);
        copy.onClick.AddListener(CopyClicked);

        void PasteClicked()
        {
            button1.onClick.AddListener(one);
            button2.onClick.AddListener(two);
            button3.onClick.AddListener(three);
            button4.onClick.AddListener(four);
            button5.onClick.AddListener(five);
            button6.onClick.AddListener(six);
            void one()
            {
                presets1.CopyPropertiesFromMaterial(Base_material);
            }
            void two()
            {
                presets2.CopyPropertiesFromMaterial(Base_material);
            }
            void three()
            {
                presets3.CopyPropertiesFromMaterial(Base_material);
            }
            void four()
            {
                presets4.CopyPropertiesFromMaterial(Base_material);
            }
            void five()
            {
                presets5.CopyPropertiesFromMaterial(Base_material);
            }
            void six()
            {
                presets6.CopyPropertiesFromMaterial(Base_material);
            }
        }

        void CopyClicked()
        {
            button1.onClick.AddListener(one);
            button2.onClick.AddListener(two);
            button3.onClick.AddListener(three);
            button4.onClick.AddListener(four);
            button5.onClick.AddListener(five);
            button6.onClick.AddListener(six);
            void one()
            {
                Base_material.CopyPropertiesFromMaterial(presets1);
            }
            void two()
            {
                Base_material.CopyPropertiesFromMaterial(presets2);
            }
            void three()
            {
                Base_material.CopyPropertiesFromMaterial(presets3);
            }
            void four()
            {
                Base_material.CopyPropertiesFromMaterial(presets4);
            }
            void five()
            {
                Base_material.CopyPropertiesFromMaterial(presets5);
            }
            void six()
            {
                Base_material.CopyPropertiesFromMaterial(presets6);
            }

        }
    }

}

ADDING a listener, as its name suggests, ADDS a listener. It does not remove the previous callbacks.

I also recommend you taking advantage of arrays and classes to tidy your code up.

CODE NOT TESTED

public class AddorCopy : MonoBehaviour
{
    public Button paste;
    public Button copy;
    public Material baseMaterial;
    public MaterialPresetButton[] materialPresetButtons;

    void Start()
    {
        paste.onClick.AddListener(PasteClicked);
        copy.onClick.AddListener(CopyClicked);

        for(int i = 0 ; i < materialPresetButtons.Length ; ++i)
        {
            materialPresetButtons*.Setup(baseMaterial);*

}
}

void PasteClicked()
{
for(int i = 0 ; i < materialPresetButtons.Length ; ++i)
{
materialPresetButtons*.SwitchToPasteMode();*
}
}

void CopyClicked()
{
for(int i = 0 ; i < materialPresetButtons.Length ; ++i)
{
materialPresetButtons*.SwitchToCopyMode();*
}
}
}

[System.Serializable]
public class MaterialPresetButton
{
[SerializeField] private Button button;
[SerializeField] private Material preset;
private Material baseMaterial;
private Material source;
private Material target;

public void Setup(Material baseMaterial)
{
this.baseMaterial = baseMaterial;

button.onClick.AddListener(CopyMaterialProperties);

SwitchToCopyMode();
}

public void SwitchToCopyMode()
{
source = baseMaterial;
target = preset;
}

public void SwitchToPasteMode()
{
source = preset;
target = baseMaterial;
}

private void CopyMaterialProperties()
{
target.CopyPropertiesFromMaterial(source);
}
}