LeviLamina
Loading...
Searching...
No Matches
PlayerInteractBlockEvent.h
1#pragma once
2
3#include "ll/api/event/Cancellable.h"
4#include "ll/api/event/player/PlayerClickEvent.h"
5
6#include "mc/common/FacingID.h"
7#include "mc/deps/core/math/Vec3.h"
8#include "mc/world/item/ItemStack.h"
9#include "mc/world/level/BlockPos.h"
10#include "mc/world/level/block/Block.h"
11
12namespace ll::event::inline player {
13
14class PlayerInteractBlockEvent final : public Cancellable<PlayerRightClickEvent> {
15 ItemStack& mItem;
16 BlockPos const& mBlockPos;
17 FacingID const& mFace;
18 Vec3 const& mClickPos;
20
21public:
23 Player& player,
24 ItemStack& item,
25 BlockPos const& blockPos,
26 FacingID const& face,
27 Vec3 const& clickPos,
29 )
30 : Cancellable(player),
31 mItem(item),
32 mBlockPos(blockPos),
33 mFace(face),
34 mClickPos(clickPos),
35 mBlock(block) {}
36
37 LLAPI void serialize(CompoundTag&) const override;
38
39 LLNDAPI ItemStack& item() const;
40 LLNDAPI BlockPos const& blockPos() const;
41 LLNDAPI FacingID const& face() const;
42 LLNDAPI Vec3 const& clickPos() const;
43 LLNDAPI optional_ref<Block const> block() const;
44};
45} // namespace ll::event::inline player
Definition BlockPos.h:18
Definition CompoundTag.h:13
Definition ItemStack.h:25
Definition Player.h:119
Definition Vec3.h:10
Definition optional_ref.h:10
Definition PlayerInteractBlockEvent.h:14
Definition serialize.h:11