XProtect | the BEST protection plugin | Stop bots/attacks/VPNs | MySQL | [1.8 - 1.19]

VIP Plugins XProtect | the BEST protection plugin | Stop bots/attacks/VPNs | MySQL | [1.8 - 1.19]

Version: 3.1.8
Versions
  1. 1.8
  2. 1.9
  3. 1.10
  4. 1.11
  5. 1.12
  6. 1.13
  7. 1.14
  8. 1.15
  9. 1.16
  10. 1.17
  11. 1.18
  12. 1.19

or
as seen on &
sponsored by
EBcdLyX.png


8wXohcp.png



Full Tutorial


Dutch Video


7Cg8qGF.png


yr0CkxS.png


CCd0qML.png

Server Manager
g3tAkgW.gif

oVyA8jD.gif


Player Manager
nhb9UQf.gif

CfJmlx5.gif


golyS5s.png



CSV16n2.png


GY7axhJ.gif

6p4OeB1.gif

W9rNgbo.gif


xW8p2E7.png


hnYDyjB.png


AVptlCs.gif


OsexIM4.png




or go to the wiki https://github.com/LagBug/XProtect
or check the plugin's terms https://lagbug.me/terms
or join my discord server https://lagbug.me/discord
or find more about captchas https://en.wikipedia.org/wiki/CAPTCHA
or find more about the turing test https://en.wikipedia.org/wiki/Turing_test
config.yml
YAML:
# Thank you so much for purchasing my plugin,
# it really means a lot to me!
# __   _______           _            _
# \ \ / /  __ \         | |          | |
#  \ V /| |__) | __ ___ | |_ ___  ___| |_
#   > < |  ___/ '__/ _ \| __/ _ \/ __| __|
#  / . \| |   | | | (_) | ||  __/ (__| |_
# /_/ \_\_|   |_|  \___/ \__\___|\___|\__|
#
# This is a file to help you configure settings to your likings. It is recommended
# to leave everything as it is, but, if you know what you're doing, feel free to change
# it. If you do not understand what something does, please leave it as it is and ask for help

languageFile: "en_US" #The language file that should be used. Use the file name without .yml from the /lang/ folder
prefix: " &c> &7" #The prefix that is then replaced in the language file by %prefix%
updateChecker: true #Specifies whether or not the update checker should work. If set to false, your server will start up faster
debug: true #If set to true, everything that is happening and is related to the plugin will be logged in the console
saveDataEvery: 10 #Specifies every how many minutes the data (verified player, blocked bots, etc.) should be saved. If an attack is happening, this will be skipped to reduce CPU & RAM usage

storage: #Information on how user data should be saved
  type: "FLAT" #Available types are [MYSQL, FLAT].
  mysql:
    host: ""
    database: ""
    username: ""
    password: ""
    port: 3306
    statement: "?autoReconnect=true&useUnicode=true"
    tables:
      verified: "verified"
      blacklisted: "blacklisted"

dependencies: #Various information about the dependencies that can be used
  AuthMe: #Settings for a variety of soft-dependencies
    forceDisable: false
  ProtocolLib:
    forceDisable: false

antibot.yml
YAML:
# This is the file to configure the bot attack protection settings

antibot: #A variety of features to prevent bot attacks on your server
  hardLock:
    enabled: true
    requiredLocks: 5
    lockFor: 30
  joinLimiter: #Limits the connection of players to the server per a specified amount of seconds
    enabled: true
    seconds: 2
    players: 1
  ipLimiter: #Limits the same IPs that can be online at the same time
    enabled: true
    limit: 3
  antiBadConnection: #Blocks any bad connection. A bad connection is based on the history of the IPs
    enabled: true
    apiKey: "" #Create an account on https://www.ipqualityscore.com/create-account and then copy and paste your API key from https://www.ipqualityscore.com/documentation/proxy-detection/overview
    blocks:
      bot: true #Blocks IPs that are flagged as potential bots
      abuse: true #Blocks IPs that are recorded to have an abuse history
      vpn: true #Block any VPN connections
      fraudScore: 85 #Blocks player whose IP's fraud score is above this value
  nameChecking:
    enabled: true
    contain:
      - "mcstorm"
      - "mcspam"
      - "bot"
      - "spam"
      - "spammer"
  countryChecking:
    enabled: true
    type: "WHITELIST" #The available types are [WHITELIST, BLACKLIST].
    list:
      - "US"
      - "CA"
      - "FR"
      - "GB"
      - "RU"
      - "DE"
      - "PL"
      - "GR"
      - "FI"
      - "AU"
      - "AT"
      - "BE"
      - "EC"
      - "IT"
      - "CN"
onAttack:
  actionbar: true #If enabled and the server is under attack, an actionbar message will be shown to all admins
  cleanConsole: false #If enabled and the server is under attack, the server console will remain mostly clean

onBotDetect:
  - "BLACKLIST;;&c> &7You have been detected as a potential bot"
  - "BAN_IP;;&c> &7You have been detected as a potential bot"
  - "BAN;;&c> &7You have been detected as a potential bot"

captchas.yml
YAML:
settings: #Some general settings about the captchas
  notifyOn: #Should players with the permission captcha.notify be notified when a player fails or completes a captcha?
    fail: true
    complete: false
  bypass: false #If true and the player has the bypass permission, it will not ask for a captcha
  solveTime: 25 #The amount of time in seconds before a player gets kicked for not solving the captcha
  delay: 0 #Delay the captcha on join, you might want this in order to appear after other messages are sent.
  actionbar: false #Defines if actionbar should be used for captcha instructions instead of chat

captchaItem: #The item given in drop and map captcha
  name: "&6Captcha Verification" #The name of the item
  slot: 0 #The slot the item should be added

requireCaptcha: #Captcha test can be asked in these events
  onJoin: true

whileOnCaptcha: #Which events should be cancelled when someone has still not verified himself
  blockMovement: true
  blockInteraction: true
  blockItemDrop: true
  blockBlockPlacement: true
  blockBlockBreaking: true
  blockDamage: true
  blockInventoryMovement: true
  blockCommands: true #There is a list below where you can whitelist commands
  blockChatReceiving: true #Block the player from receiving chat messages
  hidePlayer: true #Specifies if the player should be invinsible while on captcha verification

onCaptchaSuccess: {} #A list of actions you can do once a player passes the captcha test
   #- "BUNGEECORD;;hub" #If that is uncommented, the user will be sent to the specified bungeecord server

onCaptchaFail: #A list of actions you can do if a player fails the test
  - "KICK;;&c> &7You have failed the captcha test"

onCaptchaInactivity: #What happens if the player hasn't solved the captcha within the given time
  - "KICK;;&c> &7You should have solved the captcha"

whitelistedCommands: {} #Commands that can be used when player is under captcha verification

captchas: #A list of all the captchas with options about them
  map:
    enabled: true
    lines: 50
    linesColor: BLACK
    textColor: RED
  picture: #Head over to /pictures/ and add your images. The name of the image, without it's extension will be used as a code
    enabled: true
  gui:
    enabled: true
    title: "Click on the &6%item%"
    slots: 27
  different:
    enabled: true
    title: "Click on the different item"
    same:
      item: "REDSTONE_BLOCK;1;0"
      name: "&cDo not click here"
      lore: {}
    different:
      item: "EMERALD_BLOCK;1;0"
      name: "&aClick here"
      lore: {}
    slots: 9
  equation:
    enabled: true
    range:
      min: 1
      max: 15
  code:
    enabled: true
  color:
    enabled: true
  sneak:
    enabled: true
  jump:
    enabled: true
  drop:
    enabled: true
    item: APPLE
  slot:
    enabled: true
  reverse:
    enabled: true

chat.yml
YAML:
# This is the file to configure the chat protection settings

whitelist:
  - "lagbug.me"

regexFilters:
  advertising:
    expressions:
      - "\\b[0-9]{1,3}(\\.|dot|\\(dot\\)|-|;|:|,|(\\W|\\d|_)*\\s)+[0-9]{1,3}(\\.|dot|\\(dot\\)|-|;|:|,|(\\W|\\d|_)*\\s)+[0-9]{1,3}(\\.|dot|\\(dot\\)|-|;|:|,|(\\W|\\d|_)*\\s)+[0-9]{1,3}\\b"
      - "\\b[0-9]{1,3}(\\.|dot|\\(dot\\)|-|;|:|,)+[0-9]{1,3}(\\.|dot|\\(dot\\)|-|;|:|,)+[0-9]{1,3}(\\.|dot|\\(dot\\)|-|;|:|,)+[0-9]{1,3}\\b"
    actions:
      - "CANCEL"
      - "MESSAGE;; &c> &7Advertising IPs will get you muted on our server."
  domain:
    expressions:
      - "[a-zA-Z0-9\\-\\.]+\\s?(\\.|dot|\\(dot\\)|;|:|,)\\s?(com|org|net|cz|co|uk|sk|biz|mobi|xxx|eu|io)\\b"
    actions:
      - "CANCEL"
      - "MESSAGE;; &c> &7Advertising domains will get you muted on our server."
  sweating:
    expressions:
      - "BAD_WORDS_FILE"
    actions:
      - "CANCEL"
      - "MESSAGE;; &c> &7Using prohibited language will get you muted on our server."

guis/player_manager.yml
YAML:
title: "XProtect > Player Manager"
slots: 27
refresh: 5
contents:
  0:
    item: "STAINED_GLASS_PANE;1;9"
    name: ""
    lore: {}
  2:
    item: "STAINED_GLASS_PANE;1;9"
    name: ""
    lore: {}
  8:
    item: "STAINED_GLASS_PANE;1;9"
    name: ""
    lore: {}
  9:
    item: "STAINED_GLASS_PANE;1;9"
    name: ""
    lore: {}
  11:
    item: "STAINED_GLASS_PANE;1;9"
    name: ""
    lore: {}
  16:
    item: "STAINED_GLASS_PANE;1;9"
    name: ""
    lore: {}
  17:
    item: "STAINED_GLASS_PANE;1;9"
    name: ""
    lore: {}
  18:
    item: "STAINED_GLASS_PANE;1;9"
    name: ""
    lore: {}
  20:
    item: "STAINED_GLASS_PANE;1;9"
    name: ""
    lore: {}
  25:
    item: "STAINED_GLASS_PANE;1;9"
    name: ""
    lore: {}
  26:
    item: "BARRIER;1;9"
    name: "&fGo Back"
    lore: {}
    action: "GO_BACK"
  1:
    item: "NAME_TAG;1;0"
    name: "&cPlayer Statistics"
    lore:
     - "&7A variety of statistics about this player"
     - ""
     - "&6Server:"
     - " &7Play Time: &e%statistic_time_played%"
     - " &7Times Joined: &a%statistic_join_game%"
     - " &7Times Left: &c%statistic_leave_game%"
     - "&6Player:"
     - " &7Total Kills: &a%statistic_player_kills%"
     - " &7Total Deaths: &c%statistic_deaths%"
     - " &7Last Death: &6%statistic_time_since_death%"
     - " &7Damage (Taken/Dealt): &e%statistic_damage_taken%&7/&c%statistic_damage_dealt%"
  10:
    item: "BOOK;1;0"
    name: "&cPlayer Information"
    lore:
     - "&7A variety of information about the player"
     - ""
     - "&6General:"
     - " &7Name: &e%player_name%"
     - " &7UUID: &e%player_uuid%"
     - " &7IP: &c%player_ip%"
     - " &7OP: &a%player_is_op%"
     - " &7Location: &a%player_world% &7(&e%player_x%&7, &e%player_y%&7, &e%player_z%&7)"
     - ""
     - "&6Health:"
     - " &7Health: &a%player_health%"
     - " &7Food: &e%player_food_level%"
  19:
    item: "PAPER;1;0"
    name: "&cCustom Information"
    lore:
     - "&7Custom information about this player"
     - ""
     - "&7Verified: &a%player_verified%"
     - "&7Blacklisted: &a%player_blacklisted%"
     - "&7Bot: &e%player_bot_status% &7(Based on a variety of tests)"
     - "&7VPN/Proxy/Tor: &c%player_vpn%&7, &e%player_proxy%&7, &a%player_tor%"
     - "&7Fraud Score: &c%player_fraud_score%&7/&e100 &7(High risk above 85)"
     - "&7Recent abuse: &e%player_recent_abuse% &7(Recent abuse done by this IP)"
     - "&7Location: &a%player_country%&7, &e%player_city%&7, &c%player_region%"
     - "&7ISP: &e%player_isp%"
  3:
    item: "WOOL;1;0"
    name: "&fSwitch Verify"
    action: "SWITCH_VERIFY"
    lore:
     - "&7The player's verification status is &a%player_verified% &7and"
     - "&7by clicking here, this will change."
  4:
    item: "WOOL;1;1"
    name: "&fSwitch Blacklist"
    action: "SWITCH_BLACKLIST"
    lore:
     - "&7The player's blacklist status is &a%player_blacklisted% &7and"
     - "&7by clicking here, this will change."
  5:
    item: "WOOL;1;2"
    name: "&fTeleport Here"
    action: "TELEPORT_HERE"
    lore:
     - "&7Click here to teleport this player to your location."
  6:
    item: "WOOL;1;3"
    name: "&fTeleport There"
    action: "TELEPORT_THERE"
    lore:
     - "&7Click here to teleport to this player."
  7:
    item: "WOOL;1;4"
    name: "&fSet On Fire"
    action: "SET_ON_FIRE"
    lore:
     - "&7By clicking here the player will be set on fire."
  12:
    item: "WOOL;1;5"
    name: "&fClear Chat"
    action: "CLEAR_CHAT"
    lore:
     - "&7Clicking the button will clear the chat for"
     - "&7this specific player."
  13:
    item: "WOOL;1;6"
    name: "&fSwitch OP"
    action: "SWITCH_OP"
    lore:
     - "&7The player's op status is &a%player_is_op% &7and"
     - "&7by clicking here this will change."
  14:
    item: "WOOL;1;8"
    name: "&fHeal"
    action: "HEAL_PLAYER"
    lore:
     - "&7Click here to full the player's health."
  15:
    item: "WOOL;1;9"
    name: "&fFeed"
    action: "FEED_PLAYER"
    lore:
     - "&7Click here to full the player's food bar."

lang/en_US.yml
YAML:
general:
  updateAvailable: "%prefix% An update was found, click this message."
  success: "%prefix% You've now passed the captcha test."
  underAttack: "&fblocked(&4&lX&r &c%address%&f) &4&l*&r &fbots(&c%current_bots%&7/sec&f) &4&l*&r &ftotal(&c%total_bots%&f)"
  join: "&e%player% joined the game"
  notifications:
    complete: "%prefix% (&c%player%&7) &7successfully completed the captcha."
    fail: "%prefix% (&c%player%&7) &7failed to complete the captcha."

commands:
  verify:
    add:
      success: "%prefix% Successfully verified (&c%player%&7)."
      already: "%prefix% The specified player (&c%player%&7) is already verified."
    remove:
      success: "%prefix% Successfully unverified (&c%player%&7)."
      already: "%prefix% The specified player (&c%player%&7) is not verified."
    check:
      found: "%prefix% The player specified player (&c%player%&7) is &cverified&7."
      notFound: "%prefix% The player specified player (&c%player%&7) is &cnot verified&7."
  blacklist:
    add:
      success: "%prefix% Successfully blacklisted (&c%player%&7)."
      already: "%prefix% The specified player (&c%player%&7) is already blacklisted."
    remove:
      success: "%prefix% Successfully unblacklisted (&c%player%&7)."
      already: "%prefix% The specified player (&c%player%&7) is not blacklisted."
    check:
      found: "%prefix% The player specified player (&c%player%&7) is &cblacklisted&7."
      notFound: "%prefix% The player specified player (&c%player%&7) is &cnot blacklisted&7."
  test:
    success: "%prefix% Successfully sent a captcha test to &c%player%&7."
  list:
    success: "%prefix% The available captcha types are:"
    format: "  &7&l- &c%type% &7[&r&7%status%&7]"
  reload:
    success: "%prefix% The configuration files were successfully reloaded."

instructions:
  map: "%prefix% Type the &ccode &7that is displayed in the map."
  gui: "%prefix% Please click on the &c%item%&7."
  different: "%prefix% Please click on the different item."
  equation: "%prefix% Please solve the following equation: &c%equation%&7."
  order: "%prefix% Place in order (&c%symbol%&7) the following numbers: &c%numbers%&7."
  picture: "%prefix% Type what you're seeing. Choose from [&c%list%&7]."
  code: "%prefix% Type &c%code% &7in the chat."
  color: "%prefix% Type what (&r%color%THIS&r&7) color's name is."
  sneak: "%prefix% Please &csneak &7(usually using SHIFT key)."
  jump: "%prefix% Please &cjump &7(usually using SPACE key)."
  drop: "%prefix% Please &cdrop &7the item you're holding (usually using Q key)."
  slot: "%prefix% Please move to the &c%slot%th &7slot of your hotbar."
  reverse: "%prefix% Please reverse the letters of the following code: &c%code%&7."

actions:
  teleport:
    here: "%prefix% Successfully teleported (&c%player%&7) to your location."
    there: "%prefix% Successfully teleported to &c%player%&7's location."
  whitelist:
    enabled: "%prefix% Successfully &cenabled &7the whitelist."
    disabled: "%prefix% Successfully &cdisabled &7the whitelist off."
  op:
    removed: "%prefix% Successfully gave OP permissions to (&c%player%&7)."
    added: "%prefix% Successfully removed OP permissions from (&c%player%&7)."
  reloadData:
    success: "%prefix% Successfully reloaded the server's data."
    fail: "%prefix% This can only be done in servers above &c1.14"
  health:
    heal: "%prefix% Successfully healed (&c%player%&7)."
    feed: "%prefix% Successfully fed (&c%player%&7)."
  fire: "%prefix% Successfully set (&c%player%&7) on fire."
  clearChat: "%prefix% Successfully cleared the chat for (&c%player%&7)."
  cancel: "%prefix% Successfully canceled the current action."
  idleTimeout: "%prefix% Successfully set the idle timeout to &c%idleTimeout%&7."
  savePlayers: "%prefix% Successfully saved player's data."
  maxSlots: "%prefix% Successfully set the max slots to &c%maxSlots%&7."
  clearGlobalChat: "%prefix% Successfully cleared the global chat."

kick:
  restart: "&7The server has restarted please join again later"
  locked: "&7Too many players are joining at the same time"
  ip: "&7You can only have online up to &73 &7accounts at the same time"
  bot: "&7Your IP is linked to bot activity so we can not allow you to join"
  abuse: "&7Your IP is linked to recent abuse, hence why you can not join"
  risk: "&7Your IPs fraud score is too risky, hence why you can not join"
  vpn: "&7VPNs or proxies are not allowed in this server"
  blacklisted: "&7You have been blacklisted from the server"
  name: "&7Your name indicates that you're a potential bot"
  country: "&7Your country is not allowed to join our server"

errors:
  onlyPlayers: "%prefix% Only players can use this command."
  noPermissions: "%prefix% You do not have enough permissions to do this."
  playerNull: "%prefix% The specified player does not seem to be online."
  wrongUsage: "%prefix% The right usage is &c%usage%"
You can find a list of the commands and the permissions by clicking here.
A list of all the APIs used to provide consistent and accurate VPN/Geolocation information:

Uploader


Downloads
6
Views
608
First release
Last update
Rating
0.00 star(s) 0 ratings

More resources from ArteffCods

Latest updates

  1. 3.1.8 - updates

    Updated to the latest version of PAPI and ProtocolLib. Newer version support coming soon.
  2. 3.1.7 - security fixes

    Updated to latest version of PAPI which includes security fixes. Make sure to do the same.
  3. 3.1.5 - ProtocolLib update

    updated to latest version of ProtocolLib.