Giter VIP home page Giter VIP logo

liteldev / liteloaderbds Goto Github PK

View Code? Open in Web Editor NEW
1.0K 33.0 116.0 30.63 MB

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

Home Page: https://levilamina.liteldev.com/

License: GNU Lesser General Public License v3.0

C++ 99.00% C 0.94% Lua 0.04% Python 0.02%
minecraft bedrock bds bedrock-server mc mcbe minecraft-bedrock minecraft-server-software bedrock-dedicated-server bedrock-dedicated-server-plugins minecraft-bedrock-edition minecraft-server liteloader liteloaderbds ll levilamina

liteloaderbds's Introduction

LeviLamina

LeviLamina

English 中文

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 Dedicated Server. 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.

For more information, please refer to the documentation.

Security

!!! warning Before installing and using LeviLamina, please be sure to read and understand the following disclaimer.

LeviLamina (hereinafter referred to as "this software") is developed and provided by LiteLDev (hereinafter referred to as "the developer"). This software is designed to enable users to extend the functionality of Minecraft Bedrock Server BDS (hereinafter referred to as "BDS") by loading plugins. This software is not affiliated with Mojang Studios (hereinafter referred to as "Mojang") or Microsoft Corporation (hereinafter referred to as "Microsoft"). The developer is not responsible for any content, quality, functionality, security or legality of any plugins loaded by this software. Users should use this software at their own discretion and assume all related risks.

The developer does not guarantee the stability, reliability, accuracy or completeness of this software. The developer is not liable for any defects, errors, viruses or other harmful components that may exist in this software. The developer is not liable for any direct or indirect damages (including but not limited to data loss, device damage, profit loss etc.) caused by the use of this software.

The developer reserves the right to modify, update or terminate this software and its related services at any time without prior notice to users. Users should back up important data and check regularly for updates of this software.

Users should comply with relevant laws and regulations when using this software, respect the intellectual property rights and privacy rights of others, and not use this software for any illegal or infringing activities. If users violate the above provisions and cause any damage to any third party or are claimed by any third party, the developer does not bear any responsibility.

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

Install

This project uses 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:

mkdir myserver
cd myserver

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

lip install github.com/LiteLDev/LeviLamina

For more information, please refer to the documentation.

Usage

To start the server, simply run bedrock_server_mod.exe:

./bedrock_server_mod.exe

Star History

Star History Chart

Acknowledgements

We extend sincere thanks to all donors and all the developers who have contributed to this project.

Thanks to JetBrains for allocating free open-source licences for IDEs such as CLion.

Contributing

Feel free to dive in! Open an issue or submit PRs.

LeviLamina follows the Contributor Covenant Code of Conduct.

Contributors

This project exists thanks to all the people who contribute.

Contributors

License

Copyright © 2023-2024 LiteLDev, All rights reserved.

This project is licensed under the LGPL-3.0 License - see the COPYING and COPYING.LESSER files for details.

liteloaderbds's People

Contributors

cryx233 avatar dofes avatar dreamguxiang avatar exquisitecore avatar futrime avatar harry-xi avatar intoprelised avatar jasonzyt avatar kawaiinahida avatar killcerr avatar lovelylavender4 avatar oeotyan avatar oftx avatar quizhizhe avatar rainoutovo avatar rimuruchan avatar shrbox avatar wu-vincent avatar

Stargazers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

Watchers

 avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar  avatar

liteloaderbds's Issues

Event's

Please portable ALL events from Nukkit kernel to LiteLoader

[内存溢出]使用wine运行liteloader崩溃

使用wine运行支持1.17.10版本的liteloader崩溃。已经在Windows10上生成symdb2文件
崩溃原因:out of memory
操作系统:ubuntu20.04
wine版本:6.0.1
服务器配置1核1G
如果运行支持上一个minecraftpe版本的liteloader和bds(1.17.02)是可以正常运行的
下面是情景复现:
root@iZbp17cqlbtdmgdupgbdx9Z:/mcserver/mcbe1# wine bedrock_server.exe
003c:err:service:validate_service_config Service L"clr_optimization_v4.0.30319_32" - SERVICE_BOOT_START and SERVICE_SYSTEM_START are only allowed for driver services
003c:err:service:scmdatabase_load_services Invalid configuration of service L"clr_optimization_v4.0.30319_32" - skipping
003c:err:service:validate_service_config Service L"clr_optimization_v4.0.30319_64" - SERVICE_BOOT_START and SERVICE_SYSTEM_START are only allowed for driver services
003c:err:service:scmdatabase_load_services Invalid configuration of service L"clr_optimization_v4.0.30319_64" - skipping
0098:err:explorer:initialize_display_settings Failed to query current display settings for L"\\.\DISPLAY1".
[Info] Loading Symbols
已杀死
root@iZbp17cqlbtdmgdupgbdx9Z:/mcserver/mcbe1#

有针对wine可行的解决方案吗,还是此版本存在bug?

Running on Linux Ubuntu

Can’t start RoDB.exe with wine. Is it even possible to run it on Ubuntu?
P.S. Mono can launch only .NET programs.

Wine error:

root@localhost:~/LiteLoader# wine RoDB.exe
it looks like wine32 is missing, you should install it. as root, please execute "apt-get install wine32"
0020:err:plugplay:deviceloop_thread Can't init SDL: Could not initialize UDEV
0009:err:module:__wine_process_init L"Z:\root\LiteLoader\RoDB.exe" not supported on this system

希望新增更多的函数

希望增加

  • 实体被创建的回调
  • 区块第一次生成时的回调
  • 随机刻和游戏刻相关回调
  • 自定义维度相关

GridArea<std::shared_ptr<LevelChunk>>::move related crash

image
i only have an image about bug, it isn't feedback error anything. What I want to ask is, what could it be due to? Port, Plugin or something ? I need to narrow down the error so that I can judge and fix it completely. If it is difficult to judge the error, I will provide more pictures

Function tr() does not format string

Describe the bug
Function tr() does not format string from file.

To Reproduce
Use function tr() and get message from file with formatting.

tr("test.a", "sample string");

messages.json

{
  "test.a": "This is a {0}."
}

Result: This is a {0}.

Expected behavior
Result: This is a sample string.

Screenshots or log
My code where I use it:
My code
File messages.json:
messages.json
Result:
Result

Environment (please complete the following information):

  • OS: Ubuntu 20.04 (using Wine 5.0)
  • Version 2.0.3

Additional context
It did work in version 2.0.2-pre3, but in 2.0.3 doesn't work. Just recompiled project with new SDK.

WBstream bug

Frequent sending of packets created with WBstream to players will cause the client to disconnect from the server

Not starting on Linux with Wine

Describe the bug

  • Not starting server.

To Reproduce
Start LiteLoader with Wine

Expected behavior

  • None

Screenshots or log

  • I pinned Screenshot_20211108_095945
    e

Environment (please complete the following information):

  • OS: Ubuntu 20.

Additional context

  • Non

Api LiteLoader

Is it possible to get the name of the block by the coordinates by getting them from the player(player->getPos())?

Docker & Linux Support for LiteLoaderBDS

Is your feature request related to a problem? Please describe.
No, it's currently not a problem because this is a feature request for this very, very nice MCPE project.

Describe the solution you'd like
I have a Synology NAS with two Docker Minecraft Servers on it and on my Docker MCPE Server I want to install the "LiteLoaderBDS". But currently I can't because there's 1. no docker file in the repo and 2. the startup file of this MCPE project is a .exe file that's only executable on Windows...

Describe alternatives you've considered
I considered nothing because I found no alternatives here on GitHub for this project...

Additional context
It may be really, really nice for me when you can add Linux support and docker support for this project. I need this very urgently for my bedrock dedicated server e.g. to make mini games for it that my server will be future a featured MCPE server. And also sorry for my bad English, I'm German.

Sincerely yours,

Atten007😊

'Event::addEventListener': none of the 16 overloads could convert all the argument types. Help pls

    Event::addEventListener([](PlayerUseCmdEV ev) {
        std::string name = ev.Player->getNameTag();
        LOG("       Player Use Cmd");
        LOG("------------------------------");
        LOG("| NickName: " + name);
        LOG("| CMD: " + ev.cmd);
        LOG("| Result: " + ev.mc_result);
        LOG("------------------------------");
    });

```Severity	Code	Description	Project	File	Line	Suppression State
Error	C2665	'Event::addEventListener': none of the 16 overloads could convert all the argument types	

bedrock_server.exe inconvenience

After LL 2.0 was released, I found the disadvantage of having to update LL is that when running SymDB2.exe, it deletes the bedrock_server.exe file and replaces it with bedrock_server_mod.exe. This is detrimental every time I update the LL, when I update the LL to a new version, I have to find the bedrock_server.exe file to run the SymDB2 file again for the latest updated LL version. I don't know if it's the "Trust Windows app" issue?

Reload Logger

Is your feature request related to a problem? Please describe.
non-thread-safe

Describe the solution you'd like
thread-safe
user friendly

[Logger] logfile error

Describe the bug
When I defined Logger logger("xxx") in plugin, that plugin will redirect server output to its log file

To Reproduce
https://github.com/LiteLDev/LiteLoaderPlugins/blob/d1c1c69774579f683bda942009f478f2833fc70c/LLHelper/Helper.cpp#L9

Expected behavior
A clear and concise description of what you expected to happen.

Screenshots or log
image

Environment (please complete the following information):

  • OS: [Windows 11]
  • Version [2.0.1]

Additional context
Add any other context about the problem here.

Cmd Parser

How to make the parser work adequately with different arguments in 2 overloads?
For example:
/cmd
/cmd enum
And if I enter /cmd enum, then it would choose enum, and not the first overload option?

Interacted blocks.

Is it possible to prevent interaction with buttons/doors etc with a single function?

Memory leak

Hello. Maybe I'm not the only one with this problem. I have encountered a RAM leak in LiteLoader. How can I fix this?

Upgrade to 1.18.1.02

  • Built and merge Minecraft headers
  • Sign SymDB2
  • Check if most function work fine
  • Command API
  • Header Generator

1.2.0无法正常启动

依次打开SymDB2.bat和SymDB2.exe后,报错

SymDB format error detected!!
[Info] Loading Symbols
[Chakra Error] Can't load LiteLoader.dll!
[Chakra Error] Error Code:1114
[Chakra Error] A dynamic link library (DLL) initialization routine failed.

The latest action has a command problem

If I use command version,it will not output.
And console will get stuck like the picture.
The latest release(1.0.0) is OK.
image
(stop command can be executed)

crash server

i have LL 2.0.6 and bds 1.18.2.03.
i have this bug(it happens over and over again):

image


crash log say it:
[Crashed!]
-- Unhandled Exception in -> bedrock_server_mod.exe
-- Exception Code: 0xC0000005
-- C++ STL Exception detected!

[TrackBack] Function ServerNetworkHandler::Client::removeSubClientRequest at 0x7FF6482CD070 [bedrock_server_mod.exe]


i have this plugins:

image

Camera position gets reset on teleport

I have a custom command "/lobby" which teleports players to the lobby coords on my server using the Actor's teleport function. The issue is that once teleported, players end up facing up or down, instead of keeping their camera position. This seems to get fixed by inling the function which is:

char mem[48];
auto computeTarget = (TeleportTarget * (*)(void*, class Actor&, class Vec3, class Vec3*, class AutomaticID<class Dimension, int>, class RelativeFloat, class RelativeFloat, int))(&TeleportCommand::computeTarget);
auto target = computeTarget(mem, *this, to, nullptr, dimId, 0, 0, 15);
TeleportCommand::applyTarget(*this, *target);

and changing the RelativeFloat values to something else than 0, which ends up something like this with the necessary modifications:

char mem[48];
auto computeTarget = (TeleportTarget * (*)(void*, class Actor&, class Vec3, class Vec3*, class AutomaticID<class Dimension, int>, class RelativeFloat, class RelativeFloat, int))(&TeleportCommand::computeTarget);
auto target = computeTarget(mem, *wp, vc, nullptr, dimid, 1, 1, 15);
TeleportCommand::applyTarget(*wp, *target);

That's using the Vec4 struct of LLTpa.
I don't know if it has to do with my build environment, I'm building in Visual Studio 2019 with the LiteLoaderSDK repo, v142 tools and a v142 compiled SymDBHelper.lib, since the latest one in the releases is compiled using v143 tools and it would give me errors about LTCG.
Do you guys have any idea why would this happen?

Error when getting vulue from scoreboard with a string target

Values in "team" scoreboard objectives
"Team-1":50
"Team-2":40
player(name:"Testplayer1"):2
player(name:"Testplayer2"):2
player(name:"Testplayer3"):2
player(name:"Testplayer4"):2
Test Code

let obj = mc.getScoreObjective("team");
let teamscore = obj.getScore("Team-1") //occured a C++ error

Support 1.17.10

Todo:

  • Fix SymDB2
  • Fix ChatEV
  • Fix CommandRegister
  • Fix PlayerUseCmdEV
  • Fix runCmdEx
  • Fix CommandOrigin::getOriginType

Pickup item.

How to check pickup item? I'm hooked ?handle@ComplexInventoryTransaction@@ueba?AW4InventoryTransactionError@@AEAVPlayer@@_N@Z,but it reacts only to throwing objects, and nothing happens when you raise it. I also output (int)((char)&i.first + 8), but the output was triggered only when throwing an object!
How to check PickupItem actions?

Throwable items.

How to disable throwable for snowball,experience potion and e.t.c?

Plugin that uses RegCommandAPI doesn't work.

I tried to #include in the project different headers related to commands, but nothing helped.

Error:
image

Plugin.cpp & pch.h & dllmain.cpp:
image
image
image

My project properties:
image
image
image
image

  • OS: [Windows 10]
  • LiteLoader: [2.0.3]
  • BDS: [1.18.2.03]

If I load some plugin of my friend that using RegCommandAPI, then it works. But if I compile the same plugin of my friend on my PC, the plugin stops loading.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.