Skip to content

Commit dfe0ab1

Browse files
committed
fix: fix EventAPI
1 parent 447df6e commit dfe0ab1

File tree

5 files changed

+27
-44
lines changed

5 files changed

+27
-44
lines changed

src/legacy/api/CommandOriginAPI.cpp

Lines changed: 0 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -7,10 +7,8 @@
77
#include "api/PlayerAPI.h"
88
#include "magic_enum.hpp"
99
#include "mc/nbt/CompoundTag.h"
10-
#include "mc/server/commands/Command.h"
1110
#include "mc/server/commands/CommandOriginType.h"
1211
#include "mc/world/actor/player/Player.h"
13-
#include "mc/world/level/Level.h"
1412
#include "mc/world/level/dimension/Dimension.h"
1513

1614
#include <magic_enum.hpp>

src/legacy/api/CommandOutputAPI.cpp

Lines changed: 0 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -29,23 +29,20 @@ Local<Object> CommandOutputClass::newCommandOutput(CommandOutput* p) {
2929
return newp->getScriptObject();
3030
}
3131

32-
// MCAPI bool empty() const;
3332
Local<Value> CommandOutputClass::empty() {
3433
try {
3534
return Boolean::newBoolean(get()->mMessages.empty());
3635
}
3736
CATCH("Fail in empty!");
3837
}
3938

40-
// MCAPI int getSuccessCount() const;
4139
Local<Value> CommandOutputClass::getSuccessCount() {
4240
try {
4341
return Number::newNumber(get()->mSuccessCount);
4442
}
4543
CATCH("Fail in getSuccessCount!");
4644
};
4745

48-
// MCAPI enum CommandOutputType getType() const;
4946
// Local<Value> CommandOutputClass::getType()
5047
//{
5148
// try
@@ -55,8 +52,6 @@ Local<Value> CommandOutputClass::getSuccessCount() {
5552
// CATCH("Fail in getType!");
5653
// };
5754

58-
// MCAPI void success(std::string const&, std::vector<class
59-
// CommandOutputParameter> const&); MCAPI void success();
6055
Local<Value> CommandOutputClass::success(const Arguments& args) {
6156
try {
6257
if (args.size() == 0) {
@@ -106,8 +101,6 @@ Local<Value> CommandOutputClass::addMessage(const Arguments& args) {
106101
CATCH("Fail in addMessage!");
107102
};
108103

109-
// MCAPI void error(std::string const&, std::vector<class
110-
// CommandOutputParameter> const&);
111104
Local<Value> CommandOutputClass::error(const Arguments& args) {
112105
CHECK_ARGS_COUNT(args, 1);
113106
CHECK_ARG_TYPE(args[0], ValueKind::kString);

src/legacy/api/CommandOutputAPI.h

Lines changed: 7 additions & 17 deletions
Original file line numberDiff line numberDiff line change
@@ -13,25 +13,16 @@ class CommandOutputClass : public ScriptClass {
1313
CommandOutputClass(CommandOutput* p);
1414
static Local<Object> newCommandOutput(CommandOutput* p);
1515

16-
// MCAPI bool empty() const;
1716
Local<Value> empty();
1817

19-
// MCAPI int getSuccessCount() const;
2018
Local<Value> getSuccessCount();
2119

22-
// MCAPI enum CommandOutputType getType() const;
23-
// Local<Value> getType();
24-
25-
// MCAPI void success(std::string const&, std::vector<class CommandOutputParameter> const&);
26-
// MCAPI void success();
2720
Local<Value> success(const Arguments& args);
2821

2922
Local<Value> addMessage(const Arguments& args);
3023

31-
// MCAPI void error(std::string const&, std::vector<class CommandOutputParameter> const&);
3224
Local<Value> error(const Arguments& args);
3325

34-
// MCAPI void setHasPlayerText();
3526
// Local<Value> setHasPlayerText()
3627
//{
3728
// try
@@ -41,7 +32,7 @@ class CommandOutputClass : public ScriptClass {
4132
// }
4233
// CATCH("Fail in getBlockPosition!");
4334
// };
44-
// MCAPI bool wantsData() const;
35+
4536
// Local<Value> wantsData()
4637
//{
4738
// try
@@ -50,17 +41,16 @@ class CommandOutputClass : public ScriptClass {
5041
// }
5142
// CATCH("Fail in getBlockPosition!");
5243
// };
53-
// MCAPI void addToResultList(std::string const&, std::string const&);
54-
// MCAPI void addToResultList(std::string const&, class Actor const&);
44+
5545
// Local<Value> addToResultList(const Arguments& args);
56-
// MCAPI void forceOutput(std::string const&, std::vector<class CommandOutputParameter> const&);
46+
5747
// Local<Value> forceOutput(const Arguments& args);
58-
// MCAPI class CommandPropertyBag const& getData() const;
48+
5949
// Local<Value> getData() const;
60-
// MCAPI std::vector<class CommandOutputMessage> const& getMessages() const;
50+
6151
// Local<Value> getMessages() const;
62-
// MCAPI void load(enum CommandOutputType, int, std::vector<class CommandOutputMessage>&&, std::unique_ptr<class
63-
// CommandPropertyBag>&&); Local<Value> load(const Arguments& args);
52+
53+
// Local<Value> load(const Arguments& args);
6454

6555
Local<Value> toString(const Arguments& args);
6656
};

src/legacy/api/DeviceAPI.cpp

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -4,9 +4,9 @@
44
#include "ll/api/service/Bedrock.h"
55
#include "magic_enum.hpp"
66
#include "mc/certificates/WebToken.h"
7-
#include "mc/legacy/ActorRuntimeID.h"
87
#include "mc/deps/input/InputMode.h"
98
#include "mc/deps/json/Value.h"
9+
#include "mc/legacy/ActorRuntimeID.h"
1010
#include "mc/network/ConnectionRequest.h"
1111
#include "mc/network/ServerNetworkHandler.h"
1212
#include "mc/world/actor/player/Player.h"
@@ -114,7 +114,7 @@ Local<Value> DeviceClass::getOs() {
114114
Player* player = getPlayer();
115115
if (!player) return Local<Value>();
116116

117-
return String::newString(magic_enum::enum_name(player->getPlatform()));
117+
return String::newString(magic_enum::enum_name(player->mBuildPlatform));
118118
}
119119
CATCH("Fail in getOs!")
120120
}

src/legacy/api/EventAPI.cpp

Lines changed: 18 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -47,11 +47,10 @@
4747
#include "lse/events/OtherEvents.h"
4848
#include "lse/events/PlayerEvents.h"
4949
#include "main/Global.h"
50-
#include "mc/legacy/ActorRuntimeID.h"
51-
#include "mc/deps/core/string/HashedString.h"
50+
#include "mc/legacy/ActorUniqueID.h"
5251
#include "mc/server/commands/CommandOriginType.h"
53-
#include "mc/world/actor/ActorType.h"
5452
#include "mc/world/actor/player/Player.h"
53+
#include "mc/world/attribute/AttributeInstance.h"
5554
#include "mc/world/item/Item.h"
5655
#include "mc/world/item/VanillaItemNames.h"
5756
#include "mc/world/level/dimension/Dimension.h"
@@ -236,6 +235,7 @@ void EnableEventListener(int eventId) {
236235
IF_LISTENED(EVENT_TYPES::onPlayerDie) {
237236
Actor* source = ll::service::getLevel()
238237
->getDimension(ev.self().getDimensionId())
238+
.lock()
239239
->fetchEntity(ev.source().getEntityUniqueID(), false);
240240
CallEvent(
241241
EVENT_TYPES::onPlayerDie,
@@ -466,15 +466,17 @@ void EnableEventListener(int eventId) {
466466
case EVENT_TYPES::onEat:
467467
bus.emplaceListener<PlayerUseItemEvent>([](PlayerUseItemEvent& ev) {
468468
IF_LISTENED(EVENT_TYPES::onEat) {
469-
if ((ev.item().getItem()->isFood() || ev.item().isPotionItem()
470-
|| ev.item().getTypeName() == VanillaItemNames::MilkBucket().getString())
471-
&& (ev.self().isHungry() || ev.self().forceAllowEating())) {
472-
if (!CallEvent(
473-
EVENT_TYPES::onEat,
474-
PlayerClass::newPlayer(&ev.self()),
475-
ItemClass::newItem(&ev.item())
476-
)) {
477-
ev.cancel();
469+
if (ev.item().getItem()->isFood() || ev.item().isPotionItem()
470+
|| ev.item().getTypeName() == VanillaItemNames::MilkBucket().getString()) {
471+
auto attribute = ev.self().getAttribute(Player::HUNGER());
472+
if (attribute.mCurrentMaxValue > attribute.mCurrentValue) {
473+
if (!CallEvent(
474+
EVENT_TYPES::onEat,
475+
PlayerClass::newPlayer(&ev.self()),
476+
ItemClass::newItem(&ev.item())
477+
)) {
478+
ev.cancel();
479+
}
478480
}
479481
}
480482
}
@@ -560,7 +562,7 @@ void EnableEventListener(int eventId) {
560562
EVENT_TYPES::onMobDie,
561563
EntityClass::newEntity(&ev.self()),
562564
(source ? EntityClass::newEntity(source) : Local<Value>()),
563-
Number::newNumber((int)ev.source().getCause())
565+
Number::newNumber((int)ev.source().mCause)
564566
); // Not cancellable
565567
}
566568
IF_LISTENED_END(EVENT_TYPES::onMobDie);
@@ -668,7 +670,7 @@ void EnableEventListener(int eventId) {
668670
IF_LISTENED(EVENT_TYPES::onMobSpawn) {
669671
CallEvent(
670672
EVENT_TYPES::onMobSpawn,
671-
String::newString(ev.identifier().getFullName()),
673+
String::newString(ev.identifier().mFullName),
672674
FloatPos::newPos(ev.pos(), ev.blockSource().getDimensionId())
673675
); // Not cancellable
674676
}
@@ -681,7 +683,7 @@ void EnableEventListener(int eventId) {
681683
IF_LISTENED(EVENT_TYPES::onMobTrySpawn) {
682684
if (!CallEvent(
683685
EVENT_TYPES::onMobTrySpawn,
684-
String::newString(ev.identifier().getFullName()),
686+
String::newString(ev.identifier().mFullName),
685687
FloatPos::newPos(ev.pos(), ev.blockSource().getDimensionId())
686688
)) {
687689
ev.cancel();
@@ -745,7 +747,7 @@ void InitBasicEventListeners() {
745747
EventBus& bus = EventBus::getInstance();
746748

747749
bus.emplaceListener<ExecutingCommandEvent>([](ExecutingCommandEvent& ev) {
748-
auto originType = ev.commandContext().getCommandOrigin().getOriginType();
750+
auto originType = ev.commandContext().mOrigin->getOriginType();
749751
if (originType == CommandOriginType::DedicatedServer) {
750752
std::string cmd = ev.commandContext().mCommand;
751753
if (cmd.starts_with("/")) {

0 commit comments

Comments
 (0)