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
634
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.