自定義界面互動過濾
範例演示
@Target(ElementType.METHOD) // 標註位置必須為 method
@Retention(RetentionPolicy.RUNTIME)
public @interface MyOwnFilter {
ClickType type(); // 新增要過濾的點擊類型作為參數
} @Override
public void bindServices(ServiceCollection serviceCollection) {
MVCInstallation mvc = serviceCollection.getInstallation(MVCInstallation.class);
// 註冊你的自定義過濾標註
mvc.registerQualifier(MyOwnFilter.class, (interactEvent, pattern, myOwnFilter) -> {
if (!(interactEvent instanceof InventoryClickEvent)) return false; // 非點擊事件一律不處理
var clickEvent = (InventoryClickEvent) interactEvent;
return clickEvent.getClick() == myOwnFilter.type(); // 檢查點擊類型是否符合
});
}最后更新于