Skip to content

Releases: kferrano/Modwhitelist

1.21.1-2.1.3

Choose a tag to compare

@kferrano kferrano released this 04 Oct 07:12

🐛 Fix

  • Fixed a rare race condition where ModWhitelist could try to send scan results after the client had already disconnected
  • Prevented a NullPointerException when a background scan completed after the connection had already been closed

🔧 Improvement

  • Added connection checks before sending scan response chunks
  • Remaining scan results are now discarded safely if the client disconnects during the response process

1.21.1-2.1.2

Choose a tag to compare

@kferrano kferrano released this 02 Oct 18:05

🐛 Fix

  • Fixed a rare client-side freeze that could occur while ModWhitelist scans and hashes installed mod files
  • SHA-256 file scanning is now performed asynchronously instead of blocking the Minecraft client thread, preventing connection timeouts on systems where scanning the mods folder takes significantly longer
  • Added client scan duration logging to make future scan-related issues easier to diagnose

🔧 Improvement

  • Mod scan responses are now sent only after the background file scan has completed, without blocking normal client rendering or network processing

1.20.1-3.1.1

Choose a tag to compare

@kferrano kferrano released this 20 Sep 08:22

🔧 Improvement

  • settings.json is now generated on client startup in Forge 1.20.1
  • This allows singleplayerDevMode to be configured before starting a singleplayer world
  • ModWhitelist checks remain disabled in singleplayer by default and can be enabled explicitly for development/testing

1.19.2-3.0.0

Choose a tag to compare

@kferrano kferrano released this 20 Sep 09:28

✨ Feature

  • Added the new multi-file ModWhitelist configuration system to Forge 1.19
  • Added singleplayerDevMode for testing ModWhitelist in singleplayer/integrated server environments
  • Added SHA-256 based deny rules for individual mod files
  • Added automatic classification into both_side_required, client_required, client_optional and server_only
  • Added chunked client scan responses for large modpacks

🔧 Improvement

  • settings.json is now generated on client startup so singleplayerDevMode can be configured before starting a world
  • Reworked Collect Mode to automatically classify client and server mods/files
  • Switched scan nonce generation to SecureRandom
  • Improved kick messages and scan validation
  • Improved cleanup of pending player scans on logout

🐛 Fix

  • Fixed Collect Mode being blocked when strict=false
  • Required mod and SHA-256 checks are no longer unintentionally skipped when strict mode is disabled

🧩 Refactor

  • Updated the Forge 1.19 networking protocol to support chunked scan packets
  • Reworked the legacy single-file configuration system to match the current ModWhitelist architecture
  • Updated ModWhitelist commands to the current command structure

📁 File/Project structure

  • Replaced the old config/modwhitelist.json layout with:
    • settings.json
    • both_side_required.json
    • client_required.json
    • client_optional.json
    • server_only.json
    • deny.json
  • Added automatic migration from the legacy modwhitelist.json configuration
  • Added ModScanChunkPacket for segmented client scan responses

⚙️ Compatibility

  • Forge 1.19 is now aligned with the current ModWhitelist feature set used by the newer supported versions
  • Network protocol updated to version 2

1.18.2-3.0.0

Choose a tag to compare

@kferrano kferrano released this 17 Sep 12:28

✨ Feature

  • Added singleplayerDevMode to allow developers to enable ModWhitelist checks in Singleplayer.
  • Added automatic Dedicated Server detection.
  • Added /modwhitelist init.
  • Added new /modwhitelist collect on|off|clear commands.
  • Added support for client_required and server_only mod classifications.
  • Added chunked client scan responses for large modpacks.

🔧 Improvement

  • Updated the 1.18.* version to match the current ModWhitelist feature set.
  • Improved client mod and file scanning.
  • Improved handling of large mod lists to prevent oversized network packets.
  • Added cleanup of pending scans when players disconnect.
  • Internal Minecraft/Forge mod IDs are now filtered from collected mod lists.
  • settings.json is now generated even when running in Singleplayer.
  • Added clearer log messages for Dedicated Server and Singleplayer detection.

🐛 Fix

  • Fixed incomplete settings.json generation logic in the 1.18.* version.
  • Fixed pending scan data potentially remaining after player disconnects.
  • Fixed compatibility issues caused by missing configuration components.

📦 Modpack/Config

  • Replaced the old single modwhitelist.json configuration with the new multi-file configuration system.

  • Added:

    • settings.json
    • both_side_required.json
    • client_required.json
    • client_optional.json
    • server_only.json
    • deny.json
  • Added migration support for existing legacy modwhitelist.json configurations.

  • Added file-based deny rules and SHA-256 validation.

  • Added automatic mod classification during collect mode.

⚙️ Compatibility

  • Ported the current ModWhitelist functionality to Forge 1.18.* while retaining the required 1.18-specific Minecraft/Forge APIs.
  • Updated the network protocol to support chunked scan packets.

1.20.1-3.0.0

Choose a tag to compare

@kferrano kferrano released this 18 Apr 03:40
81019da

Modwhitelist v2.0.0

✨ Feature

  • Split the config into multiple files for better structure and easier maintenance:

    • settings.json
    • both_side_required.json
    • client_required.json
    • client_optional.json
    • server_only.json
    • deny.json
  • Added support for client-only required mods

  • Added support for both-side required mods

  • Added support for server-only mods

  • Added support for optional client-side mods in a cleaner separated setup

🔧 Improvement

  • Added a new collect mode workflow to automatically classify:

    • both-side required mods
    • client-optional mods
    • server-only mods
  • Improved overall config clarity for server admins

  • client_required.json is now intentionally kept manual, so admins can decide which client-only mods are truly required

  • Added support for denied files in addition to denied mod IDs

🐛 Fix

  • Improved kick messages with colored formatting for better readability
  • Kick messages are now much clearer when mods or files are missing, denied, or not allowed
  • Fixed command structure by simplifying collect mode usage

📁 File/Project structure

  • Moved from a single modwhitelist.json to a structured multi-file config folder:
    • config/modwhitelist/

⚙️ Compatibility

  • Added automatic legacy migration from the old single-file config to the new multi-file structure

Commands

  • /modwhitelist reload
  • /modwhitelist init
  • /modwhitelist collect on
  • /modwhitelist collect off
  • /modwhitelist collect clear

Notes

  • Old configs are migrated automatically on first start
  • Auto-collect writes to:
    • both_side_required.json
    • client_optional.json
    • server_only.json
  • client_required.json must be adjusted manually if you want certain client-only mods to be mandatory

1.21.1-2.0.0

Choose a tag to compare

@kferrano kferrano released this 14 Apr 03:56
eb2885a

Modwhitelist v2.0.0

✨ Feature

  • Split the config into multiple files for better structure and easier maintenance:

    • settings.json
    • both_side_required.json
    • client_required.json
    • client_optional.json
    • server_only.json
    • deny.json
  • Added support for client-only required mods

  • Added support for both-side required mods

  • Added support for server-only mods

  • Added support for optional client-side mods in a cleaner separated setup

🔧 Improvement

  • Added a new collect mode workflow to automatically classify:

    • both-side required mods
    • client-optional mods
    • server-only mods
  • Improved overall config clarity for server admins

  • client_required.json is now intentionally kept manual, so admins can decide which client-only mods are truly required

  • Added support for denied files in addition to denied mod IDs

🐛 Fix

  • Improved kick messages with colored formatting for better readability
  • Kick messages are now much clearer when mods or files are missing, denied, or not allowed
  • Fixed command structure by simplifying collect mode usage

📁 File/Project structure

  • Moved from a single modwhitelist.json to a structured multi-file config folder:
    • config/modwhitelist/

⚙️ Compatibility

  • Added automatic legacy migration from the old single-file config to the new multi-file structure

Commands

  • /modwhitelist reload
  • /modwhitelist init
  • /modwhitelist collect on
  • /modwhitelist collect off
  • /modwhitelist collect clear

Notes

  • Old configs are migrated automatically on first start
  • Auto-collect writes to:
    • both_side_required.json
    • client_optional.json
    • server_only.json
  • client_required.json must be adjusted manually if you want certain client-only mods to be mandatory

1.20.1-2.1.0

Choose a tag to compare

@kferrano kferrano released this 21 Mar 20:36

Changelog

🐛 Fix

  • Fixed an issue where players could get disconnected on join with
    Payload may not be larger than 32767 bytes.
  • Large scan responses are no longer sent as a single oversized packet.
  • Pending scan data is now properly cleared when a player logs out.

🔧 Improvement

  • Mod and file scans are now split into smaller network packets.
  • Received scan data is reassembled correctly on the server side.
  • Timeout and nonce validation were cleanly preserved in the updated scan flow.
  • collectclientonly was changed to a more compact toggle command.

🧩 Refactor

  • Reworked the internal network flow for the client scan.
  • Scan handling is now more clearly separated between request, chunked transfer, and final processing.
  • Simplified command handling for collectclientonly.

📦 Modpack/Config

  • Reordered entries in the config.
  • collectWhitelist, collectClientOnly, strictFiles, customMessage, and packLink are now grouped above allowed instead of being placed in the middle of the config.
  • Existing behavior for strict, strictFiles, and collectClientOnly remains unchanged.

⚙️ Compatibility

  • Improved stability for larger modpacks with many mods and files.
  • Strict mode remains compatible with the new scan transfer flow.