![FoxGate AntiVPN [Premium] icon](https://images.polymart.org/product/7327/thumbnail.png?t=1741013731&v=3)
FoxGate AntiVPN [Premium] 1.0.2
Potential AntiVPN for your Minecraft server, with a lot of features and extremely customization!
Page 1
1.0.2
13 days ago
Version 1.0.2
- Improved the performance with remaking the handling of detection in all supported loaders/softwares.
- Added ViaProxy loader/software support.
- Updated all libraries:
- MariaDB from 3.5.1 -> 3.5.3
- SQLite from 3.49.0.0 -> 3.49.1.0
- MiniMessage from 4.18.0 -> 4.20.0
- MiniMessage Option from 1.0.0 -> 1.1.0
- HikariCP from 6.2.1 -> 6.3.0
- SLF4JAPI from 2.0.16 -> 2.1.0-alpha1
- SL4FJJDK new in 2.1.0-alpha1
- GSON from 2.12.2 -> 2.13.1
- ASM from 9.7.1 -> 9.8
- Jar-Relocator now is using my fork.
- Added new command /fg debug for debugging all actions of FoxGate:
(config.yml)
# Do you want debug enable debug messages of FoxGate? # - Set what messages you want to debug when the debugging mode # is enabled with the command '/fg debug'. This only shows in # the console. debug: # Messages about Events of the player? events: true # Messages returning service's responses for better # creation or control of this. Enable only for testing, # don't recommend enable this in production, otherwise, # your console can be flooded a lot. services: true # Messages about actions making by FoxGate. # Like, sending discord webhooks (responses), downloading # GeoLocation databases and seding Telegram (requests). actions: true message: help: debug: 'Debug actions made by FoxGate in the console.' debug: enable: '{prefix} <green>You enabled the debug mode. Check the console.' disable: '{prefix} <red>You disabled the debug mode.'
- Added new command to whitelist add/remove to the configuration. Also, moved all whitelist to new file created by default called whitelist.yml.
(whitelist.yml)
# Whitelist the detection to this name's. # - Allow players in the list to bypass the detection of # the antivpn. To disable this feature, use the value: # # names: [] # # (!) It's case sensetive! names: - ImZowi # Whitelist the detection to this IP's. # - Allow ip's in the list to bypass the detection of # the antivpn. To disable this feature, use the value: # # ips: [] # # (!) The value under is the default in localhost. ips: - "127.0.0.1"
message: help: whitelist: 'Edit configuration via command whitelist user/IP.' whitelist: invalid_usage: '{prefix} Use the command <aqua>/foxgate whitelist <add/remove> <name/ip><reset>.' already: '{prefix} {IP}<red> is already whitelisted/unwhitelisted in the configuration!' whitelisted: '{prefix} {IP}<green> was whitelisted in the configuration with type <white>{type}</white>. You can <white><underlined><click:run_command:"/foxgate whitelist remove {IP}">click here for remove again</click></underlined></white>.' unwhitelisted: '{prefix} {IP}<green> was unwhitelisted in the configuration with type <white>{type}</white>. You can <white><underlined><click:run_command:"/foxgate whitelist add {IP}">click here for add again</click></underlined></white>.' type_ip: 'IP' type_name: 'Name' problem: '{prefix} <red>Error while trying to add/remove to the whitelist. Check the console.'
- Added new option for using name in proxies and new command /fg clearcache. This works with using a cache file or using database in case it's multi-proxy.
(config.yml)
database: # You want to save the cache in the database in new table # instead of use a file? Use this only if you want to use # multi-proxy or you're sure you don't has problems with your # database. # # Name of this table it's '"table"_cache', so, if the "table" # it's "foxgate", the name will be: "foxgate_cache", or if # the "table" it's "vpn_cache", will be "vpn_cache_cache". Always # finish with "_cache". cache_database: false message: help: clearcache: 'Clear the cache file with username saves.' clearcache: purging: '{prefix} <white>We are <yellow>purging</yellow> the cache file...' purging_correctly: '{prefix} <green>The cache file has been purged/reseted.' purging_problem: '{prefix} <red>Error while trying to purge the cache file. Check the console.'
- Added option to Limit connections per IP. Default it's 3.
(config.yml)
antivpn: # Limit maximum connections per IP. # - When a player join to the server, this is saved # in a list for count the numbers of players in # a connection. If the limit is reached, the # player isn't allowed from joining. limiter: # Enable this feature? enable: true # Determine the maximum limit of connections per # IP. '3' is the best value by default, increase in # case is required. This can help in prevent bots with # same IP. maxium: 3 # Message to return when a player is kicked with this option. # placeholders: %PLAYER%, %IP%, %UUID%, %COUNTRY% (Premium and # only if function is enabled) and %ASN% (Premium and only if # function is enabled). kick: "<red>You have been disconnected by FoxGate:\n<white>Maximum accounts per IP in your connection.\n\n<gray>This is an error? <white>Join to our discord server.\n<aqua><underlined>discord.idcteam.xyz"
- Using our custom base for bStats (Metrics) to avoid taking performance. For the Creator for the site, please, read our uncompiled comment inside the classes.
(config.yml)
configuration: # Allow the usage of Metrics (bStats) in your server? # - This is only for stadistics usage. # # ❝ What data is collected? # We are using bStats (https://bstats.org/), this does not collect # any personal data. Most of the collected data is information about # the plugin's server like player count, online mode, Minecraft version, # Java version, and more. All data gets sent and stored completely # anonymously. See more in information about this in "bStats: Getting Started" # https://bstats.org/getting-started # # (!) Since 1.0.2 (premium) and 1.1.0 (free), FoxGate uses # their own code base for Metrics, but following their # rules. This use asynchronous methods to send data and # changes to Gson for better stability; improving the # performance of this. You can safety has enable this to # help to the creator without affecting the performance. metrics: true
- Added new database type: JayBird.
(config.yml)
# This database is experimental. jaybird: hostname: "localhost" port: 3050 database: "FoxGate.fdb" username: "foxgate" password: "" # These settings apply to this Firebird database, as it uses Hikari for connection pooling. # - Default values are suitable for most users. Modify only if necessary. pool-settings: # The maximum number of connections in the connection pool. # - Determines the upper limit of active database connections that can be managed simultaneously. # - Setting this too high can overload your database server, while setting it too low can cause delays. # Recommended: 10 maximum-pool-size: 10 # Minimum number of idle connections to maintain in the pool. # - The pool will try to maintain this number of idle (inactive) connections ready for use. # Recommended: 1 minimum-idle: 1 # Maximum lifetime of a connection in the pool, in milliseconds. # - Connections older than this value will be closed and replaced. # Recommended: 1800000 (30 minutes) maximum-lifetime: 1800000 # The maximum time in milliseconds to wait for a connection from the pool. # - If no connection is available within this time, an exception will be thrown. # Recommended: 30000 (30 seconds) connection-timeout: 30000
- Added new 5 services in the default configuration. (Thanks for our buyer, @_bad_, for making these configurations for FoxGate in the default section)
IPAPI IS
# ⛽ IPAPI IS # https://ipaphttps://ipapi.is/i.is/ # # Details: # https://ipapi.is/app/signup # # - 1k daily requests, free account or without key (IP-based for limit). # - 10k daily requests, pay $10 monthly. # - 20k daily requests, pay $20 monthly. # - 50k daily requests, pay $50 monthly. # - 100k daily requests, pay $100 monthly. # - 2M daily requests, pay $200 monthly. ipapiis: # Enable this service? enabled: true # Model request to use. model: "JSON" # You can use this field in case you # has an account in this page. key: "" # URL. url: "https://api.ipapi.is/?q=%IP%&key=%KEY%" # Values to check. values: # Fields to check. fields: - "is_datacenter" - "is_tor" - "is_proxy" - "is_vpn" - "is_abuser" - "is_bogon" # Read more about this in https://ipgeolocation.io/blog/bogon-ip-addresses # Type to determine. type: boolean
# ⛽ IPStack # https://ipstack.com/ # # Details: # https://ipstack.com/signup/free # # - 100 monthly requests, free account. # - 50k monthly requests, basic account. # - 500k monthly requests, professional account. # - 2M monthly requests, professional plus account. ipstack: # Enable this service? enabled: false # Model request to use. model: "JSON" # Insert your key here. # Don't delete this field! key: "" # URL. url: "https://api.ipstack.com/%IP%?access_key=%KEY%&security=1" # Values to check. values: # Fields to check. fields: - "security.is_proxy" - "security.is_crawler" - "security.is_tor" - "security.hosting_facility" # Type to determine. type: boolean
# ⛽ 2IP # https://2ip.io/ # # Details: # https://2ip.io/registration/api/ # # - 10k requests free per month. # (Based in Billing) 2ip: # Enable this service? enabled: false # Model request to use. model: "JSON" # Insert your key here. # Don't delete this field! key: "" # URL. url: "https://api.2ip.io/%IP%?token=%KEY%" # Values to check. values: # Fields to check. fields: - "asn.hosting" # Type to determine. type: boolean
# ⛽ GreIP # https://greip.io/ # # Details: # https://dashboard.greip.io/login # # - 15k monthly requests, free account. # - 170k monthly requests, Standard account. # - 400k monthly requests, Premium account. # - Unlimited requests, "Pay-as-you-go". greip: # Enable this service? enabled: false # Model request to use. model: "JSON" # Headers in case is necessary. # # Set to: 'headers: []' to disable. headers: 'Authorization': 'Bearer KEY' # URL. url: "https://greipapi.com/lookup/ip/threats?ip=%IP%" # Values to check. values: # Fields to check. fields: - "data.threats.isProxy" - "data.threats.isRelay" - "data.threats.isTor" - "data.threats.isHosting" # Type to determine. type: boolean
# ⛽ IPGeolocation (PAID SERVICE) # https://ipgeolocation.io/ # # Details: # https://app.ipgeolocation.io/login # # This is a PAID SERVICE, require starting from # $15 monthly subscription for using IP-security # feature. First plan it's $15 (Bronze). # # - 150k monthly requests, Bronze ($15) # - 1M monthly requests, Solver ($65) # - 6M monthly requests, Gold ($200) # - 120M+ monthly requests, Enterprise. ipgeolocation: # Enable this service? enabled: false # Model request to use. model: "JSON" # Insert your key here. # Don't delete this field! key: "" # URL. url: "https://api.ipgeolocation.io/ipgeo?apiKey=%KEY%&ip=%IP%" # Values to check. values: # Fields to check. fields: - "security.is_tor" - "security.is_proxy" - "security.is_cloud_provider" - "security.is_known_attacker" - "security.is_anonymous" # Type to determine. type: boolean
- Fixed permissions with LuckPerms providing support multi-platform.
- Fixed PostgreSQL support.
- Feature consolefilter now passed to Free Edition, decision made by me and my community. This now has been passed to configuration section:
# ___ __ _ _ _
# / __\___ _ __ / _(_) __ _ _ _ _ __ __ _| |_(_) ___ _ __
# / / / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \
# / /__| (_) | | | | _| | (_| | |_| | | | (_| | |_| | (_) | | | |
# \____/\___/|_| |_|_| |_|\__, |\__,_|_| \__,_|\__|_|\___/|_| |_|
# |___/
# Configure some others little options.
configuration:
# Allow the usage of Metrics (bStats) in your server?
# - This is only for stadistics usage.
#
# ❝ What data is collected?
# We are using bStats (https://bstats.org/), this does not collect
# any personal data. Most of the collected data is information about
# the plugin's server like player count, online mode, Minecraft version,
# Java version, and more. All data gets sent and stored completely
# anonymously. See more in information about this in "bStats: Getting Started"
# https://bstats.org/getting-started
#
# (!) Since 1.0.2 (premium) and 1.1.0 (free), FoxGate uses
# their own code base for Metrics, but following their
# rules. This use asynchronous methods to send data and
# changes to Gson for better stability; improving the
# performance of this. You can safety has enable this to
# help to the creator without affecting the performance.
metrics: true
# Print to console?
# - Enable this to send the equal notification to the console when
# a player is flagged.
console: true
# Define the permission.
# - Set here the permission to see the notification in case this
# is used in case a player is using VPN. By default, this is one
# permission default of the antivpn: 'foxav.notifications'
permission: 'foxav.notifications'
# Do you want to enable this feature?
# - Automatic check new updates in the Market pages. This only detect
# when the server is starting. You need to have connection for check
# new updates.
#
# (!) Since 1.0.0 (premium) and 1.0.6 (free), FoxGate uses
# their own code code for update chacking. This use
# asynchronous methods to scan updates; improving the
# performance of this. You can safety has enable this to
# verify updates without affecting the performance.
update: true
# Do you want debug enable debug messages of FoxGate?
# - Set what messages you want to debug when the debugging mode
# is enabled with the command '/fg debug'. This only shows in
# the console.
debug:
# Messages about Events of the player?
events: true
# Messages returning service's responses for better
# creation or control of this. Enable only for testing,
# don't recommend enable this in production, otherwise,
# your console can be flooded a lot.
services: true
# Messages about actions making by FoxGate.
# Like, sending discord webhooks (responses), downloading
# GeoLocation databases and seding Telegram (requests).
actions: true
# Enable the option to hide any disconnection message
# when a player is detected for VPN, it's blocked for
# their Country or ASN.
# This probably doesn't go to work in some platforms or
# versions, because only support Apache Log4J and SLF4J.
consolefilter:
# Enable hide the message of disconnection if the next
# scenaries.
vpn: true
limiter: true
# Premium Edition features.
country: true
asn: true
- Added new feature of Telegram Forward (unique). Send alerts of disconnections made by FoxGate to your telegram chat/group/supergroup with a bot.
# Enable the usage of Telegram Webhooks to send any alert's or
# messages if the player is vpn/proxy or if is allowed to connect
# to the server.
#
# For using this, you need a bot token, for that, need to create
# a bot. See more in:
# https://core.telegram.org/bots#how-do-i-create-a-bot
telegram:
# Enter here the bot's token, set to empty to
# disable this feature, you need to add both
# credentials for enabling this feature.
#
# See https://core.telegram.org/bots/webhooks
# for how to use it.
bot_token: ""
# Enter here the channel to send the alert. Set
# empty to disable this feature, you need to add both
# credentials for enabling this feature.
#
# Must be unique identifier for the target chat or
# username of the target channel (in the format @channelusername).
chat_id: ""
# Customize the messages.
# Here you can find some placeholders for use:
#
# {NAME} - Return name of the user.
# {IP} - Return IP of the user.
# {UUID} - Return IP of the user.
# {DETECTED} - Return only the services that detected that IP has VPN.
# {UNDETECTED} - Return only the services that doesn't detect that IP is VPN.
# {LIST} - Return both list, but this difference with color (customizable).
# {MAX} - Return the number of maximum flags to deny access to the player.
# {COUNT_DETECTED} - Return the count of services that the player has been detected.
# {COUNT_UNDETECTED} - Return the count of services that the player doesn't has been detected.
# {GEO_COUNTRY} - Return the country player (Only works enabling the feature).
# {GEO_ASN} - Return the ASN player (Only works enabling the feature).
# Use '%nl%', '\n' or '\nl' for new line.
text:
# Messages when the player is allowed to connect.
allowed:
# Enable this webhook?
enable: true
# Determine here the content in the message.
# (!) This is required to send the message.
text: "*FoxGate: High Quality AntiVPN*\n\nPlayer *{NAME}* `({IP})` has been verified by *FoxGate* with a result of `{COUNT_DETECTED}/{MAX}` detected services.\n\n- Detected in `({COUNT_DETECTED})`: `{DETECTED}`\n- Undetected in `({COUNT_UNDETECTED})`: `{UNDETECTED}`\n- Country: `{GEO_COUNTRY}`\n- ASN: `{GEO_ASN}`"
# Determine here the thread message ID to send.
# Set "" to disable this feature.
#
# (!) Use this in case you want send in different
# channel-thread to separate. This must be
# unique identifier for the target message thread
# (topic) of the forum; for forum supergroups only.
thread_id: ""
# Protect the message for privacy?
# Protects the contents of the sent message from
# forwarding and saving.
protection: true
# Disable notification sound?
# Sends the message silently. Users will receive a
# notification with no sound.
nosound: false
# Determine the mode of parsing.
# Values can be:
# - MarkdownV2 (Recommended)
# - HTML
# - Markdown
#
# (!) Invalid value go to use "MarkdownV2".
# https://core.telegram.org/bots/api#formatting-options
parsemode: "MarkdownV2"
# Messages when the player is denied to connect.
denied:
# Enable this webhook?
enable: true
# Determine here the content in the message.
# (!) This is required to send the message.
text: "*FoxGate: High Quality AntiVPN*\n\nPlayer *{NAME}* `({IP})` has been blocked by *FoxGate* for a result of `{COUNT_DETECTED}/{MAX}` detected services.\n\n- Detected in `({COUNT_DETECTED})`: `{DETECTED}`\n- Undetected in `({COUNT_UNDETECTED})`: `{UNDETECTED}`\n- Country: `{GEO_COUNTRY}`\n- ASN: `{GEO_ASN}`"
# Determine here the thread message ID to send.
# Set "" to disable this feature.
#
# (!) Use this in case you want send in different
# channel-thread to separate. This must be
# unique identifier for the target message thread
# (topic) of the forum; for forum supergroups only.
thread_id: ""
# Protect the message for privacy?
# Protects the contents of the sent message from
# forwarding and saving.
protection: true
# Disable notification sound?
# Sends the message silently. Users will receive a
# notification with no sound.
nosound: false
# Determine the mode of parsing.
# Values can be:
# - MarkdownV2 (Recommended)
# - HTML
# - Markdown
#
# (!) Invalid value go to use "MarkdownV2".
# https://core.telegram.org/bots/api#formatting-options
parsemode: "MarkdownV2"
# Messages when the player is blocked to connect
# because their country.
country:
# Enable this webhook?
enable: true
# Determine here the content in the message.
# (!) This is required to send the message.
text: "*FoxGate: High Quality AntiVPN*\n\nPlayer *{NAME}* `({IP})` has been blocked by *FoxGate* for their country.\n\n- Country: `{GEO_COUNTRY}`\n- ASN: `{GEO_ASN}`"
# Determine here the thread message ID to send.
# Set "" to disable this feature.
#
# (!) Use this in case you want send in different
# channel-thread to separate. This must be
# unique identifier for the target message thread
# (topic) of the forum; for forum supergroups only.
thread_id: ""
# Protect the message for privacy?
# Protects the contents of the sent message from
# forwarding and saving.
protection: true
# Disable notification sound?
# Sends the message silently. Users will receive a
# notification with no sound.
nosound: true
# Determine the mode of parsing.
# Values can be:
# - MarkdownV2 (Recommended)
# - HTML
# - Markdown
#
# (!) Invalid value go to use "MarkdownV2".
# https://core.telegram.org/bots/api#formatting-options
parsemode: "MarkdownV2"
# Messages when the player is blocked to connect
# because their ASN.
asn:
# Enable this webhook?
enable: true
# Determine here the content in the message.
# (!) This is required to send the message.
text: "*FoxGate: High Quality AntiVPN*\n\nPlayer *{NAME}* `({IP})` has been blocked by *FoxGate* for their ASN.\n\n- Country: `{GEO_COUNTRY}`\n- ASN: `{GEO_ASN}`"
# Determine here the thread message ID to send.
# Set "" to disable this feature.
#
# (!) Use this in case you want send in different
# channel-thread to separate. This must be
# unique identifier for the target message thread
# (topic) of the forum; for forum supergroups only.
thread_id: ""
# Protect the message for privacy?
# Protects the contents of the sent message from
# forwarding and saving.
protection: true
# Disable notification sound?
# Sends the message silently. Users will receive a
# notification with no sound.
nosound: true
# Determine the mode of parsing.
# Values can be:
# - MarkdownV2 (Recommended)
# - HTML
# - Markdown
#
# (!) Invalid value, will use "MarkdownV2".
# https://core.telegram.org/bots/api#formatting-options
parsemode: "MarkdownV2"
- Definitive fix for N/A ASN and Country in Discord Webhook and Telegram Forward.
➡️ Reset your configuration in case you want to apply already all the changes instead of copy manually.
1.0.1
Mar 7, 2025
Version 1.0.1 👑
- ⚠ Fixed users without permissions to the command can see tab-arguments. This can show cached IP's, update now! (If you don't has plugin that hide tab-completion)
- Support now 1.3.x to 1.21.x, changed internal libraries to Gson.
- Improved command and improved performance.
- Now libraries message are hidden by default, enable it with using argument '-Dfoxgate.enableLibrariesLog'.
- Fixed in BungeeCord, player's get invalid packet for commands, making this only working in console only, now works in both.
1.0.0
Mar 3, 2025
Page 1