Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- options:
- logo: &4[&cWarp&4]
- function warpEditGUI(p: player, warp: text, pos: location):
- open virtual chest inventory with 3 rows named "&2Editer %{_warp}%" to {_p}
- format gui slot 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25 and 26 of {_p} with blue stained glass pane to do nothing
- format gui slot 11 of {_p} with sign item named "&aModifier le nom" to run:
- close player's inventory
- set {warps::waiting::%{_p}%} to true
- set {warps::waiting::%{_p}%::warp::*} to {_warp}
- set {warps::waiting::%{_p}%::what::*} to "rename"
- message "{@logo} &aVeuillez mettre un nouveau nom pour le warp, ou tapez &eretour" to {_p}
- format gui slot 12 of {_p} with barrier named "&cSupprimer" to run:
- open virtual chest inventory with 3 rows named "&cSupprimer %{_warp}%" to {_p}
- format gui slot 4 of {_p} with book named "&eWarp : %{_warp}%" to do nothing
- format gui slot 12 of {_p} with red wool named "&cAnnuler" to run:
- warpEditGUI({_p}, {_warp}, {_pos})
- format gui slot 14 of {_p} with light green wool named "&aSupprimer définitivement" to run:
- remove {_warp} from {warps::list::*}
- make {_p} execute command "/warp" # On le rammene au GUI principal
- format gui slot 13 of {_p} with feather named "&aRedéfinir la location" to run:
- message "&6Avant: &e%{warps::list::%{_warp}%::loc}%" to {_p}
- set {warps::list::%{_warp}%::loc} to {_pos} # Position du warp
- message "&6Après: &e%{warps::list::%{_warp}%::loc}%" to {_p}
- message "{@logo} &aNouvelle position définie" to {_p}
- format gui slot 14 of {_p} with {warps::list::%{_warp}%::item} named "&aModifier l'item du GUI" to run:
- if gui-cursor is an item: # S'il a un item dans la main
- if gui-cursor is not air: # S'il a un item dans la main, check 2
- if gui-cursor is not red stained glass pane:
- set {warps::dropToAdd::%player%} to true # On l'empeche de drop
- set {warps::list::%{_warp}%::item} to gui-cursor
- wait 2 ticks
- warpEditGUI({_p}, {_warp}, {_pos})
- wait 4 ticks
- clear {warps::dropToAdd::%player%}
- else:
- message "{@logo} &cImpossible : ce block est réservé !" to {_p}
- format gui slot 15 of {_p} with paper named "&aChanger la permission" to run:
- close player's inventory
- set {warps::waiting::%{_p}%} to true
- set {warps::waiting::%{_p}%::warp::*} to {_warp}
- set {warps::waiting::%{_p}%::what::*} to "perm"
- message "{@logo} &aVeuillez mettre une nouvelle permission pour le warp, ou tapez &eretour&a." to {_p}
- format gui slot 26 of {_p} with arrow named "&cRetour" to run:
- make player execute command "/warp"
- # Event de chat pour changer le nom d'un warp ou la permission d'un warp
- on chat:
- # Si on est en train de changer le nom/la perm :
- if {warps::waiting::%player%} is true:
- set {_warp} to {warps::waiting::%player%::warp::1}
- cancel event
- if message is "retour": # Si on a marqué "retour", alors on revient au GUI
- warpEditGUI(player, {_warp}, player's position)
- else if {warps::waiting::%player%::what::*} is "rename": # Si on doit renommer le warp :
- add message to {warps::list::*} # Nom du warp
- set {warps::list::%message%::loc} to {warps::list::%{_warp}%::loc} # Position du warp
- set {warps::list::%message%::item} to {warps::list::%{_warp}%::item} # Item de base dans le GUI
- remove {_warp} from {warps::list::*}
- message "{@logo} &aNouveau nom de &2%{_warp}% &a: %message%"
- warpEditGUI(player, message, player's position)
- else if {warps::waiting::%player%::what::*} is "perm": # Si on doit modifier la permission :
- set {warps::list::%{_warp}%::perm} to "warp.tp.%message%" # On modifie la permission
- message "{@logo} &aNouvelle permission de &2%{_warp}% &adéfinie à : &e%{warps::list::%{_warp}%::perm}%"
- warpEditGUI(player, {_warp}, player's position)
- else:
- message "{@logo} &cUne erreure inattendue est survenue... Veuillez réessayer." # Ce n'est pas censé arriver a moins d'un gros bug on d'une ligne de code supprimée.
- # On met ca au cas ou pour pas que l'utilisateur se demande ce qu'il se passe si ca arrive.
- clear {warps::waiting::%player%} # On dit qu'il n'a plus besoin de marquer dans le chat
- command /setwarp [<text>]:
- permission: warp.edit
- permission message: &cTu ne peux pas faire cela !
- trigger:
- if arg-1 is set:
- if {warps::list::*} contains arg-1: # Si le warp existe déjà
- message "{@logo} &cImpossible : ce warp existe déjà"
- else:
- if arg-1 parsed as integer is an integer:
- message "{@logo} &cImpossible : tu ne peux pas mettre juste un nombre." # Oui, sinon y'a un bug avec les listes...
- stop
- add arg-1 to {warps::list::*} # Nom du warp
- set {warps::list::%arg-1%::loc} to player's position # Position du warp
- set {warps::list::%arg-1%::item} to ender pearl # Item de base dans le GUI
- set {warps::list::%arg-1%::perm} to "warp.tp.%arg-1%" # Permission
- message "{@logo} &aWarp %arg-1% créé !"
- else:
- message "&cUsage : /setwarp <nom>"
- command /warp [<text>]:
- #permission: warp.menu
- #permission message: &cTu ne peux pas faire cela !
- aliases: warps
- trigger:
- # Si le warp existe :
- if {warps::list::*} contains arg-1:
- if player has permission "warp.tp.%arg-1%":
- teleport player to {warps::list::%arg-1%::loc}
- message "{@logo} &eTu as été téléporté !"
- else:
- message "{@logo} &cTu ne peux pas aller à ce warp car tu n'as pas la permission nécessaire !"
- # Sinon :
- else:
- # Calcul de la page actuelle
- if arg-1 is not set:
- set {_p} to 1
- else:
- set {_p} to arg-1 parsed as integer
- if {_p} is not an integer:
- set {_p} to 1
- # Calcul du nombre maximum de page
- if (size of {warps::list::*}) > 0:
- set {_mp} to ceil((size of {warps::list::*} / 36))
- else:
- set {_mp} to 1
- if {_p} > {_mp}:
- make player execute command "/warp %{_mp}%"
- stop
- else if {_p} < 1:
- make player execute command "/warp 1"
- stop
- # Ouverture du GUI
- open virtual chest inventory with 6 rows named "&cListe des warps" to player # On ouvre le GUI
- format gui slot 0, 1, 2, 3, 4, 5, 6, 7, 8, 9, 10, 13, 16, 17, 18, 19, 20, 21, 22, 23, 24, 25, 26, 27, 28, 29, 30, 31, 32, 33, 34 and 35 of player with black stained glass pane
- # Affichage des warps dans le GUI, avec un système de pages :
- if (size of {warps::list::*}) > 0:
- set {_i} to 0
- loop {warps::list::*}:
- if {_i} >= {_p} * 36 - 36: # Algorythme pour les pages
- if {_i} < {_p} * 36: # Idem
- set {_lore} to "||&eClique gauche : se téléporter"
- if player has permission "warp.edit":
- set {_lore} to "||&eClique gauche : se téléporter||&eClique droit : modifier"
- set {_lv} to loop-value
- if player has permission "warp.tp.%{_lv}%": # S'il a la permission, alors on lui affiche le warp
- format gui slot ({_i} - 36 * ({_p} - 1)) of player with {warps::list::%{_lv}%::item} named {_lv} with lore {_lore} to run:
- if player has permission "warp.edit": # Si le joueur à la permission de modifier un warp
- if click type is right mouse button: # Si c'est le clique droit
- warpEditGUI(player, {_lv}, player's position) # On ouvre le GUI pour modifier un warp
- else: # Sinon
- make player execute command "/warp %{_lv}%" # On le TP au warp
- else:
- make player execute command "/warp %{_lv}%" # On le TP au warp
- else: # Sinon, on le lui affiche, mais il ne fait rien
- format gui slot ({_i} - 36 * ({_p} - 1)) of player with red stained glass pane named {_lv} with lore "||&c&lTu n'as pas la permission d'y aller !"
- add 1 to {_i}
- # Items de pages :
- if {_p} != {_mp}:
- format gui slot 50 of player with an arrow named "&ePage suivante" to run player command "/warp %({_p} + 1)%"
- if {_p} != 1:
- format gui slot 48 of player with an arrow named "&ePage précédente" to run player command "/warp %({_p} - 1)%"
- # Events de debug
- on script load:
- loop all players:
- clear {warps::waiting::%loop-player%}
- on drop:
- {warps::dropToAdd::%player%} is true
- cancel event
- on quit:
- clear {warps::waiting::%player%}
- clear {warps::dropToAdd::%player%}
- on join:
- clear {warps::waiting::%player%}
- clear {warps::dropToAdd::%player%} #On sait jamais
Advertisement
Add Comment
Please, Sign In to add comment