Описание

### FoxGate
**The #1 AntiVPN Plugin from the market.**
_"It's time to limit your server to legitimate and real traffic."_
➡️ **FoxGate** (formerly, **FoxAntiVPN**) is a **powerful tool designed to protect your Minecraft server from unwanted visitors using VPNs**. This plugin prevents players from bypass ip bans by allowing server owners to detect and block **VPN's**, **Proxy's** and **more**. This plugin connects to a configerable list of services which detect VPN's without any hassel. **This plugin is extremely hard to bypass**. With numerous APIs working together, **bypassing this AntiVPN is very difficult**. The more services you enable, the harder it becomes for users to evade detection. Currently supporting **Spigot** `+ Forks`, **BungeeCord** `+ Forks`, **Velocity** `+ Forks`, **FOLIA** `+ Forks`, **Nukkit**/**PowerNukkitX** `+ Forks`, **WaterdogPE** and **Hytale**.
# ⭐ Features:
> **Supports different types of databases with HikariCP Connection**. Allows to the user chooise their best option for storing data. Available options: **MySQL**, **MariaDB**, **PostgreSQL**, **H2**, **SQLite**, **Jaybird** and **Custom** (in case you want to use any other local/remote database).
```yaml
# ___ _ _
# / \__ _| |_ __ _| |__ __ _ ___ ___
# / /\ / _` | __/ _` | '_ \ / _` / __|/ _ \
# / /_// (_| | || (_| | |_) | (_| \__ \ __/
# /___,' \__,_|\__\__,_|_.__/ \__,_|___/\___|
#
# Configure a database for use.
#
# ❓ Has questions? Join to the discord server:
# - https://discord.zowi.gay/
# - https://discord.idcteam.xyz/
database:
# ⚙ Determine the type of DataBase will be used.
# - Available options in type.
# All options use HikariCP for better performance.
#
# |=> MySQL
# |=> MariaDB
# |=> PostgreSQL
# |=> SQLite (COULD CAUSE ISSUES IN OLDER VERSIONS!)
# |=> H2
# |=> JayBird
# |=> Custom
#
# -----------------------------------------------------------------------------
# Type | Stability | Performance | Support | Popularity | Concurrence |
# -----------------------------------------------------------------------------
# MariaDB | 4⭐ | 4⭐ | 5⭐ | 5⭐ | 5⭐
# MySQL | 4⭐ | 4⭐ | 5⭐ | 5⭐ | 4⭐
# PostgreSQL | 5⭐ | 5⭐ | 4⭐ | 3⭐ | 5⭐
# SQLite | 1⭐ | 3⭐ | 3⭐ | 2⭐ | 4⭐
# H2 | 2⭐ | 4⭐ | 3⭐ | 2⭐ | 1⭐
# Jaybird | 2⭐ | 2⭐ | 1⭐ | 1⭐ | 1⭐
#
# 📚 Note: In case you change this configuration and your server is
# already started, use the command "/foxgate db reconnect" to restart
# your database without restarting plugin or server. Always remember do
# "/foxgate reload" before using this command to apply.
type: H2
# 🔩 Set the table's name inside the DataBase.
# - Modify in case you want mantain older stats while using another
# new. This can also help in case a conflict occurrs.
#
# 📚 Note: If you want restore older stats used in Older versions
# of FoxGate (1.0.5-pre4 or older), use the next:
# - 'vpn_cache'
table: foxgate
# 🔩 Save the cache inside the database instead of a file?
# - Use this only if you want to use multi-proxy or you're sure
# this will don't cause problems with your database.
cache_database: false
# 🔩 Enable whitelist based in DataBase?
# - Set this feature to enabled in case you want to save
# whitelist IP's/names in a database instead of a file.
# Extremely recommended for Multi-Proxy.
#
# 📚 Note: Available only in MySQL, MariaDB and PostgreSQL.
whitelist_database: false
```
> The plugin is **trying to support all types of software with any version of Minecraft**, since **1.3.x**; all softwares, **can probably works correctly with this plugin**, because this __**already download their own libraries for avoid any type of problems**__. Now supporting **Nukkit**, **PowerNukkitX** and **WaterdogPE**, bedrock softwares and **Hytale**.

> **Customize the messages how you want**! This plugins supports **MiniMessage** and **Legacy** colors in all versions; also the **configuration it's too extended for an extremely customization** in base of your needs!

> Downloads **their libraries automatically when starting for adding more options available for you**! Every update, the libraries get downloaded and **automatically updates** for you to mantain always up-to-day in functions and fixes vulnerabilities.
Check all libraries downloaded by the plugin: [Click here to see 'Dependencies' tab from BuiltByBit](https://builtbybit.com/resources/61530/field?field=dependencies).
_(Sometimes can be outdated that list; the plugin always download from trusted sites)_
> The **default config is setup to block most VPN's**, although you can **add a custom service** or **modify existing services in the config**. The plugin was made for support multi-services for detection, and for it, we provide a lot of tools for you: **Send requests with Headers**, **Condition systems for Flag**/**Bypass** (ignore detection) and custom VLs per service (for add VLs to reach maxFlags).
```yaml
# __ _
# / _\ ___ _ ____ _(_) ___ ___ ___
# \ \ / _ | '__\ \ / | |/ __/ _ / __|
# _\ | __| | \ V /| | (_| __\__ \
# \__/\___|_| \_/ |_|\___\___|___/
#
# The configuration is generated with our File Manager,
# which overrides the real comments. See the description of
# every available services in our GitHub repository of
# issues and wiki.
#
# 💼 GitHub:
# https://github.com/IDCTeam-Group/FoxGate-Issues/wiki/Services
#
# 📚 Note: Use 'Ctrl+F' to search the service, and put the file
# name for search more easy. ^^
# 🔩 Enable this service?
enabled: true
# 🔑 Add this field in case require key.
# - This is used for '{KEY}' variable in the
# headers or URL fields.
key: ''
# 🔗 The plugin should output errors though
# the console?
# - Enable this option if you want get output
# in case a service give errors in the console.
# Useful for debug responses while debugging it's
# disabled.
#
# 📚 Note: This only works in certain scenearies, like
# an API returning 'nullable' value or another.
output_errors: true
# 📚 Model of the response.
# - Add the model to handle the response of
# the API. Check the response type and set one
# correctly for making this works properly.
#
# 📁 Supported values:
# - HTML
# - JSON
# - CONTAINS
model: JSON
# 🚩 Flags to add when it's detected in this service.
# - Option for add more VLs to reach the maxFlags
# in each services. Useful if you trust in a service
# and want make it count more VLs.
vls: '2'
# 🔗 URL of the API.
# - This field is important, insert the URL of
# the service for response.
#
# 📁 Supported placeholders:
# - {IP} - Return the player's IP.
# - {KEY} - Return 'key' field value.
url: https://api.zowi.gay/{IP}?key={KEY}
# ⛓ Headers to use.
# - Set custom headers in case it's required.
# The values can be in List or Map.
#
# 📚 Note: Set to '[]' or '{}' to disable.
headers: {
}
# 💡 Values to check.
values:
# 🧩 Fields to check.
# - Disable the fields to check with using
# the value '{}'. If you exclude this value,
# field 'type' will check if the final
# response contains that value.
fields:
- security.bogon
- security.vpn
- security.proxy
- security.hosting
- security.residential_proxy.detected
- security.abuser.detected
- security.tor
# 🚩 Type to determine.
# - Determine which value needs to determine
# if the connection it's a VPN/Proxy or another,
# this will check for a String.
#
# 📚 Note: Use 'boolean' for check for any boolean
# boolean, like: 'true'/'false' or '0'/'1'.
type: boolean
# 📚 Custom conditions to determine bypass or detection logic.
# - These conditions allow advanced control based on fields from the
# API response.
#
# 📁 Structure:
# - Each key (e.g. '1', '2', etc.) holds a list of conditions.
# - Each list works with AND logic (all conditions must match).
# - Multiple keys result in OR logic (at least one group must match).
#
# 🧩 Syntax:
# - Use {field} to refer to response fields (e.g. {score}).
# - Supported operators: '=', '!=', '>', '>=', '