Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- options:
- ver: 1.1.3-Minepics_b1
- alert: &8(&c!&8)&cSafeBot &8>> &6%event-player% &7Detect Reason:&c
- alert2: &8(&c!&8)&cSafeBot &8>> &6%shooter% &7Detect Reason:&c
- alert3: &8(&c!&8)&cSafeBot &8>> &6%attacker% &7Detect Reason:&c
- alert4: &8(&c!&8)&cSafeBot &8>> &6%victim% &7Detect Reason:&c
- warn: &8(&4!&8)&4SafeBot &8>> &6%event-player% &7Detect Reason:&4
- warn2: &8(&4!&8)&4SafeBot &8>> &6%shooter% &7Detect Reason:&4
- warn3: &8(&4!&8)&4SafeBot &8>> &6%attacker% &7Detect Reason:&4
- warn4: &8(&4!&8)&4SafeBot &8>> &6%victim% &7Detect Reason:&4
- kick: &8(&c!&8)&cSafeBot &8- &cAntiCheat%nl%%nl%&fKicked from server: &c
- range: 5.4
- auto-update: false #アップデートサーバーは止まっているので絶対にtrueにしないでください。
- auto-kick: false #テスト環境以外でのテストを行っていませんのでtrueにする方は自己責任でお願いいたします。
- on join:
- player has permission "safebot.ver":
- wait a seconds
- if text from "http://kusosaba.net:20000" = "{@ver}":
- stop
- else:
- if {@auto-update} is true:
- broadcast "&8(&a!&8)&bSafebot &8>> &6Update Downloading..."
- $ thread
- set {_new} to text from "http://kusosaba.net:20000"
- create folder "plugins/Skript/scripts/SafeBot/%{_new}%"
- df "plugins/skript/scripts/safebot.sk"
- download file from "http://kusosaba.net:20000/download/safebot.sk" to file "plugins/skript/scripts/safebot.sk"
- download file from "http://kusosaba.net:20000/download/oldsafebot.txt" to file "plugins/skript/scripts/safebot/%{_new}%/oldsafebot.txt"
- if file "plugins/skript/scripts/safebot/config.yml" doesn't exists:
- create file "plugins/skript/scripts/safebot/config.yml"
- wf "coming soon" to "plugins/skript/scripts/safebot/config.yml"
- broadcast "&8(&a!&8)&bSafebot &8>> &6Auto Installing update..."
- console command "sk reload safebot"
- broadcast "&8(&a!&8)&bSafebot &8>> &6Auto Install Successful."
- stop
- # $ thread
- # set {_new} to text from "http://kusosaba.net:20000"
- # send "&9&m "
- # send "&8(&a!&8)&bSafebot &8>> &eA new version was found!"
- # send "&8(&a!&8)&bSafebot &8>> &eCurrently used version: &6{@ver}"
- # send "&8(&a!&8)&bSafebot &8>> &eNew version: &6%{_new}%"
- # send "&9&m "
- command /safebot [<text>]:
- permission: safebot.info
- trigger:
- if arg is not set:
- send "&aSafeBot AntiCheat &fversion &a{@ver}"
- send "&f100%% Skript."
- send "Author: &a%offline player from uuid ""00bc6377-e569-441f-bf59-a83f550aa6d4""%"
- # if arg is "ver" or "check":
- # if text from "http://kusosaba.net:20000" = "{@ver}": # アップデートサーバーは止まっているので使えません。
- # send "&8(&a!&8)&bSafeBot &8>> &eThis is the latest version({@ver})."
- # stop
- # else:
- # set {_new} to text from "http://kusosaba.net:20000"
- # send "&9&m "
- # send "&8(&a!&8)&bSafebot &8>> &eA new version was found!"
- # send "&8(&a!&8)&bSafebot &8>> &eCurrently used version: &6{@ver}"
- # send "&8(&a!&8)&bSafebot &8>> &eNew version: &6%{_new}%"
- # send "&9&m "
- # if arg is "update": # アップデートサーバーは止まっているので(以下略
- # if text from "http://kusosaba.net:20000" = "{@ver}":
- # stop
- # else:
- # broadcast "&8(&a!&8)&bSafebot &8>> &6Update Downloading..."
- # set {_new} to text from "http://kusosaba.net:20000"
- # create folder "plugins/Skript/scripts/SafeBot/%{_new}%"
- # df "plugins/skript/scripts/safebot.sk"
- # download file from "http://kusosaba.net:20000/download/safebot.sk" to file "plugins/skript/scripts/safebot.sk"
- # download file from "http://kusosaba.net:20000/download/oldsafebot.txt" to file "plugins/skript/scripts/safebot/%{_new}%/oldsafebot.txt"
- # broadcast "&8(&a!&8)&bSafebot &8>> &6Installing update..."
- # console command "sk reload safebot"
- # broadcast "&8(&a!&8)&bSafebot &8>> &6Install Successful."
- # stop
- function cf(f: text):
- create folder "plugins/%{_f}%"
- function df(f: text):
- df "%{_f}%"
- function cfl(f: text):
- create file "%{_f}%"
- on load:
- create folder "plugins/Skript/scripts/0x01"
- create folder "plugins/Skript/scripts/0x02"
- on teleport:
- set {_dir} to "plugins/Skript/scripts/0x02/%player's uuid%.txt"
- df("%{_dir}%")
- if "%teleport cause%" is "plugin" or "ender pearl" or "command":
- cfl("plugins/Skript/scripts/0x01/%player's uuid%.txt")
- wf "true" to "plugins/Skript/scripts/0x01/%player's uuid%.txt"
- else if "%teleport cause%" is "unknown":
- cfl("plugins/Skript/scripts/0x01/%player's uuid%.txt")
- wf "unk" to "plugins/Skript/scripts/0x01/%player's uuid%.txt"
- wait 5 ticks
- df("plugins/Skript/scripts/0x01/%player's uuid%.txt")
- on packet:
- event-player's flight mode is false
- event-player's gamemode is survival or adventure
- event-string is "PacketPlayInFlying"
- ground state of event-player is false
- if difference between {LastFlight.%event-player%} and now <= 1 seconds:
- difference between {damagemoment.%event-player%} and now > 2 seconds
- block at event-player is not ladder or vines or barrier or Cobweb
- add 1 to {Flight.%event-player%}
- if {Flight.%event-player%} >= 8:
- if {Flight.%event-player%} <= 18:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@alert}Too many packets" to loop-player
- else:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@warn}Too many packets" to loop-player
- wait a tick
- if {@auto-kick} is true:
- kick event-player due to "{@kick}Too many packets"
- else:
- clear {Flight.%event-player%}
- set {LastFlight.%event-player%} to now
- #on any move:
- # player's gamemode is survival or adventure:
- # player's fly mode is false:
- # player is not riding a entity:
- # player has speed:
- # stop
- # loop all blocks in radius 1.7 around player:
- # if loop-block is stairs or slab or double slab:
- # stop
- # else:
- # set {ac.speedB.loc1.%player's UUID%} to location of player
- # wait 0.05 seconds
- # y coord of {ac.speedB.loc1.%player's UUID%} - y coord of player < 0.0001:
- # difference between {ac.jump.%player's UUID%} and now is bigger than 1 seconds:
- # difference between {ac.damage.%player's UUID%} and now is bigger than 0.8 seconds:
- # difference between {ac.sprint.%player's UUID%} and now is bigger than 0.5 seconds:
- # difference between {ac.fly.%player's UUID%} and now is bigger than 0.5 seconds:
- # difference between {ac.explode.%player's UUID%} and now is bigger than 3 seconds:
- # "%block 0.2 below player%" is not "air":
- # distance between {ac.speedB.loc1.%player's UUID%} and location of player > 0.5:
- # difference between {ac.speedB.detec.%player's UUID%} and now is less than 0.55 seconds:
- # loop all players:
- # if loop-player has permission "safebot.alert":
- # send "{@alert}Speed"
- # {ac.count.%player's UUID%} >= 2:
- # loop 5 times:
- # strike lightning effect at player
- # wait a tick
- # kick player due to "{@kick}Speed"
- # stop
- # else:
- # set {ac.speedB.detec.%player's UUID%} to now
- # stop
- on any movement:
- player's gamemode is adventure or survival
- player is on ground
- block at player is air
- block under player is air
- player's flight mode is not true
- set {_count} to 0
- loop all blocks in radius 2.5 around player:
- if loop-block is stairs:
- stop
- if loop-block is slab:
- stop
- loop all blocks in radius 1.7 around player:
- if loop-block is not air:
- add 1 to {_count}
- if {_count} < 1:
- teleport player to player
- loop all players:
- if loop-player has permission "a":
- send "{@alert}NoFall" to loop-player
- tps >= 19.5:
- wait a tick
- if {@auto-kick} is true:
- kick player due to "{@kick}NoFall"
- on any move:
- player's gamemode is survival or adventure
- player's flight mode is false
- player's vehicle is not set
- player is not riding entity
- if ground state of player is true:
- set {FLY.sol.%player%} to y-coord of player
- set {FLY.SLOC.%player%} to location of player
- else:
- if block at player is ladder or vines or fence or sign or iron bars or nether fence or fence gate or trapdoor:
- set {FLY.sol.%player%} to y-coord of player
- set {FLY.SLOC.%player%} to location of player
- if "%block below player%" or "%block at player%" is "water" or "lava":
- set {FLY.sol.%player%} to y-coord of player
- set {FLY.SLOC.%player%} to location of player
- {FLY.sol.%player%} < y-coord of player
- if difference between {FLY.sol.%event-player%} and y-coord of player >= 1.3:
- set {_next} to true
- if distance between {FLY.SLOC.%event-player%} and location of player >= 10.5:
- set {_next} to true
- {_next} is true
- difference between {damagemoment.%event-player%} and now > 2 seconds
- difference between {TNTmoment.%event-player%} and now >= 8 seconds
- player is alive
- add 1 to {safebot.Alerts::%player%::Fly}
- set {FLY.sol.%player%} to y-coord of player
- set {FLY.SLOC.%player%} to location of player
- if "%block below player%" or "%block at player%" is "water" or "lava":
- stop
- if {bypass.speed.%player%} is true:
- stop
- if {safebot.Alerts::%player%::Fly} >= 1:
- if {safebot.Alerts::%player%::Fly} <= 7:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@alert}Flight" to loop-player
- if {safebot.Alerts::%event-player%::Fly} >= 8:
- {flybypass} is true:
- stop
- {flybypass.%player%} is true:
- stop
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@warn}Flight" to loop-player
- wait a tick
- if {@auto-kick} is true:
- kick player due to "{@kick}Flight"
- on packet:
- event-string is "PacketPlayInPosition"
- if {PlayerPacket.last.%event-player%} is event-player's location:
- if difference between {LastPacketSend.%event-player%} and now <= 1 second:
- add 1 to {SendedPackets.%event-player%}
- else:
- if {SendedPackets.%event-player%} >= 100:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@warn}Too many packets" to loop-player
- wait a tick
- if {@auto-kick} is true:
- kick event-player due to "{@kick}Too many packets"
- else if {SendedPackets.%event-player%} >= 60:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@warn}Too many packets" to loop-player
- else if {SendedPackets.%event-player%} >= 20:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@alert}Too many packets" to loop-player
- clear {SendedPackets.%event-player%}
- set {LastPacketSend.%event-player%} to now
- set {PlayerPacket.last.%event-player%} to event-player's location
- on join:
- set {damagemoment.%player%} to now
- set {TNTmoment.%player%} to now
- delete {litlejump.%player%}
- delete {before.litlejump.%player%}
- delete {step.%player%}
- delete {scpack.%player%}
- on quit:
- delete {litlejump.%player%}
- delete {before.litlejump.%player%}
- delete {step.%player%}
- delete {scpack.%player%}
- on packet:
- event-string is "PacketPlayOutUpdateHealth"
- event-player's gamemode is survival or adventure
- set {_food} to packet field "b"
- if difference between {LASTFOOD1.%event-player%} and now <= 0.2 second:
- {LASTFOOD2.%event-player%} < {_food}:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@warn}FastEat" to loop-player
- set {LASTFOOD1.%event-player%} to now
- set {LASTFOOD2.%event-player%} to {_food}
- on join:
- set {sfw.%player%} to 0
- delete {fasteat.%player%}
- delete {fastbow.%player%}
- delete {place.start.%player%}
- wf "" to "Plugins/Skript/scripts/0x01/%player's uuid%.txt"
- wf "" to "Plugins/Skript/scripts/0x02/%player's uuid%.txt"
- on load:
- loop all players:
- set {sfw.%loop-player%} to 0
- delete {fasteat.%loop-player%}
- delete {fastbow.%loop-player%}
- on quit:
- set {sfw.%player%} to 0
- delete {fasteat.%player%}
- delete {fastbow.%player%}
- delete {place.start.%player%}
- on rightclick:
- set {fasteat.%player%} to now
- set {fastbow.%player%} to now
- on eat:
- if difference between {fasteat.%player%} and now is less than 0.8 seconds:
- tps >= 19.4
- cancel event
- if difference between {fasteat.%player%} and now is greater than 0.4 seconds:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@alert}FastEat" to loop-player
- else:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@warn}FastEat" to loop-player
- wait a tick
- if {@auto-kick} is true:
- kick player due to "{@kick}FastEat"
- on shoot:
- if shooter's tool is not bow:
- stop
- if difference between {fastbow.%shooter%} and now is less than 1.2 ticks:
- tps >= 19.4
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@warn2}FastBow" to loop-player
- cancel event
- wait a tick
- if {@auto-kick} is true:
- kick shooter due to "{@kick}FastBow"
- on any move:
- "%block 0.1 below player%" is "water" or "lava"
- player's gamemode is survival or adventure
- player's fly mode is false
- player is not riding a entity
- block north player is air
- block south player is air
- block west player is air
- block east player is air
- "%block north below player%" and "%block south below player%" and "%block west below player%" and "%block east below player%" is "water" or "lava"
- wait 10 ticks
- player is not riding a entity
- "%block 0.1 below player%" is "water" or "lava"
- block north player is air
- block south player is air
- block west player is air
- block east player is air
- "%block north below player%" and "%block south below player%" and "%block west below player%" and "%block east below player%" is "water" or "lava"
- "%block north east below player%" is "water" or "lava"
- "%block north west below player%" is "water" or "lava"
- "%block south west below player%" is "water" or "lava"
- "%block south east below player%" is "water" or "lava"
- "%block north east player%" is "water" or "lava" or "air"
- "%block north west player%" is "water" or "lava" or "air"
- "%block south west player%" is "water" or "lava" or "air"
- "%block south east player%" is "water" or "lava" or "air"
- "%block north player%" is "water" or "lava" or "air"
- "%block west player%" is "water" or "lava" or "air"
- "%block south player%" is "water" or "lava" or "air"
- "%block east player%" is "water" or "lava" or "air"
- "%block at player%" is "air"
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@warn}Jesus" to loop-player
- wait 10 ticks
- player is not riding a entity
- "%block 0.1 below player%" is "water" or "lava"
- block north player is air
- block south player is air
- block west player is air
- block east player is air
- "%block north below player%" is "water" or "lava"
- "%block south below player%" is "water" or "lava"
- "%block west below player%" is "water" or "lava"
- "%block east below player%" is "water" or "lava"
- "%block north east below player%" is "water" or "lava"
- "%block north west below player%" is "water" or "lava"
- "%block south west below player%" is "water" or "lava"
- "%block south east below player%" is "water" or "lava"
- "%block north east player%" is "water" or "lava" or "air"
- "%block north west player%" is "water" or "lava" or "air"
- "%block south west player%" is "water" or "lava" or "air"
- "%block south east player%" is "water" or "lava" or "air"
- "%block north player%" is "water" or "lava" or "air"
- "%block west player%" is "water" or "lava" or "air"
- "%block south player%" is "water" or "lava" or "air"
- "%block east player%" is "water" or "lava" or "air"
- "%block at player%" is "air"
- wait a tick
- if {@auto-kick} is true:
- kick player due to "{@kick}Jesus"
- on command:
- set {flybypass} to true
- wait 10 ticks
- delete {flybypass}
- on command:
- "%command%" is "gamemode":
- set {flybypass.%player%} to true
- wait 10 ticks
- delete {flybypass.%player%}
- on load:
- delete {flybypass}
- on join:
- delete {ka.%player%}
- on damage:
- victim is a entity or a player
- victim is not a ender dragon
- attacker is a player
- damage cause is not a projectile:
- tool of the attacker is a bow or a snowball or a egg or a ender pearl or a fishing rod:
- stop
- else:
- damage wasn't caused by thorns
- add 1 to {dmg.%attacker%}
- set {_range} to "{@range}" parsed as number
- distance between attacker and victim is greater than {_range}:
- cancel event
- add 1 to {ka.%attacker%}
- if {ka.lastcheck.%attacker%} is not set:
- set {ka.lastcheck.%attacker%} to now
- if difference between {ka.lastcheck.%attacker%} and now is higher than 1.5 seconds:
- if {ka.%attacker%} >= 9:
- loop all players:
- loop-player has permission "safebot.alert":
- send "{@warn3}KillAura" to loop-player
- delete {ka.%attacker%}
- if {@auto-kick} is true:
- kick attacker due to "{@kick}KillAura"
- else:
- loop all players:
- loop-player has permission "safebot.alert":
- send "{@alert3}KillAura" to loop-player
- on damage:
- set {bypass.speed.%victim%} to true
- wait 10 ticks
- delete {bypass.speed.%victim%}
- on damage:
- attacker's tool is a sword
- attacker is blocking
- cancel event
- on damage:
- victim is a player
- attacker is a player
- set {kb.%victim%} to true
- victim's health < victim's max health
- block at victim's location is not cobweb or cactus or lava or water
- damage wasn't caused by lava or fire or burning or fall or poison or wither
- victim is not riding
- victim's food level is not 0
- victim doesn't have poison
- victim doesn't have wither
- victim isn't burning
- wait 6 ticks
- damage is set
- {kb.%victim%} is true:
- victim isn't burning
- add 1 to {antikb.%victim%}
- {antikb.%victim%} >= 6:
- loop all players:
- loop-player has permission "safebot.alert":
- send "{@warn4}Velocity" to loop-player
- delete {antikb.%victim%}
- if {@auto-kick} is true:
- kick victim due to "{@kick}Velociy"
- else:
- loop all players:
- loop-player has permission "safebot.alert":
- send "{@alert4}Velocity" to loop-player
- on any move:
- {kb.%player%} is true
- delete {kb.%player%}
- remove 1 from {antikb.%player%}
- on heal:
- if player has regeneration:
- stop
- else:
- set {_dif} to difference between {heal.%player%} and now
- if {_dif} is less than 0.45 seconds:
- cancel event
- set {heal.%player%} to now
- add 1 to {cheal.%player%}
- if {cheal.%player%} >= 8:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@warn}Regen" to loop-player
- delete {cheal.%player%}
- if {@auto-kick} is true:
- kick player due to "{@kick}Regen"
- else:
- loop all players:
- if loop-player has permission "safebot.alert":
- send "{@alert}Regen" to loop-player
- set {heal.%player%} to now
- on packet:
- event-string is "PacketPlayInPositionLook"
- if {place.start.%event-player%} is set:
- add 1 to {scpack.%player%}
- else:
- delete {scpack.%player%}
- on place:
- player's gamemode is not creative
- if {place.start.%player%} is not set:
- set {place.start.%player%} to true
- set {_this} to true
- if block 1 above target block is air:
- if block 1 below target block is set:
- block 1 south 2 below target block is air
- block 1 west 2 below target block is air
- block 1 north 2 below target block is air
- block 1 east 2 below target block is air
- block 1 south 1 below target block is air
- block 1 west 1 below target block is air
- block 1 north 1 below target block is air
- block 1 east 1 below target block is air
- add 1 to {sfw.%player%}
- if {sfw.%player%} >= 6:
- if {scpack.%player%} > 50:
- loop all players:
- loop-player has permission "safebot.alert":
- send "{@warn}Scaffold" to loop-player
- delete {place.start.%player%}
- delete {scpack.%player%}
- delete {sfw.%player%}
- if {@auto-kick} is true:
- kick player due to "{@kick}Scaffold"
- else if {scpack.%player%} > 30:
- loop all players:
- loop-player has permission "safebot.alert":
- send "{@warn}Scaffold" to loop-player
- else:
- if {sfw.%player%} >= 10:
- loop all players:
- loop-player has permission "safebot.alert":
- send "{@warn}Scaffold" to loop-player
- delete {place.start.%player%}
- delete {scpack.%player%}
- delete {sfw.%player%}
- if {@auto-kick} is true:
- kick player due to "{@kick}Scaffold"
- else:
- loop all players:
- loop-player has permission "safebot.alert":
- send "{@alert}Scaffold" to loop-player
- cancel event
- wait 1 seconds
- add -1 to {sfw.%player%}
- wait a seconds
- if {_this} is set:
- delete {place.start.%player%}
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement