Mcdreforged

Latest version: v2.14.7

Safety actively analyzes 723217 Python packages for vulnerabilities to keep your Python projects secure.

Scan your dependencies

Page 2 of 14

2.14.1

Check [here](https://github.com/MCDReforged/MCDReforged/releases/tag/v2.14.0) to view the changelog of the v2.14 series

Fixes

- Fixed exception when calling `PluginManager.manipulate_plugins` on non task executor thread
- Affected the `!!MCDR plugin install` command. The plugins will still be correctly installed though

2.14.0

News

Async

(Beta feature) Added async event listener support. You can now implement event listeners in an async style

- Added the second task executor thread: The async task executor, dedicating on running all async tasks
- Notes: The watchdog is not able to restart the async task executor thread. You need to restart MCDR if it gets blocked by plugin error

python
async def on_load(server, old):
server.logger.info('Welcome to the async world!')


ServerInterface

- Added APIs for the async stuffs: [`is_on_async_executor_thread`](https://docs.mcdreforged.com/en/latest/code_references/ServerInterface.html#mcdreforged.plugin.si.server_interface.ServerInterface.is_on_async_executor_thread), [`get_event_loop`](https://docs.mcdreforged.com/en/latest/code_references/ServerInterface.html#mcdreforged.plugin.si.server_interface.ServerInterface.get_event_loop)
- Added supports coroutine objects and coroutine functions support for [`schedule_task`](https://docs.mcdreforged.com/en/latest/code_references/ServerInterface.html#mcdreforged.plugin.si.server_interface.ServerInterface.schedule_task)
- Added `pydantic.BaseModel` support for [`load_config_simple`](https://docs.mcdreforged.com/en/latest/code_references/PluginServerInterface.html#mcdreforged.plugin.si.plugin_server_interface.PluginServerInterface.load_config_simple) and [`save_config_simple`](https://docs.mcdreforged.com/en/latest/code_references/PluginServerInterface.html#mcdreforged.plugin.si.plugin_server_interface.PluginServerInterface.load_config_simple)

`!!MCDR` command

- Added new command [`!!MCDR plugin freeze`](https://docs.mcdreforged.com/en/latest/command/mcdr.html#freeze), that works like the `pip freeze` command
- Added new argument `-r` `--requirement` for the `!!MCDR plugin install` command, that accepts a text file generated from the `!!MCDR plugin freeze` commands
- Added hash validator support for the [`!!MCDR plugin install`](https://docs.mcdreforged.com/en/latest/command/mcdr.html#install) command

Others

- Added new plugin event [`server_start_pre`](https://docs.mcdreforged.com/en/latest/plugin_dev/event.html#server-start-pre), a blocking event for plugins to perform some pre-server-start stuffs
- Added command node API [`precondition`](https://docs.mcdreforged.com/en/latest/code_references/command.html#mcdreforged.command.builder.nodes.basic.AbstractNode.precondition) to hide children nodes if given precondition does not satisfy
- Added `metavar` kwarg to the [constructor](https://docs.mcdreforged.com/en/latest/code_references/command.html#mcdreforged.command.builder.nodes.basic.ArgumentNode) of `ArgumentNode` for customizing the name used for command suggestion, like what `argparse` module does
- Added support for `uuid.UUID` for the serializer
- Added telemetry report. See [document](https://docs.mcdreforged.com/en/latest/telemetry.html) for more information

Changes

- **This is the last MCDR version that supports Python 3.8**. MCDR 2.15 will require Python 3.9 and above to run
- Updated default python version in docker image from 3.11 to 3.12
- Made CLI `pim pipi` subcommand ignore package `mcdreforged`
- Swaped the event order of `MCDR_STOP` and `PLUGIN_UNLOADED`, to ensure the plugin loaded / unloaded event should cover the whole plugin lifecycle
- Limited number of displayed changelog lines in the update helper
- Improved mc version detection used in `AbstractMinecraftHandler.get_send_message_command`
- Refactored the CLI `pack` command and use the `pathspec` lib to handle the gitignore content
- Hide thread name dumps in the `!!MCDR status` command, cuz we already have the `!!MCDR debug thread_dump`

Fixes

- Fixed plugin provided handler causing a "Fail to load handler with name xxx" error message on mcdr loaded
- Fixed mixing translation language in some `!!MCDR` commands
- Fixed exception on logging for multiple plugin-defined server handlers
- Fixed server handler `beta18_handler` not correctly support mc >= 1.0 (351)
- Fixed logger file formatter msecs padding
- Fixed plugin logger not reset on plugin load
- Fixed translation key for `linked_directory` in `mcdreforged.mcdr_command.pim.install.cannot_change_not_packed.plugin_types`
- And lot more small fixes and tidying, see commit diff for more information

2.13.2

Fixes

- Fixed catalogue meta fetch no retry if it fetches fails
- Make sure current directory is in the `sys.path` again (277, 331)

2.13.1

Fixes

- Fixed incorrect stack level for some functions of `MCDReforgedLogger`
- Fixed config `catalogue_meta_url`, `catalogue_meta_fetch_timeout` and `catalogue_meta_cache_ttl` cannot be hot-reloaded
- Fixed `PluginOperationResult.to_rtext` does not properly translate the active plugin count text
- Fixed `AbstractMinecraftHandler.player_joined` cannot handle ipv6 address (318)
- Fixed `ServerHandler` interface class not in the api package

2.13.0

plugin installer, docker image, lots of new APIs, and more...

ServerInterface APIs

- Added new API `register_server_handler`
- Added new API `register_info_filter`
- Added new API `get_plugin_type`
- Added new API `is_plugin_file_changed`
- Added new API `manipulate_plugins`
- Added kwarg `data_processor` for `load_config_simple` for easier config data migration
- Added kwarg `allow_duplicates` for `register_command` with default `false` for easier debugging on accidental command duplciation
- Fixed `load_config_simple` fixed cannot deserialize object from yaml

Command APIs

- Added kwarg `accumulate` to `ArgumentNode` constructor. With it set to `true`, reentering the nodes accumulates parsed values into a list
- Renamed `command_builder_util` to `command_builder_utils`. The old name is still accessible from the `api` package

Plugin Installer for MCDR

Added commands to access and install plugins from [the plugin catalogue](https://mcdreforged.com/en/plugins)

- `!!MCDR plugin browse`: Browse plugins in the catalogue
- `!!MCDR plugin install`: Install / Upgrade given plugins
- `!!MCDR plugin checkupdate`: Check for plugin updates
- `!!MCDR plugin refreshmeta`: Refresh plugin catalogue meta cache

See more at https://docs.mcdreforged.com/en/latest/command/mcdr.html#plugin-catalogue-access

<img alt="plugin install" src="https://github.com/MCDReforged/MCDReforged/assets/28978806/0a7d387b-3116-438c-848d-7e2829c2ae87" width="400"/>

Config

- Relocated config option orders in the default config file
- Updated the default `start_command` value to a side-effect free one
- `decoding` option can now accept a list of decoding method candidates for easier handling of mixed output encoding
- Added serval new options for the plugin installer
- `catalogue_meta_cache_ttl`, `catalogue_meta_fetch_timeout`, `catalogue_meta_url`, `plugin_download_url`, `plugin_download_timeout`, `plugin_pip_install_extra_args`
- Added options `http_proxy` and `https_proxy` for all http requrests in MCDR

CLI

- Added `--config` and `--permission` to CLI `init`, `start`, `gendefault` subcommands, for suppling path to the config and permission file
- Added `--auto-init`, `--no-server-start` options for CLI `start` subcommand
- Added subcommand `pim` for simply browse plugins, download plugins, or install python packages requirements
- Added subcommand `reformat-config`
- Renamed subcommand `gendefault` to `gen-default`. The old name is now an alias

See more at https://docs.mcdreforged.com/en/latest/cli/index.html

Docker

Added official docker image support, with base image and openjdk variants

- `mcdreforged/mcdreforged`: The basic image with MCDR
- `mcdreforged/mcdreforged-extra`: MCDR with lots of handful python package installed
- `mcdreforged/mcdreforged-$openjdk`: MCDR with openjdk (temurin, corretoo, zulu) installed

See more at https://docs.mcdreforged.com/en/latest/docker.html

Misc

- New flat-style logo (294)
- Added a "mcdreforged." prefix for all mcdreforged's internal translation
- Added `Metadata.to_dict` api
- Extracted an interface-only class `ServerHandler` from `AbstractServerHandler`
- Use regex instead of the `parse` lib for sever output parsing for all builtin server handlers, for more control on what will happen (287)
- Updated urls of MCDR repos / docs etc.
- Logger improvements:
- Show more detailed information in logging file
- Plugin can not set the log level of its logger to debug, to enable debug logging for its logger
- A lot of internal codes refactoring

Fixes

- Fixed unusual file mtime breaks plugin loading (293)
- Fixed handler displayed order not preserved in handler detector
- Fixed missing `__str__` on `CountingLiteral`

2.12.3

- (Python 3.10+) Fixed a rare condition where MCDR will fail to disable a packed plugin in Windows, due to the packed plugin file being occupied (283)

Page 2 of 14

© 2025 Safety CLI Cybersecurity Inc. All Rights Reserved.