noftaly

warp gui

Sep 12th, 2018
278
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 8.25 KB | None | 0 0
  1. options:
  2. logo: &4[&cWarp&4]
  3.  
  4. function warpEditGUI(p: player, warp: text, pos: location):
  5. open virtual chest inventory with 3 rows named "&2Editer %{_warp}%" to {_p}
  6. 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
  7. format gui slot 11 of {_p} with sign item named "&aModifier le nom" to run:
  8. close player's inventory
  9. set {warps::waiting::%{_p}%} to true
  10. set {warps::waiting::%{_p}%::warp::*} to {_warp}
  11. set {warps::waiting::%{_p}%::what::*} to "rename"
  12. message "{@logo} &aVeuillez mettre un nouveau nom pour le warp, ou tapez &eretour" to {_p}
  13.  
  14. format gui slot 12 of {_p} with barrier named "&cSupprimer" to run:
  15. open virtual chest inventory with 3 rows named "&cSupprimer %{_warp}%" to {_p}
  16. format gui slot 4 of {_p} with book named "&eWarp : %{_warp}%" to do nothing
  17. format gui slot 12 of {_p} with red wool named "&cAnnuler" to run:
  18. warpEditGUI({_p}, {_warp}, {_pos})
  19. format gui slot 14 of {_p} with light green wool named "&aSupprimer définitivement" to run:
  20. remove {_warp} from {warps::list::*}
  21. make {_p} execute command "/warp" # On le rammene au GUI principal
  22.  
  23. format gui slot 13 of {_p} with feather named "&aRedéfinir la location" to run:
  24. message "&6Avant: &e%{warps::list::%{_warp}%::loc}%" to {_p}
  25. set {warps::list::%{_warp}%::loc} to {_pos} # Position du warp
  26. message "&6Après: &e%{warps::list::%{_warp}%::loc}%" to {_p}
  27. message "{@logo} &aNouvelle position définie" to {_p}
  28.  
  29. format gui slot 14 of {_p} with {warps::list::%{_warp}%::item} named "&aModifier l'item du GUI" to run:
  30. if gui-cursor is an item: # S'il a un item dans la main
  31. if gui-cursor is not air: # S'il a un item dans la main, check 2
  32. if gui-cursor is not red stained glass pane:
  33. set {warps::dropToAdd::%player%} to true # On l'empeche de drop
  34. set {warps::list::%{_warp}%::item} to gui-cursor
  35. wait 2 ticks
  36. warpEditGUI({_p}, {_warp}, {_pos})
  37. wait 4 ticks
  38. clear {warps::dropToAdd::%player%}
  39. else:
  40. message "{@logo} &cImpossible : ce block est réservé !" to {_p}
  41.  
  42. format gui slot 15 of {_p} with paper named "&aChanger la permission" to run:
  43. close player's inventory
  44. set {warps::waiting::%{_p}%} to true
  45. set {warps::waiting::%{_p}%::warp::*} to {_warp}
  46. set {warps::waiting::%{_p}%::what::*} to "perm"
  47. message "{@logo} &aVeuillez mettre une nouvelle permission pour le warp, ou tapez &eretour&a." to {_p}
  48.  
  49. format gui slot 26 of {_p} with arrow named "&cRetour" to run:
  50. make player execute command "/warp"
  51.  
  52. # Event de chat pour changer le nom d'un warp ou la permission d'un warp
  53. on chat:
  54. # Si on est en train de changer le nom/la perm :
  55. if {warps::waiting::%player%} is true:
  56. set {_warp} to {warps::waiting::%player%::warp::1}
  57. cancel event
  58. if message is "retour": # Si on a marqué "retour", alors on revient au GUI
  59. warpEditGUI(player, {_warp}, player's position)
  60.  
  61. else if {warps::waiting::%player%::what::*} is "rename": # Si on doit renommer le warp :
  62. add message to {warps::list::*} # Nom du warp
  63. set {warps::list::%message%::loc} to {warps::list::%{_warp}%::loc} # Position du warp
  64. set {warps::list::%message%::item} to {warps::list::%{_warp}%::item} # Item de base dans le GUI
  65. remove {_warp} from {warps::list::*}
  66. message "{@logo} &aNouveau nom de &2%{_warp}% &a: %message%"
  67. warpEditGUI(player, message, player's position)
  68.  
  69. else if {warps::waiting::%player%::what::*} is "perm": # Si on doit modifier la permission :
  70. set {warps::list::%{_warp}%::perm} to "warp.tp.%message%" # On modifie la permission
  71. message "{@logo} &aNouvelle permission de &2%{_warp}% &adéfinie à : &e%{warps::list::%{_warp}%::perm}%"
  72. warpEditGUI(player, {_warp}, player's position)
  73.  
  74. else:
  75. 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.
  76. # On met ca au cas ou pour pas que l'utilisateur se demande ce qu'il se passe si ca arrive.
  77. clear {warps::waiting::%player%} # On dit qu'il n'a plus besoin de marquer dans le chat
  78.  
  79.  
  80. command /setwarp [<text>]:
  81. permission: warp.edit
  82. permission message: &cTu ne peux pas faire cela !
  83. trigger:
  84. if arg-1 is set:
  85. if {warps::list::*} contains arg-1: # Si le warp existe déjà
  86. message "{@logo} &cImpossible : ce warp existe déjà"
  87. else:
  88. if arg-1 parsed as integer is an integer:
  89. message "{@logo} &cImpossible : tu ne peux pas mettre juste un nombre." # Oui, sinon y'a un bug avec les listes...
  90. stop
  91. add arg-1 to {warps::list::*} # Nom du warp
  92. set {warps::list::%arg-1%::loc} to player's position # Position du warp
  93. set {warps::list::%arg-1%::item} to ender pearl # Item de base dans le GUI
  94. set {warps::list::%arg-1%::perm} to "warp.tp.%arg-1%" # Permission
  95. message "{@logo} &aWarp %arg-1% créé !"
  96. else:
  97. message "&cUsage : /setwarp <nom>"
  98.  
  99. command /warp [<text>]:
  100. #permission: warp.menu
  101. #permission message: &cTu ne peux pas faire cela !
  102. aliases: warps
  103. trigger:
  104. # Si le warp existe :
  105. if {warps::list::*} contains arg-1:
  106. if player has permission "warp.tp.%arg-1%":
  107. teleport player to {warps::list::%arg-1%::loc}
  108. message "{@logo} &eTu as été téléporté !"
  109. else:
  110. message "{@logo} &cTu ne peux pas aller à ce warp car tu n'as pas la permission nécessaire !"
  111.  
  112. # Sinon :
  113. else:
  114.  
  115. # Calcul de la page actuelle
  116. if arg-1 is not set:
  117. set {_p} to 1
  118. else:
  119. set {_p} to arg-1 parsed as integer
  120. if {_p} is not an integer:
  121. set {_p} to 1
  122.  
  123. # Calcul du nombre maximum de page
  124. if (size of {warps::list::*}) > 0:
  125. set {_mp} to ceil((size of {warps::list::*} / 36))
  126. else:
  127. set {_mp} to 1
  128. if {_p} > {_mp}:
  129. make player execute command "/warp %{_mp}%"
  130. stop
  131. else if {_p} < 1:
  132. make player execute command "/warp 1"
  133. stop
  134.  
  135. # Ouverture du GUI
  136. open virtual chest inventory with 6 rows named "&cListe des warps" to player # On ouvre le GUI
  137. 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
  138.  
  139. # Affichage des warps dans le GUI, avec un système de pages :
  140. if (size of {warps::list::*}) > 0:
  141. set {_i} to 0
  142. loop {warps::list::*}:
  143. if {_i} >= {_p} * 36 - 36: # Algorythme pour les pages
  144. if {_i} < {_p} * 36: # Idem
  145.  
  146. set {_lore} to "||&eClique gauche : se téléporter"
  147. if player has permission "warp.edit":
  148. set {_lore} to "||&eClique gauche : se téléporter||&eClique droit : modifier"
  149. set {_lv} to loop-value
  150. if player has permission "warp.tp.%{_lv}%": # S'il a la permission, alors on lui affiche le warp
  151. format gui slot ({_i} - 36 * ({_p} - 1)) of player with {warps::list::%{_lv}%::item} named {_lv} with lore {_lore} to run:
  152. if player has permission "warp.edit": # Si le joueur à la permission de modifier un warp
  153. if click type is right mouse button: # Si c'est le clique droit
  154. warpEditGUI(player, {_lv}, player's position) # On ouvre le GUI pour modifier un warp
  155. else: # Sinon
  156. make player execute command "/warp %{_lv}%" # On le TP au warp
  157. else:
  158. make player execute command "/warp %{_lv}%" # On le TP au warp
  159. else: # Sinon, on le lui affiche, mais il ne fait rien
  160. 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 !"
  161.  
  162. add 1 to {_i}
  163.  
  164. # Items de pages :
  165. if {_p} != {_mp}:
  166. format gui slot 50 of player with an arrow named "&ePage suivante" to run player command "/warp %({_p} + 1)%"
  167. if {_p} != 1:
  168. format gui slot 48 of player with an arrow named "&ePage précédente" to run player command "/warp %({_p} - 1)%"
  169.  
  170.  
  171. # Events de debug
  172. on script load:
  173. loop all players:
  174. clear {warps::waiting::%loop-player%}
  175. on drop:
  176. {warps::dropToAdd::%player%} is true
  177. cancel event
  178. on quit:
  179. clear {warps::waiting::%player%}
  180. clear {warps::dropToAdd::%player%}
  181. on join:
  182. clear {warps::waiting::%player%}
  183. clear {warps::dropToAdd::%player%} #On sait jamais
Advertisement
Add Comment
Please, Sign In to add comment