9class DynamicListener :
public ListenerBase {
11 using callback_fn = std::function<void(
CompoundTag&)>;
13 explicit DynamicListener(
15 EventPriority priority = EventPriority::Normal,
16 std::weak_ptr<mod::Mod> mod = mod::NativeMod::current()
18 : ListenerBase(priority, std::move(mod)),
19 callback(std::move(fn)) {}
21 ~DynamicListener()
override =
default;
23 void call(
Event& event)
override {
25 event.serialize(data);
27 event.deserialize(data);
30 static std::shared_ptr<DynamicListener> create(
32 EventPriority priority = EventPriority::Normal,
33 std::weak_ptr<mod::Mod> mod = mod::NativeMod::current()
35 return std::make_shared<DynamicListener>(std::move(fn), priority, std::move(mod));