on script load: if existence of "plugins/SkAntiSpam/config.yml" is false: create file "plugins/SkAntiSpam/config.yml" if yaml value "TimeLimit" from file "../../SkAntiSpam/config.yml" is not set: set yaml value "TimeLimit" from file "../../SkAntiSpam/config.yml" to "2" if yaml value "Prefix" from file "../../SkAntiSpam/config.yml" is not set: set yaml value "Prefix" from file "../../SkAntiSpam/config.yml" to "&8[&aAntiSpam&8]" if yaml value "CodeLength" from file "../../SkAntiSpam/config.yml" is not set: set yaml value "CodeLength" from file "../../SkAntiSpam/config.yml" to "5" set yaml value "Version" from file "../../SkAntiSpam/config.yml" to "1.1" set {aspam::timel} to yaml value "TimeLimit" from file "../../SkAntiSpam/config.yml" set {aspam::prefix} to yaml value "Prefix" from file "../../SkAntiSpam/config.yml" set {aspam::charlength} to yaml value "CodeLength" from file "../../SkAntiSpam/config.yml" on chat: player does not have the permission "chat.bypass" if {%player%::spamcheck} is true: cancel event if "%message%" is "%{%player%::spam::code}%": delete {%player%::spamcheck} delete {%player%::spam::code} message "%{aspam::prefix}% &aYou are not a spambot." set {%player%::spam} to 0 delete {%player%::spam::check} stop else: add 1 to {%player%::spam::checks} if {%player%::spam::checks} = 3: kick the player due to "%{aspam::prefix}% &cIncorrect code. &aYour code is: &8%{%player%::spam::code}%" delete {%player%::spam::checks} loop all players: loop-player has permission "spambot.notify" message "%{aspam::prefix}% &c&l! &e- %player% Is potentially a spambot!" send "!! WARN !! %player% is potentially a spambot! !! WARN !!" to console message "%{aspam::prefix}% &cPlease try again." stop if {%player%::spam} > 0: add 1 to {%player%::spam::check} if {%player%::spam::check} = 3: set {%player%::spamcheck} to true cancel event set {_l} to {aspam::charlength} set {_code} to random ({_l} parsed as number) char string from `A-Za-z0-9` message "%{aspam::prefix}% &8Please say the code &c%{_code}%&8 in chat to check you're not a spambot." set {%player%::spam::code} to {_code} cancel event message "%{aspam::prefix}% &cYou may only talk every %{aspam::timel}% second(s)." else: set {%player%::spam} to ({aspam::timel} parsed as number) every second: loop all players: if {%loop-player%::spam} is set: remove 1 from {%loop-player%::spam}