How do I fix this problem with debounce?

So I want to make it when a player passes through a part(it’ll have CanCollide off and transparency to 1), they will get a sword. When they go through the part again, the sword will be removed. I have made it and it works, but it only works once. I think it’s because of the debounce since I tried removing it and it would remove and give you the sword continuously. So how do I fix this?

local ReplicatedStorage = game:GetService("ReplicatedStorage")
 local Players = game:GetService("Players")
local debounce = false
local seconds = 1

local Sword = ReplicatedStorage:WaitForChild("ClassicSword") -- put the name of the sword here
local Part = script.Parent

Part.Touched:Connect(function(hit)-- 'hit' is what touched the Part

	
    if not debounce then 
	debounce =  true

if hit.Parent:FindFirstChildWhichIsA("Humanoid") then -- if humanoid exists
	
	
	local player = Players:GetPlayerFromCharacter(hit.Parent)
	
	if player then
		if player.Backpack:FindFirstChild("ClassicSword") or player.Character:FindFirstChild("ClassicSword") then -- if sword exists in the backpack or is already equipped

			player.Character:WaitForChild("Humanoid"):UnequipTools() -- unequips any tool
			player.Backpack:FindFirstChild("ClassicSword"):Destroy() -- removes the sword

		else -- if sword is not in the backpack or if the sword isnt equipped
		
				Sword:Clone().Parent = player.Backpack -- clones and places the sword in the backpack
				
				wait(seconds)
					debounce = false
			end
		end
	end
end

end)

debounce will only be false again if the else statement runs

so if that if statement is true it will run once