FoxGate AntiVPN [Premium] icon

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 11 days ago
Versison 1.0.2 (Fixed)

Fixed old .jar, please update asap!

1.0.2 12 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"
    (config.yml)
    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
      # ⛽ 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
      # ⛽ 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
      # ⛽ 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)
    # ⛽ 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"

image.png?ex=680f7503&is=680e2383&hm=c87158589b60650971b71d27310b40b58ec66c5cc9375c01f2e265011fb97fe6&=

  • 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 👑
  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)
  2. Support now 1.3.x to 1.21.x, changed internal libraries to Gson.
  3. Improved command and improved performance.
  4. Now libraries message are hidden by default, enable it with using argument '-Dfoxgate.enableLibrariesLog'.
  5. 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

antivpn

vpnblocker

protection