Theseus 模组文档
API 参考 / 事件系统

Subscription


订阅令牌,由 EventBus#subscribe 返回。

方法速览

方法用途
unsubscribe()退订(幂等),之后该监听器不再收到事件

unsubscribe()

java
void unsubscribe();

行为:将该订阅标记为失效并移出有序订阅表;重复调用无副作用。若在投递过程中调用,后续条目立即不再被调用(宿主实现用 alive 标志实现,不必等本轮分发结束)。总线持有监听器的强引用,所以长生命周期订阅必须显式退订,或依赖模组停用时宿主按模组归属统一清理。

示例:

java
Subscription sub = ctx.eventBus().subscribe(GameEndEvent.class, event -> {
    // 只关心下一局的结束:收到后立刻退订
});
sub.unsubscribe();

完整签名

java
public interface Subscription {
    void unsubscribe();
}

线程:任意线程可调用(宿主内部加锁)。

稳定性:2.0 起冻结,2.x 内只增不破。