Jestem na telu wiec skopiowalem Ci poprostu to powinno wystarczyc ;)
on rightclick:
player is holding 131
player has permission "grapple.use"
if difference between {grapple.%player%.lastused} and now is smaller than 15 ticks:
stop
if distance between player and targeted block is smaller than 31:
make the player shoot an arrow at speed 3
set {grapple.%shooter%.used} to true
set {grapple.%player%.lastused} to now
on place of 131:
cancel event
on drop of 131:
player doesn't have permission "grapple.drop":
cancel event
on projectile hit:
if {grapple.%shooter%.used} is true:
projectile is an arrow
shooter is holding 131
push the player forwards at speed 2.5
wait 10 ticks
set {grapple.%shooter%.used} to false
on pickup of 262:
cancel event