CLion编写我的世界基岩版插件(LiteLoaderBDS)-2

如果你没有看过上一篇博客,请点击下面的链接查看CLion编写我的世界基岩版插件(LiteLoaderBDS)-1 - DearXuan的主页icon-default.png?t=M3C8https://blog.dearxuan.com/2021/11/07/CLion%E7%BC%96%E5%86%99%E6%88%91%E7%9A%84%E4%B8%96%E7%95%8C%E5%9F%BA%E5%B2%A9%E7%89%88%E6%8F%92%E4%BB%B6-LiteLoaderBDS/前往我的主页以获得更好的阅读体验CLion编写我的世界基岩版插件(LiteLoaderBDS)-2 - DearXuan的主页icon-default.png?t=M3C8https://blog.dearxuan.com/2021/11/08/CLion%E7%BC%96%E5%86%99%E6%88%91%E7%9A%84%E4%B8%96%E7%95%8C%E5%9F%BA%E5%B2%A9%E7%89%88%E6%8F%92%E4%BB%B6-LiteLoaderBDS-2/

添加链接库

将headers和lib文件夹复制到项目目录中

在CMakeLists.txt中添加对头文件和库文件的引用

cmake_minimum_required(VERSION 3.20)
project(plugins)

set(CMAKE_CXX_STANDARD 17)

add_library(plugins SHARED library.cpp)

include_directories(${PROJECT_SOURCE_DIR}/headers)

link_directories(${PROJECT_SOURCE_DIR}/lib)

target_link_libraries(plugins
        ${PROJECT_SOURCE_DIR}/lib/Chakra.lib
        ${PROJECT_SOURCE_DIR}/lib/LiteLoader.lib)

在library.h中添加头文件

#ifndef PLUGINS_LIBRARY_H
#define PLUGINS_LIBRARY_H

#include "headers/api/basicEvent.h"
#include "headers/mc/Player.h"

#endif //PLUGINS_LIBRARY_H

添加事件监听

修改library.cpp

#include "library.h"

#include <iostream>
#include <windows.h>
#include <string>

BOOL APIENTRY DllMain(HMODULE hModule,
                      DWORD ul_reason_for_call,
                      LPVOID lpReserved
) {
    switch (ul_reason_for_call) {
        case DLL_PROCESS_ATTACH:
        case DLL_THREAD_ATTACH:
        case DLL_THREAD_DETACH:
        case DLL_PROCESS_DETACH:
            break;
    }
    return TRUE;
}

void entry();

extern "C" {
_declspec(dllexport)
void onPostInit() {
    std::ios::sync_with_stdio(false);
    entry();
}
}

void PlayerJoin(JoinEV ev);

void entry() {
    std::cout << "\nDearXuan's Plugins is runing!'\n" << std::endl;
    Event::addEventListener(PlayerJoin);
}

void PlayerJoin(JoinEV ev){
    //在玩家加入服务器后打印信息
    string name = ev.Player->getNameTag();
    std::cout << name << " joined the server." << std::endl;
}

构建该项目

如果在构建途中报了以下错误

只需要进入mass.h,注释掉这一行即可解决

将生成的dll文件复制到服务器plugins文件夹内,运行服务器

如果你是在自己的电脑上运行客户端,可能会受到UWP的回路限制,此时需要管理员身份运行cmd,并执行以下指令

CheckNetIsolation.exe LoopbackExempt –a –p=S-1-15-2-1958404141-86561845-1752920682-3514627264-368642714-62675701-733520436

进入自己的服务器,可以看到控制台上已经打印出信息

  • 3
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 打赏
    打赏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

Dear_Xuan

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值