Skip to content

编写WeChatBc插件

zheng sen he edited this page Feb 17, 2024 · 14 revisions

并不建议您直接将wechatbc嵌入你的项目,而是建议以docker容器运行,以编写插件的形式扩展您自己的逻辑

快速开始,第一个WeChatBc插件

写过bukkit插件的朋友应该会很容易上手这套流程,我们的目的是开发一个插件,当接收到消息 "今夕是何年" 的时候回复 "当前的年份"

首先,新建一个java项目,选择maven作为构建工具

image

注意,为了避免不必要的错误,jdk请选择 java8

引入wechatbc作为依赖

目前只能使用本地引入的方式,稍后会将依赖发布至中央仓库

在src下新建一个lib文件夹(当然看你自己习惯),将最新的wechatbc粘贴到里面

此时结构是这样

image

打开pom.xml,导入依赖

    <dependencies>
        <dependency>
            <groupId>com.meteor</groupId>
            <artifactId>wechatbc</artifactId>
            <version>1.0.6</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/lib/WeChatBc-1.0.6-SNAPSHOT.jar</systemPath>
        </dependency>
    </dependencies>

此时你的pom.xml可能长这样

<?xml version="1.0" encoding="UTF-8"?>
<project xmlns="http://maven.apache.org/POM/4.0.0"
         xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
         xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
    <modelVersion>4.0.0</modelVersion>

    <groupId>com.meteor</groupId>
    <artifactId>TestPlugin</artifactId>
    <version>1.0-SNAPSHOT</version>

    <properties>
        <maven.compiler.source>8</maven.compiler.source>
        <maven.compiler.target>8</maven.compiler.target>
        <project.build.sourceEncoding>UTF-8</project.build.sourceEncoding>
    </properties>

    <dependencies>
        <dependency>
            <groupId>com.meteor</groupId>
            <artifactId>wechatbc</artifactId>
            <version>1.0.6</version>
            <scope>system</scope>
            <systemPath>${basedir}/src/lib/WeChatBc-1.0.6-SNAPSHOT.jar</systemPath>
        </dependency>
    </dependencies>

</project>

点击右上角的小图标,刷新一下

image

插件主类

新增一个类 PluginMain (其实叫什么都好啦) ,这是插件的入口类

public class PluginMain extends BasePlugin {
    @Override
    public void onLoad() {
    }

    // 插件启动时
    @Override
    public void onEnable() {
        getLogger().info("插件载入啦");
    }

    // 插件卸载时
    @Override
    public void onDisable() {
        getLogger().info("插件卸载啦");
    }
}

作为插件的主类,必须继承自BasePlugin,这样才会被WeChatBc所识别,getLogger()会取得插件的日志对象,打印一行输出

还记得我们要干什么吗?别着急,在这之前还有很重要的一步,我们必须要让WeChatBc知道它是一个插件,怎么做呢?

声明插件

wechatbc通过插件资源文件下的 plugin.yml 来识别,在 resources 下新建一个 plugin.yml

# 插件名
name: 'TestPlugin'
# 主类
main: com.meteor.testplugin.PluginMain
# 版本号
version: 1.0
# 作者列表
author:
  - 'meteor'
# 描述
description: '这是一个示例插件,展示了怎么编写wechatbc插件'

这里最关键的是 main ,它告诉wechatbc插件的入口类是哪里,这里必须是完整的路径

示例中的 main: com.meteor.testplugin.PluginMain 指向下图

image

.....

Clone this wiki locally