· 9 years ago · May 08, 2017, 01:32 PM
1#
2#Title: SkStats
3#Version: 1.0
4#Author: MinePlugins
5#
6# IMPORTANT MYSQL A MODIFIER
7script options:
8 $ db url jdbc:mysql://localhost:3306/Stats
9 $ db username nousername
10 $ db password nopassword
11
12options:
13 table_prefix: Stats_
14 refresh: 300
15On load:
16 if {Stats-Reloader} is set:
17 set {_period} to difference between {Stats-Reload-sec} and now
18 send "&9SkStats >> &7The skript have been reload in &a%{_period}%" to {Stats-Reloader}
19 clear {Stats-Reloader}
20command /stats [<text=help>] [<text>]:
21 permission: SkStats.commands.player
22 trigger:
23 if arg-1 is "help":
24 send "&9&lâ•”&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&9&l[ &6&lStats &9&l]&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•—"
25 send " &bPlayer commands:"
26 send " &9/Stats Check &7Check your stats"
27 send " &9/Stats Player <Player> &7Check stats of player"
28 send " &9/Stats top <Type>&7 Check the top player"
29 if player have permission "SkStats.commands.admin":
30 send " &cAdmin commands:"
31 send " &9/Stats Purge &7Purge the mysql and variable stats"
32 send " &9/Stats Sync &7Sync the stats with the database"
33 send " &9/Stats Reload &7Reload the skript"
34 if arg-1 is "check":
35 send "&9&lâ•”&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&9&l[ &6&lStats &9&l]&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•—"
36 send " &bYour stats:"
37 send " &3First join: &7%{newfirstjoin-%player%}%"
38 send " &3Kills: &7%{newkills-%player%}%"
39 send " &3Deaths: &7%{newdeaths-%player%}%"
40 send " &3Projectile shoot: &7%{newshoot-%player%}%"
41 send " &3Kills with bow: &7%{newkillsbow-%player%}%"
42 send " &3Block destroyed: &7%{newbreak-%player%}%"
43 send " &3Block placed: &7%{newplace-%player%}%"
44 send " &3Messages: &7%{newmessages-%player%}%"
45 send " &3Commands: &7%{newcommands-%player%}%"
46 send " &3Meter walk: &7%{newwalk-%player%}%"
47 if arg 1 is "reload":
48 set {Stats-Reload-sec} to now
49 set {Stats-Reloader} to player
50 make console execute command "/skript reload SkStats"
51 if arg-1 is "player":
52 if arg-2 is not set:
53 send "&9SkStats >> &cYou don't have specified the username of player !"
54 else:
55 if {firstjoin-%arg-2%} is not set:
56 send "&9SkStats >> &cThe player has never join the server !"
57 else:
58 send "&9&lâ•”&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&9&l[ &6&lStats &9&l]&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•—"
59 send " &bPlayer: &7%arg-2%"
60 send " &3First join: &7%{firstjoin-%arg-2%}%"
61 send " &3Kills: &7%{kills-%arg-2%}%"
62 send " &3Deaths: &7%{deaths-%arg-2%}%"
63 send " &3Projectile shoot: &7%{shoot-%arg-2%}%"
64 send " &3Kills with bow:&7 %{killsbow-%arg-2%}%"
65 send " &3Block destroyed: &7%{break-%arg-2%}%"
66 send " &3Block placed:&7 %{place-%arg-2%}%"
67 send " &3Messages: &7%{messages-%arg-2%}%"
68 send " &3Commands: &7%{commands-%arg-2%}%"
69 send " &3Meter walk: &7%{walk-%arg-2%}%"
70 if arg-1 is "purge":
71 if player have permission "SkStats.commands.purge":
72 loop {statslistplayer::*}:
73 set {deaths-%loop-value%} to 0
74 set {kills-%loop-value%} to 0
75 set {break-%loop-value%} to 0
76 set {place-%loop-value%} to 0
77 set {killsbow-%loop-value%} to 0
78 set {shoot-%loop-value%} to 0
79 set {walk-%loop-value%} to 0
80 set {messages-%loop-value%} to 0
81 set {commands-%loop-value%} to 0
82 set {newdeaths-%loop-value%} to 0
83 set {newkills-%loop-value%} to 0
84 set {newbreak-%loop-value%} to 0
85 set {newplace-%loop-value%} to 0
86 set {newkillsbow-%loop-value%} to 0
87 set {newshoot-%loop-value%} to 0
88 set {newwalk-%loop-value%} to 0
89 set {newmessages-%loop-value%} to 0
90 set {newcommands-%loop-value%} to 0
91 update "TRUNCATE TABLE `{@table_prefix}Player`"
92 if arg-1 is "sync":
93 if player have permission "SkStats.commands.sync":
94 loop all players:
95 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Deaths` = `Deaths`+%{deaths-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
96 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Kills` = `Kills`+%{kills-%loop-player%}% WHERE `Player`.`{@table_prefix}Player` = '%loop-player%'"
97 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Breaks` = `Breaks`+%{break-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
98 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Placed` = `Placed`+%{place-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
99 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`BowKills` = `BowKills`+%{killsbow-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
100 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Shoot` = `Shoot`+%{shoot-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
101 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Walk` = `Walk`+%{walk-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
102 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Messages` = `Messages`+%{messages-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
103 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Commands` = `Commands`+%{commands-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
104 set {newdeaths-%loop-player%} to {newdeaths-%loop-player%} + {deaths-%loop-player%}
105 set {newkills-%loop-player%} to {newkills-%loop-player%} + {kills-%loop-player%}
106 set {newbreak-%loop-player%} to {newbreak-%loop-player%} + {break-%loop-player%}
107 set {newplace-%loop-player%} to {newplace-%loop-player%} + {place-%loop-player%}
108 set {newkillsbow-%loop-player%} to {newkillsbow-%loop-player%} + {killsbow-%loop-player%}
109 set {newshoot-%loop-player%} to {newshoot-%loop-player%} + {shoot-%loop-player%}
110 set {newwalk-%loop-player%} to {newwalk-%loop-player%} + {walk-%loop-player%}
111 set {newmessages-%loop-player%} to {newmessages-%loop-player%} + {messages-%loop-player%}
112 set {newcommands-%loop-player%} to {newcommands-%loop-player%} + {commands-%loop-player%}
113 set {deaths-%loop-player%} to 0
114 set {kills-%loop-player%} to 0
115 set {break-%loop-player%} to 0
116 set {place-%loop-player%} to 0
117 set {killsbow-%loop-player%} to 0
118 set {shoot-%loop-player%} to 0
119 set {walk-%loop-player%} to 0
120 set {messages-%loop-player%} to 0
121 set {commands-%loop-player%} to 0
122 send "&9SkStats >> &aThe stats have been synced with the mysql database"
123 if arg-1 is "top":
124 if arg-2 is not set:
125 send "&9SkStats >> &cYou don't have selected the top type &7(&eKills&7,&eDeaths&7,&eBreaks&7,&ePlaced&7,&eBowKills&7,&eShoot&7,&eWalk&7,&eMessages&7,&eCommands&7)"
126 else if arg-2 is not "kills" or "deaths" or "breaks" or "placed" or "bowkills" or "shoot" or "walk" or "messages" or "commands":
127 send "&9SkStats >> &cYou don't have selected the good top type &7(&eKills&7,&eDeaths&7,&eBreaks&7,&ePlaced&7,&eBowKills&7,&eShoot&7,&eWalk&7,&eMessages&7,&eCommands&7)"
128 else:
129 set {_stats0::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 0"
130 set {_stats1::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 1"
131 set {_stats2::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 2"
132 set {_stats3::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 3"
133 set {_stats4::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 4"
134 set {_stats5::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 5"
135 set {_stats6::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 6"
136 set {_stats7::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 7"
137 set {_stats8::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 8"
138 set {_stats9::*} to objects in column "Player" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 9"
139 set {_statsn0::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 0"
140 set {_statsn1::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 1"
141 set {_statsn2::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 2"
142 set {_statsn3::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 3"
143 set {_statsn4::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 4"
144 set {_statsn5::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 5"
145 set {_statsn6::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 6"
146 set {_statsn7::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 7"
147 set {_statsn8::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 8"
148 set {_statsn9::*} to objects in column "%arg-2%" from result of query "SELECT * FROM `{@table_prefix}Player` ORDER BY `%arg-2%` DESC LIMIT 1 OFFSET 9"
149 send "&9&lâ•”&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&l[ &6&lTop %arg-2% &9&l]&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•&3&lâ•&9&lâ•—"
150 send "&b Rank &8&m|&r &bPlayer &8&m|&r &bStats"
151 Send "&e 1er &8&m-&r &7%{_stats0::*}% &c%{_statsn0::*}%"
152 Send "&7 2nd &8&m-&r &7%{_stats1::*}% &c%{_statsn1::*}%"
153 Send "&6 3eme &8&m-&r &7%{_stats2::*}% &c%{_statsn2::*}%"
154 Send "&3 4 &8&m-&r &7%{_stats3::*}% &c%{_statsn3::*}%"
155 Send "&3 5 &8&m-&r &7%{_stats4::*}% &c%{_statsn4::*}%"
156 Send "&3 6 &8&m-&r &7%{_stats5::*}%&c %{_statsn5::*}%"
157 Send "&3 7 &8&m-&r &7%{_stats6::*}% &c%{_statsn6::*}%"
158 Send "&3 8 &8&m-&r &7%{_stats7::*}% &c%{_statsn7::*}%"
159 Send "&3 9 &8&m-&r &7%{_stats8::*}% &c%{_statsn8::*}%"
160 Send "&3 10 &8&m-&r &7%{_stats9::*}%&c %{_statsn9::*}%"
161 send "&b Rank &9&m|&r &bPlayer &9&m|&r &bStats"
162On script load:
163 update "CREATE TABLE IF NOT EXISTS `{@table_prefix}Player` (`Player` varchar(255),`Kills` varchar(255),`Deaths` varchar(255),`Breaks` varchar(255),`Placed` varchar(255),`FirstJoin` varchar(255),`BowKills` varchar(255),`Shoot` varchar(255),`Walk` varchar(255),`Messages` varchar(255),`Commands` varchar(255))"
164On join:
165 if {firstjoin-%player%} is not set:
166 set {deaths-%player%} to 0
167 set {kills-%player%} to 0
168 set {break-%player%} to 0
169 set {place-%player%} to 0
170 set {killsbow-%player%} to 0
171 set {shoot-%player%} to 0
172 set {walk-%player%} to 0
173 set {messages-%player%} to 0
174 set {commands-%player%} to 0
175 set {newdeaths-%player%} to 0
176 set {newkills-%player%} to 0
177 set {newbreak-%player%} to 0
178 set {newplace-%player%} to 0
179 set {newkillsbow-%player%} to 0
180 set {newshoot-%player%} to 0
181 set {newwalk-%player%} to 0
182 set {newmessages-%player%} to 0
183 set {newcommands-%player%} to 0
184 add player to {statslistplayer::*}
185 set {firstjoin-%player%} to "%now%"
186 update "INSERT INTO `{@table_prefix}Player` (`Player`, `Kills`, `Deaths`, `Breaks`, `Placed`, `FirstJoin`, `BowKills`, `Shoot`, `Walk`, `Messages`, `Commands`) VALUES ('%player%', '0', '0', '0', '0', '%now%', '0', '0', '0', '0', '0')"
187On death:
188 attacker is player
189 victim is player
190 add 1 to {deaths-%victim%}
191 add 1 to {kills-%attacker%}
192On shoot:
193 shooter is player
194 add 1 to {shoot-%shooter%}
195On death:
196 attacker is shooter
197 attacker is player
198 add 1 to {killsbow-%attacker%}
199On break:
200 add 1 to {break-%player%}
201On place:
202 add 1 to {place-%player%}
203On chat:
204 add 1 to {messages-%player%}
205On command:
206 add 1 to {commands-%player%}
207every 5 ticks:
208 loop all players:
209 if {walk-%loop-player%-loc} is not set:
210 set {walk-%loop-player%-loc} to location of block below loop-player
211 add 1 to {walk-%loop-player%}
212 else if {walk-%loop-player%-loc} is not location of block below loop-player:
213 set {walk-%loop-player%-loc} to location of block below loop-player
214 add 1 to {walk-%loop-player%}
215every {@refresh} seconds:
216 loop all players:
217 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Deaths` = `Deaths`+%{deaths-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
218 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Kills` = `Kills`+%{kills-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
219 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Breaks` = `Breaks`+%{break-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
220 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Placed` = `Placed`+%{place-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
221 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`BowKills` = `BowKills`+%{killsbow-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
222 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Shoot` = `Shoot`+%{shoot-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
223 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Walk` = `Walk`+%{walk-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
224 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Messages` = `Messages`+%{messages-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
225 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Commands` = `Commands`+%{commands-%loop-player%}% WHERE `{@table_prefix}Player`.`Player` = '%loop-player%'"
226 set {newdeaths-%loop-player%} to {newdeaths-%loop-player%} + {deaths-%loop-player%}
227 set {newkills-%loop-player%} to {newkills-%loop-player%} + {kills-%loop-player%}
228 set {newbreak-%loop-player%} to {newbreak-%loop-player%} + {break-%loop-player%}
229 set {newplace-%loop-player%} to {newplace-%loop-player%} + {place-%loop-player%}
230 set {newkillsbow-%loop-player%} to {newkillsbow-%loop-player%} + {killsbow-%loop-player%}
231 set {newshoot-%loop-player%} to {newshoot-%loop-player%} + {shoot-%loop-player%}
232 set {newwalk-%loop-player%} to {newwalk-%loop-player%} + {walk-%loop-player%}
233 set {newmessages-%loop-player%} to {newmessages-%loop-player%} + {messages-%loop-player%}
234 set {newcommands-%loop-player%} to {newcommands-%loop-player%} + {commands-%loop-player%}
235 set {deaths-%loop-player%} to 0
236 set {kills-%loop-player%} to 0
237 set {break-%loop-player%} to 0
238 set {place-%loop-player%} to 0
239 set {killsbow-%loop-player%} to 0
240 set {shoot-%loop-player%} to 0
241 set {walk-%loop-player%} to 0
242 set {messages-%loop-player%} to 0
243 set {commands-%loop-player%} to 0
244On quit:
245 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Deaths` = `Deaths`+%{deaths-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
246 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Kills` = `Kills`+%{kills-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
247 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Breaks` = `Breaks`+%{break-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
248 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Placed` = `Placed`+%{place-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
249 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`BowKills` = `BowKills`+%{killsbow-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
250 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Shoot` = `Shoot`+%{shoot-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
251 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Walk` = `Walk`+%{walk-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
252 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Messages` = `Messages`+%{messages-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
253 update "UPDATE `{@table_prefix}Player` SET `{@table_prefix}Player`.`Commands` = `Commands`+%{commands-%player%}% WHERE `{@table_prefix}Player`.`Player` = '%player%'"
254 set {newdeaths-%player%} to {newdeaths-%player%} + {deaths-%player%}
255 set {newkills-%player%} to {newkills-%player%} + {kills-%player%}
256 set {newbreak-%player%} to {newbreak-%player%} + {break-%player%}
257 set {newplace-%player%} to {newplace-%player%} + {place-%player%}
258 set {newkillsbow-%player%} to {newkillsbow-%player%} + {killsbow-%player%}
259 set {newshoot-%player%} to {newshoot-%player%} + {shoot-%player%}
260 set {newwalk-%player%} to {newwalk-%player%} + {walk-%player%}
261 set {newmessages-%player%} to {newmessages-%player%} + {messages-%player%}
262 set {newcommands-%player%} to {newcommands-%player%} + {commands-%player%}
263 set {deaths-%player%} to 0
264 set {kills-%player%} to 0
265 set {break-%player%} to 0
266 set {place-%player%} to 0
267 set {killsbow-%player%} to 0
268 set {shoot-%player%} to 0
269 set {walk-%player%} to 0
270 set {messages-%player%} to 0
271 set {commands-%player%} to 0