事件监听
事件监听是 Korrent 的核心,我们使用 Guava EventBus 来实现它。
监听事件
java
import com.google.common.eventbus.Subscribe;
import moe.shizuki.korrent.bittorrent.event.QBittorrentTagCreatedEvent;
import moe.shizuki.korrent.plugin.annotation.KorrentEvent;
@KorrentEvent
public class OnEvent {
@Subscribe
public void onEvent(QBittorrentTagCreatedEvent event) {
System.out.println(event.getTag());
}
}kotlin
import com.google.common.eventbus.Subscribe
import moe.shizuki.korrent.bittorrent.event.QBittorrentTagCreatedEvent
import moe.shizuki.korrent.plugin.annotation.KorrentEvent
@KorrentEvent
class OnEvent {
@Subscribe
fun onEvent(event: QBittorrentTagCreatedEvent) {
println(event.tag)
}
}在单个类中监听多个事件
java
import com.google.common.eventbus.Subscribe;
import moe.shizuki.korrent.bittorrent.event.QBittorrentTagCreatedEvent;
import moe.shizuki.korrent.plugin.annotation.KorrentEvent;
@KorrentEvent
public class OnEvent {
@Subscribe
public void onTagCreated(QBittorrentTagCreatedEvent event) {
System.out.println(event.getTag());
}
@Subscribe
public void onTagRemoved(QBittorrentTagCreatedEvent event) {
System.out.println(event.getTag());
}
}kotlin
import com.google.common.eventbus.Subscribe
import moe.shizuki.korrent.bittorrent.event.QBittorrentTagCreatedEvent
import moe.shizuki.korrent.plugin.annotation.KorrentEvent
@KorrentEvent
class OnEvent {
@Subscribe
fun onTagCreated(event: QBittorrentTagCreatedEvent) {
println(event.tag)
}
@Subscribe
fun onTagRemoved(event: QBittorrentTagCreatedEvent) {
println(event.tag)
}
}自动注册监听器
@KorrentEvent 用于自动将类注册为监听器,以避免手动管理其生命周期。
不建议以任何方式手动管理监听器。