CombatMC

Anti-Alt Script [Skript]

Jan 12th, 2019
120
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
text 3.26 KB | None | 0 0
  1. # =========================
  2. # Anti-Alt
  3. # Original by CombatMC
  4. # =========================
  5.  
  6. # Config (edit it to however you like)
  7. options:
  8. reportBroadcastPermissions: "server.helper" or "server.mod" or "server.admin" or "server.owner"
  9. reportCommandPermissions: "server.admin" or "server.owner"
  10. messageNoPermission: &cYou are not allowed to use this command!
  11. messagePrefix: &7[&c&lAnti-Alt&7]
  12.  
  13. # Codes (Do not edit)
  14. command /aa [<text>] [<offline player>]:
  15. trigger:
  16. if executor don't have permission {@reportCommandPermissions}:
  17. send "{@messagePrefix} {@messageNoPermission}" to executor
  18. stop
  19. if arg 1 or arg 2 is not set:
  20. send "{@messagePrefix} &cUsage: /aa <scan/remove> <player>%nl%{@messagePrefix} &6Scan: &cRescan player%nl%{@messagePrefix} &6Remove: &cRemove a player's anti-alt data" to executor
  21. stop
  22. if arg 1 is not "scan" or "remove":
  23. send "{@messagePrefix} &cUsage: /aa <scan/remove> <player>%nl%{@messagePrefix} &6Scan: &cRescan player%nl%{@messagePrefix} &6Remove: &cRemove a player's anti-alt data" to executor
  24. stop
  25. if arg 2 is not online:
  26. send "{@messagePrefix} &cError: %arg 2% is not online!" to executor
  27. stop
  28. if arg 1 is "scan":
  29. sendPlayerWithPermission("{@messagePrefix} &6%executor% &chas requested a anti-alt scan against player &6%arg 2%&c!")
  30. scanIp(arg 2, true)
  31. stop
  32. else if arg 1 is "remove":
  33. sendPlayerWithPermission("{@messagePrefix} &6%executor% &chas requested a anti-alt remove data for player &6%arg 2%&c!")
  34. set {_playerUuid} to "%{_player}'s UUID%"
  35. delete {lastLoggedIp::%{_playerUuid}%}
  36. delete {lastLoggedName::%{_playerUuid}%}
  37. stop
  38.  
  39. on join:
  40. scanIp(player, false)
  41.  
  42. function scanIp(player: player, bypass: boolean):
  43. registerIp({_player})
  44. set {_report} to getIpReport({_player}, {_bypass})
  45. if {_report} is not "none":
  46. sendPlayerWithPermission("{@messagePrefix} &f▂▂▂▂▂▂&6Anti-Alt Report&f▂▂▂▂▂▂%nl%{@messagePrefix} %{_report}%%nl%{@messagePrefix} %nl%{@messagePrefix} &7▉Offline &a▉Online%nl%{@messagePrefix} &f▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂▂")
  47.  
  48. function registerIp(player: player):
  49. set {_playerUuid} to {_player}'s UUID
  50. set {lastLoggedIp::%{_playerUuid}%} to "%{_player}'s IP%"
  51. set {lastLoggedName::%{_playerUuid}%} to "%{_player}%"
  52.  
  53. function getIpReport(target: player, bypass: boolean) :: text:
  54. loop {lastLoggedIp::*}:
  55. if {lastLoggedIp::%loop-index%} is equal to "%{_target}'s IP%":
  56. if "%{_target}'s UUID%" is not equal to "%loop-index%":
  57. if ("%{lastLoggedName::%loop-index%}%" parsed as player) is online:
  58. add "&a%{lastLoggedName::%loop-index%}%&f" to {_selectedPlayers::*}
  59. else:
  60. add "&7%{lastLoggedName::%loop-index%}%&f" to {_selectedPlayers::*}
  61. if {_selectedPlayers::*} is set:
  62. return "&fScanned User: &a%{_target}% &f(&a%{_target}'s IP%&f)%nl%{@messagePrefix} &fAccounts (&a%amount of {_selectedPlayers::*}%&f): &a%{_selectedPlayers::*}%"
  63. else if {_bypass} is true:
  64. return "&fScanned User: &a%{_target}% &f(&a%{_target}'s IP%&f)%nl%{@messagePrefix} &fAccounts (&a0&f): &cN/A"
  65. else:
  66. return "none"
  67.  
  68. function sendPlayerWithPermission(message: text):
  69. loop all players:
  70. if loop-player has permission {@reportBroadcastPermissions}:
  71. send "%{_message}%" to loop-player
Add Comment
Please, Sign In to add comment