Skip to content

Commit fb127b4

Browse files
committed
feat: support 26.10
1 parent d2e3636 commit fb127b4

10 files changed

Lines changed: 45 additions & 69 deletions

File tree

src/legacy/api/EntityAPI.cpp

Lines changed: 1 addition & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -968,8 +968,7 @@ Local<Value> EntityClass::hurt(Arguments const& args) const {
968968
ActorDamageByActorSource(*source, static_cast<SharedTypes::Legacy::ActorDamageCause>(type));
969969
return Boolean::newBoolean(entity->_hurt(damageBySource, damage, true, false));
970970
}
971-
ActorDamageSource damageSource;
972-
damageSource.mCause = static_cast<SharedTypes::Legacy::ActorDamageCause>(type);
971+
ActorDamageSource damageSource(static_cast<SharedTypes::Legacy::ActorDamageCause>(type), {});
973972
return Boolean::newBoolean(entity->_hurt(damageSource, damage, true, false));
974973
}
975974
CATCH_AND_THROW

src/legacy/api/ItemAPI.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -407,8 +407,10 @@ Local<Value> ItemClass::setDisplayName(Arguments const& args) const {
407407
CHECK_ARG_TYPE(args[0], ValueKind::kString);
408408

409409
try {
410-
Bedrock::Safety::RedactableString redactableString;
411-
redactableString.mUnredactedString = args[0].asString().toString();
410+
Bedrock::Safety::RedactableString redactableString(
411+
args[0].asString().toString(),
412+
args[0].asString().toString()
413+
);
412414
get()->setCustomName(redactableString);
413415
return Boolean::newBoolean(true);
414416
}

src/legacy/api/PlayerAPI.cpp

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -2748,7 +2748,7 @@ Local<Value> PlayerClass::hurt(Arguments const& args) const {
27482748
ActorDamageByActorSource(*source, static_cast<SharedTypes::Legacy::ActorDamageCause>(type));
27492749
return Boolean::newBoolean(player->_hurt(damageBySource, damage, true, false));
27502750
}
2751-
ActorDamageSource damageSource;
2751+
ActorDamageSource damageSource(static_cast<SharedTypes::Legacy::ActorDamageCause>(type), {});
27522752
damageSource.mCause = static_cast<SharedTypes::Legacy::ActorDamageCause>(type);
27532753
return Boolean::newBoolean(player->_hurt(damageSource, damage, true, false));
27542754
}

src/legacy/api/ServerAPI.cpp

Lines changed: 2 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -34,13 +34,8 @@ Local<Value> McClass::setMaxNumPlayers(Arguments const& args) {
3434
int activePlayerCount = handler->_getActiveAndInProgressPlayerCount(mce::UUID::EMPTY());
3535
bool result = true;
3636

37-
if (maxPlayers <= SharedConstants::NetworkDefaultMaxConnections()) {
38-
if (maxPlayers < activePlayerCount) {
39-
maxPlayers = activePlayerCount;
40-
result = false;
41-
}
42-
} else {
43-
maxPlayers = SharedConstants::NetworkDefaultMaxConnections();
37+
if (maxPlayers < activePlayerCount) {
38+
maxPlayers = activePlayerCount;
4439
result = false;
4540
}
4641

src/legacy/api/SimulatedPlayerAPI.cpp

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -14,6 +14,8 @@
1414
#include "mc/server/SimulatedPlayer.h"
1515
#include "mc/server/sim/LookDuration.h"
1616
#include "mc/world/actor/Actor.h"
17+
#include "mc/world/actor/ActorHurtResult.h"
18+
#include "mc/world/gamemode/InteractionResult.h"
1719
#include "mc/world/level/dimension/Dimension.h"
1820

1921
#include <string>
@@ -166,7 +168,7 @@ Local<Value> PlayerClass::simulateInteract(Arguments const& args) {
166168
if (args.size() == 0) return Boolean::newBoolean(sp->simulateInteract());
167169

168170
if (auto actor = EntityClass::tryExtractActor(args[0])) {
169-
return Boolean::newBoolean(sp->isAlive() && sp->interact(*actor, Vec3::ZERO()));
171+
return Boolean::newBoolean(sp->isAlive() && sp->interact(*actor, Vec3::ZERO()).mSuccess);
170172
}
171173

172174
int dimid = sp->getDimensionId().id;

src/lse/api/NetworkPacket.h

Lines changed: 9 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -15,23 +15,21 @@ class NetworkPacket final : public Packet {
1515
public:
1616
NetworkPacket(std::string data) : mData(std::move(data)) {}
1717

18-
NetworkPacket() = default;
19-
NetworkPacket(NetworkPacket&&) = default;
20-
auto operator=(NetworkPacket&&) -> NetworkPacket& = default;
21-
~NetworkPacket() override = default;
18+
NetworkPacket() = default;
19+
NetworkPacket(NetworkPacket&&) = default;
20+
NetworkPacket& operator=(NetworkPacket&&) = default;
21+
~NetworkPacket() override = default;
2222

23-
NetworkPacket(NetworkPacket const&) = delete;
24-
auto operator=(NetworkPacket const&) -> NetworkPacket& = delete;
23+
NetworkPacket(NetworkPacket const&) = delete;
24+
NetworkPacket& operator=(NetworkPacket const&) = delete;
2525

26-
[[nodiscard]] auto getId() const -> MinecraftPacketIds override { return packetId; }
26+
[[nodiscard]] MinecraftPacketIds getId() const override { return packetId; }
2727

28-
[[nodiscard]] auto getName() const -> std::string override { return "NetworkPacket"; }
28+
[[nodiscard]] std::string_view getName() const override { return "NetworkPacket"; }
2929

3030
void write(BinaryStream& stream) const override { stream.mBuffer.append(mData); }
3131

32-
auto _read(class ReadOnlyBinaryStream& /*stream*/) -> Bedrock::Result<void> override {
33-
return Bedrock::Result<void>{};
34-
}
32+
Bedrock::Result<void> _read(class ReadOnlyBinaryStream& /*stream*/) override { return Bedrock::Result<void>{}; }
3533

3634
private:
3735
std::string mData;

src/lse/events/BlockEvents.cpp

Lines changed: 13 additions & 37 deletions
Original file line numberDiff line numberDiff line change
@@ -331,29 +331,6 @@ RedstoneUpdateEvent(BlockSource const& region, BlockPos const& pos, int const& s
331331
return true;
332332
}
333333

334-
#define REDSTONE_EVNET_HOOK_OLD(BLOCK) \
335-
LL_TYPE_INSTANCE_HOOK( \
336-
BLOCK##Hook, \
337-
HookPriority::Normal, \
338-
BLOCK, \
339-
&BLOCK::$onRedstoneUpdate, \
340-
void, \
341-
BlockSource& region, \
342-
BlockPos const& pos, \
343-
int strength, \
344-
bool isFirstTime \
345-
) { \
346-
IF_LISTENED(EVENT_TYPES::onRedStoneUpdate) { \
347-
if (checkClientIsServerThread()) { \
348-
if (!RedstoneUpdateEvent(region, pos, strength, isFirstTime)) { \
349-
return; \
350-
} \
351-
} \
352-
} \
353-
IF_LISTENED_END(EVENT_TYPES::onRedStoneUpdate); \
354-
origin(region, pos, strength, isFirstTime); \
355-
}
356-
357334
#define REDSTONE_EVNET_HOOK_1(BLOCK) \
358335
LL_TYPE_INSTANCE_HOOK( \
359336
BLOCK##Hook, \
@@ -404,24 +381,23 @@ RedstoneUpdateEvent(BlockSource const& region, BlockPos const& pos, int const& s
404381
origin(blockEvent); \
405382
}
406383

407-
REDSTONE_EVNET_HOOK_OLD(HopperBlock)
408-
REDSTONE_EVNET_HOOK_OLD(CrafterBlock)
409-
REDSTONE_EVNET_HOOK_OLD(CommandBlock)
410-
REDSTONE_EVNET_HOOK_OLD(BigDripleafBlock)
411-
REDSTONE_EVNET_HOOK_OLD(CopperBulbBlock)
412-
REDSTONE_EVNET_HOOK_OLD(DoorBlock)
413-
REDSTONE_EVNET_HOOK_OLD(FenceGateBlock)
414-
REDSTONE_EVNET_HOOK_OLD(DispenserBlock)
415-
REDSTONE_EVNET_HOOK_OLD(StructureBlock)
416-
REDSTONE_EVNET_HOOK_OLD(TrapDoorBlock)
417-
REDSTONE_EVNET_HOOK_OLD(NoteBlock)
418-
REDSTONE_EVNET_HOOK_OLD(RedstoneLampBlock)
419-
REDSTONE_EVNET_HOOK_OLD(TntBlock)
420-
421384
REDSTONE_EVNET_HOOK_1(BaseRailBlock)
422385
REDSTONE_EVNET_HOOK_1(PoweredRailBlock)
423386
REDSTONE_EVNET_HOOK_1(ActivatorRailBlock)
424387

388+
REDSTONE_EVNET_HOOK_2(HopperBlock)
389+
REDSTONE_EVNET_HOOK_2(CrafterBlock)
390+
REDSTONE_EVNET_HOOK_2(CommandBlock)
391+
REDSTONE_EVNET_HOOK_2(BigDripleafBlock)
392+
REDSTONE_EVNET_HOOK_2(CopperBulbBlock)
393+
REDSTONE_EVNET_HOOK_2(DoorBlock)
394+
REDSTONE_EVNET_HOOK_2(FenceGateBlock)
395+
REDSTONE_EVNET_HOOK_2(DispenserBlock)
396+
REDSTONE_EVNET_HOOK_2(StructureBlock)
397+
REDSTONE_EVNET_HOOK_2(TrapDoorBlock)
398+
REDSTONE_EVNET_HOOK_2(NoteBlock)
399+
REDSTONE_EVNET_HOOK_2(RedstoneLampBlock)
400+
REDSTONE_EVNET_HOOK_2(TntBlock)
425401
REDSTONE_EVNET_HOOK_2(RedStoneWireBlock)
426402
REDSTONE_EVNET_HOOK_2(RedstoneTorchBlock)
427403
REDSTONE_EVNET_HOOK_2(ComparatorBlock)

src/lse/events/EntityEvents.cpp

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -16,6 +16,7 @@
1616
#include "mc/legacy/ActorUniqueID.h"
1717
#include "mc/world/actor/ActorDamageSource.h"
1818
#include "mc/world/actor/ActorDefinitionIdentifier.h"
19+
#include "mc/world/actor/ActorHurtResult.h"
1920
#include "mc/world/actor/ActorType.h"
2021
#include "mc/world/actor/Mob.h"
2122
#include "mc/world/actor/VanillaActorRendererId.h"
@@ -55,7 +56,7 @@ LL_TYPE_INSTANCE_HOOK(
5556
IF_LISTENED(EVENT_TYPES::onSpawnProjectile) {
5657
if (checkClientIsServerThread()) {
5758
static auto& tridentName = EntityCanonicalName(ActorType::Trident);
58-
if (id.mCanonicalName != tridentName) {
59+
if (*id.mCanonicalName != tridentName) {
5960
if (!CallEvent(
6061
EVENT_TYPES::onSpawnProjectile,
6162
EntityClass::newEntity(spawner),
@@ -252,7 +253,7 @@ LL_TYPE_INSTANCE_HOOK(
252253
HookPriority::Normal,
253254
Mob,
254255
&Mob::$_hurt,
255-
bool,
256+
ActorHurtResult,
256257
::ActorDamageSource const& source,
257258
float damage,
258259
bool knock,
@@ -277,7 +278,7 @@ LL_TYPE_INSTANCE_HOOK(
277278
Number::newNumber(damage < 0.0f ? -damage : damage),
278279
Number::newNumber(static_cast<int>(source.mCause))
279280
)) {
280-
return false;
281+
return {false, false};
281282
}
282283
}
283284
}

src/lse/events/PlayerEvents.cpp

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,6 +13,7 @@
1313
#include "mc/server/ServerPlayer.h"
1414
#include "mc/server/module/VanillaServerGameplayEventListener.h"
1515
#include "mc/world/ContainerID.h"
16+
#include "mc/world/actor/ActorHurtResult.h"
1617
#include "mc/world/actor/ActorType.h"
1718
#include "mc/world/actor/FishingHook.h"
1819
#include "mc/world/actor/item/ItemActor.h"
@@ -23,6 +24,7 @@
2324
#include "mc/world/effect/MobEffectInstance.h"
2425
#include "mc/world/events/EventResult.h"
2526
#include "mc/world/events/PlayerOpenContainerEvent.h"
27+
#include "mc/world/gamemode/InteractionResult.h"
2628
#include "mc/world/inventory/network/ItemStackNetManagerBase.h"
2729
#include "mc/world/inventory/transaction/ComplexInventoryTransaction.h"
2830
#include "mc/world/inventory/transaction/InventoryAction.h"
@@ -584,7 +586,7 @@ LL_TYPE_INSTANCE_HOOK(
584586
HookPriority::Normal,
585587
Player,
586588
&Player::interact,
587-
bool,
589+
InteractionResult,
588590
Actor& actor,
589591
Vec3 const& location
590592
) {
@@ -596,7 +598,7 @@ LL_TYPE_INSTANCE_HOOK(
596598
EntityClass::newEntity(&actor),
597599
FloatPos::newPos(location, getDimensionId().id)
598600
)) {
599-
return false;
601+
return {false, true};
600602
}
601603
}
602604
}

xmake.lua

Lines changed: 4 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -3,16 +3,17 @@ add_rules("mode.debug", "mode.release")
33
add_repositories("levimc-repo " .. (get_config("levimc_repo") or "https://github.com/LiteLDev/xmake-repo.git"))
44

55
if is_config("target_type", "server") then
6-
add_requires("levilamina 3b4b0ddf0405e27c37b09dc574724c96783d7c55", {configs = {target_type = "server"}})
6+
add_requires("levilamina 1312818717e46c0f788f0c9409003e08f6e45e1f", {configs = {target_type = "server"}})
77
else
8-
add_requires("levilamina 3b4b0ddf0405e27c37b09dc574724c96783d7c55", {configs = {target_type = "client"}})
8+
add_requires("levilamina 1312818717e46c0f788f0c9409003e08f6e45e1f", {configs = {target_type = "client"}})
99
end
1010

1111
add_requires("levibuildscript")
1212

13+
add_requires("legacyremotecall b8bf79f92e1ef3ede108be7bdc881048b4ef929f", {configs = {target_type = get_config(target_type)}})
14+
1315
add_requires(
1416
"legacymoney 0.10.0",
15-
"legacyremotecall 0.17.2",
1617
"lightwebsocketclient 1.0.1",
1718
"magic_enum v0.9.7",
1819
"nlohmann_json v3.11.3",

0 commit comments

Comments
 (0)