Advertisement
CREAMPAN0408

Untitled

Feb 20th, 2019
74
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 20.83 KB | None | 0 0
  1. options:
  2. ver: 1.1.3-Minepics_b1
  3. alert: &8(&c!&8)&cSafeBot &8>> &6%event-player% &7Detect Reason:&c
  4. alert2: &8(&c!&8)&cSafeBot &8>> &6%shooter% &7Detect Reason:&c
  5. alert3: &8(&c!&8)&cSafeBot &8>> &6%attacker% &7Detect Reason:&c
  6. alert4: &8(&c!&8)&cSafeBot &8>> &6%victim% &7Detect Reason:&c
  7. warn: &8(&4!&8)&4SafeBot &8>> &6%event-player% &7Detect Reason:&4
  8. warn2: &8(&4!&8)&4SafeBot &8>> &6%shooter% &7Detect Reason:&4
  9. warn3: &8(&4!&8)&4SafeBot &8>> &6%attacker% &7Detect Reason:&4
  10. warn4: &8(&4!&8)&4SafeBot &8>> &6%victim% &7Detect Reason:&4
  11. kick: &8(&c!&8)&cSafeBot &8- &cAntiCheat%nl%%nl%&fKicked from server: &c
  12. range: 5.4
  13. auto-update: false #アップデートサーバーは止まっているので絶対にtrueにしないでください。
  14. auto-kick: false #テスト環境以外でのテストを行っていませんのでtrueにする方は自己責任でお願いいたします。
  15. on join:
  16. player has permission "safebot.ver":
  17. wait a seconds
  18. if text from "http://kusosaba.net:20000" = "{@ver}":
  19. stop
  20. else:
  21. if {@auto-update} is true:
  22. broadcast "&8(&a!&8)&bSafebot &8>> &6Update Downloading..."
  23. $ thread
  24. set {_new} to text from "http://kusosaba.net:20000"
  25. create folder "plugins/Skript/scripts/SafeBot/%{_new}%"
  26. df "plugins/skript/scripts/safebot.sk"
  27. download file from "http://kusosaba.net:20000/download/safebot.sk" to file "plugins/skript/scripts/safebot.sk"
  28. download file from "http://kusosaba.net:20000/download/oldsafebot.txt" to file "plugins/skript/scripts/safebot/%{_new}%/oldsafebot.txt"
  29. if file "plugins/skript/scripts/safebot/config.yml" doesn't exists:
  30. create file "plugins/skript/scripts/safebot/config.yml"
  31. wf "coming soon" to "plugins/skript/scripts/safebot/config.yml"
  32. broadcast "&8(&a!&8)&bSafebot &8>> &6Auto Installing update..."
  33. console command "sk reload safebot"
  34. broadcast "&8(&a!&8)&bSafebot &8>> &6Auto Install Successful."
  35. stop
  36. # $ thread
  37. # set {_new} to text from "http://kusosaba.net:20000"
  38. # send "&9&m "
  39. # send "&8(&a!&8)&bSafebot &8>> &eA new version was found!"
  40. # send "&8(&a!&8)&bSafebot &8>> &eCurrently used version: &6{@ver}"
  41. # send "&8(&a!&8)&bSafebot &8>> &eNew version: &6%{_new}%"
  42. # send "&9&m "
  43. command /safebot [<text>]:
  44. permission: safebot.info
  45. trigger:
  46. if arg is not set:
  47. send "&aSafeBot AntiCheat &fversion &a{@ver}"
  48. send "&f100%% Skript."
  49. send "Author: &a%offline player from uuid ""00bc6377-e569-441f-bf59-a83f550aa6d4""%"
  50. # if arg is "ver" or "check":
  51. # if text from "http://kusosaba.net:20000" = "{@ver}": # アップデートサーバーは止まっているので使えません。
  52. # send "&8(&a!&8)&bSafeBot &8>> &eThis is the latest version({@ver})."
  53. # stop
  54. # else:
  55. # set {_new} to text from "http://kusosaba.net:20000"
  56. # send "&9&m "
  57. # send "&8(&a!&8)&bSafebot &8>> &eA new version was found!"
  58. # send "&8(&a!&8)&bSafebot &8>> &eCurrently used version: &6{@ver}"
  59. # send "&8(&a!&8)&bSafebot &8>> &eNew version: &6%{_new}%"
  60. # send "&9&m "
  61. # if arg is "update": # アップデートサーバーは止まっているので(以下略
  62. # if text from "http://kusosaba.net:20000" = "{@ver}":
  63. # stop
  64. # else:
  65. # broadcast "&8(&a!&8)&bSafebot &8>> &6Update Downloading..."
  66. # set {_new} to text from "http://kusosaba.net:20000"
  67. # create folder "plugins/Skript/scripts/SafeBot/%{_new}%"
  68. # df "plugins/skript/scripts/safebot.sk"
  69. # download file from "http://kusosaba.net:20000/download/safebot.sk" to file "plugins/skript/scripts/safebot.sk"
  70. # download file from "http://kusosaba.net:20000/download/oldsafebot.txt" to file "plugins/skript/scripts/safebot/%{_new}%/oldsafebot.txt"
  71. # broadcast "&8(&a!&8)&bSafebot &8>> &6Installing update..."
  72. # console command "sk reload safebot"
  73. # broadcast "&8(&a!&8)&bSafebot &8>> &6Install Successful."
  74. # stop
  75. function cf(f: text):
  76. create folder "plugins/%{_f}%"
  77. function df(f: text):
  78. df "%{_f}%"
  79. function cfl(f: text):
  80. create file "%{_f}%"
  81. on load:
  82. create folder "plugins/Skript/scripts/0x01"
  83. create folder "plugins/Skript/scripts/0x02"
  84. on teleport:
  85. set {_dir} to "plugins/Skript/scripts/0x02/%player's uuid%.txt"
  86. df("%{_dir}%")
  87. if "%teleport cause%" is "plugin" or "ender pearl" or "command":
  88. cfl("plugins/Skript/scripts/0x01/%player's uuid%.txt")
  89. wf "true" to "plugins/Skript/scripts/0x01/%player's uuid%.txt"
  90. else if "%teleport cause%" is "unknown":
  91. cfl("plugins/Skript/scripts/0x01/%player's uuid%.txt")
  92. wf "unk" to "plugins/Skript/scripts/0x01/%player's uuid%.txt"
  93. wait 5 ticks
  94. df("plugins/Skript/scripts/0x01/%player's uuid%.txt")
  95.  
  96. on packet:
  97. event-player's flight mode is false
  98. event-player's gamemode is survival or adventure
  99. event-string is "PacketPlayInFlying"
  100. ground state of event-player is false
  101. if difference between {LastFlight.%event-player%} and now <= 1 seconds:
  102. difference between {damagemoment.%event-player%} and now > 2 seconds
  103. block at event-player is not ladder or vines or barrier or Cobweb
  104. add 1 to {Flight.%event-player%}
  105. if {Flight.%event-player%} >= 8:
  106. if {Flight.%event-player%} <= 18:
  107. loop all players:
  108. if loop-player has permission "safebot.alert":
  109. send "{@alert}Too many packets" to loop-player
  110. else:
  111. loop all players:
  112. if loop-player has permission "safebot.alert":
  113. send "{@warn}Too many packets" to loop-player
  114. wait a tick
  115. if {@auto-kick} is true:
  116. kick event-player due to "{@kick}Too many packets"
  117. else:
  118. clear {Flight.%event-player%}
  119. set {LastFlight.%event-player%} to now
  120. #on any move:
  121. # player's gamemode is survival or adventure:
  122. # player's fly mode is false:
  123. # player is not riding a entity:
  124. # player has speed:
  125. # stop
  126. # loop all blocks in radius 1.7 around player:
  127. # if loop-block is stairs or slab or double slab:
  128. # stop
  129. # else:
  130. # set {ac.speedB.loc1.%player's UUID%} to location of player
  131. # wait 0.05 seconds
  132. # y coord of {ac.speedB.loc1.%player's UUID%} - y coord of player < 0.0001:
  133. # difference between {ac.jump.%player's UUID%} and now is bigger than 1 seconds:
  134. # difference between {ac.damage.%player's UUID%} and now is bigger than 0.8 seconds:
  135. # difference between {ac.sprint.%player's UUID%} and now is bigger than 0.5 seconds:
  136. # difference between {ac.fly.%player's UUID%} and now is bigger than 0.5 seconds:
  137. # difference between {ac.explode.%player's UUID%} and now is bigger than 3 seconds:
  138. # "%block 0.2 below player%" is not "air":
  139. # distance between {ac.speedB.loc1.%player's UUID%} and location of player > 0.5:
  140. # difference between {ac.speedB.detec.%player's UUID%} and now is less than 0.55 seconds:
  141. # loop all players:
  142. # if loop-player has permission "safebot.alert":
  143. # send "{@alert}Speed"
  144. # {ac.count.%player's UUID%} >= 2:
  145. # loop 5 times:
  146. # strike lightning effect at player
  147. # wait a tick
  148. # kick player due to "{@kick}Speed"
  149. # stop
  150. # else:
  151. # set {ac.speedB.detec.%player's UUID%} to now
  152. # stop
  153. on any movement:
  154. player's gamemode is adventure or survival
  155. player is on ground
  156. block at player is air
  157. block under player is air
  158. player's flight mode is not true
  159. set {_count} to 0
  160. loop all blocks in radius 2.5 around player:
  161. if loop-block is stairs:
  162. stop
  163. if loop-block is slab:
  164. stop
  165. loop all blocks in radius 1.7 around player:
  166. if loop-block is not air:
  167. add 1 to {_count}
  168. if {_count} < 1:
  169. teleport player to player
  170. loop all players:
  171. if loop-player has permission "a":
  172. send "{@alert}NoFall" to loop-player
  173. tps >= 19.5:
  174. wait a tick
  175. if {@auto-kick} is true:
  176. kick player due to "{@kick}NoFall"
  177. on any move:
  178. player's gamemode is survival or adventure
  179. player's flight mode is false
  180. player's vehicle is not set
  181. player is not riding entity
  182. if ground state of player is true:
  183. set {FLY.sol.%player%} to y-coord of player
  184. set {FLY.SLOC.%player%} to location of player
  185. else:
  186. if block at player is ladder or vines or fence or sign or iron bars or nether fence or fence gate or trapdoor:
  187. set {FLY.sol.%player%} to y-coord of player
  188. set {FLY.SLOC.%player%} to location of player
  189. if "%block below player%" or "%block at player%" is "water" or "lava":
  190. set {FLY.sol.%player%} to y-coord of player
  191. set {FLY.SLOC.%player%} to location of player
  192. {FLY.sol.%player%} < y-coord of player
  193. if difference between {FLY.sol.%event-player%} and y-coord of player >= 1.3:
  194. set {_next} to true
  195. if distance between {FLY.SLOC.%event-player%} and location of player >= 10.5:
  196. set {_next} to true
  197. {_next} is true
  198. difference between {damagemoment.%event-player%} and now > 2 seconds
  199. difference between {TNTmoment.%event-player%} and now >= 8 seconds
  200. player is alive
  201. add 1 to {safebot.Alerts::%player%::Fly}
  202. set {FLY.sol.%player%} to y-coord of player
  203. set {FLY.SLOC.%player%} to location of player
  204. if "%block below player%" or "%block at player%" is "water" or "lava":
  205. stop
  206. if {bypass.speed.%player%} is true:
  207. stop
  208. if {safebot.Alerts::%player%::Fly} >= 1:
  209. if {safebot.Alerts::%player%::Fly} <= 7:
  210. loop all players:
  211. if loop-player has permission "safebot.alert":
  212. send "{@alert}Flight" to loop-player
  213. if {safebot.Alerts::%event-player%::Fly} >= 8:
  214. {flybypass} is true:
  215. stop
  216. {flybypass.%player%} is true:
  217. stop
  218. loop all players:
  219. if loop-player has permission "safebot.alert":
  220. send "{@warn}Flight" to loop-player
  221. wait a tick
  222. if {@auto-kick} is true:
  223. kick player due to "{@kick}Flight"
  224. on packet:
  225. event-string is "PacketPlayInPosition"
  226. if {PlayerPacket.last.%event-player%} is event-player's location:
  227. if difference between {LastPacketSend.%event-player%} and now <= 1 second:
  228. add 1 to {SendedPackets.%event-player%}
  229. else:
  230. if {SendedPackets.%event-player%} >= 100:
  231. loop all players:
  232. if loop-player has permission "safebot.alert":
  233. send "{@warn}Too many packets" to loop-player
  234. wait a tick
  235. if {@auto-kick} is true:
  236. kick event-player due to "{@kick}Too many packets"
  237. else if {SendedPackets.%event-player%} >= 60:
  238. loop all players:
  239. if loop-player has permission "safebot.alert":
  240. send "{@warn}Too many packets" to loop-player
  241. else if {SendedPackets.%event-player%} >= 20:
  242. loop all players:
  243. if loop-player has permission "safebot.alert":
  244. send "{@alert}Too many packets" to loop-player
  245. clear {SendedPackets.%event-player%}
  246. set {LastPacketSend.%event-player%} to now
  247. set {PlayerPacket.last.%event-player%} to event-player's location
  248. on join:
  249. set {damagemoment.%player%} to now
  250. set {TNTmoment.%player%} to now
  251. delete {litlejump.%player%}
  252. delete {before.litlejump.%player%}
  253. delete {step.%player%}
  254. delete {scpack.%player%}
  255.  
  256. on quit:
  257. delete {litlejump.%player%}
  258. delete {before.litlejump.%player%}
  259. delete {step.%player%}
  260. delete {scpack.%player%}
  261. on packet:
  262. event-string is "PacketPlayOutUpdateHealth"
  263. event-player's gamemode is survival or adventure
  264. set {_food} to packet field "b"
  265. if difference between {LASTFOOD1.%event-player%} and now <= 0.2 second:
  266. {LASTFOOD2.%event-player%} < {_food}:
  267. loop all players:
  268. if loop-player has permission "safebot.alert":
  269. send "{@warn}FastEat" to loop-player
  270. set {LASTFOOD1.%event-player%} to now
  271. set {LASTFOOD2.%event-player%} to {_food}
  272. on join:
  273. set {sfw.%player%} to 0
  274. delete {fasteat.%player%}
  275. delete {fastbow.%player%}
  276. delete {place.start.%player%}
  277. wf "" to "Plugins/Skript/scripts/0x01/%player's uuid%.txt"
  278. wf "" to "Plugins/Skript/scripts/0x02/%player's uuid%.txt"
  279.  
  280. on load:
  281. loop all players:
  282. set {sfw.%loop-player%} to 0
  283. delete {fasteat.%loop-player%}
  284. delete {fastbow.%loop-player%}
  285. on quit:
  286. set {sfw.%player%} to 0
  287. delete {fasteat.%player%}
  288. delete {fastbow.%player%}
  289. delete {place.start.%player%}
  290. on rightclick:
  291. set {fasteat.%player%} to now
  292. set {fastbow.%player%} to now
  293. on eat:
  294. if difference between {fasteat.%player%} and now is less than 0.8 seconds:
  295. tps >= 19.4
  296. cancel event
  297. if difference between {fasteat.%player%} and now is greater than 0.4 seconds:
  298. loop all players:
  299. if loop-player has permission "safebot.alert":
  300. send "{@alert}FastEat" to loop-player
  301. else:
  302. loop all players:
  303. if loop-player has permission "safebot.alert":
  304. send "{@warn}FastEat" to loop-player
  305. wait a tick
  306. if {@auto-kick} is true:
  307. kick player due to "{@kick}FastEat"
  308. on shoot:
  309. if shooter's tool is not bow:
  310. stop
  311. if difference between {fastbow.%shooter%} and now is less than 1.2 ticks:
  312. tps >= 19.4
  313. loop all players:
  314. if loop-player has permission "safebot.alert":
  315. send "{@warn2}FastBow" to loop-player
  316. cancel event
  317. wait a tick
  318. if {@auto-kick} is true:
  319. kick shooter due to "{@kick}FastBow"
  320. on any move:
  321. "%block 0.1 below player%" is "water" or "lava"
  322. player's gamemode is survival or adventure
  323. player's fly mode is false
  324. player is not riding a entity
  325. block north player is air
  326. block south player is air
  327. block west player is air
  328. block east player is air
  329. "%block north below player%" and "%block south below player%" and "%block west below player%" and "%block east below player%" is "water" or "lava"
  330. wait 10 ticks
  331. player is not riding a entity
  332. "%block 0.1 below player%" is "water" or "lava"
  333. block north player is air
  334. block south player is air
  335. block west player is air
  336. block east player is air
  337. "%block north below player%" and "%block south below player%" and "%block west below player%" and "%block east below player%" is "water" or "lava"
  338. "%block north east below player%" is "water" or "lava"
  339. "%block north west below player%" is "water" or "lava"
  340. "%block south west below player%" is "water" or "lava"
  341. "%block south east below player%" is "water" or "lava"
  342. "%block north east player%" is "water" or "lava" or "air"
  343. "%block north west player%" is "water" or "lava" or "air"
  344. "%block south west player%" is "water" or "lava" or "air"
  345. "%block south east player%" is "water" or "lava" or "air"
  346. "%block north player%" is "water" or "lava" or "air"
  347. "%block west player%" is "water" or "lava" or "air"
  348. "%block south player%" is "water" or "lava" or "air"
  349. "%block east player%" is "water" or "lava" or "air"
  350. "%block at player%" is "air"
  351. loop all players:
  352. if loop-player has permission "safebot.alert":
  353. send "{@warn}Jesus" to loop-player
  354. wait 10 ticks
  355. player is not riding a entity
  356. "%block 0.1 below player%" is "water" or "lava"
  357. block north player is air
  358. block south player is air
  359. block west player is air
  360. block east player is air
  361. "%block north below player%" is "water" or "lava"
  362. "%block south below player%" is "water" or "lava"
  363. "%block west below player%" is "water" or "lava"
  364. "%block east below player%" is "water" or "lava"
  365. "%block north east below player%" is "water" or "lava"
  366. "%block north west below player%" is "water" or "lava"
  367. "%block south west below player%" is "water" or "lava"
  368. "%block south east below player%" is "water" or "lava"
  369. "%block north east player%" is "water" or "lava" or "air"
  370. "%block north west player%" is "water" or "lava" or "air"
  371. "%block south west player%" is "water" or "lava" or "air"
  372. "%block south east player%" is "water" or "lava" or "air"
  373. "%block north player%" is "water" or "lava" or "air"
  374. "%block west player%" is "water" or "lava" or "air"
  375. "%block south player%" is "water" or "lava" or "air"
  376. "%block east player%" is "water" or "lava" or "air"
  377. "%block at player%" is "air"
  378. wait a tick
  379. if {@auto-kick} is true:
  380. kick player due to "{@kick}Jesus"
  381. on command:
  382. set {flybypass} to true
  383. wait 10 ticks
  384. delete {flybypass}
  385. on command:
  386. "%command%" is "gamemode":
  387. set {flybypass.%player%} to true
  388. wait 10 ticks
  389. delete {flybypass.%player%}
  390. on load:
  391. delete {flybypass}
  392. on join:
  393. delete {ka.%player%}
  394. on damage:
  395. victim is a entity or a player
  396. victim is not a ender dragon
  397. attacker is a player
  398. damage cause is not a projectile:
  399. tool of the attacker is a bow or a snowball or a egg or a ender pearl or a fishing rod:
  400. stop
  401. else:
  402. damage wasn't caused by thorns
  403. add 1 to {dmg.%attacker%}
  404. set {_range} to "{@range}" parsed as number
  405. distance between attacker and victim is greater than {_range}:
  406. cancel event
  407. add 1 to {ka.%attacker%}
  408. if {ka.lastcheck.%attacker%} is not set:
  409. set {ka.lastcheck.%attacker%} to now
  410. if difference between {ka.lastcheck.%attacker%} and now is higher than 1.5 seconds:
  411. if {ka.%attacker%} >= 9:
  412. loop all players:
  413. loop-player has permission "safebot.alert":
  414. send "{@warn3}KillAura" to loop-player
  415. delete {ka.%attacker%}
  416. if {@auto-kick} is true:
  417. kick attacker due to "{@kick}KillAura"
  418. else:
  419. loop all players:
  420. loop-player has permission "safebot.alert":
  421. send "{@alert3}KillAura" to loop-player
  422. on damage:
  423. set {bypass.speed.%victim%} to true
  424. wait 10 ticks
  425. delete {bypass.speed.%victim%}
  426. on damage:
  427. attacker's tool is a sword
  428. attacker is blocking
  429. cancel event
  430. on damage:
  431. victim is a player
  432. attacker is a player
  433. set {kb.%victim%} to true
  434. victim's health < victim's max health
  435. block at victim's location is not cobweb or cactus or lava or water
  436. damage wasn't caused by lava or fire or burning or fall or poison or wither
  437. victim is not riding
  438. victim's food level is not 0
  439. victim doesn't have poison
  440. victim doesn't have wither
  441. victim isn't burning
  442. wait 6 ticks
  443. damage is set
  444. {kb.%victim%} is true:
  445. victim isn't burning
  446. add 1 to {antikb.%victim%}
  447. {antikb.%victim%} >= 6:
  448. loop all players:
  449. loop-player has permission "safebot.alert":
  450. send "{@warn4}Velocity" to loop-player
  451. delete {antikb.%victim%}
  452. if {@auto-kick} is true:
  453. kick victim due to "{@kick}Velociy"
  454. else:
  455. loop all players:
  456. loop-player has permission "safebot.alert":
  457. send "{@alert4}Velocity" to loop-player
  458. on any move:
  459. {kb.%player%} is true
  460. delete {kb.%player%}
  461. remove 1 from {antikb.%player%}
  462. on heal:
  463. if player has regeneration:
  464. stop
  465. else:
  466. set {_dif} to difference between {heal.%player%} and now
  467. if {_dif} is less than 0.45 seconds:
  468. cancel event
  469. set {heal.%player%} to now
  470. add 1 to {cheal.%player%}
  471. if {cheal.%player%} >= 8:
  472. loop all players:
  473. if loop-player has permission "safebot.alert":
  474. send "{@warn}Regen" to loop-player
  475. delete {cheal.%player%}
  476. if {@auto-kick} is true:
  477. kick player due to "{@kick}Regen"
  478. else:
  479. loop all players:
  480. if loop-player has permission "safebot.alert":
  481. send "{@alert}Regen" to loop-player
  482. set {heal.%player%} to now
  483. on packet:
  484. event-string is "PacketPlayInPositionLook"
  485. if {place.start.%event-player%} is set:
  486. add 1 to {scpack.%player%}
  487. else:
  488. delete {scpack.%player%}
  489. on place:
  490. player's gamemode is not creative
  491. if {place.start.%player%} is not set:
  492. set {place.start.%player%} to true
  493. set {_this} to true
  494. if block 1 above target block is air:
  495. if block 1 below target block is set:
  496. block 1 south 2 below target block is air
  497. block 1 west 2 below target block is air
  498. block 1 north 2 below target block is air
  499. block 1 east 2 below target block is air
  500. block 1 south 1 below target block is air
  501. block 1 west 1 below target block is air
  502. block 1 north 1 below target block is air
  503. block 1 east 1 below target block is air
  504. add 1 to {sfw.%player%}
  505. if {sfw.%player%} >= 6:
  506. if {scpack.%player%} > 50:
  507. loop all players:
  508. loop-player has permission "safebot.alert":
  509. send "{@warn}Scaffold" to loop-player
  510. delete {place.start.%player%}
  511. delete {scpack.%player%}
  512. delete {sfw.%player%}
  513. if {@auto-kick} is true:
  514. kick player due to "{@kick}Scaffold"
  515. else if {scpack.%player%} > 30:
  516. loop all players:
  517. loop-player has permission "safebot.alert":
  518. send "{@warn}Scaffold" to loop-player
  519. else:
  520. if {sfw.%player%} >= 10:
  521. loop all players:
  522. loop-player has permission "safebot.alert":
  523. send "{@warn}Scaffold" to loop-player
  524. delete {place.start.%player%}
  525. delete {scpack.%player%}
  526. delete {sfw.%player%}
  527. if {@auto-kick} is true:
  528. kick player due to "{@kick}Scaffold"
  529. else:
  530. loop all players:
  531. loop-player has permission "safebot.alert":
  532. send "{@alert}Scaffold" to loop-player
  533. cancel event
  534. wait 1 seconds
  535. add -1 to {sfw.%player%}
  536. wait a seconds
  537. if {_this} is set:
  538. delete {place.start.%player%}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement