# # # # # # # # # # # # # # # # # # # # # # # # # # #| |# #| /----------\ /---\ /|-------- |# #| | /------\ | /|| ||\ /|---------- |# #| | | | | /|| ||\ | | |# #| | \------/ | /|| ||\ | | |# #| | /--------/ || || | | |# #| | | ||---------|| | | |# #| | | ||---------|| | | |# #| | | || || \|---------- |# #| | | || || \|-------- |# #| |# # # # # # # # # # # # # # # # # # # # # # # # # # # variables: {break.aim.%player%} = 0 {break.speed.%player%} = 0 {chat.advertise.%player%} = 0 {chat.relog.%player%} = 0 {chat.spam.%player%} = 0 {combat.antiknock.%player%} = 0 {combat.multi.%player%} = 0 {combat.reach.%player%} = 0 {combat.speed.%player%} = 0 {inventory.fastbow.%player%} = 0 {inventory.fastclick.%player%} = 0 {movement.fly.%player%} = 0 {movement.sneak.%player%} = 0 {place.aim.%player%} = 0 {place.reach.%player%} = 0 {place.speed.%player%} = 0 {throw.speed.%player%} = 0 {chat.%player%} = false {connect.%player%} = false {damage.%player%} = false {invclick.%player%} = false {mine.%player%} = false {multidamage.%player%} = false {place.%player%} = false {shoot.%player%} = false {throw.%player%} = false #===========================# #====[ C H E C K I N G ]====# #======[ C O N F I G ]======# #===========================# # True = active check / False = disable check # command /paccheckreload: description: ProAntiCheat Check Reload trigger: if player has permission "pac.checkreload": message "" message "&c&l[&6&l&oPAC&c&l] &7Reloading..." execute console command "/sk reload proanticheat" set {breakaim.check} to true set {breakreach.check} to true set {breakspeed.check} to true set {chatadvertise.check} to true set {chatrelog.check} to true set {chatspam.check} to true set {combataim.check} to true set {combatantiknock.check} to true set {combatmulti.check} to true set {combatreach.check} to true set {combatspeed.check} to true set {inventoryfastbow.check} to true set {inventoryfastclick.check} to true set {movementfly.check} to true set {movementsneak.check} to true set {placeaim.check} to true set {placereach.check} to true set {placespeed.check} to true set {throwspeed.check} to true message "&c&l[&6&l&oPAC&c&l] &7Check config reloaded!" #===========================# #===[ R E D U C T I O N ]===# #======[ C O N F I G ]======# #===========================# options: # Reduction VLs per defined seconds # reducevlsec: 5.9 # Reduction defined VLs # breakaim.reducevl: 4 breakreach.reducevl: 3 breakspeed.reducevl: 4 chatadvertise.reducevl: 0 chatrelog.reducevl: 1 chatspam.reducevl: 1 combataim.reducevl: 4 combatantiknock.reducevl: 2 combatmulti.reducevl: 2 combatreach.reducevl: 1 combatspeed.reducevl: 2 inventoryfastbow.reducevl: 3 inventoryfastclick.reducevl: 2 movementfly.reducevl: 3 movementsneak.reducevl: 1 placeaim.reducevl: 4 placereach.reducevl: 3 placespeed.reducevl: 2 throwspeed.reducevl: 1 #===========================# #====[ M E S S A G E S ]====# #======[ C O N F I G ]======# #===========================# pac.ban.message: %arg 3% pac.banip.message: %arg 3% pac.kick.message: %arg 3% pac.kickall.message: &6Kicked from server breakaim.action.message: Cheating.&f breakreach.action.message: Cheating.&f breakspeed.action.message: Cheating.&f chatadvertise.action.message: Advertising.&f chatrelog.action.message: Cheating.&f chatspam.action.message: Cheating.&f combataim.action.message: Cheating.&f combatantiknock.action.message: Cheating.&f combatmulti.action.message: Cheating.&f combatreach.action.message: Cheating.&f combatspeed.action.message: Cheating.&f inventoryfastbow.action.message: &4Banned: Cheating.&f inventoryfastclick.action.message: &4Banned: Cheating.&f movementfly.action.message: &4Banned: Cheating.&f movementsneak.action.message: &4Banned: Cheating.&f placeaim.action.message: &4Banned: Cheating.&f placereach.action.message: &4Banned: Cheating.&f placespeed.action.message: &4Banned: Cheating.&f throwspeed.action.message: &4Banned: Cheating.&f #=========================# #====[ G E N E R A L ]====# #=====[ C O N F I G ]=====# #=========================# #===> ProAntiCheat name <===# pac.name: ProAntiCheat #PAC Skript name# #===> ProAntiCheat version <===# pac.version: 1.7.3a-RC-b161 #Do not change!# #===> Server version <===# server.version: %minecraft version% #Minecraft server version# #===> Break.aim <===# breakaim.maxvl: 10 #Maximum violations amount# #===> Break.reach <===# breakreach.distance: 5.9 #Break reach between player and block (meters)# breakreach.maxvl: 10 #Maximum violations amount# #===> Break.speed <===# breakspeed.limit: 0.35 #Speed limit by mining (seconds)# breakspeed.maxvl: 10 #Maximum violations amount# #===> Chat.advertise <===# #Advertisement list# chat.ad1: srvmc chat.ad2: csrv chat.ad3: fhmc chat.ad4: .net chat.ad5: .ru chat.ad6: .de chat.ad7: .pl chat.ad8: .ench chat.ad9: .com chat.ad10: fsrv chat.ad11: hostmc chat.ad12: eu chat.ad13: mc. chat.ad14: www chat.ad15: craft. chatadvertise.maxvl: 10 #Maximum violations amount# #===> Chat.relog <===# chatrelog.limit: 5 #Speed limit by relogging (seconds)# chatrelog.maxvl: 10 #Maximum violations amount# #===> Chat.spam <===# chatspam.limit: 0.8 #Speed limit by sending (seconds)# chatspam.maxvl: 10 #Maximum violations amount# #===> Combat.aim <===# combataim.maxvl: 10 #Maximum violations amount# #===> Combat.antiknock <===# combatantiknock.maxvl: 10 #Maximum violations amount# #===> Combat.multi <===# combatmulti.limit: 0.01 #Multi hit limit by damage (seconds)# combatmulti.maxvl: 10 #Maximum violations amount# #===> Combat.reach <===# combatreachmob.distance: 5.9 #Combat reach between player and mob (meters)# combatreachplayer.distance: 4.9 #Combat reach between players (meters)# combatreach.maxvl: 10 #Maximum violations amount# #===> Combat.speed <===# combatspeed.limit: 0.1 #Speed limit by damage (seconds)# combatspeed.maxvl: 10 #Maximum violations amount# #===> Inventory.fastbow <===# inventoryfastbow.limit: 0.15 #Speed limit by shooting (seconds)# inventoryfastbow.maxvl: 10 #Maximum violations amount# #===> Inventory.fastclick <===# inventoryfastclick.limit: 0.000001 #Speed limit by inventory click (seconds)# inventoryfastclick.maxvl: 10 #Maximum violations amount# #===> Movement.fly <===# movementfly.maxvl: 10 #Maximum violations amount# #===> Movement.sneak <===# movementsneak.maxvl: 10 #Maximum violations amount# #===> Place.aim <===# placeaim.maxvl: 10 #Maximum violations amount# #===> Place.reach <===# placereach.distance: 5.9 #Place reach between player and block (meters)# placereach.maxvl: 10 #Maximum violations amount# #===> Place.speed <===# placespeed.limit: 0.1 #Speed limit by placing (seconds)# placespeed.maxvl: 10 #Maximum violations amount# #===> Throw.speed <===# throwspeed.limit: 0.0001 #Speed limit by throwing (seconds)# throwspeed.maxvl: 10 #Maximum violations amount# #=======================================# #=======================================# #=======================================# on join: set {pac.check.%player%} to false set {chat.%player%} to false set {connect.%player%} to false set {damage.%player%} to false set {invclick.%player%} to false set {mine.%player%} to false set {multidamage.%player%} to false set {place.%player%} to false set {shoot.%player%} to false set {throw.%player%} to false set {vls.%player%} to true set {break.aim.%player%} to 0 set {break.reach.%player%} to 0 set {break.speed.%player%} to 0 set {chat.advertise.%player%} to 0 set {chat.relog.%player%} to 0 set {chat.spam.%player%} to 0 set {combat.aim.%player%} to 0 set {combat.antiknock.%player%} to 0 set {combat.multi.%player%} to 0 set {combat.reach.%player%} to 0 set {combat.speed.%player%} to 0 set {inventory.fastbow.%player%} to 0 set {inventory.fastclick.%player%} to 0 set {movement.fly.%player%} to 0 set {movement.sneak.%player%} to 0 set {place.aim.%player%} to 0 set {place.reach.%player%} to 0 set {place.speed.%player%} to 0 set {throw.speed.%player%} to 0 every 0.5 second: loop all players: if {break.aim.%loop-player%} is more than {@breakaim.maxvl}: if {pac.autoban} is true: set {break.aim.%loop-player%} to 0 execute console command "/ban %loop-player% {@breakaim.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@breakaim.action.message}]" if {break.reach.%loop-player%} is more than {@breakreach.maxvl}: if {pac.autoban} is true: set {break.reach.%loop-player%} to 0 execute console command "/ban %loop-player% {@breakreach.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@breakreach.action.message}]" if {break.speed.%loop-player%} is more than {@breakspeed.maxvl}: if {pac.autoban} is true: set {break.speed.%loop-player%} to 0 execute console command "/ban %loop-player% {@breakspeed.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@breakspeed.action.message}]" if {chat.advertise.%loop-player%} is more than {@chatadvertise.maxvl}: if {pac.autoban} is true: set {chat.advertise.%loop-player%} to 0 execute console command "/ban %loop-player% {@chatadvertise.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@chatadvertise.action.message}]" if {chat.relog.%loop-player%} is more than {@chatrelog.maxvl}: if {pac.autoban} is true: set {chat.relog.%loop-player%} to 0 execute console command "/ban %loop-player% {@chatrelog.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@chatrelog.action.message}]" if {chat.spam.%loop-player%} is more than {@chatspam.maxvl}: if {pac.autoban} is true: set {chat.spam.%loop-player%} to 0 execute console command "/ban %loop-player% {@chatspam.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@chatspam.action.message}]" if {combat.aim.%loop-player%} is more than {@combataim.maxvl}: if {pac.autoban} is true: set {combat.aim.%loop-player%} to 0 execute console command "/ban %loop-player% {@combataim.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@combataim.action.message}]" if {combat.antiknock.%loop-player%} is more than {@combatantiknock.maxvl}: if {pac.autoban} is true: set {combat.antiknock.%loop-player%} to 0 execute console command "/ban %loop-player% {@combatantiknock.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@combatantiknock.action.message}]" if {combat.multi.%loop-player%} is more than {@combatmulti.maxvl}: if {pac.autoban} is true: set {combat.multi.%loop-player%} to 0 execute console command "/ban %loop-player% {@combatmulti.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@combatmulti.action.message}]" if {combat.reach.%loop-player%} is more than {@combatreach.maxvl}: if {pac.autoban} is true: set {combat.reach.%loop-player%} to 0 execute console command "/ban %loop-player% {@combatreach.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@combatreach.action.message}]" if {combat.speed.%loop-player%} is more than {@combatspeed.maxvl}: if {pac.autoban} is true: set {combat.speed.%loop-player%} to 0 execute console command "/ban %loop-player% {@combatspeed.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@combatspeed.action.message}]" if {inventory.fastbow.%loop-player%} is more than {@inventoryfastbow.maxvl}: if {pac.autoban} is true: set {inventory.fastbow.%loop-player%} to 0 execute console command "/ban %loop-player% {@inventoryfastbow.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@inventoryfastbow.action.message}]" if {inventory.fastclick.%loop-player%} is more than {@inventoryfastclick.maxvl}: if {pac.autoban} is true: set {inventory.fastclick.%loop-player%} to 0 execute console command "/ban %loop-player% {@inventoryfastclick.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@inventoryfastclick.action.message}]" if {movement.fly.%loop-player%} is more than {@movementfly.maxvl}: if {pac.autoban} is true: set {movement.fly.%loop-player%} to 0 execute console command "/ban %loop-player% {@movementfly.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@movementfly.action.message}]" if {movement.sneak.%loop-player%} is more than {@movementsneak.maxvl}: if {pac.autoban} is true: set {movement.sneak.%loop-player%} to 0 execute console command "/ban %loop-player% {@movementsneak.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@movementsneak.action.message}]" if {place.aim.%loop-player%} is more than {@placeaim.maxvl}: if {pac.autoban} is true: set {place.aim.%loop-player%} to 0 execute console command "/ban %loop-player% {@placeaim.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@placeaim.action.message}]" if {place.reach.%loop-player%} is more than {@placereach.maxvl}: if {pac.autoban} is true: set {place.reach.%loop-player%} to 0 execute console command "/ban %loop-player% {@placereach.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@placereach.action.message}]" if {place.speed.%loop-player%} is more than {@placespeed.maxvl}: if {pac.autoban} is true: set {place.speed.%loop-player%} to 0 execute console command "/ban %loop-player% {@placespeed.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@placespeed.action.message}]" if {throw.speed.%loop-player%} is more than {@throwspeed.maxvl}: if {pac.autoban} is true: set {throw.speed.%loop-player%} to 0 execute console command "/ban %loop-player% {@throwspeed.action.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%loop-player% has been banned! [{@throwspeed.action.message}]" command /pacreset: description: ProAntiCheat Global Reset trigger: if player has permission "pac.globalreset": message "" message "&c&l[&6&l&oPAC&c&l] &7Resetting..." execute console command "/sk reload proanticheat" set {breakaim.check} to true set {breakreach.check} to true set {breakspeed.check} to true set {chatadvertise.check} to true set {chatrelog.check} to true set {chatspam.check} to true set {combataim.check} to true set {combatantiknock.check} to true set {combatmulti.check} to true set {combatreach.check} to true set {combatspeed.check} to true set {inventoryfastbow.check} to true set {inventoryfastclick.check} to true set {movementfly.check} to true set {movementsneak.check} to true set {placeaim.check} to true set {placereach.check} to true set {placespeed.check} to true set {throwspeed.check} to true set {pac.autoban} to true set {pac.broadcast.message} to true message "&c&l[&6&l&oPAC&c&l] &7ProAntiCheat resetted!" command /pac [] [] [] []: description: ProAntiCheat Menu usage: /pac trigger: if player has permission "pac.autoban": if arg 1 is "autoban": message "" if {pac.autoban} is true: set {pac.autoban} to false message "&c&l[&6&l&oPAC&c&l] &7AutoBan has been disabled!" stop else: set {pac.autoban} to true message "&c&l[&6&l&oPAC&c&l] &7AutoBan has been enabled!" stop if player has permission "pac.ban": if arg 1 is "ban": if arg 2 is set: if arg 3 is set: message "" execute console command "/ban %arg 2% {@pac.ban.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%arg 2% has been banned for %arg 3%!" stop if player has permission "pac.banip": if arg 1 is "banip": if arg 2 is set: if arg 3 is set: message "" execute console command "/ban-ip %arg 2% {@pac.ban.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%arg 2%'s IP has been banned for %arg 3%!" stop if player has permission "pac.check": if arg 1 is "check": if arg 2 is offline player: message "" message "&c&l[&6&l&oPAC&c&l] &7%arg 2%'s Violations:" if {breakaim.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[break.aim] &fVL %{break.aim.%arg 2%}%&7/&7{@breakaim.maxvl}" if {breakreach.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[break.reach] &fVL %{break.reach.%arg 2%}%&7/&7{@breakreach.maxvl}" if {breakspeed.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[break.speed] &fVL %{break.speed.%arg 2%}%&7/&7{@breakspeed.maxvl}" if {chatadvertise.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[chat.advertise] &fVL %{chat.advertise.%arg 2%}%&7/&7{@chatadvertise.maxvl}" if {chatrelog.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[chat.relog] &fVL %{chat.relog.%player%}%&7/&7{@chatrelog.maxvl}" if {chatspam.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[chat.spam] &fVL %{chat.spam.%arg 2%}%&7/&7{@chatspam.maxvl}" if {combataim.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[combat.aim] &fVL %{combat.aim.%arg 2%}%&7/&7{@combataim.maxvl}" if {combatantiknock.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[combat.antiknock] &fVL %{combat.antiknock.%arg 2%}%&7/&7{@combatantiknock.maxvl}" if {combatmulti.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[combat.multi] &fVL %{combat.multi.%arg 2%}%&7/&7{@combatmulti.maxvl}" if {combatreach.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[combat.reach] &fVL %{combat.reach.%arg 2%}%&7/&7{@combatreach.maxvl}" if {combatspeed.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[combat.speed] &fVL %{combat.speed.%arg 2%}%&7/&7{@combatspeed.maxvl}" if {inventoryfastbow.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[inventory.fastbow] &fVL %{inventory.fastbow.%arg 2%}%&7/&7{@inventoryfastbow.maxvl}" if {inventoryfastclick.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[inventory.fastclick] &fVL %{inventory.fastclick.%arg 2%}%&7/&7{@inventoryfastclick.maxvl}" if {movementfly.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[movement.fly] &fVL %{movement.fly.%arg 2%}%&7/&7{@movementfly.maxvl}" if {movementsneak.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[movement.sneak] &fVL %{movement.sneak.%arg 2%}%&7/&7{@movementsneak.maxvl}" if {placeaim.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[place.aim] &fVL %{place.aim.%arg 2%}%&7/&7{@placeaim.maxvl}" if {placereach.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[place.reach] &fVL %{place.reach.%arg 2%}%&7/&7{@placereach.maxvl}" if {placespeed.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[place.speed] &fVL %{place.speed.%arg 2%}%&7/&7{@placespeed.maxvl}" if {throwspeed.check} is true: message "&c&l[&6&l&oPAC&c&l] &7[throw.speed] &fVL %{throw.speed.%arg 2%}%&7/&7{@throwspeed.maxvl}" stop if player has permission "pac.disable": if arg 1 is "disable": message "" execute console command "/sk disable proanticheat" message "&c&l[&6&l&oPAC&c&l] &7Disabled!" stop if player has permission "pac.free": if arg 1 is "free": if arg 2 is offline player: message "" set {pac.check.%arg 2%} to true message "&c&l[&6&l&oPAC&c&l] &7%arg 2% has been freed!" stop if player has permission "pac.help": if arg 1 is not set: message "" message "&c&l[&6&l&oPAC&c&l] &7Welcome to &6&lProAntiCheat &e&lv{@pac.version}" message "&c&l[&6&l&oPAC&c&l] &7Server Version: &e&lv{@server.version}" message "&c&l[&6&l&oPAC&c&l] &7Author: Ark223" message "&c&l[&6&l&oPAC&c&l] &7Email: Ark223Neww@gmail.com" message "&c&l[&6&l&oPAC&c&l] &7Commands:" message "&c&l[&6&l&oPAC&c&l] &7/pac autoban [bans player when reached allowed VL]" message "&c&l[&6&l&oPAC&c&l] &7/pac ban [bans player]" message "&c&l[&6&l&oPAC&c&l] &7/pac banip [bans player's IP]" message "&c&l[&6&l&oPAC&c&l] &7/pac check [checks player's VL]" message "&c&l[&6&l&oPAC&c&l] &7/pac disable [disables ProAntiCheat]" message "&c&l[&6&l&oPAC&c&l] &7/pac free [frees player from checking]" message "&c&l[&6&l&oPAC&c&l] &7/pac inventory [shows player's inventory]" message "&c&l[&6&l&oPAC&c&l] &7/pac kick [kicks player]" message "&c&l[&6&l&oPAC&c&l] &7/pac kickall [kicks all players]" message "&c&l[&6&l&oPAC&c&l] &7/pac reload [reloads ProAntiCheat]" message "&c&l[&6&l&oPAC&c&l] &7/pac reset [resets player's VL]" message "&c&l[&6&l&oPAC&c&l] &7/pac unban [unbans player]" message "&c&l[&6&l&oPAC&c&l] &7/pac unbanip [unbans player's IP]" message "&c&l[&6&l&oPAC&c&l] &7/pac unfree [unfrees player for checking]" message "&c&l[&6&l&oPAC&c&l] &7/pac warn [warns ops about players violations]" stop if player has permission "pac.inventory": if arg 1 is "inventory": if arg 2 is set: open the arg 2's inventory to the player stop if player has permission "pac.kick": if arg 1 is "kick": if arg 2 is set: if arg 3 is set: message "" kick arg 2 due to "{@pac.kick.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7%arg 2% has been kicked for %arg 3%!" stop if player has permission "pac.kickall": if arg 1 is "kickall": message "" loop all players: kick loop-player due to "{@pac.kickall.message}" broadcast "&c&l[&6&l&oPAC&c&l] &7Kicked all players from server!" stop if player has permission "pac.reload": if arg 1 is "reload": message "" message "&c&l[&6&l&oPAC&c&l] &7Reloading ProAntiCheat..." set {pac.autoban} to true set {pac.broadcast.message} to true execute console command "/sk reload {@pac.name}" message "&c&l[&6&l&oPAC&c&l] &7Reloaded!" stop if player has permission "pac.reset": if arg 1 is "reset": if arg 2 is offline player: message "" message "&c&l[&6&l&oPAC&c&l] &7Resetting %arg 2%'s Violations..." wait 1 second set {break.aim.%arg 2%} to 0 set {break.reach.%arg 2%} to 0 set {break.speed.%arg 2%} to 0 set {chat.advertise.%arg 2%} to 0 set {chat.relog.%arg 2%} to 0 set {chat.spam.%arg 2%} to 0 set {click.speed.%arg 2%} to 0 set {combat.aim.%arg 2%} to 0 set {combat.antiknock.%arg 2%} to 0 set {combat.multi.%arg 2%} to 0 set {combat.reach.%arg 2%} to 0 set {combat.speed.%arg 2%} to 0 set {inventory.fastbow.%arg 2%} to 0 set {inventory.fastclick.%arg 2%} to 0 set {movement.fly.%arg 2%} to 0 set {movement.sneak.%arg 2%} to 0 set {place.aim.%arg 2%} to 0 set {place.reach.%arg 2%} to 0 set {place.speed.%arg 2%} to 0 set {throw.speed.%arg 2%} to 0 set {pac.check.%arg 2%} to false set {chat.%arg 2%} to false set {connect.%arg 2%} to false set {damage.%arg 2%} to false set {invclick.%arg 2%} to false set {mine.%arg 2%} to false set {multidamage.%arg 2%} to false set {place.%arg 2%} to false set {shoot.%arg 2%} to false set {throw.%arg 2%} to false message "&c&l[&6&l&oPAC&c&l] &7Resetted!" stop if player has permission "pac.unban": if arg 1 is "unban": if arg 2 is offline player: message "" unban arg 2 broadcast "&c&l[&6&l&oPAC&c&l] &7%arg 2% has been unbanned!" stop if player has permission "pac.unbanip": if arg 1 is "unbanip": if arg 2 is offline player: message "" unban arg 2 by ip broadcast "&c&l[&6&l&oPAC&c&l] &7%arg 2%'s IP has been unbanned!" stop if player has permission "pac.unfree": if arg 1 is "unfree": if arg 2 is offline player: message "" set {pac.check.%arg 2%} to false message "&c&l[&6&l&oPAC&c&l] &7%arg 2% has been unfreed!" stop if player has permission "pac.warn": if arg 1 is "warn": message "" if {pac.broadcast.message} is true: set {pac.broadcast.message} to false message "&c&l[&6&l&oPAC&c&l] &7Warning has been disabled!" stop else: set {pac.broadcast.message} to true message "&c&l[&6&l&oPAC&c&l] &7Warning has been enabled!" stop #=======================================# #=======================================# #=======================================# # ========= # # break.aim # on mine: if {breakaim.check} is true: if {pac.check.%player%} is false: if player's gamemode is survival: if location of event-block is not location of targeted block: if targeted entity is not torch or grass: cancel event add 1 to {break.aim.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &eBreakAim&7. &7He tried to break block out of sight." to all ops stop every {@reducevlsec} seconds: loop players: if {break.aim.%loop-player%} is more than {@breakaim.reducevl}: remove {@breakaim.reducevl} from {break.aim.%loop-player%} # =========== # # break.reach # on mine: if {breakreach.check} is true: if {pac.check.%player%} is false: if distance between player and event-block is smaller than {@breakreach.distance}: stop cancel event add 1 to {break.reach.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &eBreakReach&7. &7He tried to break block out of reach." to all ops stop every {@reducevlsec} seconds: loop players: if {break.reach.%loop-player%} is more than {@breakreach.reducevl}: remove {@breakreach.reducevl} from {break.reach.%loop-player%} # =========== # # break.speed # on mine: if {breakspeed.check} is true: if {pac.check.%player%} is false: if player's gamemode is survival: if event-block is not grass: if {mine.%player%} is true: cancel event add 1 to {break.speed.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &eBreakSpeed&7. &7He tried to break blocks too fast." to all ops stop on mine: if player doesn't have haste: set {mine.%player%} to true wait {@breakspeed.limit} seconds set {mine.%player%} to false every {@reducevlsec} seconds: loop players: if {break.speed.%loop-player%} is more than {@breakspeed.reducevl}: remove {@breakspeed.reducevl} from {break.speed.%loop-player%} # ============== # # chat.advertise # on chat: if {chatadvertise.check} is true: if {pac.check.%player%} is false: if message contains "{@chat.ad1}" or "{@chat.ad2}" or "{@chat.ad3}" or "{@chat.ad4}" or "{@chat.ad5}" or "{@chat.ad6}" or "{@chat.ad7}" or "{@chat.ad8}" or "{@chat.ad9}" or "{@chat.ad10}" or "{@chat.ad11}" or "{@chat.ad12}" or "{@chat.ad13}" or "{@chat.ad14}" or "{@chat.ad15}": cancel event send "&4&lDon't advertise server." add 1 to {chat.advertise.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &5ChatAdvertise&7. &7He tried to advertise server." to all ops stop every {@reducevlsec} seconds: loop players: if {chat.advertise.%loop-player%} is more than {@chatadvertise.reducevl}: remove {@chatadvertise.reducevl} from {chat.advertise.%loop-player%} # ========== # # chat.relog # on join: if {chatrelog.check} is true: if {pac.check.%player%} is false: if {connect.%player%} is true: kick the player due to "&cYou have relogged too fast. Please try later." add 1 to {chat.relog.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &5ChatRelog&7. &7He tried to relog too fast." to all ops stop on disconnect: set {connect.%player%} to true wait {@chatrelog.limit} seconds set {connect.%player%} to false every {@reducevlsec} seconds: loop players: if {chat.relog.%loop-player%} is more than {@chatrelog.reducevl}: remove {@chatrelog.reducevl} from {chat.relog.%loop-player%} # ========= # # chat.spam # on chat: if {chatspam.check} is true: if {chat.%player%} is true: if {pac.check.%player%} is false: cancel event send "&4&lSlow down chatting." add 1 to {chat.spam.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &5ChatSpam&7. &7He tried to spam the chat." to all ops stop on chat: set {chat.%player%} to true wait {@chatspam.limit} seconds set {chat.%player%} to false every {@reducevlsec} seconds: loop players: if {chat.spam.%loop-player%} is more than {@chatspam.reducevl}: remove {@chatspam.reducevl} from {chat.spam.%loop-player%} # ========== # # combat.aim # on damage: if {combataim.check} is true: if {pac.check.%attacker%} is false: if damage cause is attack: if target of attacker is victim: stop cancel event add 0.5 to {combat.aim.%attacker%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%attacker% &7has failed &cCombatAim&7. &7He tried to attack entity out of sight." to all ops stop every {@reducevlsec} seconds: loop players: if {combat.aim.%loop-player%} is more than {@combataim.reducevl}: remove {@combataim.reducevl} from {combat.aim.%loop-player%} # ================ # # combat.antiknock # on damage: if {combatantiknock.check} is true: if {pac.check.%victim%} is false: if victim is player: if damage cause is attack: set {combat.location.%victim%} to location of victim wait 1.8 seconds if {combat.location.%victim%} is location of victim: add 1 to {combat.antiknock.%victim%} damage victim by 1 heart if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%victim% &7has failed &cCombatAntiKnock&7. &7He tried to avoid knockback while getting damage." to all ops stop every {@reducevlsec} seconds: loop players: if {combat.antiknock.%loop-player%} is more than {@combatantiknock.reducevl}: remove {@combatantiknock.reducevl} from {combat.antiknock.%loop-player%} # ============ # # combat.multi # on damage: if {combatmulti.check} is true: if {pac.check.%attacker%} is false: if attacker is player: if damage cause is attack: if {multidamage.%attacker%} is true: cancel event add 1 to {combat.multi.%attacker%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%attacker% &7has failed &cCombatMulti&7. &7He tried to attack more entities at once." to all ops else: set {multidamage.%attacker%} to true wait {@combatmulti.limit} seconds set {multidamage.%attacker%} to false on damage: if {multidamage.%attacker%} is false: set {multidamage.%attacker%} to true wait {@combatmulti.limit} seconds set {multidamage.%attacker%} to false every {@reducevlsec} seconds: loop players: if {combat.multi.%loop-player%} is more than {@combatmulti.reducevl}: remove {@combatmulti.reducevl} from {combat.multi.%loop-player%} # ================ # # combat.reach.mob # on damage: if {combatreach.check} is true: if {pac.check.%attacker%} is false: if attacker is a player: if victim is not player: if damage cause is attack: if distance between attacker and victim is smaller than {@combatreachmob.distance}: stop cancel event add 1 to {combat.reach.%attacker%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%attacker% &7has failed &cCombatReach&7. &7He tried to attack entity out of reach." to all ops stop every {@reducevlsec} seconds: loop players: if {combat.reach.%loop-player%} is more than {@combatreach.reducevl}: remove {@combatreach.reducevl} from {combat.reach.%loop-player%} # =================== # # combat.reach.player # on damage: if {combatreach.check} is true: if {pac.check.%attacker%} is false: if attacker is a player: if victim is player: if damage cause is attack: if distance between attacker and victim is smaller than {@combatreachplayer.distance}: stop cancel event add 1 to {combat.reach.%attacker%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%attacker% &7has failed &cCombatReach&7. &7He tried to attack entity out of reach." to all ops stop every {@reducevlsec} seconds: loop players: if {combat.reach.%loop-player%} is more than {@combatreach.reducevl}: remove {@combatreach.reducevl} from {combat.reach.%loop-player%} # ============ # # combat.speed # on damage: if {combatspeed.check} is true: if {pac.check.%attacker%} is false: if attacker is player: if damage cause is attack: if {damage.%attacker%} is true: cancel event add 1 to {combat.speed.%attacker%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%attacker% &7has failed &cCombatSpeed&7. &7He tried to attack entity with too high speed." to all ops else: set {damage.%attacker%} to true wait {@combatspeed.limit} seconds set {damage.%attacker%} to false on damage: if {damage.%attacker%} is false: set {damage.%attacker%} to true wait {@combatspeed.limit} seconds set {damage.%attacker%} to false every {@reducevlsec} seconds: loop players: if {combat.speed.%loop-player%} is more than {@combatspeed.reducevl}: remove {@combatspeed.reducevl} from {combat.speed.%loop-player%} # ================= # # inventory.fastbow # on shoot: if {inventoryfastbow.check} is true: if {pac.check.%shooter%} is false: if shooter's tool is bow: if {shoot.%shooter%} is true: cancel event add 1 to {inventory.fastbow.%shooter%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%shooter% &7has failed &6InventoryFastBow&7. &7He tried to shoot a bow rapidly." to all ops stop on shoot: shooter's tool is bow: set {shoot.%shooter%} to true wait {@inventoryfastbow.limit} seconds set {shoot.%shooter%} to false every {@reducevlsec} seconds: loop players: if {inventory.fastbow.%loop-player%} is more than {@inventoryfastbow.reducevl}: remove {@inventoryfastbow.reducevl} from {inventory.fastbow.%loop-player%} # =================== # # inventory.fastclick # on inventory click: if {inventoryfastclick.check} is true: if {pac.check.%player%} is false: if {invclick.%player%} is true: if player's gamemode is survival: cancel event add 1 to {inventory.fastclick.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &6InventoryFastClick&7. &7He tried to displace items in inventory too quickly." to all ops stop on inventory click: set {invclick.%player%} to true wait {@inventoryfastclick.limit} seconds set {invclick.%player%} to false every {@reducevlsec} seconds: loop players: if {inventory.fastclick.%loop-player%} is more than {@inventoryfastclick.reducevl}: remove {@inventoryfastclick.reducevl} from {inventory.fastclick.%loop-player%} # ============ # # movement.fly # every 0.3 second: if {movementfly.check} is true: loop players: loop-player has permission "pac.fly": stop {pac.check.%loop-player%} is false wait 0.3 seconds block behind the loop-player is air block 2 meters behind the loop-player is air block 3 meters below the loop-player is air block under the loop-player is air block east below the loop-player is air block west below the loop-player is air block north below the loop-player is air block south below the loop-player is air block 2 meters below the loop-player is air block 2 meters east below the loop-player is air block 2 meters west below the loop-player is air block 2 meters north below the loop-player is air block 2 meters south below the loop-player is air block 3 meters below the loop-player is air block 3 meters east below the loop-player is air block 3 meters west below the loop-player is air block 3 meters north below the loop-player is air block 3 meters south below the loop-player is air teleport loop-player to {movement.location.%loop-player%} push loop-player downwards set loop-player's gamemode to survival add 0.5 to {movement.fly.%loop-player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%loop-player% &7has failed &bMovementFly&7. &7He tried to levitate above ground." to all ops stop on any movement: block behind the player is not air block 2 meters behind the player is not air block under the player is not air block 2 meters below the player is not air set {movement.location.%player%} to location of player every {@reducevlsec} seconds: loop players: if {movement.fly.%loop-player%} is more than {@movementfly.reducevl}: remove {@movementfly.reducevl} from {movement.fly.%loop-player%} # ============== # # movement.sneak # on chat: if {movementsneak.check} is true: if {pac.check.%player%} is false: if player is sneaking: cancel event add 1 to {movement.sneak.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &bMovementSneak&7. &7He tried to send message while sneaking." to all ops stop on enchant: if {movementsneak.check} is true: if {pac.check.%player%} is false: if player is sneaking: cancel event add 1 to {movement.sneak.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &bMovementSneak&7. &7He tried to enchant item while sneaking." to all ops stop on craft: if {movementsneak.check} is true: if {pac.check.%player%} is false: if player is sneaking: cancel event add 1 to {movement.sneak.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &bMovementSneak&7. &7He tried to craft while sneaking." to all ops stop on command: if {movementsneak.check} is true: if {pac.check.%player%} is false: if player is sneaking: cancel event add 1 to {movement.sneak.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &bMovementSneak&7. &7He tried to type command while sneaking." to all ops stop every {@reducevlsec} seconds: loop players: if {movement.sneak.%loop-player%} is more than {@movementsneak.reducevl}: remove {@movementsneak.reducevl} from {movement.sneak.%loop-player%} # ========= # # place.aim # on place: if {placeaim.check} is true: if {pac.check.%player%} is false: if player's gamemode is survival: if targeted entity is not lava or water: stop if location of event-block is not location of targeted block: cancel event add 1 to {place.aim.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &aPlaceAim&7. &7He tried to place block out of sight." to all ops stop every {@reducevlsec} seconds: loop players: if {place.aim.%loop-player%} is more than {@placeaim.reducevl}: remove {@placeaim.reducevl} from {place.aim.%loop-player%} # =========== # # place.reach # on place: if {placereach.check} is true: if {pac.check.%player%} is false: if player's tool is item frame: stop if distance between player and event-block is smaller than {@placereach.distance}: stop cancel event add 1 to {place.reach.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &aPlaceReach&7. &7He tried to place block out of reach." to all ops stop every {@reducevlsec} seconds: loop players: if {place.reach.%loop-player%} is more than {@placereach.reducevl}: remove {@placereach.reducevl} from {place.reach.%loop-player%} # =========== # # place.speed # on place: if {placespeed.check} is true: if {pac.check.%player%} is false: if {place.%player%} is true: if player's gamemode is survival: cancel event add 1 to {place.speed.%player%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%player% &7has failed &aPlaceSpeed&7. &7He tried to place blocks too fast." to all ops stop on place: set {place.%player%} to true wait {@placespeed.limit} seconds set {place.%player%} to false every {@reducevlsec} seconds: loop players: if {place.speed.%loop-player%} is more than {@placespeed.reducevl}: remove {@placespeed.reducevl} from {place.speed.%loop-player%} # =========== # # throw.speed # on shoot: if {throwspeed.check} is true: if {pac.check.%shooter%} is false: if projectile is snowball or spawn egg or egg or eye of ender or ender pearl or experience bottle: if {throwspeed.check} is true: if {throw.%shooter%} is true: cancel event add 1 to {throw.speed.%shooter%} if {pac.broadcast.message} is true: send "&c&l[&6&l&oPAC&c&l] &e&l✯ &6%shooter% &7has failed &1ThrowSpeed&7. &7He tried to throw projectiles too quickly." to all ops stop on shoot: projectile is snowball or spawn egg or egg or eye of ender or ender pearl or experience bottle: set {throw.%shooter%} to true wait {@throwspeed.limit} seconds set {throw.%shooter%} to false every {@reducevlsec} seconds: loop players: if {throw.speed.%loop-player%} is more than {@throwspeed.reducevl}: remove {@throwspeed.reducevl} from {throw.speed.%loop-player%}