Guest User

Untitled

a guest
Sep 5th, 2018
161
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 21.29 KB | None | 0 0
  1. # ============================================================================ #
  2. # = ******************************** Skript ******************************** = #
  3. # ============================================================================ #
  4.  
  5. # ============================================================================ #
  6.  
  7. function logsAction(type: text, p: text, t: text):
  8. set {_player} to {_p} parsed as offline player
  9.  
  10. set {_s} to "%now%"
  11. set {_now} to subtext of {_s} from characters 1 to (the length of {_s} - 6)
  12. replace every "/" with "_" in {_now}
  13.  
  14. if file "plugins/BetterLogs/players/%{_player}%/%{_now}%.log" does not exist:
  15. if {_type} is not "console_commands":
  16. create file "plugins/BetterLogs/players/%{_player}%/%{_now}%.log"
  17.  
  18. set {_option.global.%{_type}%} to yaml value "global.join" from file "plugins/BetterLogs/config.yml"
  19. set {_option.players.%{_type}%} to yaml value "players.join" from file "plugins/BetterLogs/config.yml"
  20.  
  21. set {_language.global.%{_type}%} to yaml value "language.global.%{_type}%" from file "plugins/BetterLogs/language.yml"
  22. set {_language.players.%{_type}%} to yaml value "language.players.%{_type}%" from file "plugins/BetterLogs/language.yml"
  23.  
  24. if {_type} is "join" or "quit" or "chat" or "commands" or "console_commands" or "block_break" or "block_place" or "death" or "kill":
  25. replace every "{now}" with "%now%" in {_language.global.%{_type}%}
  26. replace every "{now}" with "%now%" in {_language.players.%{_type}%}
  27. replace every "{player}" with "%{_player}%" in {_language.global.%{_type}%}
  28. replace every "{player}" with "%{_player}%" in {_language.players.%{_type}%}
  29. if {_type} is "join" or "quit" or "chat" or "commands" or "console_commands" or "block_break" or "block_place":
  30. replace every "{ip of player}" with "%ip of {_player}%" in {_language.global.%{_type}%}
  31. replace every "{ip of player}" with "%ip of {_player}%" in {_language.players.%{_type}%}
  32. replace every "{uuid of player}" with "%uuid of {_player}%" in {_language.global.%{_type}%}
  33. replace every "{uuid of player}" with "%uuid of {_player}%" in {_language.players.%{_type}%}
  34. if {_type} is "chat":
  35. replace every "{message}" with "%{_t}%" in {_language.global.%{_type}%}
  36. replace every "{message}" with "%{_t}%" in {_language.players.%{_type}%}
  37. if {_type} is "commands" or "console_commands":
  38. replace every "{complete command}" with "%{_t}%" in {_language.global.%{_type}%}
  39. replace every "{complete command}" with "%{_t}%" in {_language.players.%{_type}%}
  40. if {_type} is "block_break" or "block_place":
  41. set {_block} to {_t} parsed as item
  42. replace every "{location of event-block}" with "%location of {_block}%" in {_language.global.%{_type}%}
  43. replace every "{location of event-block}" with "%location of {_block}%" in {_language.players.%{_type}%}
  44. replace every "{event-block}" with "%{_block}%" in {_language.global.%{_type}%}
  45. replace every "{event-block}" with "%{_block}%" in {_language.players.%{_type}%}
  46. if {_type} is "death":
  47. set {_attacker} to {_t} parsed as player
  48. replace every "{ip of victim}" with "%ip of {_player}%" in {_language.global.%{_type}%}
  49. replace every "{uuid of victim}" with "%uuid of {_player}%" in {_language.global.%{_type}%}
  50. replace every "{ip of attacker}" with "%ip of {_attacker}%" in {_language.global.%{_type}%}
  51. replace every "{uuid of attacker}" with "%uuid of {_attacker}%" in {_language.global.%{_type}%}
  52. replace every "{attacker}" with "%{_attacker}%" in {_language.global.%{_type}%}
  53. replace every "{location of attacker}" with "%location of {_attacker}%" in {_language.global.%{_type}%}
  54. replace every "{victim}" with "%{_player}%" in {_language.global.%{_type}%}
  55. replace every "{location of victim}" with "%location of {_player}%" in {_language.global.%{_type}%}
  56. replace every "{ip of victim}" with "%ip of {_player}%" in {_language.players.%{_type}%}
  57. replace every "{uuid of victim}" with "%uuid of {_player}%" in {_language.players.%{_type}%}
  58. replace every "{ip of attacker}" with "%ip of {_attacker}%" in {_language.players.%{_type}%}
  59. replace every "{uuid of attacker}" with "%uuid of {_attacker}%" in {_language.players.%{_type}%}
  60. replace every "{attacker}" with "%{_attacker}%" in {_language.players.%{_type}%}
  61. replace every "{location of attacker}" with "%location of {_attacker}%" in {_language.players.%{_type}%}
  62. replace every "{victim}" with "%{_player}%" in {_language.players.%{_type}%}
  63. replace every "{location of victim}" with "%location of {_player}%" in {_language.players.%{_type}%}
  64. if {_type} is "kill":
  65. set {_victim} to {_t} parsed as player
  66. replace every "{ip of victim}" with "%ip of {_victim}%" in {_language.global.%{_type}%}
  67. replace every "{uuid of victim}" with "%uuid of {_victim}%" in {_language.global.%{_type}%}
  68. replace every "{ip of attacker}" with "%ip of {_player}%" in {_language.global.%{_type}%}
  69. replace every "{uuid of attacker}" with "%uuid of {_player}%" in {_language.global.%{_type}%}
  70. replace every "{attacker}" with "%{_player}%" in {_language.global.%{_type}%}
  71. replace every "{location of attacker}" with "%location of {_player}%" in {_language.global.%{_type}%}
  72. replace every "{victim}" with "%{_victim}%" in {_language.global.%{_type}%}
  73. replace every "{location of victim}" with "%location of {_victim}%" in {_language.global.%{_type}%}
  74. replace every "{ip of victim}" with "%ip of {_victim}%" in {_language.players.%{_type}%}
  75. replace every "{uuid of victim}" with "%uuid of {_victim}%" in {_language.players.%{_type}%}
  76. replace every "{ip of attacker}" with "%ip of {_player}%" in {_language.players.%{_type}%}
  77. replace every "{uuid of attacker}" with "%uuid of {_player}%" in {_language.players.%{_type}%}
  78. replace every "{attacker}" with "%{_player}%" in {_language.players.%{_type}%}
  79. replace every "{location of attacker}" with "%location of {_player}%" in {_language.players.%{_type}%}
  80. replace every "{victim}" with "%{_victim}%" in {_language.players.%{_type}%}
  81. replace every "{location of victim}" with "%location of {_victim}%" in {_language.players.%{_type}%}
  82.  
  83. if {_type} is "join" or "quit" or "chat" or "commands" or "death" or "kill":
  84. if {_option.global.%{_type}%} is true:
  85. write "%{_language.global.%{_type}%}%" at line (file "plugins/BetterLogs/global/%{_now}%.log"'s line count + 1) to file "plugins/BetterLogs/global/%{_now}%.log"
  86. if {_option.players.%{_type}%} is true:
  87. write "%{_language.players.%{_type}%}%" at line (file "plugins/BetterLogs/players/%{_player}%/%{_now}%.log"'s line count + 1) to file "plugins/BetterLogs/players/%{_player}%/%{_now}%.log"
  88.  
  89. else if {_type} is "console_commands":
  90. if {_option.global.console_commands} is true:
  91. write "%{_language.global.console_commands}%" at line (file "plugins/BetterLogs/global/%{_now}%.log"'s line count + 1) to file "plugins/BetterLogs/global/%{_now}%.log"
  92. if {_option.players.console_commands} is true:
  93. write "%{_language.players.console_commands}%" at line (file "plugins/BetterLogs/console/%{_now}%.log"'s line count + 1) to file "plugins/BetterLogs/console/%{_now}%.log"
  94.  
  95. # ============================================================================ #
  96.  
  97. function logsPurge(type: text):
  98. if {_type} is "console":
  99. set {_name::*} to directory "plugins/BetterLogs/console/"'s files
  100. else if {_type} is "global":
  101. set {_name::*} to directory "plugins/BetterLogs/global/"'s files
  102. else:
  103. set {_player} to {_type} parsed as offline player
  104. set {_name::*} to directory "plugins/BetterLogs/players/%{_player}%/"'s files
  105. loop {_name::*}:
  106. add 1 to {_size}
  107. if {_low.to.high.list::%loop-value%} is not set:
  108. set {_low.to.high.list::%loop-value%} to loop-index
  109. else:
  110. set {_n} to 0
  111. loop {_size} times:
  112. set {_n} to {_n}+1
  113. {_low.to.high.list::%loop-value-1%.%{_n}%} is not set
  114. set {_low.to.high.list::%loop-value-1%.%{_n}%} to loop-index
  115. stop loop
  116. wait 1 tick
  117. set {_n} to size of {_low.to.high.list::*}
  118. loop {_low.to.high.list::*}:
  119. set {_high.to.low.list::%{_n}%} to loop-value
  120. set {_n} to {_n}-1
  121. wait 1 tick
  122. set {_i} to 0
  123. set {_purge.files} to yaml value "purge.files" from file "plugins/BetterLogs/config.yml"
  124. set {_purge.parsed.files} to {_purge.files} parsed as a number
  125. loop {_high.to.low.list::*}:
  126. add 1 to {_i}
  127. add 1 to {_topnumber}
  128. if {_topnumber} > {_purge.parsed.files}:
  129. delete file "%{_name::%loop-value%}%"
  130. if {_topnumber} > 365:
  131. stop
  132.  
  133. # ============================================================================ #
  134.  
  135. on script load:
  136. set {_s} to "%now%"
  137. set {_now} to subtext of {_s} from characters 1 to (the length of {_s} - 6)
  138. replace every "/" with "_" in {_now}
  139.  
  140. if file "plugins/BetterLogs/global/%{_now}%.log" does not exist:
  141. create file "plugins/BetterLogs/global/%{_now}%.log"
  142. send "&7[&b!&7] Le fichier de log global a été généré." to all ops
  143.  
  144. if file "plugins/BetterLogs/console/%{_now}%.log" does not exist:
  145. create file "plugins/BetterLogs/console/%{_now}%.log"
  146. send "&7[&b!&7] Le fichier de log console a été généré." to all ops
  147.  
  148. if file "plugins/BetterLogs/config.yml" does not exist:
  149. create file "plugins/BetterLogs/config.yml"
  150.  
  151. write "## ===================================================== ##" at line 1 to file "plugins/BetterLogs/config.yml"
  152. write "## BetterLogs 2.0 - Lemrigue ##" at line 2 to file "plugins/BetterLogs/config.yml"
  153. write "## https://skript-mc.fr/forum/resources/betterlogs.1149/ ##" at line 3 to file "plugins/BetterLogs/config.yml"
  154. write "## ===================================================== ##" at line 4 to file "plugins/BetterLogs/config.yml"
  155. write "## " at line 5 to file "plugins/BetterLogs/config.yml"
  156. write "## global: Log les actions des joueurs dans un fichier global à la date du jour." at line 6 to file "plugins/BetterLogs/config.yml"
  157. write "## " at line 7 to file "plugins/BetterLogs/config.yml"
  158. write "## players: Log les actions des joueurs dans un fichier à leur nom." at line 8 to file "plugins/BetterLogs/config.yml"
  159. write "## " at line 9 to file "plugins/BetterLogs/config.yml"
  160. write "## purge: Permet de supprimés automatiquement les fichiers les plus anciens après avoir atteint le nombre 'files'." at line 10 to file "plugins/BetterLogs/config.yml"
  161.  
  162. set yaml value "global.join" from file "plugins/BetterLogs/config.yml" to true
  163. set yaml value "global.quit" from file "plugins/BetterLogs/config.yml" to true
  164. set yaml value "global.chat" from file "plugins/BetterLogs/config.yml" to true
  165. set yaml value "global.commands" from file "plugins/BetterLogs/config.yml" to true
  166. set yaml value "global.console_commands" from file "plugins/BetterLogs/config.yml" to true
  167. set yaml value "global.block_break" from file "plugins/BetterLogs/config.yml" to false
  168. set yaml value "global.block_place" from file "plugins/BetterLogs/config.yml" to false
  169. set yaml value "global.death" from file "plugins/BetterLogs/config.yml" to true
  170. set yaml value "global.kill" from file "plugins/BetterLogs/config.yml" to true
  171.  
  172. set yaml value "players.join" from file "plugins/BetterLogs/config.yml" to true
  173. set yaml value "players.quit" from file "plugins/BetterLogs/config.yml" to true
  174. set yaml value "players.chat" from file "plugins/BetterLogs/config.yml" to true
  175. set yaml value "players.commands" from file "plugins/BetterLogs/config.yml" to true
  176. set yaml value "players.console_commands" from file "plugins/BetterLogs/config.yml" to true
  177. set yaml value "players.block_break" from file "plugins/BetterLogs/config.yml" to true
  178. set yaml value "players.block_place" from file "plugins/BetterLogs/config.yml" to true
  179. set yaml value "players.death" from file "plugins/BetterLogs/config.yml" to true
  180. set yaml value "players.kill" from file "plugins/BetterLogs/config.yml" to true
  181.  
  182. set yaml value "purge.files" from file "plugins/BetterLogs/config.yml" to "7"
  183. send "&7[&c!&7] Configuration BetterLogs introuvable » fichier créé." to all ops
  184.  
  185. if file "plugins/BetterLogs/language.yml" does not exist:
  186. create file "plugins/BetterLogs/language.yml"
  187. write "## ===================================================== ##" at line 1 to file "plugins/BetterLogs/language.yml"
  188. write "## BetterLogs 2.0 - Lemrigue ##" at line 2 to file "plugins/BetterLogs/language.yml"
  189. write "## https://skript-mc.fr/forum/resources/betterlogs.1149/ ##" at line 3 to file "plugins/BetterLogs/language.yml"
  190. write "## ===================================================== ##" at line 4 to file "plugins/BetterLogs/language.yml"
  191. write "## " at line 5 to file "plugins/BetterLogs/language.yml"
  192. write "## Variables possibles n'importe où : {player} {ip of player} {uuid of player} {now}" at line 6 to file "plugins/BetterLogs/language.yml"
  193. write "## Variables message : {message}" at line 7 to file "plugins/BetterLogs/language.yml"
  194. write "## Variables command : {complete command}" at line 8 to file "plugins/BetterLogs/language.yml"
  195. write "## Variables blocs : {event-block} {location of event-block}" at line 9 to file "plugins/BetterLogs/language.yml"
  196. write "## Variables kill/mort : {attacker} {location of attacker} {victim} {location of victim} {ip of victim} {uuid of victim} {ip of attacker} {uuid of attacker}" at line 10 to file "plugins/BetterLogs/language.yml"
  197. write "## " at line 11 to file "plugins/BetterLogs/language.yml"
  198.  
  199. set yaml value "language.players.join" from file "plugins/BetterLogs/language.yml" to "[{now}][CONNEXION]"
  200. set yaml value "language.players.quit" from file "plugins/BetterLogs/language.yml" to "[{now}][DÉCONNEXION]"
  201. set yaml value "language.players.chat" from file "plugins/BetterLogs/language.yml" to "[{now}][CHAT] {message}"
  202. set yaml value "language.players.commands" from file "plugins/BetterLogs/language.yml" to "[{now}][COMMANDE] «/{complete command}»"
  203. set yaml value "language.players.console_commands" from file "plugins/BetterLogs/language.yml" to "[{now}][COMMANDE] «/{complete command}»"
  204. set yaml value "language.players.block_break" from file "plugins/BetterLogs/language.yml" to "[{now}][BLOC CASSÉ] {event-block} ({location of event-block})"
  205. set yaml value "language.players.block_place" from file "plugins/BetterLogs/language.yml" to "[{now}][BLOC PLACÉ] {event-block} ({location of event-block})"
  206. set yaml value "language.players.death" from file "plugins/BetterLogs/language.yml" to "[{now}][MORT] Tueur: {attacker} ({location of victim})"
  207. set yaml value "language.players.kill" from file "plugins/BetterLogs/language.yml" to "[{now}][KILL] Victime: {victim} ({location of attacker})"
  208.  
  209. set yaml value "language.global.join" from file "plugins/BetterLogs/language.yml" to "[{now}] {player} a rejoint la partie."
  210. set yaml value "language.global.quit" from file "plugins/BetterLogs/language.yml" to "[{now}] {player} a quitté la partie."
  211. set yaml value "language.global.chat" from file "plugins/BetterLogs/language.yml" to "[{now}] {player}: {message}"
  212. set yaml value "language.global.commands" from file "plugins/BetterLogs/language.yml" to "[{now}] {player}: «/{complete command}»"
  213. set yaml value "language.global.console_commands" from file "plugins/BetterLogs/language.yml" to "[{now}][CONSOLE] «/{complete command}»"
  214. set yaml value "language.global.block_break" from file "plugins/BetterLogs/language.yml" to "[{now}] {player} a cassé le bloc {event-block} ({location of event-block})"
  215. set yaml value "language.global.block_place" from file "plugins/BetterLogs/language.yml" to "[{now}] {player} a placé le bloc {event-block} ({location of event-block})"
  216. set yaml value "language.global.death" from file "plugins/BetterLogs/language.yml" to "[{now}] {victim} a été tué par {attacker} (victime : {location of victim})"
  217. set yaml value "language.global.kill" from file "plugins/BetterLogs/language.yml" to "[{now}] {attacker} a tué {victim} (tueur : {location of attacker})"
  218.  
  219. send "&7[&c!&7] Langage Logs introuvable » fichier créé." to all ops
  220. logsPurge("console")
  221. logsPurge("global")
  222.  
  223. # ============================================================================ #
  224.  
  225. on join:
  226. logsAction("join", "%player%", "none")
  227. wait 2 seconds
  228. logsPurge("%player%")
  229.  
  230. on quit:
  231. logsAction("quit", "%player%", "none")
  232.  
  233. on chat:
  234. logsAction("chat", "%player%", "%message%")
  235.  
  236. on command:
  237. if command sender is the player:
  238. logsAction("commands", "%player%", "%complete command%")
  239. else if command sender is the console:
  240. logsAction("console_commands", "console", "%complete command%")
  241.  
  242. on death of a player:
  243. if victim is the player:
  244. logsAction("death", "%victim%", "%attacker%")
  245. if attacker is the player:
  246. logsAction("kill", "%attacker%", "%victim%")
  247.  
  248.  
  249.  
  250. on break:
  251. set {_option.global.block_break} to yaml value "global.block_break" from file "plugins/BetterLogs/config.yml"
  252. set {_option.players.block_break} to yaml value "players.block_break" from file "plugins/BetterLogs/config.yml"
  253. set {_s} to "%now%"
  254. set {_now} to subtext of {_s} from characters 1 to (the length of {_s} - 6)
  255. replace every "/" with "_" in {_now}
  256. if file "plugins/BetterLogs/players/%player%/%{_now}%.log" does not exist:
  257. create file "plugins/BetterLogs/players/%player%/%{_now}%.log"
  258. if {_option.global.block_break} is true:
  259. set {_language.global.block_break} to yaml value "language.global.block_break" from file "plugins/BetterLogs/language.yml"
  260. replace every "{now}" with "%now%" in {_language.global.block_break}
  261. replace every "{player}" with "%player%" in {_language.global.block_break}
  262. replace every "{ip of player}" with "%ip of player%" in {_language.global.block_break}
  263. replace every "{uuid of player}" with "%uuid of player%" in {_language.global.block_break}
  264. replace every "{location of event-block}" with "%location of event-block%" in {_language.global.block_break}
  265. replace every "{event-block}" with "%event-block%" in {_language.global.block_break}
  266. write "%{_language.global.block_break}%" at line (file "plugins/BetterLogs/global/%{_now}%.log"'s line count + 1) to file "plugins/BetterLogs/global/%{_now}%.log"
  267. if {_option.players.block_break} is true:
  268. set {_language.players.block_break} to yaml value "language.players.block_break" from file "plugins/BetterLogs/language.yml"
  269. replace every "{now}" with "%now%" in {_language.players.block_break}
  270. replace every "{player}" with "%player%" in {_language.players.block_break}
  271. replace every "{ip of player}" with "%ip of player%" in {_language.players.block_break}
  272. replace every "{uuid of player}" with "%uuid of player%" in {_language.players.block_break}
  273. replace every "{location of event-block}" with "%location of event-block%" in {_language.players.block_break}
  274. replace every "{event-block}" with "%event-block%" in {_language.players.block_break}
  275. write "%{_language.players.block_break}%" at line (file "plugins/BetterLogs/players/%player%/%{_now}%.log"'s line count + 1) to file "plugins/BetterLogs/players/%player%/%{_now}%.log"
  276.  
  277. on place:
  278. set {_option.global.block_place} to yaml value "global.block_place" from file "plugins/BetterLogs/config.yml"
  279. set {_option.players.block_place} to yaml value "players.block_place" from file "plugins/BetterLogs/config.yml"
  280. set {_s} to "%now%"
  281. set {_now} to subtext of {_s} from characters 1 to (the length of {_s} - 6)
  282. replace every "/" with "_" in {_now}
  283. if file "plugins/BetterLogs/players/%player%/%{_now}%.log" does not exist:
  284. create file "plugins/BetterLogs/players/%player%/%{_now}%.log"
  285. if {_option.global.block_place} is true:
  286. set {_language.global.block_place} to yaml value "language.global.block_place" from file "plugins/BetterLogs/language.yml"
  287. replace every "{now}" with "%now%" in {_language.global.block_place}
  288. replace every "{player}" with "%player%" in {_language.global.block_place}
  289. replace every "{ip of player}" with "%ip of player%" in {_language.global.block_place}
  290. replace every "{uuid of player}" with "%uuid of player%" in {_language.global.block_place}
  291. replace every "{location of event-block}" with "%location of event-block%" in {_language.global.block_place}
  292. replace every "{event-block}" with "%event-block%" in {_language.global.block_place}
  293. write "%{_language.global.block_place}%" at line (file "plugins/BetterLogs/global/%{_now}%.log"'s line count + 1) to file "plugins/BetterLogs/global/%{_now}%.log"
  294. if {_option.players.block_place} is true:
  295. set {_language.players.block_place} to yaml value "language.players.block_place" from file "plugins/BetterLogs/language.yml"
  296. replace every "{now}" with "%now%" in {_language.players.block_place}
  297. replace every "{player}" with "%player%" in {_language.players.block_place}
  298. replace every "{ip of player}" with "%ip of player%" in {_language.players.block_place}
  299. replace every "{uuid of player}" with "%uuid of player%" in {_language.players.block_place}
  300. replace every "{location of event-block}" with "%location of event-block%" in {_language.players.block_place}
  301. replace every "{event-block}" with "%event-block%" in {_language.players.block_place}
  302. write "%{_language.players.block_place}%" at line (file "plugins/BetterLogs/players/%player%/%{_now}%.log"'s line count + 1) to file "plugins/BetterLogs/players/%player%/%{_now}%.log"
  303.  
  304. # ============================================================================ #
  305. # = ********************* Hope you enjoyed the skript ********************** = #
  306. # ============================================================================ #
Advertisement
Add Comment
Please, Sign In to add comment