⭐ FoxGate [Premium] ➡️ The #1 AntiVPN Plugin icon

⭐ FoxGate [Premium] ➡️ The #1 AntiVPN Plugin -----

Potential AntiVPN for your Minecraft server, with a lot of features and extremely customization!




  • Major improvements with the handling of FoxGate for Velocity:
    • Switched from LoginEvent to PreLoginEvent: Players are now blocked before reaching any backend server.
    • Implemented Intent (Continuation) conditions, means, player connections are held until they are fully scanned.
    • Instead of directly disconnecting, the login event is now cancelled, and the reason is properly attached.
  • Added more cache to reduce database calls, new option added:
Code (YAML):
# Enable save in cache the results of block?
# Useful for save performance and avoid database calls
# while a player tries to join repeated or in a bot
# attack.
#
# ⭐ Recommended: true
# Note: Disable this feature If you need to edit
# your kick messages, because plugin cache the block
# message in an attempt to save performance.
cache
: true
  • Fixed and caching services result for 10 minutes (fixing probably a lot of problems related to Discord Webhook and Telegram Forward), also, using cache when it's possible.
  • Fixed duplicate checks when player join again in scanning, this prevent player from joining until the scan finish (if they try to rejoin).
  • Fixed an error in update checker for Velocity. (sorry)
  • Added logs when reloading the plugin of enabled services.
  • Fixed cache issues when saving. (this only affects to people who use the new Velocity Handler)
  • Added 'conditions' system for Bypass/Flag an IP in an AntiVPN service.
  • Added 'AbuseIPDB' service. Provided an example of this service using 'Conditions' system:
Code (YAML):
    # 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: '=', '!=', '>', '>=', '<', '<='.
    # - Values can be strings (true/false) or numbers.
    #
    # Note: This feature only works in 'JSON' and 'HTML' type,
    # and for make this works in HTML, always use '{foxgate_check}' for
    # use field (only exists this in HTML).
    conditions
:
     
        # Conditions for Bypass
        # - If any group of conditions here matches, the player will be
        #   ignored (not flagged). Use this for trusted connections like mobile
        #   users or low score in risk/fraud.
        #
        # Note: Disable this condition with 'bypass: {}'.
        bypass
:
            '1'
:
           - ' {data.isWhitelisted }=true'
            - ' {data.isTor }=false'
     
        # Conditions for Flag.
        # - If any group of conditions here matches, the player will
        #   be flagged (detected). Useful for detecting based on high
        #   risk/fraud score, known abuse, etc.
        #
        # Note: Disable this condition with 'bypass: {}'.
        flag
:
            '1'
:
           - ' {data.abuseConfidenceScore }>=75'
  • (Premium users with Extended ASN) Now exists an option for auto-updating your list, you need a token, for this, DM to me for creating one if you purchase this extension.
  • Fixed database using equal value of bypass in blocker in time. Also, now using 'add' command, will save with blocker time for avoid issues.
  • [Premium] Added option to detected users allows from joining to the server but get block connections to certains subservers. (Proxy only)
  • Big improvement with the handling of FoxGate for Backend (Spigot/Paper/etc):
    • Implemented Intent (Continuation) conditions, means, player connections are held until they are fully scanned.
  • [Premium] Fixed next error:
Code (Text):
[22:44:20 WARN] [foxgate]: [GEO] Exception with provider MAXMIND for country: java.lang.NoClassDefFoundError: zoruafan/foxgate/shared/org/apache/commons/lang3/SystemProperties
[22:44:20 WARN] [foxgate]: [GEO] Provider MAXMIND failed. Trying next...
[22:44:20 INFO] [foxgate]: [GEO] Downloading from provider: MAXMIND - for: asn
[22:44:21 WARN] [foxgate]: [GEO] Exception with provider MAXMIND for asn: java.lang.NoClassDefFoundError: zoruafan/foxgate/shared/org/apache/commons/lang3/SystemProperties
[22:44:21 WARN] [foxgate]: [GEO] Provider MAXMIND failed. Trying next...
  • Added the service 'MerakiStudios' in enabled-by-default.

SEE RED COMMENT IN DESCRIPTION.
----------, Aug 18, 2025

Applied all changelogs from:
Changelogs:
  • Fixed issues related to GeoModule doesn't detecting sometimes IPInfo database in fallback.
  • Fixed little problems with Velocity.
  • Improved tab-complete handler.
  • Fixed others little issues which affects experience.
Remember to leave your review if you like this plugin. Also, join to our discord server for receive support or ask questions.
----------, Jul 19, 2025

Applied all changelogs from:
Important:
The plugin was recoded in their systems and logic, which improves a lot the stability and performance. A lot of changes was made since the last update published here, you could check some in the applied changelogs from previously versions of Free.

Remember to leave your review if you like the plugin! ^^
----------, Jul 8, 2025

  • 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)
    Code (YAML):
    # 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)

    Code (YAML):
    # 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"
    (config.yml)
    Code (YAML):
    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)
    Code (YAML):
    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)
    Code (YAML):
    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)
    Code (YAML):
    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)
    Code (YAML):
    # 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
    Code (YAML):
      # ⛽ 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
    Code (YAML):
      # ⛽ 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
    Code (YAML):
      # ⛽ 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
    Code (YAML):
      # ⛽ 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)
    Code (YAML):
      # ⛽ 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:
    Code (YAML):
    #     ___             __ _                       _   _      
    #    / __\___  _ __  / _(_) __ _ _   _ _ __ __ _| |_(_) ___  _ __
    #   / /  / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \
    #  / /__| (_) | | | |  _| | (_| | |_| | | | (_| | |_| | (_) | | | |
    #  \____/\___/|_| |_|_| |_|\__, |\__,_|_|  \__,_|\__|_|\___/|_| |_|
    #                          |___/                            

    # 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.
    Code (YAML):
        # 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"
[​IMG]
  • 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.
----------, Apr 28, 2025

  • 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)
    Code (YAML):
    # 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)

    Code (YAML):
    # 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"
    (config.yml)
    Code (YAML):
    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)
    Code (YAML):
    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)
    Code (YAML):
    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)
    Code (YAML):
    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)
    Code (YAML):
    # 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
    Code (YAML):
      # ⛽ 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
    Code (YAML):
      # ⛽ 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
    Code (YAML):
      # ⛽ 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
    Code (YAML):
      # ⛽ 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)
    Code (YAML):
      # ⛽ 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:
    Code (YAML):
    #     ___             __ _                       _   _      
    #    / __\___  _ __  / _(_) __ _ _   _ _ __ __ _| |_(_) ___  _ __
    #   / /  / _ \| '_ \| |_| |/ _` | | | | '__/ _` | __| |/ _ \| '_ \
    #  / /__| (_) | | | |  _| | (_| | |_| | | | (_| | |_| | (_) | | | |
    #  \____/\___/|_| |_|_| |_|\__, |\__,_|_|  \__,_|\__|_|\___/|_| |_|
    #                          |___/                            

    # 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.
    Code (YAML):
        # 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"
[​IMG]
  • 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.
----------, Apr 27, 2025

Resource Information
Author:
----------
Total Downloads: 18
First Release: Apr 13, 2025
Last Update: Aug 18, 2025
Category: ---------------
All-Time Rating:
1 ratings
Find more info at github.com...
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings