【MCDR Tutorials 01】Introduction

The vanilla Minecraft technology survival has become a hot topic in recent years. Perhaps because of the pandemic, people have been able to pick up the game they put down years ago, or perhaps because of the successful advertising of TIS, students have been able to look up from the tasteless mobile games, and this long-history but minority topic has gradually entered the public eye. In the last three years, a large number of new technology survival servers have founded and fallen, and both old and new players have been blown away by the unlimited potential shown by this decade-old game. And behind these servers, almost all are using a significant server management tool - MCDReforged.

History

In November 2018[1], before the TIS starts the server, chino_desu developed the server management tool MCDaemon[2]. Without modifying the vanilla server, the tool provides server management functions such as restart, world files backup and automatic rollback, cross-service chat, mirror synchronization, etc.

The first commit of MCDaemon<sup id="fnref:3" class="footnote-ref"><a href="#fn:3" rel="footnote"><span class="hint--top hint--rounded" aria-label="kafuuchino-desu. "[Initial commit](https://github.com/kafuuchino-desu/MCDaemon/commit/ab6e9d92fdcb0f2a2a13c77d573d1af61fc51920)". GitHub. 13 November 2018. [Archived](https://web.archive.org/web/20220823093612/https://github.com/kafuuchino-desu/MCDaemon/commit/ab6e9d92fdcb0f2a2a13c77d573d1af61fc51920) from the original on 23 Augest 2022. Retrieved 23 Augest 2022.">[3]</span></a></sup>

With the development of TIS, powerful functions shown by the MCDaemon are notified by many people, especially the saves backup and rollback. They want to use MCDaemon to manage their server, but it does not support Windows. Therefore, lightbrotherV created the project MCDaemon-go[4], which is compatible with the Windows system.

Archived MCDaemon-go

The first commit of MCDaemon-go<sup id="fnref:5" class="footnote-ref"><a href="#fn:5" rel="footnote"><span class="hint--top hint--rounded" aria-label="lightbrotherV. "[Initial commit](https://github.com/TISUnion/MCDaemon-go/commit/72322490b6aa5570baafc3de10f3af5b32380e20)". GitHub. 2 December 2018 [Archived](https://web.archive.org/web/20220823112917/https://github.com/TISUnion/MCDaemon-go/commit/72322490b6aa5570baafc3de10f3af5b32380e20) from the original on 23 Augest 2022. Retrieved 23 Augest 2022.">[5]</span></a></sup>

Although MCDaemon-go is compatible with windows, it is not able to load Python plugins from MCDaemon. Repeating the development of two system plugins is obviously not a wise move, and not unsustainable for long-term community development. During the period, some users created forks like MCD-Windows, now most of them are deleted.

MCDaemon has been used by TIS for a while, and many problems have been revealed, and there are a lot of features to optimize, so the development of MCD 2.0 is on the agenda.

In March 2020, Fallen_Breath started the development of MCDReforged[6], which can run on Windows.

The first commit of MCDReforged<sup id="fnref:7" class="footnote-ref"><a href="#fn:7" rel="footnote"><span class="hint--top hint--rounded" aria-label="Fallen-Breath. "[init](https://github.com/Fallen-Breath/MCDReforged/commit/e7cc72a523f8c8b113df37c41015704cf4031e2b)". GitHub. 30 May 2020 [Archived](https://web.archive.org/web/20220823113116/https://github.com/Fallen-Breath/MCDReforged/commit/e7cc72a523f8c8b113df37c41015704cf4031e2b) from the original on 23 Augest 2022. Retrieved 23 Augest 2022.">[7]</span></a></sup>

Chino sent the source code of MCD 2.0 and the expected features list to Fallen_Breath. In March 2020, MCDR released its first prerelease. In May, chino announced to stop the development and maintenance of MCDaemon.

At the beginning of MCDR development, I gave Fallen a small portion of the MCD 2.0 source code I had written, as well as a list of expected MCD 2.0 features. It’s hard to say if it helped Fox write MCDR, but the directory structure in the src of MCDR does look like MCD 2.0.
—— chino_desu

The document of MCDaemon states it stops maintenance

Introduction

MCDReforged is a tool that provides the management ability of the Minecraft server using a custom plugin system. It doesn’t need to modify or mod the original Minecraft server at all. From in-game calculator, player high-light, to manipulate scoreboard, manage structure file and backup / load backup, you can implement these by using MCDR and related plugins.
—— The readme of MCDReforged[6]

The readme of MCDReforged

The MCDReforged completely liberates the limitations of MC server management. The relatively independent server management tool can manipulate server files during the server is turned off, or provides functions without permitting OP permission to players.

This really fits in the needs of the vanilla technical survival players and has effectively contributed to the excellent development of MC vanilla technical survival in recent years. It is also behind the resurgence of Minecraft topics in China during the epidemic.

Today many bukkit and mod servers are using MCDR to use save file management, and cross-server chatting functions.

Google trends of Minecraft

Principle

Actually, the principle of MCDR is really simple.

MCDR uses Popen to start the server as a sub-process, then it has the ability to control the standard input / out stream of the server. Since the console output of a Minecraft server has a stable format and contains a large amount of useful information about the server, e.g. player chat messages, MCDR is able to parse and analyze the server output, abstract them into different events and dispatch them towards plugins for responding. With the help of Minecraft command system, MCDR can send Minecraft commands via the standard input stream to affect the actual Minecraft server. [6]

MCDReforged will launch the server, and have its input/out stream

Plugins react differently depending on different events. For example, players can back up server saves, send their location to other players, use the calculator, manage and store fake players, etc. by typing specific commands in the chat box.

Player types !!qb in the chat to make a backup of save file

Player types !!here in the chat to send his location

In-game calculator

Fake players management plugin

Unique Features

  • The ability to control the running status of the server. There is no plugin or mod that can control a turned-off server, but MCDReforged can do that easily because it is running out of the server. The feature never can be achieved by any Bukkit plugin or Forge/Fabric mod.
  • The ability to manage server files. The ability to freely control the running of the server allows MCDR to manage files that must restart the server. For example, shutting down the server and rollback the save, changing server mods or plugins, can be easily implemented by MCDR plugins, eliminating manually login to the server terminal.

Strongpoints

  • Management ability out of the server. Independent running decoupling MCDR and the server, that helps to implement unbelievable functions in the past.
  • Cheap to get started and easy to develop. Complete documents allow server owners only need basic computer skills to get started. MCDR and its plugins are written in Python, an easy language that makes it easy to quickly learn and start developing plugins directly over the Internet.
  • Fantastic community energy and support services. There are still many excellent plugins emerging from the community, and new users become plugin developers, updating old plugins to add new energy and ideas to the community. A large number of users and active MCDR developers work together to provide multi-platform, responsive, and satisfying technical support, application deployment, and emergency maintenance services.

参考文献

  1. TIS_TrinityUnion. "一起见证原版生存科技的巅峰!TIS服务器一周年纪念视频 TIS Trinity Union First Anniversary". bilibili. 29 November 2019. Archived from the original on 23 Augest 2022. Retrieved 23 Augest 2022.
  2. kafuuchino-desu. "MCDaemon". GitHub. Archived from the original on 23 Augest 2022. Retrieved 23 Augest 2022.
  3. kafuuchino-desu. "Initial commit". GitHub. 13 November 2018. Archived from the original on 23 Augest 2022. Retrieved 23 Augest 2022.
  4. TISUnion. "MCDaemon-go". GitHub. Archived from the original on 23 Augest 2022. Retrieved 23 Augest 2022.
  5. lightbrotherV. "Initial commit". GitHub. 2 December 2018 Archived from the original on 23 Augest 2022. Retrieved 23 Augest 2022.
  6. Fallen-Breath. "MCDReforged". GitHub. Archived from the original on 15 May 2022. Retrieved 23 Augest 2022.
  7. Fallen-Breath. "init". GitHub. 30 May 2020 Archived from the original on 23 Augest 2022. Retrieved 23 Augest 2022.

【MCDR Tutorials 01】Introduction
https://blog.zhanganzhi.com/en/2022/08/8fe975c3db2b/
Author
Andy Zhang
Posted on
August 23, 2022
Licensed under