在你的包下新建一个监听器类并且实现
java.util.function.Consumer接口,类型为你要实现的事件
以下是例子:
## 分开写(不在主类)
> 这种方法用于较多的监听器,可以让你的代码看起来更舒服。
~~~
package cn.lliiooll.demo.listener;
import net.mamoe.mirai.message.GroupMessage;
import java.util.function.Consumer;
public class DemoListener implements Consumer<GroupMessage> {
@Override
public void accept(GroupMessage event) {
// 在此放置你的代码
}
}
~~~
然后在主类的onEnable方法加上
~~~
this.getEventListener().subscribeAlways(GroupMessage.class, new DemoListener());
~~~
现在我们的主类是这样的:
~~~
package cn.lliiooll.demo;
import cn.lliiooll.demo.listener.DemoListener;
import net.mamoe.mirai.console.plugins.PluginBase;
import net.mamoe.mirai.message.GroupMessage;
class DemoMain extends PluginBase {
@Override
public void onEnable() {
this.getEventListener().subscribeAlways(GroupMessage.class, new DemoListener());
getLogger().info("插件加载完毕!");
}
}
~~~
## 不分开写(在主类)
> 这种方式用于较少的监听器
我们的主类要变成这样
~~~
package cn.lliiooll.demo;
import net.mamoe.mirai.console.plugins.PluginBase;
import net.mamoe.mirai.message.GroupMessage;
class DemoMain extends PluginBase {
@Override
public void onEnable() {
this.getEventListener().subscribeAlways(GroupMessage.class, event -> {
// 在此放置你的代码
}); // 不分开写
getLogger().info("插件加载完毕!");
}
}
~~~
所以我们可以看出来注册监听器的方法是
~~~
this.getEventListener().subscribeAlways(事件名称.class, new 监听器());
~~~
至此,一个监听器就注册完毕了。