Skip to content

Commit

Permalink
docs: synchronize readme to documentation index page
Browse files Browse the repository at this point in the history
  • Loading branch information
Zijian Zhang committed Jan 20, 2024
1 parent 521e491 commit fbe814b
Show file tree
Hide file tree
Showing 3 changed files with 88 additions and 14 deletions.
2 changes: 1 addition & 1 deletion README.md
Original file line number Diff line number Diff line change
Expand Up @@ -98,4 +98,4 @@ This project exists thanks to all the people who contribute.

## License

[LGPL-3.0-only](LICENSE.md) © LiteLDev
LGPL-3.0-only © LiteLDev
49 changes: 43 additions & 6 deletions docs/index.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# LeviLamina

![LeviLamina](https://socialify.git.ci/LiteLDev/LeviLamina/image?description=1&font=Raleway&forks=1&issues=1&logo=https%3A%2F%2Fraw.githubusercontent.com%2FLiteLDev%2FLeviLamina%2FHEAD%2Fdocs%2Fimg%2Flogo.svg&name=1&owner=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Auto)

A lightweight, modular and versatile plugin loader for Minecraft Bedrock Server BDS, formerly known as LiteLoaderBDS

LeviLamina is an unofficial plugin loader designed to offer indispensable API support for Minecraft Bedrock Server BDS. It boasts a comprehensive API, an array of utility interfaces, a robust event system, and comprehensive support for basic interfaces. LeviLamina provides an expansive API, a powerful event system, and a wealth of encapsulated development infrastructure interfaces, forming a solid foundation for augmenting the Bedrock Edition BDS with additional gameplay features and functionalities. By leveraging plugins, the process of extending BDS functionality becomes effortless, with a user-friendly development process and an adaptable approach.

Developers can effortlessly author plugins in languages such as C++, JavaScript, Lua, Python, C#, and others. This seamless integration empowers them to effortlessly expand and personalize BDS functionality, facilitating an intuitive learning experience and unparalleled flexibility.
Expand All @@ -16,15 +20,48 @@ Users should comply with relevant laws and regulations when using this software,

If you have any questions or comments about this disclaimer, please contact the developer.

## Background
## Install

This project uses [lip](https://github.com/lippkg/lip). Go check them out if you don't have them locally installed.

First, create a new directory for your Minecraft server and enter it:

```sh
mkdir myserver
cd myserver
```

Then, install LeviLamina bundled with Minecraft Bedrock Server using lip:

```sh
lip install github.com/LiteLDev/LeviLamina
```

For more information, please refer to [the documentation](https://levilamina.liteldev.com).

### Updating

When it comes to data security, we advise against updating LeviLamina in its current location. Instead, we recommend creating a new directory, installing the new version of LeviLamina there, and subsequently copying the `worlds` directory from the old location to the new one. Next, follow the instructions provided by the plugin developers to migrate the configuration files and data files of the plugins you are using to the new directory.

However, if you insist on updating in the same location, you can utilize the following command to update LeviLamina:

```sh
lip install --upgrade github.com/LiteLDev/LeviLamina
```

## Usage

To start the server, simply run `bedrock_server_mod.exe`:

The initial versions of Minecraft Bedrock Edition lacked the extensive mod and server plugin ecosystem present in Minecraft Java Edition, thereby limiting its gameplay possibilities. A collective of C++ enthusiasts, well-versed in Minecraft Bedrock Server, conducted an analysis and utilized reverse engineering techniques and hook injection mechanisms to intervene in the operation of the game server, thus pioneering the development of the first set of server plugins.
```sh
./bedrock_server_mod.exe
```

However, this development paradigm encountered several challenges. Primarily, the absence of underlying framework support necessitated the reliance on diverse low-level tools for symbol analysis, injection implementation, hook registration, and other functionalities during plugin development. Consequently, this led to code redundancy and duplication across different plugins, as well as the potential for unforeseen conflicts among them. Moreover, the lack of explicit type definitions compelled developers to engage in reverse engineering analysis while creating plugins, resulting in elevated development barriers and diminished efficiency.
For more information, please refer to [the documentation](https://levilamina.liteldev.com).

In response to these predicaments, the maintainers of the precursor project, LiteLoaderBDS, constructed an injection-based plugin loading engine and a plugin development framework. In addition, they provided type information, enabling plugin developers to create plugins without requiring an exhaustive comprehension of the underlying principles. This significantly mitigated the entry barriers for plugin development and facilitated the flourishing of the plugin ecosystem.
## Star History

Nevertheless, as LiteLoaderBDS progressed, certain issues came to the fore. The early design failed to account for future advancements, rendering many aspects obsolete and impeding the utilization of contemporary tools, thereby falling short of meeting the latest performance requirements. Furthermore, its tightly coupled design engendered substantial efforts when adapting to new iterations of Minecraft Bedrock Server. Consequently, LiteLDev made the decision to commence from scratch, leveraging existing expertise, and undertaking a comprehensive framework redesign to cultivate a plugin engine that promotes user-friendliness for maintainers, developers, and users alike.
![Star History Chart](https://api.star-history.com/svg?repos=LiteLDev/LeviLamina&type=Date)

## Thanks

Expand All @@ -44,4 +81,4 @@ This project exists thanks to all the people who contribute.

## License

[LGPL-3.0-only](https://github.com/LiteLDev/LeviLamina/blob/HEAD/LICENSE.md) © 2021-2023 LiteLDev
LGPL-3.0-only © LiteLDev
51 changes: 44 additions & 7 deletions docs/index.zh.md
Original file line number Diff line number Diff line change
@@ -1,5 +1,9 @@
# LeviLamina

![LeviLamina](https://socialify.git.ci/LiteLDev/LeviLamina/image?description=1&font=Raleway&forks=1&issues=1&logo=https%3A%2F%2Fraw.githubusercontent.com%2FLiteLDev%2FLeviLamina%2FHEAD%2Fdocs%2Fimg%2Flogo.svg&name=1&owner=1&pattern=Circuit%20Board&pulls=1&stargazers=1&theme=Auto)

轻量级、模块化和多功能的Minecraft Bedrock Server BDS插件加载器,曾被称为LiteLoaderBDS

LeviLamina是一个非官方的插件加载器,旨在为Minecraft Bedrock Server BDS提供必不可少的API支持。它拥有全面的API,一系列的实用接口,一个强大的事件系统,以及对基本接口的全面支持。LeviLamina提供了一个广泛的API,一个强大的事件系统,以及丰富的封装开发基础设施接口,为增强Bedrock Edition BDS的附加游戏功能和功能提供了坚实的基础。通过利用插件,扩展BDS功能的过程变得轻而易举,具有用户友好的开发过程和灵活的方法。

开发者可以轻松地用C++,JavaScript,Lua,Python,C#等语言编写插件。这种无缝集成赋予了他们轻松扩展和个性化BDS功能的能力,促进了直观的学习体验和无与伦比的灵活性。
Expand All @@ -12,15 +16,48 @@ LeviLamina(以下简称“本软件”)由LiteLDev(以下简称“开发

开发者保留随时修改、更新或终止本软件及其相关服务的权利,无需事先通知用户。用户应备份重要数据并定期检查本软件的更新。用户在使用本软件时应遵守相关法律法规,尊重他人的知识产权和隐私权,不得将本软件用于任何非法或侵权活动。如果用户违反上述规定,给任何第三方造成任何损害或被任何第三方索赔,开发者不承担任何责任。如果您对本免责声明有任何疑问或意见,请联系开发者。

## 背景
## 安装

该项目使用 [lip](https://github.com/lippkg/lip)。如果您尚未在本地安装,请前往查看。

首先,创建一个新的目录用于您的Minecraft服务器,并进入该目录:

```sh
mkdir myserver
cd myserver
```

接下来,使用lip安装捆绑了Minecraft Bedrock Server的LeviLamina:

```sh
lip install github.com/LiteLDev/LeviLamina
```

如需更多信息,请参阅[文档](https://levilamina.liteldev.com)

### 更新

在涉及数据安全时,我们建议不要在当前位置更新LeviLamina。相反,我们建议创建一个新目录,在新目录中安装新版本的LeviLamina,并将旧位置的`worlds`目录复制到新目录中。然后,按照插件开发者提供的说明,将您使用的插件的配置文件和数据文件迁移到新目录中。

然而,如果您坚持要在相同位置更新,您可以使用以下命令来更新LeviLamina:

```sh
lip install --upgrade github.com/LiteLDev/LeviLamina
```

## 使用方法

要启动服务器,只需运行`bedrock_server_mod.exe`

Minecraft Bedrock Edition的最初版本缺乏Minecraft Java Edition中存在的广泛的模组和服务器插件生态系统,从而限制了其游戏可能性。一群精通Minecraft Bedrock Server的C++爱好者,进行了分析,并利用逆向工程技术和钩子注入机制,干预了游戏服务器的运行,从而开创了第一套服务器插件的开发。
```sh
./bedrock_server_mod.exe
```

然而,这种开发范式遇到了一些挑战。首先,缺乏底层框架的支持,使得插件开发过程中需要依赖各种低级工具来进行符号分析、注入实现、钩子注册等功能。这导致了不同插件之间的代码冗余和重复,以及潜在的冲突。其次,缺乏明确的类型定义,迫使开发者在创建插件时进行逆向工程分析,导致了开发门槛的提高和效率的降低
如需更多信息,请参阅[文档](https://levilamina.liteldev.com)

为了应对这些困境,前期项目LiteLoaderBDS的维护者,构建了一个基于注入的插件加载引擎和一个插件开发框架。此外,他们还提供了类型信息,使插件开发者无需深入了解底层原理就能创建插件。这大大降低了插件开发的入门难度,促进了插件生态系统的繁荣。
## 星星历史

然而,随着LiteLoaderBDS的进展,一些问题也暴露出来。早期的设计没有考虑到未来的发展,使得许多方面过时和难以使用现代化的工具,从而无法满足最新的性能要求。此外,它的紧耦合设计在适应新版本的Minecraft Bedrock Server时也需要付出巨大的努力。因此,LiteLDev决定从头开始,利用现有的专业知识,进行全面的框架重设计,培育一个对维护者、开发者和用户都友好的插件引擎。
![星星历史图](https://api.star-history.com/svg?repos=LiteLDev/LeviLamina&type=Date)

## 感谢

Expand All @@ -30,7 +67,7 @@ Minecraft Bedrock Edition的最初版本缺乏Minecraft Java Edition中存在的

欢迎参与![打开一个问题](https://github.com/LiteLDev/LeviLamina/issues/new/choose)或提交Pull Requests。

LeviLamina遵循[贡献者契约](https://www.contributor-covenant.org/version/2/1/code_of_conduct/)行为准则。
LeviLamina遵循[Code of Conduct](https://www.contributor-covenant.org/version/2/1/code_of_conduct/)行为准则。

### 贡献者

Expand All @@ -40,4 +77,4 @@ LeviLamina遵循[贡献者契约](https://www.contributor-covenant.org/version/2

## 许可证

[LGPL-3.0-only](https://github.com/LiteLDev/LeviLamina/blob/HEAD/LICENSE.md) © 2021-2023 LiteLDev
LGPL-3.0-only © LiteLDev

0 comments on commit fbe814b

Please sign in to comment.