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

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

Protects your server from bots and attacks, while keeping performance high



[​IMG] or [​IMG]
as seen on [​IMG] & [​IMG]
sponsored by [​IMG]

[​IMG]


Full Tutorial


Dutch Video

[​IMG]

[​IMG]

[​IMG]
Server Manager
[​IMG]
[​IMG]

Player Manager
[​IMG]
[​IMG]

[​IMG]


[​IMG]

[​IMG]
[​IMG]
[​IMG]

[​IMG]

[​IMG]

[​IMG]

[​IMG]
[​IMG]

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
Code (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
Code (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
Code (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
Code (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
Code (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
Code (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:

[​IMG] [​IMG] [​IMG]
Resource Information
Author:
----------
Total Downloads: 686
First Release: Jun 14, 2019
Last Update: Nov 23, 2024
Category: ---------------
All-Time Rating:
48 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings