diff --git a/package-lock.json b/package-lock.json index 28f4125..bfbaeaa 100644 --- a/package-lock.json +++ b/package-lock.json @@ -1,6 +1,6 @@ { "name": "@bdsx/bdsx-llse", - "version": "1.2.0", + "version": "1.2.1", "lockfileVersion": 1, "requires": true, "dependencies": { diff --git a/package.json b/package.json index d529c06..48700e9 100644 --- a/package.json +++ b/package.json @@ -1,6 +1,6 @@ { "name": "@bdsx/bdsx-llse", - "version": "1.2.0", + "version": "1.2.1", "description": "LiteLoader ScriptingEngine ported into BDSX", "main": "index.js", "keywords": [], diff --git a/src/api/base.ts b/src/api/base.ts index 57195e7..07fd037 100644 --- a/src/api/base.ts +++ b/src/api/base.ts @@ -131,7 +131,7 @@ export class FloatPos { } export function FloatPos$newPos(x: number, y: number, z: number, dimid: number): FloatPos; -export function FloatPos$newPos(v: Vec3, dimid: number): FloatPos; +export function FloatPos$newPos(v: {x: number, y: number, z: number}, dimid: number): FloatPos; export function FloatPos$newPos(a0: any, a1: any, a2?: any, a3?: any): FloatPos { if (typeof a0 === "number" && typeof a1 === "number" && typeof a2 === "number" && typeof a3 === "number") { return new FloatPos(a0, a1, a2, a3); diff --git a/src/api/event.ts b/src/api/event.ts index 451d9bd..d77de22 100644 --- a/src/api/event.ts +++ b/src/api/event.ts @@ -694,16 +694,16 @@ events.playerDropItem.on(event => { /////////////////// BlockChanged /////////////////// { - const original = symhook("?_blockChanged@BlockSource@@IEAAXAEBVBlockPos@@IAEBVBlock@@1HPEBUActorBlockSyncMessage@@@Z", - void_t, null, BlockSource, BlockPos, uint32_t, Block, Block, int32_t, StaticPointer) - ((thiz, pos, layer, block, previousBlock, updateFlags, syncMsg) => { + const original = symhook("?_blockChanged@BlockSource@@IEAAXAEBVBlockPos@@IAEBVBlock@@1HPEBUActorBlockSyncMessage@@PEAVActor@@@Z", + void_t, null, BlockSource, BlockPos, uint32_t, Block, Block, int32_t, StaticPointer, Actor) + ((thiz, pos, layer, block, previousBlock, updateFlags, syncMsg, actor) => { const dimId = thiz.getDimensionId(); const cancelled = LXL_Events.onBlockChanged.fire(Block$newBlock(previousBlock, pos, dimId), Block$newBlock(block, pos, dimId)); _tickCallback(); if (cancelled) { return; } - return original(thiz, pos, layer, block, previousBlock, updateFlags, syncMsg); + return original(thiz, pos, layer, block, previousBlock, updateFlags, syncMsg, actor); }); } @@ -988,7 +988,7 @@ events.farmlandDecay.on(event => { /////////////////// MobHurt /////////////////// { - const original = symhook("?_hurt@Mob@@MEAA_NAEBVActorDamageSource@@H_N1@Z", + const original = symhook("?_hurt@Mob@@MEAA_NAEBVActorDamageSource@@M_N1@Z", bool_t, null, Actor, ActorDamageSource, int32_t, bool_t, bool_t) ((thiz, source, dmg, knock, ignite) => { const src = bedrockServer.level.fetchEntity(source.getDamagingEntityUniqueID(), true); @@ -1031,11 +1031,7 @@ events.farmlandDecay.on(event => { /////////////////// MobDie /////////////////// events.entityDie.on(event => { const src = event.damageSource.getDamagingEntity(); - const cancelled = LXL_Events.onMobDie.fire(Entity$newEntity(event.entity), src ? Entity$newEntity(src) : null); - _tickCallback(); - if (cancelled) { - return CANCEL; - } + LXL_Events.onMobDie.fire(Entity$newEntity(event.entity), src ? Entity$newEntity(src) : null); }); /////////////////// Entity & Block Explosion /////////////////// diff --git a/src/dep/native.ts b/src/dep/native.ts index 07a79ce..621e797 100644 --- a/src/dep/native.ts +++ b/src/dep/native.ts @@ -2,7 +2,6 @@ import { Actor, Actor as _Actor, ActorDamageCause, ActorDamageSource, ActorUniqu import { Block as _Block, BlockLegacy as _BlockLegacy, BlockSource as _BlockSource } from "bdsx/bds/block"; import { BlockPos as _BlockPos, Vec3, Vec3 as _Vec3 } from "bdsx/bds/blockpos"; import { Command } from "bdsx/bds/command"; -import { HashedString } from "bdsx/bds/hashedstring"; import { ArmorSlot, Container as _Container, FillingContainer, ItemStack, ItemStack as _ItemStack } from "bdsx/bds/inventory"; import { Level as _Level } from "bdsx/bds/level"; import { ByteArrayTag, ByteTag, CompoundTag as _CompoundTag, FloatTag, Int64Tag, ListTag, StringTag, Tag as _Tag } from "bdsx/bds/nbt"; @@ -10,194 +9,17 @@ import { NetworkIdentifier as _NetworkIdentifier, ServerNetworkHandler as _Serve import { CommandRequestPacket, LevelChunkPacket, ScorePacketInfo, SetDisplayObjectivePacket, SetScorePacket, TextPacket, TransferPacket } from "bdsx/bds/packets"; import { Player as _Player, ServerPlayer } from "bdsx/bds/player"; import { ObjectiveSortOrder, Scoreboard as _Scoreboard, ScoreboardId as _ScoreboardId } from "bdsx/bds/scoreboard"; -import { pdb, StaticPointer, VoidPointer } from "bdsx/core"; +import { proc } from "bdsx/bds/symbols"; +import { StaticPointer, VoidPointer } from "bdsx/core"; import { CxxVector } from "bdsx/cxxvector"; import { bedrockServer } from "bdsx/launcher"; import { ParamType } from "bdsx/makefunc"; import { nativeClass, NativeClass, nativeField } from "bdsx/nativeclass"; import { bool_t, CxxString, float32_t, int32_t, NativeType, uint64_as_float_t, uint8_t, void_t } from "bdsx/nativetype"; -import { ProcHacker } from "bdsx/prochacker"; +import { procHacker } from "bdsx/prochacker"; import { logger, TODO } from "../api/api_help"; import path = require("path"); -const RVAs = pdb.getList(path.join(__dirname, "pdb.ini"), {}, [ - // Actor - "?_sendDirtyActorData@Actor@@QEAAXXZ", - "?canAddPassenger@Actor@@UEBA_NAEAV1@@Z", - "?getBlockPosCurrentlyStandingOn@Actor@@QEBA?AVBlockPos@@PEAV1@@Z", - // ActorEventCoordinator - "?sendActorSneakChanged@ActorEventCoordinator@@QEAAXAEAVActor@@_N@Z", - // BarrelBlockActor - "?stopOpen@BarrelBlockActor@@UEAAXAEAVPlayer@@@Z", - // BaseCommandBlock - "?_performCommand@BaseCommandBlock@@AEAA_NAEAVBlockSource@@AEBVCommandOrigin@@AEA_N@Z", - "?getCommand@BaseCommandBlock@@QEBAAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ", - // BasePressurePlateBlock - "?entityInside@BasePressurePlateBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@AEAVActor@@@Z", - // BedItem - "?_tryUseOn@BedItem@@AEBA_NAEAVItemStackBase@@AEAVActor@@VBlockPos@@EAEBVVec3@@@Z", - // Block - "?attack@Block@@QEBA_NPEAVPlayer@@AEBVBlockPos@@@Z", - "?onExploded@Block@@QEBAXAEAVBlockSource@@AEBVBlockPos@@PEAVActor@@@Z", - "?onProjectileHit@Block@@QEBAXAEAVBlockSource@@AEBVBlockPos@@AEBVActor@@@Z", - // BlockEventCoordinator - "?sendBlockDestructionStarted@BlockEventCoordinator@@QEAAXAEAVPlayer@@AEBVBlockPos@@@Z", - // BlockSource - "?_blockChanged@BlockSource@@IEAAXAEBVBlockPos@@IAEBVBlock@@1HPEBUActorBlockSyncMessage@@@Z", - "?checkBlockDestroyPermissions@BlockSource@@QEAA_NAEAVActor@@AEBVBlockPos@@AEBVItemStackBase@@_N@Z", - "?getDimensionId@BlockSource@@UEBA?AV?$AutomaticID@VDimension@@H@@XZ", - "?mayPlace@BlockSource@@QEAA_NAEBVBlock@@AEBVBlockPos@@EPEAVActor@@_N@Z", - // BucketItem - "?useTimeDepleted@BucketItem@@UEBA?AW4ItemUseMethod@@AEAVItemStack@@PEAVLevel@@PEAVPlayer@@@Z", - // ChestBlockActor - "?stopOpen@ChestBlockActor@@UEAAXAEAVPlayer@@@Z", - // ComparatorBlock - "?onRedstoneUpdate@ComparatorBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@H_N@Z", - // CrossbowItem - "?_shootFirework@CrossbowItem@@AEBAXAEBVItemInstance@@AEAVPlayer@@@Z", - // DiodeBlock - "?onRedstoneUpdate@DiodeBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@H_N@Z", - // DoorItem - "?_useOn@DoorItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EAEBVVec3@@@Z", - // DropperBlockActor - "?_getContainerAt@DropperBlockActor@@AEAAPEAVContainer@@AEAVBlockSource@@AEBVVec3@@@Z", - // DyePowderItem - "?_useOn@DyePowderItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EAEBVVec3@@@Z", - // Explosion - "?explode@Explosion@@QEAAXXZ", - // FireBlock - "?mayPlace@FireBlock@@UEBA_NAEAVBlockSource@@AEBVBlockPos@@@Z", - "?onPlace@FireBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@@Z", - // FoodItemComponent - "?useTimeDepleted@FoodItemComponent@@UEAAPEBVItem@@AEAVItemStack@@AEAVPlayer@@AEAVLevel@@@Z", - // FoodItemComponentLegacy - "?useTimeDepleted@FoodItemComponentLegacy@@UEAAPEBVItem@@AEAVItemStack@@AEAVPlayer@@AEAVLevel@@@Z", - // GameMode - "?baseUseItem@GameMode@@QEAA_NAEAVItemStack@@@Z", - "?useItemOn@GameMode@@UEAA_NAEAVItemStack@@AEBVBlockPos@@EAEBVVec3@@PEBVBlock@@@Z", - // HitResult - "?getEntity@HitResult@@QEBAPEAVActor@@XZ", - // Hopper - "?_pushOutItems@Hopper@@IEAA_NAEAVBlockSource@@AEAVContainer@@AEBVVec3@@H@Z", - "?_tryPullInItemsFromAboveContainer@Hopper@@IEAA_NAEAVBlockSource@@AEAVContainer@@AEBVVec3@@@Z", - // ItemFrameBlock - "?attack@ItemFrameBlock@@UEBA_NPEAVPlayer@@AEBVBlockPos@@@Z", - "?use@ItemFrameBlock@@UEBA_NAEAVPlayer@@AEBVBlockPos@@E@Z", - // LevelContainerModel - "?_onItemChanged@LevelContainerModel@@MEAAXHAEBVItemStack@@0@Z", - "?_playerChangeDimension@Level@@AEAA_NPEAVPlayer@@AEAVChangeDimensionRequest@@@Z", - // LiquidBlockDynamic - "?_canSpreadTo@LiquidBlockDynamic@@AEBA_NAEAVBlockSource@@AEBVBlockPos@@1E@Z", - // MedicineItem - "?useTimeDepleted@MedicineItem@@UEBA?AW4ItemUseMethod@@AEAVItemStack@@PEAVLevel@@PEAVPlayer@@@Z", - // Mob - "?_hurt@Mob@@MEAA_NAEBVActorDamageSource@@H_N1@Z", - "?setSprinting@Mob@@UEAAX_N@Z", - // MobEffectInstance - "?getComponentName@MobEffectInstance@@QEBAAEBVHashedString@@XZ", - // NpcActionsContainer - "?getActionAt@NpcActionsContainer@@QEAAPEAVNpcAction@@_K@Z", - // NpcComponent - "?executeCommandAction@NpcComponent@@QEAAXAEAVActor@@AEAVPlayer@@HAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", - // NpcSceneDialogueData - "??0NpcSceneDialogueData@@QEAA@AEAVNpcComponent@@AEAVActor@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z", - "?getActionsContainer@NpcSceneDialogueData@@UEAAAEAUNpcActionsContainer@@XZ", - // PacketHandlerDispatcherInstance - "?handle@?$PacketHandlerDispatcherInstance@VRespawnPacket@@$0A@@@UEBAXAEBVNetworkIdentifier@@AEAVNetEventCallback@@AEAV?$shared_ptr@VPacket@@@std@@@Z", - // PistonBlockActor - "?_attachedBlockWalker@PistonBlockActor@@AEAA_NAEAVBlockSource@@AEBVBlockPos@@EE@Z", - // Player - "?_trySwapItem@ArmorStand@@AEAA_NAEAVPlayer@@W4EquipmentSlot@@@Z", - "?attack@Player@@UEAA_NAEAVActor@@AEBW4ActorDamageCause@@@Z", - "?canOpenContainerScreen@Player@@UEAA_NXZ", - "?consumeTotem@Player@@UEAA_NXZ", - "?die@Player@@UEAAXAEBVActorDamageSource@@@Z", - "?drop@Player@@UEAA_NAEBVItemStack@@_N@Z", - "?inventoryChanged@Player@@UEAAXAEAVContainer@@HAEBVItemStack@@1_N@Z", - "?jumpFromGround@Player@@UEAAXXZ", - "?setArmor@Player@@UEAAXW4ArmorSlot@@AEBVItemStack@@@Z", - "?take@Player@@QEAA_NAEAVActor@@HH@Z", - // PlayerEventCoordinator - "?sendPlayerMove@PlayerEventCoordinator@@QEAAXAEAVPlayer@@@Z", - // PotionItem - "?useTimeDepleted@PotionItem@@UEBA?AW4ItemUseMethod@@AEAVItemStack@@PEAVLevel@@PEAVPlayer@@@Z", - // ProjectileComponent - "?onHit@ProjectileComponent@@QEAAXAEAVActor@@AEBVHitResult@@@Z", - // RedStoneDustItem - "?_useOn@RedStoneDustItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EAEBVVec3@@@Z", - // RedstoneTorchBlock - "?onRedstoneUpdate@RedstoneTorchBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@H_N@Z", - // RedstoneWireBlock - "?onRedstoneUpdate@RedStoneWireBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@H_N@Z", - // RespawnAnchorBlock - "?trySetSpawn@RespawnAnchorBlock@@CA_NAEAVPlayer@@AEBVBlockPos@@AEAVBlockSource@@AEAVLevel@@@Z", - // ScoreboardId - "?isValid@ScoreboardId@@QEBA_NXZ", - // SeedItemComponentLegacy - "?useOn@SeedItemComponentLegacy@@QEAA_NAEAVItemStack@@AEAVActor@@AEBVBlockPos@@EAEBVVec3@@@Z", - // ServerCommandOrigin - "??0ServerCommandOrigin@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAVServerLevel@@W4CommandPermissionLevel@@V?$AutomaticID@VDimension@@H@@@Z", - // ServerNetworkHandler - "?_onPlayerLeft@ServerNetworkHandler@@AEAAXPEAVServerPlayer@@_N@Z", - "?handle@ServerNetworkHandler@@UEAAXAEBVNetworkIdentifier@@AEBVCommandRequestPacket@@@Z", - "?handle@ServerNetworkHandler@@UEAAXAEBVNetworkIdentifier@@AEBVTextPacket@@@Z", - "?sendLoginMessageLocal@ServerNetworkHandler@@QEAAXAEBVNetworkIdentifier@@AEBVConnectionRequest@@AEAVServerPlayer@@@Z", - // ServerPlayer - "?onEffectAdded@ServerPlayer@@MEAAXAEAVMobEffectInstance@@@Z", - "?onEffectRemoved@ServerPlayer@@MEAAXAEAVMobEffectInstance@@@Z", - "?onEffectUpdated@ServerPlayer@@MEAAXAEAVMobEffectInstance@@@Z", - "?setLocalPlayerAsInitialized@ServerPlayer@@QEAAXXZ", - // ServerScoreboard - "?onScoreChanged@ServerScoreboard@@UEAAXAEBUScoreboardId@@AEBVObjective@@@Z", - // SignItem - "?_calculatePlacePos@SignItem@@EEBA_NAEAVItemStackBase@@AEAVActor@@AEAEAEAVBlockPos@@@Z", - // SimulatedPlayer - "??_7SimulatedPlayer@@6B@", - // Spawner - "?spawnProjectile@Spawner@@QEAAPEAVActor@@AEAVBlockSource@@AEBUActorDefinitionIdentifier@@PEAV2@AEBVVec3@@3@Z", - // SuspiciousStewItem - "?useTimeDepleted@SuspiciousStewItem@@UEBA?AW4ItemUseMethod@@AEAVItemStack@@PEAVLevel@@PEAVPlayer@@@Z", - // TransformationComponent - "?maintainOldData@TransformationComponent@@QEAAXAEAVActor@@0AEBUTransformationDescription@@AEBUActorUniqueID@@AEBVLevel@@@Z", - // TridentItem - "?releaseUsing@TridentItem@@UEBAXAEAVItemStack@@PEAVPlayer@@H@Z", - // VanillaBlocks - "?mWoodenDoor@VanillaBlocks@@3PEBVBlock@@EB", - "?mWoodenDoorSpruce@VanillaBlocks@@3PEBVBlock@@EB", - "?mWoodenDoorBirch@VanillaBlocks@@3PEBVBlock@@EB", - "?mWoodenDoorJungle@VanillaBlocks@@3PEBVBlock@@EB", - "?mWoodenDoorAcacia@VanillaBlocks@@3PEBVBlock@@EB", - "?mWoodenDoorDarkOak@VanillaBlocks@@3PEBVBlock@@EB", - "?mIronDoor@VanillaBlocks@@3PEBVBlock@@EB", - "?mCrimsonDoor@VanillaBlocks@@3PEBVBlock@@EB", - "?mWarpedDoor@VanillaBlocks@@3PEBVBlock@@EB", - - "?mWallSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mSpruceWallSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mSpruceSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mBirchWallSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mBirchSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mJungleWallSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mJungleSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mAcaciaWallSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mAcaciaSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mDarkOakWallSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mDarkOakSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mCrimsonWallSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mCrimsonStandingSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mWarpedWallSign@VanillaBlocks@@3PEBVBlock@@EB", - "?mWarpedStandingSign@VanillaBlocks@@3PEBVBlock@@EB", - // VanillaServerGameplayEventListener - "?onBlockInteractedWith@VanillaServerGameplayEventListener@@UEAA?AW4EventResult@@AEAVPlayer@@AEBVBlockPos@@@Z", - "?onEvent@VanillaServerGameplayEventListener@@UEAA?AW4EventResult@@AEBUPlayerOpenContainerEvent@@@Z", - // WeakEntityRef - "??$tryUnwrap@VPlayer@@$$V@WeakEntityRef@@QEBAPEAVPlayer@@XZ", - // WitherBoss - "?_destroyBlocks@WitherBoss@@AEAAXAEAVLevel@@AEBVAABB@@AEAVBlockSource@@H@Z", -], false); - -const hacker = new ProcHacker(RVAs); export const symcall = ((...args: any[]) => { if (!(symcall as any).cache) { (symcall as any).cache = new Map(); @@ -205,12 +27,12 @@ export const symcall = ((...args: any[]) => { if ((symcall as any).cache.has(args[0])) { return (symcall as any).cache.get(args[0]); } - const func = (hacker.js as any)(...args); + const func = (procHacker.js as any)(...args); (symcall as any).cache.set(args[0], func); return func; -}) as typeof hacker.js; +}) as typeof procHacker.js; export const symhook = ((...args: any[]) => { - const hook = (hacker.hooking as any)(...args); + const hook = (procHacker.hooking as any)(...args); const func = (cb: any) => { return hook((...args: any[]) => { try { @@ -221,8 +43,8 @@ export const symhook = ((...args: any[]) => { }); } return func; -}) as typeof hacker.hooking; -export const dlsym = (name: keyof typeof RVAs) => RVAs[name]; +}) as typeof procHacker.hooking; +export const dlsym = (name: keyof typeof proc) => proc[name]; export const daccess = (ptr: VoidPointer, type: T, offset = 0) => type[NativeType.getter](ptr as any, offset); export namespace MCAPI { @@ -288,7 +110,7 @@ export namespace MCAPI { Unknown = -1, } export namespace Mob { - export const _hurt: (thiz: _Actor, source: ActorDamageSource, damage: number, knock: boolean, ignite: boolean) => boolean = symcall("?_hurt@Mob@@MEAA_NAEBVActorDamageSource@@H_N1@Z", bool_t, null, _Actor, ActorDamageSource, int32_t, bool_t, bool_t); + export const _hurt: (thiz: _Actor, source: ActorDamageSource, damage: number, knock: boolean, ignite: boolean) => boolean = symcall("?_hurt@Mob@@MEAA_NAEBVActorDamageSource@@M_N1@Z", bool_t, null, _Actor, ActorDamageSource, float32_t, bool_t, bool_t); } @nativeClass(null) export class NpcAction extends NativeClass { @@ -423,12 +245,12 @@ export namespace LlAPI { if (thiz.isPlayer()) { return "minecraft:player"; } else { - const hash = daccess(thiz, HashedString, 880); + const hash = thiz.getActorIdentifier().canonicalName; return hash.str; } } export function hurtEntity(thiz: _Actor, damage: number) { - let ad = ActorDamageSource.constructWith(ActorDamageCause.Void); + let ad = ActorDamageSource.create(ActorDamageCause.Void); return MCAPI.Mob._hurt(thiz, ad, damage, true, false); } export function isOnGround(thiz: _Actor) { @@ -669,7 +491,7 @@ export namespace LlAPI { } } export function getEnderChestContainer(thiz: _Player) { - return daccess(thiz, FillingContainer.ref(), 4184); + return daccess(thiz, FillingContainer.ref(), 4192); } export function getRealName(thiz: _Player) { if (Actor.isSimulatedPlayer(thiz)) { diff --git a/src/dep/pdb.ini b/src/dep/pdb.ini deleted file mode 100644 index d94df4e..0000000 --- a/src/dep/pdb.ini +++ /dev/null @@ -1,156 +0,0 @@ -F1D88123175CE6DFB602C55F5B8F1BE5 -?sendInventory@Mob@@UEAAX_N@Z = 0xDF3090 -?useTimeDepleted@PotionItem@@UEBA?AW4ItemUseMethod@@AEAVItemStack@@PEAVLevel@@PEAVPlayer@@@Z = 0x11F9CD0 -?getCommand@BaseCommandBlock@@QEBAAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ = 0x8960E0 -?take@Player@@QEAA_NAEAVActor@@HH@Z = 0xCADD40 -?mAcaciaSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A03C8 -?getSerializedName@Item@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ = 0xF02100 -?getArmorContainer@Actor@@QEAAAEAVSimpleContainer@@XZ = 0xC56C80 -?_useOn@DoorItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EAEBVVec3@@@Z = 0xEF96A0 -?onEffectUpdated@ServerPlayer@@MEAAXAEAVMobEffectInstance@@@Z = 0x76FA10 -?isInWater@Actor@@UEBA_NXZ = 0xC64C50 -?_getContainerAt@DropperBlockActor@@AEAAPEAVContainer@@AEAVBlockSource@@AEBVVec3@@@Z = 0x12B4AB0 -?removeBlockEntity@BlockSource@@QEAA?AV?$shared_ptr@VBlockActor@@@std@@AEBVBlockPos@@@Z = 0x114EA80 -?canOpenContainerScreen@Player@@UEAA_NXZ = 0xC982B0 -?onPlace@FireBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@@Z = 0x142F300 -?isValid@ScoreboardId@@QEBA_NXZ = 0x14DB710 -?trySetSpawn@RespawnAnchorBlock@@CA_NAEAVPlayer@@AEBVBlockPos@@AEAVBlockSource@@AEAVLevel@@@Z = 0x1504290 -?isSprinting@Mob@@QEBA_NXZ = 0xDEF490 -?_useOn@RedStoneDustItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EAEBVVec3@@@Z = 0x1347190 -?sendLoginMessageLocal@ServerNetworkHandler@@QEAAXAEBVNetworkIdentifier@@AEBVConnectionRequest@@AEAVServerPlayer@@@Z = 0x6C6060 -?inventoryChanged@Player@@UEAAXAEAVContainer@@HAEBVItemStack@@1_N@Z = 0xC9FF90 -?mWarpedStandingSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A0540 -?setLocalPlayerAsInitialized@ServerPlayer@@QEAAXXZ = 0x7787E0 -?mWoodenDoorDarkOak@VanillaBlocks@@3PEBVBlock@@EB = 0x229FC38 -?mSpruceSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A0398 -?hasOpenContainer@Player@@QEBA_NXZ = 0xC9F6A0 -?mSign@VanillaBlocks@@3PEBVBlock@@EB = 0x229F7F0 -?mWoodenDoorJungle@VanillaBlocks@@3PEBVBlock@@EB = 0x229FC28 -?mWarpedWallSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A0550 -?useTimeDepleted@FoodItemComponentLegacy@@UEAAPEBVItem@@AEAVItemStack@@AEAVPlayer@@AEAVLevel@@@Z = 0xFD87A0 -?addItem@Container@@UEAAXAEAVItemStack@@@Z = 0xC4DD40 -?mJungleWallSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A03C0 -?onEvent@VanillaServerGameplayEventListener@@UEAA?AW4EventResult@@AEBUPlayerOpenContainerEvent@@@Z = 0x35FFA0 -?_onPlayerLeft@ServerNetworkHandler@@AEAAXPEAVServerPlayer@@_N@Z = 0x6AF6C0 -?_onItemChanged@LevelContainerModel@@MEAAXHAEBVItemStack@@0@Z = 0xE17820 -?mAcaciaWallSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A03D0 -?getItem@SimpleContainer@@UEBAAEBVItemStack@@H@Z = 0xC5D7B0 -?useTimeDepleted@MedicineItem@@UEBA?AW4ItemUseMethod@@AEAVItemStack@@PEAVLevel@@PEAVPlayer@@@Z = 0x11F9AC0 -?_canSpreadTo@LiquidBlockDynamic@@AEBA_NAEAVBlockSource@@AEBVBlockPos@@1E@Z = 0x1295F10 -?getSpeed@Mob@@UEBAMXZ = 0xDEB950 -?getPlatform@Player@@QEBA?AW4BuildPlatform@@XZ = 0xC9EB30 -?baseUseItem@GameMode@@QEAA_NAEAVItemStack@@@Z = 0xDBEF20 -?hasBlockEntity@Block@@QEBA_NXZ = 0x12861A0 -?entityInside@BasePressurePlateBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@AEAVActor@@@Z = 0x1280DE0 -?mWoodenDoorAcacia@VanillaBlocks@@3PEBVBlock@@EB = 0x229FC30 -?mWallSign@VanillaBlocks@@3PEBVBlock@@EB = 0x229F818 -?_hurt@Mob@@MEAA_NAEBVActorDamageSource@@H_N1@Z = 0xDDE3D0 -??_7SimulatedPlayer@@6B@ = 0x1CC6288 -?sendArmorSlot@Mob@@QEAAXW4ArmorSlot@@@Z = 0xDF3010 -?handle@ServerNetworkHandler@@UEAAXAEBVNetworkIdentifier@@AEBVCommandRequestPacket@@@Z = 0x6BA9D0 -?_blockChanged@BlockSource@@IEAAXAEBVBlockPos@@IAEBVBlock@@1HPEBUActorBlockSyncMessage@@@Z = 0x11312B0 -?_attachedBlockWalker@PistonBlockActor@@AEAA_NAEAVBlockSource@@AEBVBlockPos@@EE@Z = 0x1417A20 -?convertYRotationToFacingDirection@Facing@@SAEM@Z = 0xC527A0 -?_destroyBlocks@WitherBoss@@AEAAXAEAVLevel@@AEBVAABB@@AEAVBlockSource@@H@Z = 0xEBCF60 -?onRedstoneUpdate@RedStoneWireBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@H_N@Z = 0x1502660 -?_tryPullInItemsFromAboveContainer@Hopper@@IEAA_NAEAVBlockSource@@AEAVContainer@@AEBVVec3@@@Z = 0xD9EBF0 -?getXuid@Player@@UEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ = 0xC9F2E0 -?getPosition@BlockActor@@QEBAAEBVBlockPos@@XZ = 0x12BE0C0 -?mSpruceWallSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A03A0 -?relative@BlockPos@@QEBA?AV1@EH@Z = 0x114E3C0 -?onRedstoneUpdate@RedstoneTorchBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@H_N@Z = 0x15027D0 -?onExploded@Block@@QEBAXAEAVBlockSource@@AEBVBlockPos@@PEAVActor@@@Z = 0x1289130 -?mCrimsonWallSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A0548 -?mJungleSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A03B8 -?mayPlace@FireBlock@@UEBA_NAEAVBlockSource@@AEBVBlockPos@@@Z = 0x142EAC0 -?mWoodenDoorSpruce@VanillaBlocks@@3PEBVBlock@@EB = 0x229FC18 -??$tryUnwrap@VPlayer@@$$V@WeakEntityRef@@QEBAPEAVPlayer@@XZ = 0x9855F0 -?_shootFirework@CrossbowItem@@AEBAXAEBVItemInstance@@AEAVPlayer@@@Z = 0xE4A170 -?onHit@ProjectileComponent@@QEAAXAEAVActor@@AEBVHitResult@@@Z = 0x8BD280 -?_playerChangeDimension@Level@@AEAA_NPEAVPlayer@@AEAVChangeDimensionRequest@@@Z = 0x10C22B0 -?releaseUsing@TridentItem@@UEBAXAEAVItemStack@@PEAVPlayer@@H@Z = 0x1364370 -?die@Player@@UEAAXAEBVActorDamageSource@@@Z = 0xC9B250 -?mayPlace@BlockSource@@QEAA_NAEBVBlock@@AEBVBlockPos@@EPEAVActor@@_N@Z = 0x114A480 -?setOnFire@OnFireSystem@@SAXAEAVActor@@H@Z = 0x8CDFC0 -?explode@Explosion@@QEAAXXZ = 0x113B1D0 -?onProjectileHit@Block@@QEBAXAEAVBlockSource@@AEBVBlockPos@@AEBVActor@@@Z = 0x128A0D0 -?handle@ServerNetworkHandler@@UEAAXAEBVNetworkIdentifier@@AEBVTextPacket@@@Z = 0x6C1940 -?getSpeed@Player@@UEBAMXZ = 0xC9F010 -?checkBlockDestroyPermissions@BlockSource@@QEAA_NAEAVActor@@AEBVBlockPos@@AEBVItemStackBase@@_N@Z = 0x11373E0 -?onRedstoneUpdate@DiodeBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@H_N@Z = 0x1382B10 -?executeCommandAction@NpcComponent@@QEAAXAEAVActor@@AEAVPlayer@@HAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z = 0x894610 -?drop@Player@@UEAA_NAEBVItemStack@@_N@Z = 0xC9B710 -?mWoodenDoorBirch@VanillaBlocks@@3PEBVBlock@@EB = 0x229FC20 -?_trySwapItem@ArmorStand@@AEAA_NAEAVPlayer@@W4EquipmentSlot@@@Z = 0xD9F0F0 -?createScoreboardId@ServerScoreboard@@UEAAAEBUScoreboardId@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z = 0x14D6A50 -?getFeetPos@CommandUtils@@YA?AVVec3@@PEBVActor@@@Z = 0x763ED0 -?_sendDirtyActorData@Actor@@QEAAXXZ = 0xC305D0 -?sendPlayerMove@PlayerEventCoordinator@@QEAAXAEAVPlayer@@@Z = 0xD58C50 -?stopOpen@ChestBlockActor@@UEAAXAEAVPlayer@@@Z = 0x12CAA80 -?getActionsContainer@NpcSceneDialogueData@@UEAAAEAUNpcActionsContainer@@XZ = 0xEEB5D0 -?removeItem@Container@@UEAAXHH@Z = 0xC74730 -?getStateFromLegacyData@BlockLegacy@@UEBAAEBVBlock@@G@Z = 0x1285C50 -?_calculatePlacePos@SignItem@@EEBA_NAEAVItemStackBase@@AEAVActor@@AEAEAEAVBlockPos@@@Z = 0x1346D40 -?getEntity@HitResult@@QEBAPEAVActor@@XZ = 0x12403E0 -?useItemOn@GameMode@@UEAA_NAEAVItemStack@@AEBVBlockPos@@EAEBVVec3@@PEBVBlock@@@Z = 0xDC6070 -?useTimeDepleted@SuspiciousStewItem@@UEBA?AW4ItemUseMethod@@AEAVItemStack@@PEAVLevel@@PEAVPlayer@@@Z = 0x1374720 -?attack@ItemFrameBlock@@UEBA_NPEAVPlayer@@AEBVBlockPos@@@Z = 0x14E2D00 -?_tryUseOn@BedItem@@AEBA_NAEAVItemStackBase@@AEAVActor@@VBlockPos@@EAEBVVec3@@@Z = 0xE4B1A0 -?canAddPassenger@Actor@@UEBA_NAEAV1@@Z = 0xC4F180 -?_pushOutItems@Hopper@@IEAA_NAEAVBlockSource@@AEAVContainer@@AEBVVec3@@H@Z = 0xD9D210 -?explode@Level@@UEAAXAEAVBlockSource@@PEAVActor@@AEBVVec3@@M_N3M3@Z = 0x10CB6B0 -?mCrimsonDoor@VanillaBlocks@@3PEBVBlock@@EB = 0x22A0558 -?isEmpty@Container@@UEBA_NXZ = 0xC64090 -?kill@Mob@@UEAAXXZ = 0xDEF800 -?addLevels@Player@@UEAAXH@Z = 0xC96920 -?_performCommand@BaseCommandBlock@@AEAA_NAEAVBlockSource@@AEBVCommandOrigin@@AEA_N@Z = 0x12B5930 -?spawnProjectile@Spawner@@QEAAPEAVActor@@AEAVBlockSource@@AEBUActorDefinitionIdentifier@@PEAV2@AEBVVec3@@3@Z = 0x10DB3D0 -?removeAllItems@Container@@UEAAXXZ = 0xC740B0 -?sendActorSneakChanged@ActorEventCoordinator@@QEAAXAEAVActor@@_N@Z = 0xD56CB0 -?setArmor@Player@@UEAAXW4ArmorSlot@@AEBVItemStack@@@Z = 0xCA9DF0 -?getBlockPosCurrentlyStandingOn@Actor@@QEBA?AVBlockPos@@PEAV1@@Z = 0xC57060 -?onBlockInteractedWith@VanillaServerGameplayEventListener@@UEAA?AW4EventResult@@AEAVPlayer@@AEBVBlockPos@@@Z = 0x35EC50 -?getType@BlockActor@@QEBAAEBW4BlockActorType@@XZ = 0x6551E0 -?onEffectAdded@ServerPlayer@@MEAAXAEAVMobEffectInstance@@@Z = 0x76F860 -?spawnParticleEffect@Level@@UEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBVVec3@@PEAVDimension@@@Z = 0x10DB2D0 -?handle@?$PacketHandlerDispatcherInstance@VRespawnPacket@@$0A@@@UEBAXAEBVNetworkIdentifier@@AEAVNetEventCallback@@AEAV?$shared_ptr@VPacket@@@std@@@Z = 0x688F20 -?clearDisplayObjective@ServerScoreboard@@UEAAPEAVObjective@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z = 0x14D63A0 -?maintainOldData@TransformationComponent@@QEAAXAEAVActor@@0AEBUTransformationDescription@@AEBUActorUniqueID@@AEBVLevel@@@Z = 0x8BBE50 -?attack@Block@@QEBA_NPEAVPlayer@@AEBVBlockPos@@@Z = 0x127D290 -?mWoodenDoor@VanillaBlocks@@3PEBVBlock@@EB = 0x229F7F8 -?mWarpedDoor@VanillaBlocks@@3PEBVBlock@@EB = 0x22A0560 -?useTimeDepleted@FoodItemComponent@@UEAAPEBVItem@@AEAVItemStack@@AEAVPlayer@@AEAVLevel@@@Z = 0x1333970 -?hasRoomForItem@Container@@UEAA_NAEBVItemStack@@@Z = 0xC60FD0 -?getComponentName@MobEffectInstance@@QEBAAEBVHashedString@@XZ = 0xE1A3F0 -?setSprinting@Mob@@UEAAX_N@Z = 0xDF3A80 -??0NpcSceneDialogueData@@QEAA@AEAVNpcComponent@@AEAVActor@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z = 0xEE25B0 -?consumeTotem@Player@@UEAA_NXZ = 0xC9AD40 -?mBirchWallSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A03B0 -?jumpFromGround@Player@@UEAAXXZ = 0xCA1030 -?onScoreChanged@ServerScoreboard@@UEAAXAEBUScoreboardId@@AEBVObjective@@@Z = 0x14DCDA0 -?mDarkOakSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A03D8 -?addItemToFirstEmptySlot@Container@@UEAA_NAEBVItemStack@@@Z = 0xC4DF90 -?resendAllChunks@ServerPlayer@@UEAAXXZ = 0x7742A0 -?_useOn@DyePowderItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EAEBVVec3@@@Z = 0xEF98E0 -?setNull@ItemStackBase@@UEAAXXZ = 0x11F71F0 -?mCrimsonStandingSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A0538 -?onEffectRemoved@ServerPlayer@@MEAAXAEAVMobEffectInstance@@@Z = 0x76F950 -?resetPlayerLevel@Player@@QEAAXXZ = 0xCA8F80 -??0ServerCommandOrigin@@QEAA@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEAVServerLevel@@W4CommandPermissionLevel@@V?$AutomaticID@VDimension@@H@@@Z = 0x748580 -?onRedstoneUpdate@ComparatorBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@H_N@Z = 0x1482510 -?mDarkOakWallSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A03E0 -?useOn@SeedItemComponentLegacy@@QEAA_NAEAVItemStack@@AEAVActor@@AEBVBlockPos@@EAEBVVec3@@@Z = 0x13744F0 -?mIronDoor@VanillaBlocks@@3PEBVBlock@@EB = 0x229F830 -?getDimensionId@BlockSource@@UEBA?AV?$AutomaticID@VDimension@@H@@XZ = 0x1141A50 -?setOnFireNoEffects@OnFireSystem@@SAXAEAVActor@@H@Z = 0x8CE0B0 -?sendBlockDestructionStarted@BlockEventCoordinator@@QEAAXAEAVPlayer@@AEBVBlockPos@@@Z = 0xD57060 -?addExperience@Player@@UEAAXH@Z = 0xC96640 -?useTimeDepleted@BucketItem@@UEBA?AW4ItemUseMethod@@AEAVItemStack@@PEAVLevel@@PEAVPlayer@@@Z = 0xE55290 -?attack@Player@@UEAA_NAEAVActor@@AEBW4ActorDamageCause@@@Z = 0xC96EB0 -?use@ItemFrameBlock@@UEBA_NAEAVPlayer@@AEBVBlockPos@@E@Z = 0x14E89B0 -?mBirchSign@VanillaBlocks@@3PEBVBlock@@EB = 0x22A03A8 -?getBlockItemId@BlockLegacy@@QEBAFXZ = 0x1282FA0 -?stopOpen@BarrelBlockActor@@UEAAXAEAVPlayer@@@Z = 0x12CA9B0 -?getActionAt@NpcActionsContainer@@QEAAPEAVNpcAction@@_K@Z = 0xEAB1C0 -?forceAllowEating@Player@@QEBA_NXZ = 0xC9C6B0 -?isHungry@Player@@QEBA_NXZ = 0xCA0720