dragonfly_plugin/event/
handler.rs

1//! This file is auto-generated by `xtask`. Do not edit manually.
2#![allow(async_fn_in_trait)]
3use crate::{event::EventContext, types, EventSubscriptions, Server};
4pub trait EventHandler: EventSubscriptions + Send + Sync {
5    ///Handler for the `PlayerJoin` event.
6    async fn on_player_join(
7        &self,
8        _server: &Server,
9        _event: &mut EventContext<'_, types::PlayerJoinEvent>,
10    ) {
11    }
12    ///Handler for the `PlayerQuit` event.
13    async fn on_player_quit(
14        &self,
15        _server: &Server,
16        _event: &mut EventContext<'_, types::PlayerQuitEvent>,
17    ) {
18    }
19    ///Handler for the `PlayerMove` event.
20    async fn on_player_move(
21        &self,
22        _server: &Server,
23        _event: &mut EventContext<'_, types::PlayerMoveEvent>,
24    ) {
25    }
26    ///Handler for the `PlayerJump` event.
27    async fn on_player_jump(
28        &self,
29        _server: &Server,
30        _event: &mut EventContext<'_, types::PlayerJumpEvent>,
31    ) {
32    }
33    ///Handler for the `PlayerTeleport` event.
34    async fn on_player_teleport(
35        &self,
36        _server: &Server,
37        _event: &mut EventContext<'_, types::PlayerTeleportEvent>,
38    ) {
39    }
40    ///Handler for the `PlayerChangeWorld` event.
41    async fn on_player_change_world(
42        &self,
43        _server: &Server,
44        _event: &mut EventContext<'_, types::PlayerChangeWorldEvent>,
45    ) {
46    }
47    ///Handler for the `PlayerToggleSprint` event.
48    async fn on_player_toggle_sprint(
49        &self,
50        _server: &Server,
51        _event: &mut EventContext<'_, types::PlayerToggleSprintEvent>,
52    ) {
53    }
54    ///Handler for the `PlayerToggleSneak` event.
55    async fn on_player_toggle_sneak(
56        &self,
57        _server: &Server,
58        _event: &mut EventContext<'_, types::PlayerToggleSneakEvent>,
59    ) {
60    }
61    ///Handler for the `Chat` event.
62    async fn on_chat(&self, _server: &Server, _event: &mut EventContext<'_, types::ChatEvent>) {}
63    ///Handler for the `PlayerFoodLoss` event.
64    async fn on_player_food_loss(
65        &self,
66        _server: &Server,
67        _event: &mut EventContext<'_, types::PlayerFoodLossEvent>,
68    ) {
69    }
70    ///Handler for the `PlayerHeal` event.
71    async fn on_player_heal(
72        &self,
73        _server: &Server,
74        _event: &mut EventContext<'_, types::PlayerHealEvent>,
75    ) {
76    }
77    ///Handler for the `PlayerHurt` event.
78    async fn on_player_hurt(
79        &self,
80        _server: &Server,
81        _event: &mut EventContext<'_, types::PlayerHurtEvent>,
82    ) {
83    }
84    ///Handler for the `PlayerDeath` event.
85    async fn on_player_death(
86        &self,
87        _server: &Server,
88        _event: &mut EventContext<'_, types::PlayerDeathEvent>,
89    ) {
90    }
91    ///Handler for the `PlayerRespawn` event.
92    async fn on_player_respawn(
93        &self,
94        _server: &Server,
95        _event: &mut EventContext<'_, types::PlayerRespawnEvent>,
96    ) {
97    }
98    ///Handler for the `PlayerSkinChange` event.
99    async fn on_player_skin_change(
100        &self,
101        _server: &Server,
102        _event: &mut EventContext<'_, types::PlayerSkinChangeEvent>,
103    ) {
104    }
105    ///Handler for the `PlayerFireExtinguish` event.
106    async fn on_player_fire_extinguish(
107        &self,
108        _server: &Server,
109        _event: &mut EventContext<'_, types::PlayerFireExtinguishEvent>,
110    ) {
111    }
112    ///Handler for the `PlayerStartBreak` event.
113    async fn on_player_start_break(
114        &self,
115        _server: &Server,
116        _event: &mut EventContext<'_, types::PlayerStartBreakEvent>,
117    ) {
118    }
119    ///Handler for the `BlockBreak` event.
120    async fn on_block_break(
121        &self,
122        _server: &Server,
123        _event: &mut EventContext<'_, types::BlockBreakEvent>,
124    ) {
125    }
126    ///Handler for the `PlayerBlockPlace` event.
127    async fn on_player_block_place(
128        &self,
129        _server: &Server,
130        _event: &mut EventContext<'_, types::PlayerBlockPlaceEvent>,
131    ) {
132    }
133    ///Handler for the `PlayerBlockPick` event.
134    async fn on_player_block_pick(
135        &self,
136        _server: &Server,
137        _event: &mut EventContext<'_, types::PlayerBlockPickEvent>,
138    ) {
139    }
140    ///Handler for the `PlayerItemUse` event.
141    async fn on_player_item_use(
142        &self,
143        _server: &Server,
144        _event: &mut EventContext<'_, types::PlayerItemUseEvent>,
145    ) {
146    }
147    ///Handler for the `PlayerItemUseOnBlock` event.
148    async fn on_player_item_use_on_block(
149        &self,
150        _server: &Server,
151        _event: &mut EventContext<'_, types::PlayerItemUseOnBlockEvent>,
152    ) {
153    }
154    ///Handler for the `PlayerItemUseOnEntity` event.
155    async fn on_player_item_use_on_entity(
156        &self,
157        _server: &Server,
158        _event: &mut EventContext<'_, types::PlayerItemUseOnEntityEvent>,
159    ) {
160    }
161    ///Handler for the `PlayerItemRelease` event.
162    async fn on_player_item_release(
163        &self,
164        _server: &Server,
165        _event: &mut EventContext<'_, types::PlayerItemReleaseEvent>,
166    ) {
167    }
168    ///Handler for the `PlayerItemConsume` event.
169    async fn on_player_item_consume(
170        &self,
171        _server: &Server,
172        _event: &mut EventContext<'_, types::PlayerItemConsumeEvent>,
173    ) {
174    }
175    ///Handler for the `PlayerAttackEntity` event.
176    async fn on_player_attack_entity(
177        &self,
178        _server: &Server,
179        _event: &mut EventContext<'_, types::PlayerAttackEntityEvent>,
180    ) {
181    }
182    ///Handler for the `PlayerExperienceGain` event.
183    async fn on_player_experience_gain(
184        &self,
185        _server: &Server,
186        _event: &mut EventContext<'_, types::PlayerExperienceGainEvent>,
187    ) {
188    }
189    ///Handler for the `PlayerPunchAir` event.
190    async fn on_player_punch_air(
191        &self,
192        _server: &Server,
193        _event: &mut EventContext<'_, types::PlayerPunchAirEvent>,
194    ) {
195    }
196    ///Handler for the `PlayerSignEdit` event.
197    async fn on_player_sign_edit(
198        &self,
199        _server: &Server,
200        _event: &mut EventContext<'_, types::PlayerSignEditEvent>,
201    ) {
202    }
203    ///Handler for the `PlayerLecternPageTurn` event.
204    async fn on_player_lectern_page_turn(
205        &self,
206        _server: &Server,
207        _event: &mut EventContext<'_, types::PlayerLecternPageTurnEvent>,
208    ) {
209    }
210    ///Handler for the `PlayerItemDamage` event.
211    async fn on_player_item_damage(
212        &self,
213        _server: &Server,
214        _event: &mut EventContext<'_, types::PlayerItemDamageEvent>,
215    ) {
216    }
217    ///Handler for the `PlayerItemPickup` event.
218    async fn on_player_item_pickup(
219        &self,
220        _server: &Server,
221        _event: &mut EventContext<'_, types::PlayerItemPickupEvent>,
222    ) {
223    }
224    ///Handler for the `PlayerHeldSlotChange` event.
225    async fn on_player_held_slot_change(
226        &self,
227        _server: &Server,
228        _event: &mut EventContext<'_, types::PlayerHeldSlotChangeEvent>,
229    ) {
230    }
231    ///Handler for the `PlayerItemDrop` event.
232    async fn on_player_item_drop(
233        &self,
234        _server: &Server,
235        _event: &mut EventContext<'_, types::PlayerItemDropEvent>,
236    ) {
237    }
238    ///Handler for the `PlayerTransfer` event.
239    async fn on_player_transfer(
240        &self,
241        _server: &Server,
242        _event: &mut EventContext<'_, types::PlayerTransferEvent>,
243    ) {
244    }
245    ///Handler for the `Command` event.
246    async fn on_command(
247        &self,
248        _server: &Server,
249        _event: &mut EventContext<'_, types::CommandEvent>,
250    ) {
251    }
252    ///Handler for the `PlayerDiagnostics` event.
253    async fn on_player_diagnostics(
254        &self,
255        _server: &Server,
256        _event: &mut EventContext<'_, types::PlayerDiagnosticsEvent>,
257    ) {
258    }
259    ///Handler for the `WorldLiquidFlow` event.
260    async fn on_world_liquid_flow(
261        &self,
262        _server: &Server,
263        _event: &mut EventContext<'_, types::WorldLiquidFlowEvent>,
264    ) {
265    }
266    ///Handler for the `WorldLiquidDecay` event.
267    async fn on_world_liquid_decay(
268        &self,
269        _server: &Server,
270        _event: &mut EventContext<'_, types::WorldLiquidDecayEvent>,
271    ) {
272    }
273    ///Handler for the `WorldLiquidHarden` event.
274    async fn on_world_liquid_harden(
275        &self,
276        _server: &Server,
277        _event: &mut EventContext<'_, types::WorldLiquidHardenEvent>,
278    ) {
279    }
280    ///Handler for the `WorldSound` event.
281    async fn on_world_sound(
282        &self,
283        _server: &Server,
284        _event: &mut EventContext<'_, types::WorldSoundEvent>,
285    ) {
286    }
287    ///Handler for the `WorldFireSpread` event.
288    async fn on_world_fire_spread(
289        &self,
290        _server: &Server,
291        _event: &mut EventContext<'_, types::WorldFireSpreadEvent>,
292    ) {
293    }
294    ///Handler for the `WorldBlockBurn` event.
295    async fn on_world_block_burn(
296        &self,
297        _server: &Server,
298        _event: &mut EventContext<'_, types::WorldBlockBurnEvent>,
299    ) {
300    }
301    ///Handler for the `WorldCropTrample` event.
302    async fn on_world_crop_trample(
303        &self,
304        _server: &Server,
305        _event: &mut EventContext<'_, types::WorldCropTrampleEvent>,
306    ) {
307    }
308    ///Handler for the `WorldLeavesDecay` event.
309    async fn on_world_leaves_decay(
310        &self,
311        _server: &Server,
312        _event: &mut EventContext<'_, types::WorldLeavesDecayEvent>,
313    ) {
314    }
315    ///Handler for the `WorldEntitySpawn` event.
316    async fn on_world_entity_spawn(
317        &self,
318        _server: &Server,
319        _event: &mut EventContext<'_, types::WorldEntitySpawnEvent>,
320    ) {
321    }
322    ///Handler for the `WorldEntityDespawn` event.
323    async fn on_world_entity_despawn(
324        &self,
325        _server: &Server,
326        _event: &mut EventContext<'_, types::WorldEntityDespawnEvent>,
327    ) {
328    }
329    ///Handler for the `WorldExplosion` event.
330    async fn on_world_explosion(
331        &self,
332        _server: &Server,
333        _event: &mut EventContext<'_, types::WorldExplosionEvent>,
334    ) {
335    }
336    ///Handler for the `WorldClose` event.
337    async fn on_world_close(
338        &self,
339        _server: &Server,
340        _event: &mut EventContext<'_, types::WorldCloseEvent>,
341    ) {
342    }
343}
344#[doc(hidden)]
345pub async fn dispatch_event(
346    server: &Server,
347    handler: &impl EventHandler,
348    envelope: &types::EventEnvelope,
349) {
350    let Some(payload) = &envelope.payload else {
351        return;
352    };
353    match payload {
354        types::event_envelope::Payload::PlayerJoin(e) => {
355            let mut context = EventContext::new(&envelope.event_id, e);
356            handler.on_player_join(server, &mut context).await;
357            server.send_event_result(context).await.ok();
358        }
359        types::event_envelope::Payload::PlayerQuit(e) => {
360            let mut context = EventContext::new(&envelope.event_id, e);
361            handler.on_player_quit(server, &mut context).await;
362            server.send_event_result(context).await.ok();
363        }
364        types::event_envelope::Payload::PlayerMove(e) => {
365            let mut context = EventContext::new(&envelope.event_id, e);
366            handler.on_player_move(server, &mut context).await;
367            server.send_event_result(context).await.ok();
368        }
369        types::event_envelope::Payload::PlayerJump(e) => {
370            let mut context = EventContext::new(&envelope.event_id, e);
371            handler.on_player_jump(server, &mut context).await;
372            server.send_event_result(context).await.ok();
373        }
374        types::event_envelope::Payload::PlayerTeleport(e) => {
375            let mut context = EventContext::new(&envelope.event_id, e);
376            handler.on_player_teleport(server, &mut context).await;
377            server.send_event_result(context).await.ok();
378        }
379        types::event_envelope::Payload::PlayerChangeWorld(e) => {
380            let mut context = EventContext::new(&envelope.event_id, e);
381            handler.on_player_change_world(server, &mut context).await;
382            server.send_event_result(context).await.ok();
383        }
384        types::event_envelope::Payload::PlayerToggleSprint(e) => {
385            let mut context = EventContext::new(&envelope.event_id, e);
386            handler.on_player_toggle_sprint(server, &mut context).await;
387            server.send_event_result(context).await.ok();
388        }
389        types::event_envelope::Payload::PlayerToggleSneak(e) => {
390            let mut context = EventContext::new(&envelope.event_id, e);
391            handler.on_player_toggle_sneak(server, &mut context).await;
392            server.send_event_result(context).await.ok();
393        }
394        types::event_envelope::Payload::Chat(e) => {
395            let mut context = EventContext::new(&envelope.event_id, e);
396            handler.on_chat(server, &mut context).await;
397            server.send_event_result(context).await.ok();
398        }
399        types::event_envelope::Payload::PlayerFoodLoss(e) => {
400            let mut context = EventContext::new(&envelope.event_id, e);
401            handler.on_player_food_loss(server, &mut context).await;
402            server.send_event_result(context).await.ok();
403        }
404        types::event_envelope::Payload::PlayerHeal(e) => {
405            let mut context = EventContext::new(&envelope.event_id, e);
406            handler.on_player_heal(server, &mut context).await;
407            server.send_event_result(context).await.ok();
408        }
409        types::event_envelope::Payload::PlayerHurt(e) => {
410            let mut context = EventContext::new(&envelope.event_id, e);
411            handler.on_player_hurt(server, &mut context).await;
412            server.send_event_result(context).await.ok();
413        }
414        types::event_envelope::Payload::PlayerDeath(e) => {
415            let mut context = EventContext::new(&envelope.event_id, e);
416            handler.on_player_death(server, &mut context).await;
417            server.send_event_result(context).await.ok();
418        }
419        types::event_envelope::Payload::PlayerRespawn(e) => {
420            let mut context = EventContext::new(&envelope.event_id, e);
421            handler.on_player_respawn(server, &mut context).await;
422            server.send_event_result(context).await.ok();
423        }
424        types::event_envelope::Payload::PlayerSkinChange(e) => {
425            let mut context = EventContext::new(&envelope.event_id, e);
426            handler.on_player_skin_change(server, &mut context).await;
427            server.send_event_result(context).await.ok();
428        }
429        types::event_envelope::Payload::PlayerFireExtinguish(e) => {
430            let mut context = EventContext::new(&envelope.event_id, e);
431            handler
432                .on_player_fire_extinguish(server, &mut context)
433                .await;
434            server.send_event_result(context).await.ok();
435        }
436        types::event_envelope::Payload::PlayerStartBreak(e) => {
437            let mut context = EventContext::new(&envelope.event_id, e);
438            handler.on_player_start_break(server, &mut context).await;
439            server.send_event_result(context).await.ok();
440        }
441        types::event_envelope::Payload::BlockBreak(e) => {
442            let mut context = EventContext::new(&envelope.event_id, e);
443            handler.on_block_break(server, &mut context).await;
444            server.send_event_result(context).await.ok();
445        }
446        types::event_envelope::Payload::PlayerBlockPlace(e) => {
447            let mut context = EventContext::new(&envelope.event_id, e);
448            handler.on_player_block_place(server, &mut context).await;
449            server.send_event_result(context).await.ok();
450        }
451        types::event_envelope::Payload::PlayerBlockPick(e) => {
452            let mut context = EventContext::new(&envelope.event_id, e);
453            handler.on_player_block_pick(server, &mut context).await;
454            server.send_event_result(context).await.ok();
455        }
456        types::event_envelope::Payload::PlayerItemUse(e) => {
457            let mut context = EventContext::new(&envelope.event_id, e);
458            handler.on_player_item_use(server, &mut context).await;
459            server.send_event_result(context).await.ok();
460        }
461        types::event_envelope::Payload::PlayerItemUseOnBlock(e) => {
462            let mut context = EventContext::new(&envelope.event_id, e);
463            handler
464                .on_player_item_use_on_block(server, &mut context)
465                .await;
466            server.send_event_result(context).await.ok();
467        }
468        types::event_envelope::Payload::PlayerItemUseOnEntity(e) => {
469            let mut context = EventContext::new(&envelope.event_id, e);
470            handler
471                .on_player_item_use_on_entity(server, &mut context)
472                .await;
473            server.send_event_result(context).await.ok();
474        }
475        types::event_envelope::Payload::PlayerItemRelease(e) => {
476            let mut context = EventContext::new(&envelope.event_id, e);
477            handler.on_player_item_release(server, &mut context).await;
478            server.send_event_result(context).await.ok();
479        }
480        types::event_envelope::Payload::PlayerItemConsume(e) => {
481            let mut context = EventContext::new(&envelope.event_id, e);
482            handler.on_player_item_consume(server, &mut context).await;
483            server.send_event_result(context).await.ok();
484        }
485        types::event_envelope::Payload::PlayerAttackEntity(e) => {
486            let mut context = EventContext::new(&envelope.event_id, e);
487            handler.on_player_attack_entity(server, &mut context).await;
488            server.send_event_result(context).await.ok();
489        }
490        types::event_envelope::Payload::PlayerExperienceGain(e) => {
491            let mut context = EventContext::new(&envelope.event_id, e);
492            handler
493                .on_player_experience_gain(server, &mut context)
494                .await;
495            server.send_event_result(context).await.ok();
496        }
497        types::event_envelope::Payload::PlayerPunchAir(e) => {
498            let mut context = EventContext::new(&envelope.event_id, e);
499            handler.on_player_punch_air(server, &mut context).await;
500            server.send_event_result(context).await.ok();
501        }
502        types::event_envelope::Payload::PlayerSignEdit(e) => {
503            let mut context = EventContext::new(&envelope.event_id, e);
504            handler.on_player_sign_edit(server, &mut context).await;
505            server.send_event_result(context).await.ok();
506        }
507        types::event_envelope::Payload::PlayerLecternPageTurn(e) => {
508            let mut context = EventContext::new(&envelope.event_id, e);
509            handler
510                .on_player_lectern_page_turn(server, &mut context)
511                .await;
512            server.send_event_result(context).await.ok();
513        }
514        types::event_envelope::Payload::PlayerItemDamage(e) => {
515            let mut context = EventContext::new(&envelope.event_id, e);
516            handler.on_player_item_damage(server, &mut context).await;
517            server.send_event_result(context).await.ok();
518        }
519        types::event_envelope::Payload::PlayerItemPickup(e) => {
520            let mut context = EventContext::new(&envelope.event_id, e);
521            handler.on_player_item_pickup(server, &mut context).await;
522            server.send_event_result(context).await.ok();
523        }
524        types::event_envelope::Payload::PlayerHeldSlotChange(e) => {
525            let mut context = EventContext::new(&envelope.event_id, e);
526            handler
527                .on_player_held_slot_change(server, &mut context)
528                .await;
529            server.send_event_result(context).await.ok();
530        }
531        types::event_envelope::Payload::PlayerItemDrop(e) => {
532            let mut context = EventContext::new(&envelope.event_id, e);
533            handler.on_player_item_drop(server, &mut context).await;
534            server.send_event_result(context).await.ok();
535        }
536        types::event_envelope::Payload::PlayerTransfer(e) => {
537            let mut context = EventContext::new(&envelope.event_id, e);
538            handler.on_player_transfer(server, &mut context).await;
539            server.send_event_result(context).await.ok();
540        }
541        types::event_envelope::Payload::Command(e) => {
542            let mut context = EventContext::new(&envelope.event_id, e);
543            handler.on_command(server, &mut context).await;
544            server.send_event_result(context).await.ok();
545        }
546        types::event_envelope::Payload::PlayerDiagnostics(e) => {
547            let mut context = EventContext::new(&envelope.event_id, e);
548            handler.on_player_diagnostics(server, &mut context).await;
549            server.send_event_result(context).await.ok();
550        }
551        types::event_envelope::Payload::WorldLiquidFlow(e) => {
552            let mut context = EventContext::new(&envelope.event_id, e);
553            handler.on_world_liquid_flow(server, &mut context).await;
554            server.send_event_result(context).await.ok();
555        }
556        types::event_envelope::Payload::WorldLiquidDecay(e) => {
557            let mut context = EventContext::new(&envelope.event_id, e);
558            handler.on_world_liquid_decay(server, &mut context).await;
559            server.send_event_result(context).await.ok();
560        }
561        types::event_envelope::Payload::WorldLiquidHarden(e) => {
562            let mut context = EventContext::new(&envelope.event_id, e);
563            handler.on_world_liquid_harden(server, &mut context).await;
564            server.send_event_result(context).await.ok();
565        }
566        types::event_envelope::Payload::WorldSound(e) => {
567            let mut context = EventContext::new(&envelope.event_id, e);
568            handler.on_world_sound(server, &mut context).await;
569            server.send_event_result(context).await.ok();
570        }
571        types::event_envelope::Payload::WorldFireSpread(e) => {
572            let mut context = EventContext::new(&envelope.event_id, e);
573            handler.on_world_fire_spread(server, &mut context).await;
574            server.send_event_result(context).await.ok();
575        }
576        types::event_envelope::Payload::WorldBlockBurn(e) => {
577            let mut context = EventContext::new(&envelope.event_id, e);
578            handler.on_world_block_burn(server, &mut context).await;
579            server.send_event_result(context).await.ok();
580        }
581        types::event_envelope::Payload::WorldCropTrample(e) => {
582            let mut context = EventContext::new(&envelope.event_id, e);
583            handler.on_world_crop_trample(server, &mut context).await;
584            server.send_event_result(context).await.ok();
585        }
586        types::event_envelope::Payload::WorldLeavesDecay(e) => {
587            let mut context = EventContext::new(&envelope.event_id, e);
588            handler.on_world_leaves_decay(server, &mut context).await;
589            server.send_event_result(context).await.ok();
590        }
591        types::event_envelope::Payload::WorldEntitySpawn(e) => {
592            let mut context = EventContext::new(&envelope.event_id, e);
593            handler.on_world_entity_spawn(server, &mut context).await;
594            server.send_event_result(context).await.ok();
595        }
596        types::event_envelope::Payload::WorldEntityDespawn(e) => {
597            let mut context = EventContext::new(&envelope.event_id, e);
598            handler.on_world_entity_despawn(server, &mut context).await;
599            server.send_event_result(context).await.ok();
600        }
601        types::event_envelope::Payload::WorldExplosion(e) => {
602            let mut context = EventContext::new(&envelope.event_id, e);
603            handler.on_world_explosion(server, &mut context).await;
604            server.send_event_result(context).await.ok();
605        }
606        types::event_envelope::Payload::WorldClose(e) => {
607            let mut context = EventContext::new(&envelope.event_id, e);
608            handler.on_world_close(server, &mut context).await;
609            server.send_event_result(context).await.ok();
610        }
611    }
612}