1 et 2. Oui, il existe des plugins skript de backpack / inventaire via une commande qui permet de retirer ses items dans un GUI mais aussi d'en déposer, et ça les sauvegarde dans une variable.
3. Oui également, mais c'est plus dur en quelques sortes ^^
command /test:
trigger:
set {open.%player%} to true
open chest with 1 row named "&aTest" to player
wait 1 tick # Important !
format slot 0 of player with Emerald named "&aTEST" to run [set {open.%player%} to false]
on close inventory:
if {open.%player%} is true:
wait 2 ticks # Si tu ne mets pas au moins 2 ticks, cela va créer une boucle et faire crash le serveur
execute player command "/test"
Bien évidemment, n'oublie pas de mettre dans l'inventaire quelque chose qui permet d'executer une commande qui va remettre la variable à false, ou de la redéfinir sur false avec un item comme je l'ai fais, sinon tu ne pourras plus en sortir ^^