diff --git a/.idea/workspace.xml b/.idea/workspace.xml
index a4dd883..8469e0f 100644
--- a/.idea/workspace.xml
+++ b/.idea/workspace.xml
@@ -15,10 +15,18 @@
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
@@ -109,7 +117,11 @@
-
+
+
+
+
+
diff --git a/api/BDSMod.h b/api/BDSMod.h
index 4071033..d72f46b 100644
--- a/api/BDSMod.h
+++ b/api/BDSMod.h
@@ -35,12 +35,17 @@ namespace trapdoor {
std::map playerCache;
ThreadPool *threadPool = nullptr;
ModConfig config;
+ BlockPalette *palette;
public:
Level *getLevel();
+ inline BlockPalette *getPalette() { return this->palette; }
+
void setLevel(Level *level);
+ inline void setBlockPalette(BlockPalette *p) { this->palette = p; }
+
CommandRegistry *getCommandRegistry();
void setCommandRegistry(CommandRegistry *registry);
diff --git a/api/block/Block.cpp b/api/block/Block.cpp
index c4b3960..2fc7183 100644
--- a/api/block/Block.cpp
+++ b/api/block/Block.cpp
@@ -7,6 +7,7 @@
#include "lib/mod.h"
#include "lib/SymHook.h"
#include "block/BlockLegacy.h"
+#include "tools/DirtyLogger.h"
namespace trapdoor {
using namespace SymHook;
@@ -44,9 +45,6 @@ namespace trapdoor {
}
-
-
-
//获取方块实体的位置
BlockPos *BlockActor::getPosition() {
return reinterpret_cast(reinterpret_cast(this) + 44);
@@ -57,4 +55,28 @@ namespace trapdoor {
Block *BlockActor::getBlock() {
return *reinterpret_cast(reinterpret_cast(this) + 16);
}
+
+ Block *BlockPalette::getBlock(unsigned int type) {
+ return SYM_CALL(
+ trapdoor::Block*(*)(trapdoor::BlockPalette * , unsigned int *),
+ SymHook::MSSYM_B1QA8getBlockB1AE12BlockPaletteB2AAE13QEBAAEBVBlockB2AAA4AEBIB1AA1Z,
+ this,
+ &type
+ );
+ }
+}
+
+using namespace SymHook;
+
+THook(
+ void,
+ MSSYM_B1QA8getBlockB1AE12BlockPaletteB2AAE13QEBAAEBVBlockB2AAA4AEBIB1AA1Z,
+ trapdoor::BlockPalette *palette,
+ size_t * id
+) {
+ if (trapdoor::bdsMod && !trapdoor::bdsMod->getPalette()) {
+ trapdoor::bdsMod->setBlockPalette(palette);
+ L_INFO("set block palette");
+ }
+ original(palette, id);
}
diff --git a/api/block/Block.h b/api/block/Block.h
index 8705e0f..368fe16 100644
--- a/api/block/Block.h
+++ b/api/block/Block.h
@@ -10,8 +10,14 @@ struct Biome;
namespace trapdoor {
+ enum BlockType : size_t {
+ Air = 0,
+ Dirt = 4
+ };
+
/*
* 方块接口
+ *
*/
class BlockLegacy;
@@ -30,6 +36,7 @@ namespace trapdoor {
bool isAir();
};
+
/*
* 方块实体接口
*/
@@ -41,7 +48,12 @@ namespace trapdoor {
//获取方块对象
Block *getBlock();
};
+
+ class BlockPalette {
+ public:
+ Block *getBlock(unsigned int type);
+ };
}
typedef trapdoor::Block Block;
typedef trapdoor::BlockActor BlockActor;
-
+typedef trapdoor::BlockType BlockType;
diff --git a/api/entity/PlayerBuffer.cpp b/api/entity/PlayerBuffer.cpp
index c7faf22..b6e3f28 100644
--- a/api/entity/PlayerBuffer.cpp
+++ b/api/entity/PlayerBuffer.cpp
@@ -5,13 +5,13 @@
#include "PlayerBuffer.h"
namespace trapdoor {
- bool RightClickCache::operator==(const RightClickCache& rhs) const {
- if (!(x == rhs.x && y == rhs.y && z == rhs.z))
- return false;
- return (gameTick - rhs.gameTick) < 4;
- }
+ bool RightClickCache::operator==(const RightClickCache &rhs) const {
+ if (!(x == rhs.x && y == rhs.y && z == rhs.z))
+ return false;
+ return (gameTick - rhs.gameTick) < 4;
+ }
- bool RightClickCache::operator!=(const RightClickCache& rhs) const {
- return !(rhs == *this);
- }
+ bool RightClickCache::operator!=(const RightClickCache &rhs) const {
+ return !(rhs == *this);
+ }
} // namespace trapdoor
diff --git a/api/entity/PlayerBuffer.h b/api/entity/PlayerBuffer.h
index 1a95cc5..0f410c3 100644
--- a/api/entity/PlayerBuffer.h
+++ b/api/entity/PlayerBuffer.h
@@ -9,21 +9,22 @@
#include "Actor.h"
namespace trapdoor {
- struct RightClickCache {
- uint64_t gameTick = 0;
- int x = 0;
- int y = 0;
- int z = 0;
+ struct RightClickCache {
+ uint64_t gameTick = 0;
+ int x = 0;
+ int y = 0;
+ int z = 0;
- bool operator==(const RightClickCache& rhs) const;
+ bool operator==(const RightClickCache &rhs) const;
- bool operator!=(const RightClickCache& rhs) const;
- };
+ bool operator!=(const RightClickCache &rhs) const;
+ };
- //这个结构专门存储玩家个人相关的缓存信息(相当于玩家的一个私人空间),后面可能加新东西
- struct PlayerBuffer {
- RightClickCache rightClickCache; //玩家右键缓存,作为右键检测使用
- };
+
+ //这个结构专门存储玩家个人相关的缓存信息(相当于玩家的一个私人空间),后面可能加新东西
+ struct PlayerBuffer {
+ RightClickCache rightClickCache; //玩家右键缓存,作为右键检测使用
+ };
} // namespace trapdoor
-#endif // TRAPDOOR_PLAYER_BUFFER_H
+#endif // TRAPDOOR_PLAYER_BUFFER_H
diff --git a/api/entity/PlayerInventory.cpp b/api/entity/PlayerInventory.cpp
index dc6bf69..b0e122c 100644
--- a/api/entity/PlayerInventory.cpp
+++ b/api/entity/PlayerInventory.cpp
@@ -77,6 +77,7 @@ namespace trapdoor {
this
);
//这个api是有问题的
+ //return 0;
return *(int *) (ptr + 4);
}
diff --git a/api/lib/SymHook.h b/api/lib/SymHook.h
index 564ad35..4ddc518 100644
--- a/api/lib/SymHook.h
+++ b/api/lib/SymHook.h
@@ -1,459 +1,460 @@
-// ���ļ�������PDB�������ɡ�
-// ע�⣺
-// �����κ�ķ���ԭ�Ϳ����������ο���
-// �����ķ��Ž������Ӧ��md5ֵ��ʾ�÷��Ŷ�Ӧ�ı�ʶ����
+// ļPDBɡ
+// ע⣺
+// κķԭͿο
+// ķŽӦmd5ֵʾ÷ŶӦıʶ
#pragma once
namespace SymHook{
using RVA = unsigned int;
- // [ԭ��] private: static class std::unordered_map,class std::allocator >,class SharedPtr,struct std::hash,class std::allocator > >,struct std::equal_to,class std::allocator > >,class std::allocator,class std::allocator > const ,class SharedPtr > > > BlockTypeRegistry::mBlockLookupMap
- // [����] ?mBlockLookupMap@BlockTypeRegistry@@0V?$unordered_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$SharedPtr@VBlockLegacy@@@@U?$hash@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@U?$equal_to@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$SharedPtr@VBlockLegacy@@@@@std@@@2@@std@@A
+ // [ԭ] private: static class std::unordered_map,class std::allocator >,class SharedPtr,struct std::hash,class std::allocator > >,struct std::equal_to,class std::allocator > >,class std::allocator,class std::allocator > const ,class SharedPtr > > > BlockTypeRegistry::mBlockLookupMap
+ // [] ?mBlockLookupMap@BlockTypeRegistry@@0V?$unordered_map@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$SharedPtr@VBlockLegacy@@@@U?$hash@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@U?$equal_to@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@V?$allocator@U?$pair@$$CBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$SharedPtr@VBlockLegacy@@@@@std@@@2@@std@@A
constexpr RVA MSSYM_MD5_ceb8b47184006e4d7622b39978535236 = 0x01973620;
- // [ԭ��] public: virtual void __cdecl MinecraftEventing::fireEventPlayerMessageChat(class std::basic_string,class std::allocator > const & __ptr64,class std::basic_string,class std::allocator > const & __ptr64) __ptr64
- // [����] ?fireEventPlayerMessageChat@MinecraftEventing@@UEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z
+ // [ԭ] public: virtual void __cdecl MinecraftEventing::fireEventPlayerMessageChat(class std::basic_string,class std::allocator > const & __ptr64,class std::basic_string,class std::allocator > const & __ptr64) __ptr64
+ // [] ?fireEventPlayerMessageChat@MinecraftEventing@@UEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@0@Z
constexpr RVA MSSYM_MD5_c5508c07a9bc049d2b327ac921a4b334 = 0x002EFE60;
- // [ԭ��] public: void __cdecl Level::spawnParticleEffect(class std::basic_string,class std::allocator > const & __ptr64,class Vec3 const & __ptr64,class Dimension * __ptr64) __ptr64
- // [����] ?spawnParticleEffect@Level@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBVVec3@@PEAVDimension@@@Z
+ // [ԭ] public: void __cdecl Level::spawnParticleEffect(class std::basic_string,class std::allocator > const & __ptr64,class Vec3 const & __ptr64,class Dimension * __ptr64) __ptr64
+ // [] ?spawnParticleEffect@Level@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBVVec3@@PEAVDimension@@@Z
constexpr RVA MSSYM_MD5_a2fdc6a066bbe9a360c9c9d76725a8fb = 0x00A79650;
- // [ԭ��] void __cdecl CommandUtils::displayLocalizableMessage(bool,class Player & __ptr64,class std::basic_string,class std::allocator > const & __ptr64,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > const & __ptr64)
- // [����] ?displayLocalizableMessage@CommandUtils@@YAX_NAEAVPlayer@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@4@@Z
+ // [ԭ] void __cdecl CommandUtils::displayLocalizableMessage(bool,class Player & __ptr64,class std::basic_string,class std::allocator > const & __ptr64,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > const & __ptr64)
+ // [] ?displayLocalizableMessage@CommandUtils@@YAX_NAEAVPlayer@@AEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@AEBV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@4@@Z
constexpr RVA MSSYM_MD5_24be62e9330073695808606844de0d99 = 0x00445CB0;
- // [ԭ��] public: virtual void __cdecl ServerLevel::tick(void) __ptr64
- // [����] ?tick@ServerLevel@@UEAAXXZ
+ // [ԭ] public: virtual void __cdecl ServerLevel::tick(void) __ptr64
+ // [] ?tick@ServerLevel@@UEAAXXZ
constexpr RVA MSSYM_B1QA4tickB1AE11ServerLevelB2AAA7UEAAXXZ = 0x004EA570;
- // [ԭ��] public: virtual int __cdecl ServerPlayer::tickWorld(struct Tick const & __ptr64) __ptr64
- // [����] ?tickWorld@ServerPlayer@@UEAAHAEBUTick@@@Z
+ // [ԭ] public: virtual int __cdecl ServerPlayer::tickWorld(struct Tick const & __ptr64) __ptr64
+ // [] ?tickWorld@ServerPlayer@@UEAAHAEBUTick@@@Z
constexpr RVA MSSYM_B1QA9tickWorldB1AE12ServerPlayerB2AAE13UEAAHAEBUTickB3AAAA1Z = 0x004ED3C0;
- // [ԭ��] public: virtual void __cdecl Dimension::tick(void) __ptr64
- // [����] ?tick@Dimension@@UEAAXXZ
+ // [ԭ] public: virtual void __cdecl Dimension::tick(void) __ptr64
+ // [] ?tick@Dimension@@UEAAXXZ
constexpr RVA MSSYM_B1QA4tickB1AA9DimensionB2AAA7UEAAXXZ = 0x00A633C0;
- // [ԭ��] public: virtual void __cdecl Level::tick(void) __ptr64
- // [����] ?tick@Level@@UEAAXXZ
+ // [ԭ] public: virtual void __cdecl Level::tick(void) __ptr64
+ // [] ?tick@Level@@UEAAXXZ
constexpr RVA MSSYM_B1QA4tickB1AA5LevelB2AAA7UEAAXXZ = 0x00A75A30;
- // [ԭ��] public: void __cdecl LevelChunk::tick(class BlockSource & __ptr64,struct Tick const & __ptr64) __ptr64
- // [����] ?tick@LevelChunk@@QEAAXAEAVBlockSource@@AEBUTick@@@Z
+ // [ԭ] public: void __cdecl LevelChunk::tick(class BlockSource & __ptr64,struct Tick const & __ptr64) __ptr64
+ // [] ?tick@LevelChunk@@QEAAXAEAVBlockSource@@AEBUTick@@@Z
constexpr RVA MSSYM_B1QA4tickB1AE10LevelChunkB2AAE20QEAAXAEAVBlockSourceB2AAA8AEBUTickB3AAAA1Z = 0x00A30750;
- // [ԭ��] public: void __cdecl LevelChunk::tickBlocks(class BlockSource & __ptr64) __ptr64
- // [����] ?tickBlocks@LevelChunk@@QEAAXAEAVBlockSource@@@Z
+ // [ԭ] public: void __cdecl LevelChunk::tickBlocks(class BlockSource & __ptr64) __ptr64
+ // [] ?tickBlocks@LevelChunk@@QEAAXAEAVBlockSource@@@Z
constexpr RVA MSSYM_B1QE10tickBlocksB1AE10LevelChunkB2AAE20QEAAXAEAVBlockSourceB3AAAA1Z = 0x00A31630;
- // [ԭ��] public: void __cdecl LevelChunk::tickBlockEntities(class BlockSource & __ptr64) __ptr64
- // [����] ?tickBlockEntities@LevelChunk@@QEAAXAEAVBlockSource@@@Z
+ // [ԭ] public: void __cdecl LevelChunk::tickBlockEntities(class BlockSource & __ptr64) __ptr64
+ // [] ?tickBlockEntities@LevelChunk@@QEAAXAEAVBlockSource@@@Z
constexpr RVA MSSYM_B1QE17tickBlockEntitiesB1AE10LevelChunkB2AAE20QEAAXAEAVBlockSourceB3AAAA1Z = 0x00A36690;
- // [ԭ��] public: void __cdecl Spawner::tick(class BlockSource & __ptr64,class LevelChunk const & __ptr64) __ptr64
- // [����] ?tick@Spawner@@QEAAXAEAVBlockSource@@AEBVLevelChunk@@@Z
+ // [ԭ] public: void __cdecl Spawner::tick(class BlockSource & __ptr64,class LevelChunk const & __ptr64) __ptr64
+ // [] ?tick@Spawner@@QEAAXAEAVBlockSource@@AEBVLevelChunk@@@Z
constexpr RVA MSSYM_B1QA4tickB1AA7SpawnerB2AAE20QEAAXAEAVBlockSourceB2AAE14AEBVLevelChunkB3AAAA1Z = 0x00B3C410;
- // [ԭ��] public: bool __cdecl BlockTickingQueue::tickPendingTicks(class BlockSource & __ptr64,struct Tick const & __ptr64,int,bool) __ptr64
- // [����] ?tickPendingTicks@BlockTickingQueue@@QEAA_NAEAVBlockSource@@AEBUTick@@H_N@Z
+ // [ԭ] public: bool __cdecl BlockTickingQueue::tickPendingTicks(class BlockSource & __ptr64,struct Tick const & __ptr64,int,bool) __ptr64
+ // [] ?tickPendingTicks@BlockTickingQueue@@QEAA_NAEAVBlockSource@@AEBUTick@@H_N@Z
constexpr RVA MSSYM_B1QE16tickPendingTicksB1AE17BlockTickingQueueB2AAA4QEAAB1UE16NAEAVBlockSourceB2AAA8AEBUTickB2AAA1HB1UA1NB1AA1Z = 0x00A204D0;
- // [ԭ��] public: virtual void __cdecl Dimension::tickRedstone(void) __ptr64
- // [����] ?tickRedstone@Dimension@@UEAAXXZ
+ // [ԭ] public: virtual void __cdecl Dimension::tickRedstone(void) __ptr64
+ // [] ?tickRedstone@Dimension@@UEAAXXZ
constexpr RVA MSSYM_B1QE12tickRedstoneB1AA9DimensionB2AAA7UEAAXXZ = 0x00A63010;
- // [ԭ��] public: void __cdecl Level::tickEntities(void) __ptr64
- // [����] ?tickEntities@Level@@QEAAXXZ
+ // [ԭ] public: void __cdecl Level::tickEntities(void) __ptr64
+ // [] ?tickEntities@Level@@QEAAXXZ
constexpr RVA MSSYM_B1QE12tickEntitiesB1AA5LevelB2AAA7QEAAXXZ = 0x00A79140;
- // [ԭ��] public: void __cdecl EntitySystems::tick(class EntityRegistry & __ptr64) __ptr64
- // [����] ?tick@EntitySystems@@QEAAXAEAVEntityRegistry@@@Z
+ // [ԭ] public: void __cdecl EntitySystems::tick(class EntityRegistry & __ptr64) __ptr64
+ // [] ?tick@EntitySystems@@QEAAXAEAVEntityRegistry@@@Z
constexpr RVA MSSYM_B1QA4tickB1AE13EntitySystemsB2AAE23QEAAXAEAVEntityRegistryB3AAAA1Z = 0x002B81D0;
- // [ԭ��] public: virtual void __cdecl BlockActor::tick(class BlockSource & __ptr64) __ptr64
- // [����] ?tick@BlockActor@@UEAAXAEAVBlockSource@@@Z
+ // [ԭ] public: virtual void __cdecl BlockActor::tick(class BlockSource & __ptr64) __ptr64
+ // [] ?tick@BlockActor@@UEAAXAEAVBlockSource@@@Z
constexpr RVA MSSYM_B1QA4tickB1AE10BlockActorB2AAE20UEAAXAEAVBlockSourceB3AAAA1Z = 0x0089D990;
- // [ԭ��] public: bool __cdecl Actor::tick(class BlockSource & __ptr64) __ptr64
- // [����] ?tick@Actor@@QEAA_NAEAVBlockSource@@@Z
+ // [ԭ] public: bool __cdecl Actor::tick(class BlockSource & __ptr64) __ptr64
+ // [] ?tick@Actor@@QEAA_NAEAVBlockSource@@@Z
constexpr RVA MSSYM_B1QA4tickB1AA5ActorB2AAA4QEAAB1UE16NAEAVBlockSourceB3AAAA1Z = 0x00556BB0;
- // [ԭ��] public: virtual void __cdecl Actor::getDebugText(class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > & __ptr64) __ptr64
- // [����] ?getDebugText@Actor@@UEAAXAEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z
+ // [ԭ] public: virtual void __cdecl Actor::getDebugText(class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > & __ptr64) __ptr64
+ // [] ?getDebugText@Actor@@UEAAXAEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@@Z
constexpr RVA MSSYM_MD5_f04fad6bac034f1e861181d3580320f2 = 0x00569BC0;
- // [ԭ��] public: virtual class Vec3 const & __ptr64 __cdecl Actor::getPos(void)const __ptr64
- // [����] ?getPos@Actor@@UEBAAEBVVec3@@XZ
+ // [ԭ] public: virtual class Vec3 const & __ptr64 __cdecl Actor::getPos(void)const __ptr64
+ // [] ?getPos@Actor@@UEBAAEBVVec3@@XZ
constexpr RVA MSSYM_B1QA6getPosB1AA5ActorB2AAE12UEBAAEBVVec3B2AAA2XZ = 0x00554A80;
- // [ԭ��] public: virtual bool __cdecl Actor::attack(class Actor & __ptr64) __ptr64
- // [����] ?attack@Actor@@UEAA_NAEAV1@@Z
+ // [ԭ] public: virtual bool __cdecl Actor::attack(class Actor & __ptr64) __ptr64
+ // [] ?attack@Actor@@UEAA_NAEAV1@@Z
constexpr RVA MSSYM_B1QA6attackB1AA5ActorB2AAA4UEAAB1UA6NAEAV1B2AAA1Z = 0x00550BF0;
- // [ԭ��] public: virtual bool __cdecl Player::attack(class Actor & __ptr64) __ptr64
- // [����] ?attack@Player@@UEAA_NAEAVActor@@@Z
+ // [ԭ] public: virtual bool __cdecl Player::attack(class Actor & __ptr64) __ptr64
+ // [] ?attack@Player@@UEAA_NAEAVActor@@@Z
constexpr RVA MSSYM_B1QA6attackB1AA6PlayerB2AAA4UEAAB1UE10NAEAVActorB3AAAA1Z = 0x0071BF40;
- // [ԭ��] public: void __cdecl Explosion::explode(void) __ptr64
- // [����] ?explode@Explosion@@QEAAXXZ
+ // [ԭ] public: void __cdecl Explosion::explode(void) __ptr64
+ // [] ?explode@Explosion@@QEAAXXZ
constexpr RVA MSSYM_B1QA7explodeB1AA9ExplosionB2AAA7QEAAXXZ = 0x00A69850;
- // [ԭ��] public: virtual void __cdecl Actor::setNameTag(class std::basic_string,class std::allocator > const & __ptr64) __ptr64
- // [����] ?setNameTag@Actor@@UEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
+ // [ԭ] public: virtual void __cdecl Actor::setNameTag(class std::basic_string,class std::allocator > const & __ptr64) __ptr64
+ // [] ?setNameTag@Actor@@UEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
constexpr RVA MSSYM_B1QE10setNameTagB1AA5ActorB2AAA9UEAAXAEBVB2QDA5basicB1UA6stringB1AA2DUB2QDA4charB1UA6traitsB1AA1DB1AA3stdB2AAA1VB2QDA9allocatorB1AA1DB1AA12B2AAA3stdB3AAAA1Z = 0x00562DA0;
- // [ԭ��] public: virtual void __cdecl Mob::buildDebugInfo(class std::basic_string,class std::allocator > & __ptr64)const __ptr64
- // [����] ?buildDebugInfo@Mob@@UEBAXAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
+ // [ԭ] public: virtual void __cdecl Mob::buildDebugInfo(class std::basic_string,class std::allocator > & __ptr64)const __ptr64
+ // [] ?buildDebugInfo@Mob@@UEBAXAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
constexpr RVA MSSYM_B1QE14buildDebugInfoB1AA3MobB2AAA9UEBAXAEAVB2QDA5basicB1UA6stringB1AA2DUB2QDA4charB1UA6traitsB1AA1DB1AA3stdB2AAA1VB2QDA9allocatorB1AA1DB1AA12B2AAA3stdB3AAAA1Z = 0x006F4960;
- // [ԭ��] public: class Vec3 __cdecl Actor::getViewVector(float)const __ptr64
- // [����] ?getViewVector@Actor@@QEBA?AVVec3@@M@Z
+ // [ԭ] public: class Vec3 __cdecl Actor::getViewVector(float)const __ptr64
+ // [] ?getViewVector@Actor@@QEBA?AVVec3@@M@Z
constexpr RVA MSSYM_B1QE13getViewVectorB1AA5ActorB2AAA4QEBAB1QA6AVVec3B2AAA1MB1AA1Z = 0x005552A0;
- // [ԭ��] public: virtual class std::basic_string,class std::allocator > const & __ptr64 __cdecl Actor::getNameTag(void)const __ptr64
- // [����] ?getNameTag@Actor@@UEBAAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
+ // [ԭ] public: virtual class std::basic_string,class std::allocator > const & __ptr64 __cdecl Actor::getNameTag(void)const __ptr64
+ // [] ?getNameTag@Actor@@UEBAAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
constexpr RVA MSSYM_B1QE10getNameTagB1AA5ActorB2AAA8UEBAAEBVB2QDA5basicB1UA6stringB1AA2DUB2QDA4charB1UA6traitsB1AA1DB1AA3stdB2AAA1VB2QDA9allocatorB1AA1DB1AA12B2AAA3stdB2AAA2XZ = 0x00562BC0;
- // [ԭ��] public: virtual void __cdecl ServerPlayer::setPlayerGameType(enum GameType) __ptr64
- // [����] ?setPlayerGameType@ServerPlayer@@UEAAXW4GameType@@@Z
+ // [ԭ] public: virtual void __cdecl ServerPlayer::setPlayerGameType(enum GameType) __ptr64
+ // [] ?setPlayerGameType@ServerPlayer@@UEAAXW4GameType@@@Z
constexpr RVA MSSYM_B1QE17setPlayerGameTypeB1AE12ServerPlayerB2AAE15UEAAXW4GameTypeB3AAAA1Z = 0x004F1A20;
- // [ԭ��] private: virtual bool __cdecl DyePowderItem::_useOn(class ItemStack & __ptr64,class Actor & __ptr64,class BlockPos,unsigned char,float,float,float)const __ptr64
- // [����] ?_useOn@DyePowderItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EMMM@Z
+ // [ԭ] private: virtual bool __cdecl DyePowderItem::_useOn(class ItemStack & __ptr64,class Actor & __ptr64,class BlockPos,unsigned char,float,float,float)const __ptr64
+ // [] ?_useOn@DyePowderItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EMMM@Z
constexpr RVA MSSYM_B2QUA5useOnB1AE13DyePowderItemB2AAA4EEBAB1UE14NAEAVItemStackB2AAA9AEAVActorB2AAA9VBlockPosB2AAA4EMMMB1AA1Z = 0x007D56D0;
- // [ԭ��] private: virtual bool __cdecl RedStoneDustItem::_useOn(class ItemStack & __ptr64,class Actor & __ptr64,class BlockPos,unsigned char,float,float,float)const __ptr64
- // [����] ?_useOn@RedStoneDustItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EMMM@Z
+ // [ԭ] private: virtual bool __cdecl RedStoneDustItem::_useOn(class ItemStack & __ptr64,class Actor & __ptr64,class BlockPos,unsigned char,float,float,float)const __ptr64
+ // [] ?_useOn@RedStoneDustItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EMMM@Z
constexpr RVA MSSYM_B2QUA5useOnB1AE16RedStoneDustItemB2AAA4EEBAB1UE14NAEAVItemStackB2AAA9AEAVActorB2AAA9VBlockPosB2AAA4EMMMB1AA1Z = 0x008097E0;
- // [ԭ��] public: class Block const & __ptr64 __cdecl BlockSource::getBlock(class BlockPos const & __ptr64)const __ptr64
- // [����] ?getBlock@BlockSource@@QEBAAEBVBlock@@AEBVBlockPos@@@Z
+ // [ԭ] public: class Block const & __ptr64 __cdecl BlockSource::getBlock(class BlockPos const & __ptr64)const __ptr64
+ // [] ?getBlock@BlockSource@@QEBAAEBVBlock@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QA8getBlockB1AE11BlockSourceB2AAE13QEBAAEBVBlockB2AAE12AEBVBlockPosB3AAAA1Z = 0x00A16410;
- // [ԭ��] public: class BlockLegacy const & __ptr64 __cdecl Block::getLegacyBlock(void)const __ptr64
- // [����] ?getLegacyBlock@Block@@QEBAAEBVBlockLegacy@@XZ
+ // [ԭ] public: class BlockLegacy const & __ptr64 __cdecl Block::getLegacyBlock(void)const __ptr64
+ // [] ?getLegacyBlock@Block@@QEBAAEBVBlockLegacy@@XZ
constexpr RVA MSSYM_B1QE14getLegacyBlockB1AA5BlockB2AAE19QEBAAEBVBlockLegacyB2AAA2XZ = 0x000BBB60;
- // [ԭ��] public: bool __cdecl BlockSource::setBlock(int,int,int,class Block const & __ptr64,int) __ptr64
- // [����] ?setBlock@BlockSource@@QEAA_NHHHAEBVBlock@@H@Z
+ // [ԭ] public: bool __cdecl BlockSource::setBlock(int,int,int,class Block const & __ptr64,int) __ptr64
+ // [] ?setBlock@BlockSource@@QEAA_NHHHAEBVBlock@@H@Z
constexpr RVA MSSYM_B1QA8setBlockB1AE11BlockSourceB2AAA4QEAAB1UE13NHHHAEBVBlockB2AAA1HB1AA1Z = 0x00A16490;
- // [ԭ��] public: bool __cdecl BlockSource::setBlock(class BlockPos const & __ptr64,class Block const & __ptr64,int,struct ActorBlockSyncMessage const * __ptr64) __ptr64
- // [����] ?setBlock@BlockSource@@QEAA_NAEBVBlockPos@@AEBVBlock@@HPEBUActorBlockSyncMessage@@@Z
+ // [ԭ] public: bool __cdecl BlockSource::setBlock(class BlockPos const & __ptr64,class Block const & __ptr64,int,struct ActorBlockSyncMessage const * __ptr64) __ptr64
+ // [] ?setBlock@BlockSource@@QEAA_NAEBVBlockPos@@AEBVBlock@@HPEBUActorBlockSyncMessage@@@Z
constexpr RVA MSSYM_B1QA8setBlockB1AE11BlockSourceB2AAA4QEAAB1UE13NAEBVBlockPosB2AAA9AEBVBlockB2AAE26HPEBUActorBlockSyncMessageB3AAAA1Z = 0x00A164E0;
- // [ԭ��] private: virtual bool __cdecl ShovelItem::_useOn(class ItemStack & __ptr64,class Actor & __ptr64,class BlockPos,unsigned char,float,float,float)const __ptr64
- // [����] ?_useOn@ShovelItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EMMM@Z
+ // [ԭ] private: virtual bool __cdecl ShovelItem::_useOn(class ItemStack & __ptr64,class Actor & __ptr64,class BlockPos,unsigned char,float,float,float)const __ptr64
+ // [] ?_useOn@ShovelItem@@EEBA_NAEAVItemStack@@AEAVActor@@VBlockPos@@EMMM@Z
constexpr RVA MSSYM_B2QUA5useOnB1AE10ShovelItemB2AAA4EEBAB1UE14NAEAVItemStackB2AAA9AEAVActorB2AAA9VBlockPosB2AAA4EMMMB1AA1Z = 0x0080CF30;
- // [ԭ��] public: void __cdecl BlockSource::updateNeighborsAt(class BlockPos const & __ptr64) __ptr64
- // [����] ?updateNeighborsAt@BlockSource@@QEAAXAEBVBlockPos@@@Z
+ // [ԭ] public: void __cdecl BlockSource::updateNeighborsAt(class BlockPos const & __ptr64) __ptr64
+ // [] ?updateNeighborsAt@BlockSource@@QEAAXAEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QE17updateNeighborsAtB1AE11BlockSourceB2AAE17QEAAXAEBVBlockPosB3AAAA1Z = 0x00A176C0;
- // [ԭ��] public: virtual enum EventResult __cdecl VanillaServerGameplayEventListener::onBlockPlacedByPlayer(class Player & __ptr64,class Block const & __ptr64,class BlockPos const & __ptr64,bool) __ptr64
- // [����] ?onBlockPlacedByPlayer@VanillaServerGameplayEventListener@@UEAA?AW4EventResult@@AEAVPlayer@@AEBVBlock@@AEBVBlockPos@@_N@Z
+ // [ԭ] public: virtual enum EventResult __cdecl VanillaServerGameplayEventListener::onBlockPlacedByPlayer(class Player & __ptr64,class Block const & __ptr64,class BlockPos const & __ptr64,bool) __ptr64
+ // [] ?onBlockPlacedByPlayer@VanillaServerGameplayEventListener@@UEAA?AW4EventResult@@AEAVPlayer@@AEBVBlock@@AEBVBlockPos@@_N@Z
constexpr RVA MSSYM_B1QE21onBlockPlacedByPlayerB1AE34VanillaServerGameplayEventListenerB2AAA4UEAAB1QE14AW4EventResultB2AAE10AEAVPlayerB2AAA9AEBVBlockB2AAE12AEBVBlockPosB3AAUA1NB1AA1Z = 0x00BD5270;
- // [ԭ��] private: bool __cdecl GameMode::_destroyBlockInternal(class BlockPos const & __ptr64,unsigned char) __ptr64
- // [����] ?_destroyBlockInternal@GameMode@@AEAA_NAEBVBlockPos@@E@Z
+ // [ԭ] private: bool __cdecl GameMode::_destroyBlockInternal(class BlockPos const & __ptr64,unsigned char) __ptr64
+ // [] ?_destroyBlockInternal@GameMode@@AEAA_NAEBVBlockPos@@E@Z
constexpr RVA MSSYM_B2QUE20destroyBlockInternalB1AA8GameModeB2AAA4AEAAB1UE13NAEBVBlockPosB2AAA1EB1AA1Z = 0x00775EB0;
- // [ԭ��] public: class std::basic_string,class std::allocator > __cdecl Block::toDebugString(void)const __ptr64
- // [����] ?toDebugString@Block@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
+ // [ԭ] public: class std::basic_string,class std::allocator > __cdecl Block::toDebugString(void)const __ptr64
+ // [] ?toDebugString@Block@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
constexpr RVA MSSYM_B1QE13toDebugStringB1AA5BlockB2AAA4QEBAB1QA2AVB2QDA5basicB1UA6stringB1AA2DUB2QDA4charB1UA6traitsB1AA1DB1AA3stdB2AAA1VB2QDA9allocatorB1AA1DB1AA12B2AAA3stdB2AAA2XZ = 0x008D7100;
- // [ԭ��] public: virtual class AABB const & __ptr64 __cdecl BlockLegacy::getOutline(class BlockSource & __ptr64,class BlockPos const & __ptr64,class AABB & __ptr64)const __ptr64
- // [����] ?getOutline@BlockLegacy@@UEBAAEBVAABB@@AEAVBlockSource@@AEBVBlockPos@@AEAV2@@Z
+ // [ԭ] public: virtual class AABB const & __ptr64 __cdecl BlockLegacy::getOutline(class BlockSource & __ptr64,class BlockPos const & __ptr64,class AABB & __ptr64)const __ptr64
+ // [] ?getOutline@BlockLegacy@@UEBAAEBVAABB@@AEAVBlockSource@@AEBVBlockPos@@AEAV2@@Z
constexpr RVA MSSYM_B1QE10getOutlineB1AE11BlockLegacyB2AAE12UEBAAEBVAABBB2AAE15AEAVBlockSourceB2AAE12AEBVBlockPosB2AAA5AEAV2B2AAA1Z = 0x008DA4A0;
- // [ԭ��] public: void __cdecl BlockLegacy::getDebugText(class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > & __ptr64,class BlockPos const & __ptr64)const __ptr64
- // [����] ?getDebugText@BlockLegacy@@QEBAXAEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEBVBlockPos@@@Z
+ // [ԭ] public: void __cdecl BlockLegacy::getDebugText(class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > & __ptr64,class BlockPos const & __ptr64)const __ptr64
+ // [] ?getDebugText@BlockLegacy@@QEBAXAEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_MD5_794b421b4bf67101f7418cd0d78bad83 = 0x008DB770;
- // [ԭ��] public: virtual void __cdecl BlockActor::getDebugText(class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > & __ptr64,class BlockPos const & __ptr64) __ptr64
- // [����] ?getDebugText@BlockActor@@UEAAXAEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEBVBlockPos@@@Z
+ // [ԭ] public: virtual void __cdecl BlockActor::getDebugText(class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > & __ptr64,class BlockPos const & __ptr64) __ptr64
+ // [] ?getDebugText@BlockActor@@UEAAXAEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@std@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_MD5_b5a16de43d7486d6e9b23cfb126773a7 = 0x0089DF70;
- // [ԭ��] public: bool __cdecl BlockSource::setExtraBlock(class BlockPos const & __ptr64,class Block const & __ptr64,int) __ptr64
- // [����] ?setExtraBlock@BlockSource@@QEAA_NAEBVBlockPos@@AEBVBlock@@H@Z
+ // [ԭ] public: bool __cdecl BlockSource::setExtraBlock(class BlockPos const & __ptr64,class Block const & __ptr64,int) __ptr64
+ // [] ?setExtraBlock@BlockSource@@QEAA_NAEBVBlockPos@@AEBVBlock@@H@Z
constexpr RVA MSSYM_B1QE13setExtraBlockB1AE11BlockSourceB2AAA4QEAAB1UE13NAEBVBlockPosB2AAA9AEBVBlockB2AAA1HB1AA1Z = 0x00A16860;
- // [ԭ��] public: class Block const * __ptr64 __cdecl BlockLegacy::tryGetStateFromLegacyData(unsigned short)const __ptr64
- // [����] ?tryGetStateFromLegacyData@BlockLegacy@@QEBAPEBVBlock@@G@Z
+ // [ԭ] public: class Block const * __ptr64 __cdecl BlockLegacy::tryGetStateFromLegacyData(unsigned short)const __ptr64
+ // [] ?tryGetStateFromLegacyData@BlockLegacy@@QEBAPEBVBlock@@G@Z
constexpr RVA MSSYM_B1QE25tryGetStateFromLegacyDataB1AE11BlockLegacyB2AAE13QEBAPEBVBlockB2AAA1GB1AA1Z = 0x008D8BF0;
- // [ԭ��] private: void __cdecl HopperBlockActor::_tick(class BlockSource & __ptr64,int) __ptr64
- // [����] ?_tick@HopperBlockActor@@AEAAXAEAVBlockSource@@H@Z
+ // [ԭ] private: void __cdecl HopperBlockActor::_tick(class BlockSource & __ptr64,int) __ptr64
+ // [] ?_tick@HopperBlockActor@@AEAAXAEAVBlockSource@@H@Z
constexpr RVA MSSYM_B2QUA4tickB1AE16HopperBlockActorB2AAE20AEAAXAEAVBlockSourceB2AAA1HB1AA1Z = 0x008B7AA0;
- // [ԭ��] public: class Biome & __ptr64 __cdecl BlockSource::getBiome(class BlockPos const & __ptr64) __ptr64
- // [����] ?getBiome@BlockSource@@QEAAAEAVBiome@@AEBVBlockPos@@@Z
+ // [ԭ] public: class Biome & __ptr64 __cdecl BlockSource::getBiome(class BlockPos const & __ptr64) __ptr64
+ // [] ?getBiome@BlockSource@@QEAAAEAVBiome@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QA8getBiomeB1AE11BlockSourceB2AAE13QEAAAEAVBiomeB2AAE12AEBVBlockPosB3AAAA1Z = 0x00A1CFE0;
- // [ԭ��] public: void __cdecl Village::tick(struct Tick,class BlockSource & __ptr64) __ptr64
- // [����] ?tick@Village@@QEAAXUTick@@AEAVBlockSource@@@Z
+ // [ԭ] public: void __cdecl Village::tick(struct Tick,class BlockSource & __ptr64) __ptr64
+ // [] ?tick@Village@@QEAAXUTick@@AEAVBlockSource@@@Z
constexpr RVA MSSYM_B1QA4tickB1AA7VillageB2AAE10QEAAXUTickB2AAE15AEAVBlockSourceB3AAAA1Z = 0x00644680;
- // [ԭ��] public: float __cdecl Village::getApproximateRadius(void)const __ptr64
- // [����] ?getApproximateRadius@Village@@QEBAMXZ
+ // [ԭ] public: float __cdecl Village::getApproximateRadius(void)const __ptr64
+ // [] ?getApproximateRadius@Village@@QEBAMXZ
constexpr RVA MSSYM_B1QE20getApproximateRadiusB1AA7VillageB2AAA7QEBAMXZ = 0x00645380;
- // [ԭ��] public: virtual void __cdecl VillagerV2::buildDebugInfo(class std::basic_string,class std::allocator > & __ptr64)const __ptr64
- // [����] ?buildDebugInfo@VillagerV2@@UEBAXAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
+ // [ԭ] public: virtual void __cdecl VillagerV2::buildDebugInfo(class std::basic_string,class std::allocator > & __ptr64)const __ptr64
+ // [] ?buildDebugInfo@VillagerV2@@UEBAXAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@Z
constexpr RVA MSSYM_B1QE14buildDebugInfoB1AE10VillagerV2B2AAA9UEBAXAEAVB2QDA5basicB1UA6stringB1AA2DUB2QDA4charB1UA6traitsB1AA1DB1AA3stdB2AAA1VB2QDA9allocatorB1AA1DB1AA12B2AAA3stdB3AAAA1Z = 0x0070A500;
- // [ԭ��] public: static bool __cdecl Village::isVillagePOI(class BlockSource const & __ptr64,class BlockPos const & __ptr64)
- // [����] ?isVillagePOI@Village@@SA_NAEBVBlockSource@@AEBVBlockPos@@@Z
+ // [ԭ] public: static bool __cdecl Village::isVillagePOI(class BlockSource const & __ptr64,class BlockPos const & __ptr64)
+ // [] ?isVillagePOI@Village@@SA_NAEBVBlockSource@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QE12isVillagePOIB1AA7VillageB2AAA2SAB1UE16NAEBVBlockSourceB2AAE12AEBVBlockPosB3AAAA1Z = 0x0064FA90;
- // [ԭ��] public: void __cdecl VillageManager::tick(struct Tick const & __ptr64) __ptr64
- // [����] ?tick@VillageManager@@QEAAXAEBUTick@@@Z
+ // [ԭ] public: void __cdecl VillageManager::tick(struct Tick const & __ptr64) __ptr64
+ // [] ?tick@VillageManager@@QEAAXAEBUTick@@@Z
constexpr RVA MSSYM_B1QA4tickB1AE14VillageManagerB2AAE13QEAAXAEBUTickB3AAAA1Z = 0x00652BD0;
- // [ԭ��] public: class std::weak_ptr __cdecl VillageManager::getPOI(class BlockPos const & __ptr64)const __ptr64
- // [����] ?getPOI@VillageManager@@QEBA?AV?$weak_ptr@VPOIInstance@@@std@@AEBVBlockPos@@@Z
+ // [ԭ] public: class std::weak_ptr __cdecl VillageManager::getPOI(class BlockPos const & __ptr64)const __ptr64
+ // [] ?getPOI@VillageManager@@QEBA?AV?$weak_ptr@VPOIInstance@@@std@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QA6getPOIB1AE14VillageManagerB2AAA4QEBAB1QA2AVB2QDA4weakB1UA3ptrB1AE12VPOIInstanceB3AAAA3stdB2AAE12AEBVBlockPosB3AAAA1Z = 0x006562E0;
- // [ԭ��] public: unsigned __int64 __cdecl Village::getBedPOICount(void)const __ptr64
- // [����] ?getBedPOICount@Village@@QEBA_KXZ
+ // [ԭ] public: unsigned __int64 __cdecl Village::getBedPOICount(void)const __ptr64
+ // [] ?getBedPOICount@Village@@QEBA_KXZ
constexpr RVA MSSYM_B1QE14getBedPOICountB1AA7VillageB2AAA4QEBAB1UA3KXZ = 0x00645420;
- // [ԭ��] public: class Mob * __ptr64 __cdecl Spawner::spawnMob(class BlockSource & __ptr64,struct ActorDefinitionIdentifier const & __ptr64,class Actor * __ptr64,class Vec3 const & __ptr64,bool,bool,bool) __ptr64
- // [����] ?spawnMob@Spawner@@QEAAPEAVMob@@AEAVBlockSource@@AEBUActorDefinitionIdentifier@@PEAVActor@@AEBVVec3@@_N44@Z
+ // [ԭ] public: class Mob * __ptr64 __cdecl Spawner::spawnMob(class BlockSource & __ptr64,struct ActorDefinitionIdentifier const & __ptr64,class Actor * __ptr64,class Vec3 const & __ptr64,bool,bool,bool) __ptr64
+ // [] ?spawnMob@Spawner@@QEAAPEAVMob@@AEAVBlockSource@@AEBUActorDefinitionIdentifier@@PEAVActor@@AEBVVec3@@_N44@Z
constexpr RVA MSSYM_B1QA8spawnMobB1AA7SpawnerB2AAE11QEAAPEAVMobB2AAE15AEAVBlockSourceB2AAE29AEBUActorDefinitionIdentifierB2AAA9PEAVActorB2AAA8AEBVVec3B3AAUA3N44B1AA1Z = 0x00B39A30;
- // [ԭ��] public: int __cdecl MobSpawnRules::getSpawnCount(class SpawnConditions const & __ptr64,class BlockSource & __ptr64,class Random & __ptr64,struct MobSpawnHerdInfo const & __ptr64)const __ptr64
- // [����] ?getSpawnCount@MobSpawnRules@@QEBAHAEBVSpawnConditions@@AEAVBlockSource@@AEAVRandom@@AEBUMobSpawnHerdInfo@@@Z
+ // [ԭ] public: int __cdecl MobSpawnRules::getSpawnCount(class SpawnConditions const & __ptr64,class BlockSource & __ptr64,class Random & __ptr64,struct MobSpawnHerdInfo const & __ptr64)const __ptr64
+ // [] ?getSpawnCount@MobSpawnRules@@QEBAHAEBVSpawnConditions@@AEAVBlockSource@@AEAVRandom@@AEBUMobSpawnHerdInfo@@@Z
constexpr RVA MSSYM_B1QE13getSpawnCountB1AE13MobSpawnRulesB2AAE24QEBAHAEBVSpawnConditionsB2AAE15AEAVBlockSourceB2AAE10AEAVRandomB2AAE20AEBUMobSpawnHerdInfoB3AAAA1Z = 0x0085E940;
- // [ԭ��] public: virtual class MobSpawnerData const * __ptr64 __cdecl BlockLegacy::getMobToSpawn(class SpawnConditions const & __ptr64,class BlockSource & __ptr64)const __ptr64
- // [����] ?getMobToSpawn@BlockLegacy@@UEBAPEBVMobSpawnerData@@AEBVSpawnConditions@@AEAVBlockSource@@@Z
+ // [ԭ] public: virtual class MobSpawnerData const * __ptr64 __cdecl BlockLegacy::getMobToSpawn(class SpawnConditions const & __ptr64,class BlockSource & __ptr64)const __ptr64
+ // [] ?getMobToSpawn@BlockLegacy@@UEBAPEBVMobSpawnerData@@AEBVSpawnConditions@@AEAVBlockSource@@@Z
constexpr RVA MSSYM_B1QE13getMobToSpawnB1AE11BlockLegacyB2AAE22UEBAPEBVMobSpawnerDataB2AAE19AEBVSpawnConditionsB2AAE15AEAVBlockSourceB3AAAA1Z = 0x008DB2B0;
- // [ԭ��] public: int __cdecl ActorSpawnRuleGroup::getActorSpawnPool(struct ActorDefinitionIdentifier const & __ptr64)const __ptr64
- // [����] ?getActorSpawnPool@ActorSpawnRuleGroup@@QEBAHAEBUActorDefinitionIdentifier@@@Z
+ // [ԭ] public: int __cdecl ActorSpawnRuleGroup::getActorSpawnPool(struct ActorDefinitionIdentifier const & __ptr64)const __ptr64
+ // [] ?getActorSpawnPool@ActorSpawnRuleGroup@@QEBAHAEBUActorDefinitionIdentifier@@@Z
constexpr RVA MSSYM_B1QE17getActorSpawnPoolB1AE19ActorSpawnRuleGroupB2AAE34QEBAHAEBUActorDefinitionIdentifierB3AAAA1Z = 0x00612280;
- // [ԭ��] private: bool __cdecl Spawner::_popCapAllows(class Dimension const & __ptr64,class MobSpawnerData const & __ptr64,bool,bool)const __ptr64
- // [����] ?_popCapAllows@Spawner@@AEBA_NAEBVDimension@@AEBVMobSpawnerData@@_N2@Z
+ // [ԭ] private: bool __cdecl Spawner::_popCapAllows(class Dimension const & __ptr64,class MobSpawnerData const & __ptr64,bool,bool)const __ptr64
+ // [] ?_popCapAllows@Spawner@@AEBA_NAEBVDimension@@AEBVMobSpawnerData@@_N2@Z
constexpr RVA MSSYM_B2QUE12popCapAllowsB1AA7SpawnerB2AAA4AEBAB1UE14NAEBVDimensionB2AAE18AEBVMobSpawnerDataB3AAUA2N2B1AA1Z = 0x00B39F00;
- // [ԭ��] private: int __cdecl Spawner::_handlePopulationCap(class MobSpawnerData const * __ptr64,class SpawnConditions const & __ptr64,int) __ptr64
- // [����] ?_handlePopulationCap@Spawner@@AEAAHPEBVMobSpawnerData@@AEBVSpawnConditions@@H@Z
+ // [ԭ] private: int __cdecl Spawner::_handlePopulationCap(class MobSpawnerData const * __ptr64,class SpawnConditions const & __ptr64,int) __ptr64
+ // [] ?_handlePopulationCap@Spawner@@AEAAHPEBVMobSpawnerData@@AEBVSpawnConditions@@H@Z
constexpr RVA MSSYM_B2QUE19handlePopulationCapB1AA7SpawnerB2AAE23AEAAHPEBVMobSpawnerDataB2AAE19AEBVSpawnConditionsB2AAA1HB1AA1Z = 0x00B3BB40;
- // [ԭ��] private: void __cdecl Spawner::_spawnStructureMob(class BlockSource & __ptr64,class BlockPos const & __ptr64,struct LevelChunk::HardcodedSpawningArea const & __ptr64,class SpawnConditions const & __ptr64) __ptr64
- // [����] ?_spawnStructureMob@Spawner@@AEAAXAEAVBlockSource@@AEBVBlockPos@@AEBUHardcodedSpawningArea@LevelChunk@@AEBVSpawnConditions@@@Z
+ // [ԭ] private: void __cdecl Spawner::_spawnStructureMob(class BlockSource & __ptr64,class BlockPos const & __ptr64,struct LevelChunk::HardcodedSpawningArea const & __ptr64,class SpawnConditions const & __ptr64) __ptr64
+ // [] ?_spawnStructureMob@Spawner@@AEAAXAEAVBlockSource@@AEBVBlockPos@@AEBUHardcodedSpawningArea@LevelChunk@@AEBVSpawnConditions@@@Z
constexpr RVA MSSYM_B2QUE17spawnStructureMobB1AA7SpawnerB2AAE20AEAAXAEAVBlockSourceB2AAE12AEBVBlockPosB2AAE25AEBUHardcodedSpawningAreaB1AE10LevelChunkB2AAE19AEBVSpawnConditionsB3AAAA1Z = 0x00B3B6F0;
- // [ԭ��] public: static bool __cdecl Spawner::findNextSpawnBlockUnder(class BlockSource const & __ptr64,class BlockPos & __ptr64,enum MaterialType,enum SpawnBlockRequirements)
- // [����] ?findNextSpawnBlockUnder@Spawner@@SA_NAEBVBlockSource@@AEAVBlockPos@@W4MaterialType@@W4SpawnBlockRequirements@@@Z
+ // [ԭ] public: static bool __cdecl Spawner::findNextSpawnBlockUnder(class BlockSource const & __ptr64,class BlockPos & __ptr64,enum MaterialType,enum SpawnBlockRequirements)
+ // [] ?findNextSpawnBlockUnder@Spawner@@SA_NAEBVBlockSource@@AEAVBlockPos@@W4MaterialType@@W4SpawnBlockRequirements@@@Z
constexpr RVA MSSYM_B1QE23findNextSpawnBlockUnderB1AA7SpawnerB2AAA2SAB1UE16NAEBVBlockSourceB2AAE12AEAVBlockPosB2AAE14W4MaterialTypeB2AAE24W4SpawnBlockRequirementsB3AAAA1Z = 0x00B3A9D0;
- // [ԭ��] protected: bool __cdecl Hopper::_tryMoveInItem(class BlockSource & __ptr64,class Container & __ptr64,class ItemStack & __ptr64,int,int,int) __ptr64
- // [����] ?_tryMoveInItem@Hopper@@IEAA_NAEAVBlockSource@@AEAVContainer@@AEAVItemStack@@HHH@Z
+ // [ԭ] protected: bool __cdecl Hopper::_tryMoveInItem(class BlockSource & __ptr64,class Container & __ptr64,class ItemStack & __ptr64,int,int,int) __ptr64
+ // [] ?_tryMoveInItem@Hopper@@IEAA_NAEAVBlockSource@@AEAVContainer@@AEAVItemStack@@HHH@Z
constexpr RVA MSSYM_B2QUE13tryMoveInItemB1AA6HopperB2AAA4IEAAB1UE16NAEAVBlockSourceB2AAE13AEAVContainerB2AAE13AEAVItemStackB2AAA3HHHB1AA1Z = 0x006D0120;
- // [ԭ��] public: virtual void __cdecl HopperBlockActor::setItem(int,class ItemStack const & __ptr64) __ptr64
- // [����] ?setItem@HopperBlockActor@@UEAAXHAEBVItemStack@@@Z
+ // [ԭ] public: virtual void __cdecl HopperBlockActor::setItem(int,class ItemStack const & __ptr64) __ptr64
+ // [] ?setItem@HopperBlockActor@@UEAAXHAEBVItemStack@@@Z
constexpr RVA MSSYM_B1QA7setItemB1AE16HopperBlockActorB2AAE19UEAAXHAEBVItemStackB3AAAA1Z = 0x008B8290;
- // [ԭ��] public: class std::basic_string,class std::allocator > __cdecl ItemStackBase::getName(void)const __ptr64
- // [����] ?getName@ItemStackBase@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
+ // [ԭ] public: class std::basic_string,class std::allocator > __cdecl ItemStackBase::getName(void)const __ptr64
+ // [] ?getName@ItemStackBase@@QEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
constexpr RVA MSSYM_B1QA7getNameB1AE13ItemStackBaseB2AAA4QEBAB1QA2AVB2QDA5basicB1UA6stringB1AA2DUB2QDA4charB1UA6traitsB1AA1DB1AA3stdB2AAA1VB2QDA9allocatorB1AA1DB1AA12B2AAA3stdB2AAA2XZ = 0x007F9540;
- // [ԭ��] public: bool __cdecl Item::useOn(class ItemStack & __ptr64,class Actor & __ptr64,int,int,int,unsigned char,float,float,float)const __ptr64
- // [����] ?useOn@Item@@QEBA_NAEAVItemStack@@AEAVActor@@HHHEMMM@Z
+ // [ԭ] public: bool __cdecl Item::useOn(class ItemStack & __ptr64,class Actor & __ptr64,int,int,int,unsigned char,float,float,float)const __ptr64
+ // [] ?useOn@Item@@QEBA_NAEAVItemStack@@AEAVActor@@HHHEMMM@Z
constexpr RVA MSSYM_B1QA5useOnB1AA4ItemB2AAA4QEBAB1UE14NAEAVItemStackB2AAA9AEAVActorB2AAA7HHHEMMMB1AA1Z = 0x007ED3E0;
- // [ԭ��] public: class BaseCircuitComponent * __ptr64 __cdecl CircuitSceneGraph::getBaseComponent(class BlockPos const & __ptr64) __ptr64
- // [����] ?getBaseComponent@CircuitSceneGraph@@QEAAPEAVBaseCircuitComponent@@AEBVBlockPos@@@Z
+ // [ԭ] public: class BaseCircuitComponent * __ptr64 __cdecl CircuitSceneGraph::getBaseComponent(class BlockPos const & __ptr64) __ptr64
+ // [] ?getBaseComponent@CircuitSceneGraph@@QEAAPEAVBaseCircuitComponent@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QE16getBaseComponentB1AE17CircuitSceneGraphB2AAE28QEAAPEAVBaseCircuitComponentB2AAE12AEBVBlockPosB3AAAA1Z = 0x00B8EAB0;
- // [ԭ��] public: void __cdecl CircuitSystem::evaluate(class BlockSource * __ptr64) __ptr64
- // [����] ?evaluate@CircuitSystem@@QEAAXPEAVBlockSource@@@Z
+ // [ԭ] public: void __cdecl CircuitSystem::evaluate(class BlockSource * __ptr64) __ptr64
+ // [] ?evaluate@CircuitSystem@@QEAAXPEAVBlockSource@@@Z
constexpr RVA MSSYM_B1QA8evaluateB1AE13CircuitSystemB2AAE20QEAAXPEAVBlockSourceB3AAAA1Z = 0x00B93B50;
- // [ԭ��] public: virtual bool __cdecl ConsumerComponent::evaluate(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
- // [����] ?evaluate@ConsumerComponent@@UEAA_NAEAVCircuitSystem@@AEBVBlockPos@@@Z
+ // [ԭ] public: virtual bool __cdecl ConsumerComponent::evaluate(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
+ // [] ?evaluate@ConsumerComponent@@UEAA_NAEAVCircuitSystem@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QA8evaluateB1AE17ConsumerComponentB2AAA4UEAAB1UE18NAEAVCircuitSystemB2AAE12AEBVBlockPosB3AAAA1Z = 0x00B94F60;
- // [ԭ��] public: virtual bool __cdecl TransporterComponent::evaluate(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
- // [����] ?evaluate@TransporterComponent@@UEAA_NAEAVCircuitSystem@@AEBVBlockPos@@@Z
+ // [ԭ] public: virtual bool __cdecl TransporterComponent::evaluate(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
+ // [] ?evaluate@TransporterComponent@@UEAA_NAEAVCircuitSystem@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QA8evaluateB1AE20TransporterComponentB2AAA4UEAAB1UE18NAEAVCircuitSystemB2AAE12AEBVBlockPosB3AAAA1Z = 0x00B973B0;
- // [ԭ��] public: virtual bool __cdecl RedstoneTorchCapacitor::evaluate(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
- // [����] ?evaluate@RedstoneTorchCapacitor@@UEAA_NAEAVCircuitSystem@@AEBVBlockPos@@@Z
+ // [ԭ] public: virtual bool __cdecl RedstoneTorchCapacitor::evaluate(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
+ // [] ?evaluate@RedstoneTorchCapacitor@@UEAA_NAEAVCircuitSystem@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QA8evaluateB1AE22RedstoneTorchCapacitorB2AAA4UEAAB1UE18NAEAVCircuitSystemB2AAE12AEBVBlockPosB3AAAA1Z = 0x00B95A30;
- // [ԭ��] public: virtual void __cdecl TransporterComponent::cacheValues(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
- // [����] ?cacheValues@TransporterComponent@@UEAAXAEAVCircuitSystem@@AEBVBlockPos@@@Z
+ // [ԭ] public: virtual void __cdecl TransporterComponent::cacheValues(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
+ // [] ?cacheValues@TransporterComponent@@UEAAXAEAVCircuitSystem@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QE11cacheValuesB1AE20TransporterComponentB2AAE22UEAAXAEAVCircuitSystemB2AAE12AEBVBlockPosB3AAAA1Z = 0x00B97340;
- // [ԭ��] public: virtual void __cdecl ComparatorCapacitor::cacheValues(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
- // [����] ?cacheValues@ComparatorCapacitor@@UEAAXAEAVCircuitSystem@@AEBVBlockPos@@@Z
+ // [ԭ] public: virtual void __cdecl ComparatorCapacitor::cacheValues(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
+ // [] ?cacheValues@ComparatorCapacitor@@UEAAXAEAVCircuitSystem@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QE11cacheValuesB1AE19ComparatorCapacitorB2AAE22UEAAXAEAVCircuitSystemB2AAE12AEBVBlockPosB3AAAA1Z = 0x00B94E50;
- // [ԭ��] public: virtual void __cdecl RepeaterCapacitor::cacheValues(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
- // [����] ?cacheValues@RepeaterCapacitor@@UEAAXAEAVCircuitSystem@@AEBVBlockPos@@@Z
+ // [ԭ] public: virtual void __cdecl RepeaterCapacitor::cacheValues(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
+ // [] ?cacheValues@RepeaterCapacitor@@UEAAXAEAVCircuitSystem@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QE11cacheValuesB1AE17RepeaterCapacitorB2AAE22UEAAXAEAVCircuitSystemB2AAE12AEBVBlockPosB3AAAA1Z = 0x00B96D20;
- // [ԭ��] public: virtual void __cdecl RedstoneTorchCapacitor::cacheValues(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
- // [����] ?cacheValues@RedstoneTorchCapacitor@@UEAAXAEAVCircuitSystem@@AEBVBlockPos@@@Z
+ // [ԭ] public: virtual void __cdecl RedstoneTorchCapacitor::cacheValues(class CircuitSystem & __ptr64,class BlockPos const & __ptr64) __ptr64
+ // [] ?cacheValues@RedstoneTorchCapacitor@@UEAAXAEAVCircuitSystem@@AEBVBlockPos@@@Z
constexpr RVA MSSYM_B1QE11cacheValuesB1AE22RedstoneTorchCapacitorB2AAE22UEAAXAEAVCircuitSystemB2AAE12AEBVBlockPosB3AAAA1Z = 0x00B95830;
- // [ԭ��] private: int __cdecl RedstoneTorchCapacitor::FindStrongestStrength(class BlockPos const & __ptr64,class CircuitSystem & __ptr64,bool & __ptr64) __ptr64
- // [����] ?FindStrongestStrength@RedstoneTorchCapacitor@@AEAAHAEBVBlockPos@@AEAVCircuitSystem@@AEA_N@Z
+ // [ԭ] private: int __cdecl RedstoneTorchCapacitor::FindStrongestStrength(class BlockPos const & __ptr64,class CircuitSystem & __ptr64,bool & __ptr64) __ptr64
+ // [] ?FindStrongestStrength@RedstoneTorchCapacitor@@AEAAHAEBVBlockPos@@AEAVCircuitSystem@@AEA_N@Z
constexpr RVA MSSYM_B1QE21FindStrongestStrengthB1AE22RedstoneTorchCapacitorB2AAE17AEAAHAEBVBlockPosB2AAE17AEAVCircuitSystemB2AAA3AEAB1UA1NB1AA1Z = 0x00B95AA0;
- // [ԭ��] public: virtual void __cdecl Actor::setPos(class Vec3 const & __ptr64) __ptr64
- // [����] ?setPos@Actor@@UEAAXAEBVVec3@@@Z
+ // [ԭ] public: virtual void __cdecl Actor::setPos(class Vec3 const & __ptr64) __ptr64
+ // [] ?setPos@Actor@@UEAAXAEBVVec3@@@Z
constexpr RVA MSSYM_B1QA6setPosB1AA5ActorB2AAE13UEAAXAEBVVec3B3AAAA1Z = 0x00554A20;
- // [ԭ��] private: class std::unique_ptr > __cdecl ActorFactory::_constructActor(struct ActorDefinitionIdentifier const & __ptr64,class Vec3 const & __ptr64,class Vec2 const & __ptr64) __ptr64
- // [����] ?_constructActor@ActorFactory@@AEAA?AV?$unique_ptr@VActor@@U?$default_delete@VActor@@@std@@@std@@AEBUActorDefinitionIdentifier@@AEBVVec3@@AEBVVec2@@@Z
+ // [ԭ] private: class std::unique_ptr > __cdecl ActorFactory::_constructActor(struct ActorDefinitionIdentifier const & __ptr64,class Vec3 const & __ptr64,class Vec2 const & __ptr64) __ptr64
+ // [] ?_constructActor@ActorFactory@@AEAA?AV?$unique_ptr@VActor@@U?$default_delete@VActor@@@std@@@std@@AEBUActorDefinitionIdentifier@@AEBVVec3@@AEBVVec2@@@Z
constexpr RVA MSSYM_MD5_4ad35b002b3931f6af40cb4fe59053ef = 0x005FDF40;
- // [ԭ��] private: void __cdecl Core::Random::_setSeed(unsigned int) __ptr64
- // [����] ?_setSeed@Random@Core@@AEAAXI@Z
+ // [ԭ] private: void __cdecl Core::Random::_setSeed(unsigned int) __ptr64
+ // [] ?_setSeed@Random@Core@@AEAAXI@Z
constexpr RVA MSSYM_B2QUA7setSeedB1AA6RandomB1AA4CoreB2AAA6AEAAXIB1AA1Z = 0x00163ED0;
- // [ԭ��] private: unsigned int __cdecl Core::Random::_genRandInt32(void) __ptr64
- // [����] ?_genRandInt32@Random@Core@@AEAAIXZ
+ // [ԭ] private: unsigned int __cdecl Core::Random::_genRandInt32(void) __ptr64
+ // [] ?_genRandInt32@Random@Core@@AEAAIXZ
constexpr RVA MSSYM_B2QUE12genRandInt32B1AA6RandomB1AA4CoreB2AAA7AEAAIXZ = 0x001B0070;
- // [ԭ��] public: enum VanillaBiomeTypes __cdecl Biome::getBiomeType(void)const __ptr64
- // [����] ?getBiomeType@Biome@@QEBA?AW4VanillaBiomeTypes@@XZ
+ // [ԭ] public: enum VanillaBiomeTypes __cdecl Biome::getBiomeType(void)const __ptr64
+ // [] ?getBiomeType@Biome@@QEBA?AW4VanillaBiomeTypes@@XZ
constexpr RVA MSSYM_B1QE12getBiomeTypeB1AA5BiomeB2AAA4QEBAB1QE20AW4VanillaBiomeTypesB2AAA2XZ = 0x00840C80;
- // [ԭ��] public: virtual void __cdecl GrassBlock::tick(class BlockSource & __ptr64,class BlockPos const & __ptr64,class Random & __ptr64)const __ptr64
- // [����] ?tick@GrassBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@AEAVRandom@@@Z
+ // [ԭ] public: virtual void __cdecl GrassBlock::tick(class BlockSource & __ptr64,class BlockPos const & __ptr64,class Random & __ptr64)const __ptr64
+ // [] ?tick@GrassBlock@@UEBAXAEAVBlockSource@@AEBVBlockPos@@AEAVRandom@@@Z
constexpr RVA MSSYM_B1QA4tickB1AE10GrassBlockB2AAE20UEBAXAEAVBlockSourceB2AAE12AEBVBlockPosB2AAE10AEAVRandomB3AAAA1Z = 0x0093B500;
- // [ԭ��] public: class Dimension * __ptr64 __cdecl Level::getDimension(class AutomaticID)const __ptr64
- // [����] ?getDimension@Level@@QEBAPEAVDimension@@V?$AutomaticID@VDimension@@H@@@Z
+ // [ԭ] public: class Dimension * __ptr64 __cdecl Level::getDimension(class AutomaticID)const __ptr64
+ // [] ?getDimension@Level@@QEBAPEAVDimension@@V?$AutomaticID@VDimension@@H@@@Z
constexpr RVA MSSYM_B1QE12getDimensionB1AA5LevelB2AAE17QEBAPEAVDimensionB2AAA1VB2QDE11AutomaticIDB1AE10VDimensionB2AAA1HB3AAAA1Z = 0x00A72D50;
- // [ԭ��] public: unsigned __int64 __cdecl NetworkIdentifier::getHash(void)const __ptr64
- // [����] ?getHash@NetworkIdentifier@@QEBA_KXZ
+ // [ԭ] public: unsigned __int64 __cdecl NetworkIdentifier::getHash(void)const __ptr64
+ // [] ?getHash@NetworkIdentifier@@QEBA_KXZ
constexpr RVA MSSYM_B1QA7getHashB1AE17NetworkIdentifierB2AAA4QEBAB1UA3KXZ = 0x00339FB0;
- // [ԭ��] public: virtual void __cdecl ServerNetworkHandler::handle(class NetworkIdentifier const & __ptr64,class CommandRequestPacket const & __ptr64) __ptr64
- // [����] ?handle@ServerNetworkHandler@@UEAAXAEBVNetworkIdentifier@@AEBVCommandRequestPacket@@@Z
+ // [ԭ] public: virtual void __cdecl ServerNetworkHandler::handle(class NetworkIdentifier const & __ptr64,class CommandRequestPacket const & __ptr64) __ptr64
+ // [] ?handle@ServerNetworkHandler@@UEAAXAEBVNetworkIdentifier@@AEBVCommandRequestPacket@@@Z
constexpr RVA MSSYM_B1QA6handleB1AE20ServerNetworkHandlerB2AAE26UEAAXAEBVNetworkIdentifierB2AAE24AEBVCommandRequestPacketB3AAAA1Z = 0x003A03A0;
- // [ԭ��] public: virtual class std::basic_string,class std::allocator > __cdecl AutomationPlayerCommandOrigin::getName(void)const __ptr64
- // [����] ?getName@AutomationPlayerCommandOrigin@@UEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
+ // [ԭ] public: virtual class std::basic_string,class std::allocator > __cdecl AutomationPlayerCommandOrigin::getName(void)const __ptr64
+ // [] ?getName@AutomationPlayerCommandOrigin@@UEBA?AV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@XZ
constexpr RVA MSSYM_B1QA7getNameB1AE29AutomationPlayerCommandOriginB2AAA4UEBAB1QA2AVB2QDA5basicB1UA6stringB1AA2DUB2QDA4charB1UA6traitsB1AA1DB1AA3stdB2AAA1VB2QDA9allocatorB1AA1DB1AA12B2AAA3stdB2AAA2XZ = 0x0041EBA0;
- // [ԭ��] public: virtual enum CommandPermissionLevel __cdecl PlayerCommandOrigin::getPermissionsLevel(void)const __ptr64
- // [����] ?getPermissionsLevel@PlayerCommandOrigin@@UEBA?AW4CommandPermissionLevel@@XZ
+ // [ԭ] public: virtual enum CommandPermissionLevel __cdecl PlayerCommandOrigin::getPermissionsLevel(void)const __ptr64
+ // [] ?getPermissionsLevel@PlayerCommandOrigin@@UEBA?AW4CommandPermissionLevel@@XZ
constexpr RVA MSSYM_B1QE19getPermissionsLevelB1AE19PlayerCommandOriginB2AAA4UEBAB1QE25AW4CommandPermissionLevelB2AAA2XZ = 0x0041E2C0;
- // [ԭ��] public: void __cdecl CommandRegistry::registerCommand(class std::basic_string,class std::allocator > const & __ptr64,char const * __ptr64,enum CommandPermissionLevel,struct CommandFlag,struct CommandFlag) __ptr64
- // [����] ?registerCommand@CommandRegistry@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBDW4CommandPermissionLevel@@UCommandFlag@@3@Z
+ // [ԭ] public: void __cdecl CommandRegistry::registerCommand(class std::basic_string,class std::allocator > const & __ptr64,char const * __ptr64,enum CommandPermissionLevel,struct CommandFlag,struct CommandFlag) __ptr64
+ // [] ?registerCommand@CommandRegistry@@QEAAXAEBV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@PEBDW4CommandPermissionLevel@@UCommandFlag@@3@Z
constexpr RVA MSSYM_MD5_8574de98358ff66b5a913417f44dd706 = 0x0042D260;
- // [ԭ��] public: struct MCRESULT __cdecl MinecraftCommands::executeCommand(class std::shared_ptr,bool)const __ptr64
- // [����] ?executeCommand@MinecraftCommands@@QEBA?AUMCRESULT@@V?$shared_ptr@VCommandContext@@@std@@_N@Z
+ // [ԭ] public: struct MCRESULT __cdecl MinecraftCommands::executeCommand(class std::shared_ptr,bool)const __ptr64
+ // [] ?executeCommand@MinecraftCommands@@QEBA?AUMCRESULT@@V?$shared_ptr@VCommandContext@@@std@@_N@Z
constexpr RVA MSSYM_B1QE14executeCommandB1AE17MinecraftCommandsB2AAA4QEBAB1QE10AUMCRESULTB2AAA1VB2QDA6sharedB1UA3ptrB1AE15VCommandContextB3AAAA3stdB3AAUA1NB1AA1Z = 0x0045C120;
- // [ԭ��] public: class std::unique_ptr > __cdecl CommandRequestPacket::createCommandContext(class NetworkIdentifier const & __ptr64,class Level & __ptr64,int)const __ptr64
- // [����] ?createCommandContext@CommandRequestPacket@@QEBA?AV?$unique_ptr@VCommandContext@@U?$default_delete@VCommandContext@@@std@@@std@@AEBVNetworkIdentifier@@AEAVLevel@@H@Z
+ // [ԭ] public: class std::unique_ptr > __cdecl CommandRequestPacket::createCommandContext(class NetworkIdentifier const & __ptr64,class Level & __ptr64,int)const __ptr64
+ // [] ?createCommandContext@CommandRequestPacket@@QEBA?AV?$unique_ptr@VCommandContext@@U?$default_delete@VCommandContext@@@std@@@std@@AEBVNetworkIdentifier@@AEAVLevel@@H@Z
constexpr RVA MSSYM_MD5_607250778ae0b2889b9591dc98bd2cd0 = 0x0035C140;
- // [ԭ��] private: class std::unique_ptr > __cdecl CommandRegistry::createCommand(struct CommandRegistry::ParseToken const & __ptr64,class CommandOrigin const & __ptr64,int,class std::basic_string,class std::allocator > & __ptr64,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > & __ptr64)const __ptr64
- // [����] ?createCommand@CommandRegistry@@AEBA?AV?$unique_ptr@VCommand@@U?$default_delete@VCommand@@@std@@@std@@AEBUParseToken@1@AEBVCommandOrigin@@HAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@AEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@3@@Z
+ // [ԭ] private: class std::unique_ptr > __cdecl CommandRegistry::createCommand(struct CommandRegistry::ParseToken const & __ptr64,class CommandOrigin const & __ptr64,int,class std::basic_string,class std::allocator > & __ptr64,class std::vector,class std::allocator >,class std::allocator,class std::allocator > > > & __ptr64)const __ptr64
+ // [] ?createCommand@CommandRegistry@@AEBA?AV?$unique_ptr@VCommand@@U?$default_delete@VCommand@@@std@@@std@@AEBUParseToken@1@AEBVCommandOrigin@@HAEAV?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@3@AEAV?$vector@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@V?$allocator@V?$basic_string@DU?$char_traits@D@std@@V?$allocator@D@2@@std@@@2@@3@@Z
constexpr RVA MSSYM_MD5_573632dacfa65053246fc05eeebd2c0e = 0x00425350;
- // [ԭ��] public: virtual enum CommandPermissionLevel __cdecl Player::getCommandPermissionLevel(void)const __ptr64
- // [����] ?getCommandPermissionLevel@Player@@UEBA?AW4CommandPermissionLevel@@XZ
+ // [ԭ] public: virtual enum CommandPermissionLevel __cdecl Player::getCommandPermissionLevel(void)const __ptr64
+ // [] ?getCommandPermissionLevel@Player@@UEBA?AW4CommandPermissionLevel@@XZ
constexpr RVA MSSYM_B1QE25getCommandPermissionLevelB1AA6PlayerB2AAA4UEBAB1QE25AW4CommandPermissionLevelB2AAA2XZ = 0x00718760;
- // [ԭ��] public: virtual int __cdecl StoneSlabBlock::getVariant(class Block const & __ptr64)const __ptr64
- // [����] ?getVariant@StoneSlabBlock@@UEBAHAEBVBlock@@@Z
+ // [ԭ] public: virtual int __cdecl StoneSlabBlock::getVariant(class Block const & __ptr64)const __ptr64
+ // [] ?getVariant@StoneSlabBlock@@UEBAHAEBVBlock@@@Z
constexpr RVA MSSYM_B1QE10getVariantB1AE14StoneSlabBlockB2AAE14UEBAHAEBVBlockB3AAAA1Z = 0x009D36D0;
- // [ԭ��] public: virtual int __cdecl WoodSlabBlock::getVariant(class Block const & __ptr64)const __ptr64
- // [����] ?getVariant@WoodSlabBlock@@UEBAHAEBVBlock@@@Z
+ // [ԭ] public: virtual int __cdecl WoodSlabBlock::getVariant(class Block const & __ptr64)const __ptr64
+ // [] ?getVariant@WoodSlabBlock@@UEBAHAEBVBlock@@@Z
constexpr RVA MSSYM_B1QE10getVariantB1AE13WoodSlabBlockB2AAE14UEBAHAEBVBlockB3AAAA1Z = 0x00A11720;
- // [ԭ��] public: virtual bool __cdecl OceanMonumentFeature::isFeatureChunk(class BiomeSource const & __ptr64,class Random & __ptr64,class ChunkPos const & __ptr64,unsigned int) __ptr64
- // [����] ?isFeatureChunk@OceanMonumentFeature@@UEAA_NAEBVBiomeSource@@AEAVRandom@@AEBVChunkPos@@I@Z
+ // [ԭ] public: virtual bool __cdecl OceanMonumentFeature::isFeatureChunk(class BiomeSource const & __ptr64,class Random & __ptr64,class ChunkPos const & __ptr64,unsigned int) __ptr64
+ // [] ?isFeatureChunk@OceanMonumentFeature@@UEAA_NAEBVBiomeSource@@AEAVRandom@@AEBVChunkPos@@I@Z
constexpr RVA MSSYM_B1QE14isFeatureChunkB1AE20OceanMonumentFeatureB2AAA4UEAAB1UE16NAEBVBiomeSourceB2AAE10AEAVRandomB2AAE12AEBVChunkPosB2AAA1IB1AA1Z = 0x00ACAB50;
- // [ԭ��] protected: virtual bool __cdecl RandomScatteredLargeFeature::isFeatureChunk(class BiomeSource const & __ptr64,class Random & __ptr64,class ChunkPos const & __ptr64,unsigned int) __ptr64
- // [����] ?isFeatureChunk@RandomScatteredLargeFeature@@MEAA_NAEBVBiomeSource@@AEAVRandom@@AEBVChunkPos@@I@Z
+ // [ԭ] protected: virtual bool __cdecl RandomScatteredLargeFeature::isFeatureChunk(class BiomeSource const & __ptr64,class Random & __ptr64,class ChunkPos const & __ptr64,unsigned int) __ptr64
+ // [] ?isFeatureChunk@RandomScatteredLargeFeature@@MEAA_NAEBVBiomeSource@@AEAVRandom@@AEBVChunkPos@@I@Z
constexpr RVA MSSYM_B1QE14isFeatureChunkB1AE27RandomScatteredLargeFeatureB2AAA4MEAAB1UE16NAEBVBiomeSourceB2AAE10AEAVRandomB2AAE12AEBVChunkPosB2AAA1IB1AA1Z = 0x00ADD600;
- // [ԭ��] public: virtual class Biome const * __ptr64 __cdecl LayerBiomeSource::getBiome(int,int)const __ptr64
- // [����] ?getBiome@LayerBiomeSource@@UEBAPEBVBiome@@HH@Z
+ // [ԭ] public: virtual class Biome const * __ptr64 __cdecl LayerBiomeSource::getBiome(int,int)const __ptr64
+ // [] ?getBiome@LayerBiomeSource@@UEBAPEBVBiome@@HH@Z
constexpr RVA MSSYM_B1QA8getBiomeB1AE16LayerBiomeSourceB2AAE13UEBAPEBVBiomeB2AAA2HHB1AA1Z = 0x0086A370;
- // [ԭ��] public: virtual class Biome const * __ptr64 __cdecl FixedBiomeSource::getBiome(int,int)const __ptr64
- // [����] ?getBiome@FixedBiomeSource@@UEBAPEBVBiome@@HH@Z
+ // [ԭ] public: virtual class Biome const * __ptr64 __cdecl FixedBiomeSource::getBiome(int,int)const __ptr64
+ // [] ?getBiome@FixedBiomeSource@@UEBAPEBVBiome@@HH@Z
constexpr RVA MSSYM_B1QA8getBiomeB1AE16FixedBiomeSourceB2AAE13UEBAPEBVBiomeB2AAA2HHB1AA1Z = 0x000BC3D0;
- // [ԭ��] public: class PlayerInventory & __ptr64 __cdecl Player::getSupplies(void) __ptr64
- // [����] ?getSupplies@Player@@QEAAAEAVPlayerInventory@@XZ
+ // [ԭ] public: class PlayerInventory & __ptr64 __cdecl Player::getSupplies(void) __ptr64
+ // [] ?getSupplies@Player@@QEAAAEAVPlayerInventory@@XZ
constexpr RVA MSSYM_B1QE11getSuppliesB1AA6PlayerB2AAE23QEAAAEAVPlayerInventoryB2AAA2XZ = 0x00724CC0;
- // [ԭ��] public: class ItemStack const & __ptr64 __cdecl PlayerInventory::getItem(int,enum ContainerID)const __ptr64
- // [����] ?getItem@PlayerInventory@@QEBAAEBVItemStack@@HW4ContainerID@@@Z
+ // [ԭ] public: class ItemStack const & __ptr64 __cdecl PlayerInventory::getItem(int,enum ContainerID)const __ptr64
+ // [] ?getItem@PlayerInventory@@QEBAAEBVItemStack@@HW4ContainerID@@@Z
constexpr RVA MSSYM_B1QA7getItemB1AE15PlayerInventoryB2AAE17QEBAAEBVItemStackB2AAE14HW4ContainerIDB3AAAA1Z = 0x00729490;
- // [ԭ��] public: int __cdecl PlayerInventory::getContainerSize(enum ContainerID)const __ptr64
- // [����] ?getContainerSize@PlayerInventory@@QEBAHW4ContainerID@@@Z
+ // [ԭ] public: int __cdecl PlayerInventory::getContainerSize(enum ContainerID)const __ptr64
+ // [] ?getContainerSize@PlayerInventory@@QEBAHW4ContainerID@@@Z
constexpr RVA MSSYM_B1QE16getContainerSizeB1AE15PlayerInventoryB2AAE18QEBAHW4ContainerIDB3AAAA1Z = 0x007293C0;
- // [ԭ��] public: void __cdecl PlayerInventory::setItem(int,class ItemStack const & __ptr64,enum ContainerID,bool) __ptr64
- // [����] ?setItem@PlayerInventory@@QEAAXHAEBVItemStack@@W4ContainerID@@_N@Z
+ // [ԭ] public: void __cdecl PlayerInventory::setItem(int,class ItemStack const & __ptr64,enum ContainerID,bool) __ptr64
+ // [] ?setItem@PlayerInventory@@QEAAXHAEBVItemStack@@W4ContainerID@@_N@Z
constexpr RVA MSSYM_B1QA7setItemB1AE15PlayerInventoryB2AAE19QEAAXHAEBVItemStackB2AAE13W4ContainerIDB3AAUA1NB1AA1Z = 0x00729470;
- // [ԭ��] public: virtual void __cdecl ItemStackBase::setNull(void) __ptr64
- // [����] ?setNull@ItemStackBase@@UEAAXXZ
+ // [ԭ] public: virtual void __cdecl ItemStackBase::setNull(void) __ptr64
+ // [] ?setNull@ItemStackBase@@UEAAXXZ
constexpr RVA MSSYM_B1QA7setNullB1AE13ItemStackBaseB2AAA7UEAAXXZ = 0x007F7D10;
- // [ԭ��] public: virtual void __cdecl FillingContainer::clearSlot(int) __ptr64
- // [����] ?clearSlot@FillingContainer@@UEAAXH@Z
+ // [ԭ] public: virtual void __cdecl FillingContainer::clearSlot(int) __ptr64
+ // [] ?clearSlot@FillingContainer@@UEAAXH@Z
constexpr RVA MSSYM_B1QA9clearSlotB1AE16FillingContainerB2AAA6UEAAXHB1AA1Z = 0x0077CBB0;
- // [ԭ��] public: struct PlayerInventory::SlotData __cdecl PlayerInventory::getSelectedSlot(void)const __ptr64
- // [����] ?getSelectedSlot@PlayerInventory@@QEBA?AUSlotData@1@XZ
+ // [ԭ] public: struct PlayerInventory::SlotData __cdecl PlayerInventory::getSelectedSlot(void)const __ptr64
+ // [] ?getSelectedSlot@PlayerInventory@@QEBA?AUSlotData@1@XZ
constexpr RVA MSSYM_B1QE15getSelectedSlotB1AE15PlayerInventoryB2AAA4QEBAB1QE10AUSlotDataB1AA11B1AA2XZ = 0x00729590;
- // [ԭ��] public: struct Brightness __cdecl BlockSource::getRawBrightness(class BlockPos const & __ptr64,bool,bool)const __ptr64
- // [����] ?getRawBrightness@BlockSource@@QEBA?AUBrightness@@AEBVBlockPos@@_N1@Z
+ // [ԭ] public: struct Brightness __cdecl BlockSource::getRawBrightness(class BlockPos const & __ptr64,bool,bool)const __ptr64
+ // [] ?getRawBrightness@BlockSource@@QEBA?AUBrightness@@AEBVBlockPos@@_N1@Z
constexpr RVA MSSYM_B1QE16getRawBrightnessB1AE11BlockSourceB2AAA4QEBAB1QE12AUBrightnessB2AAE12AEBVBlockPosB3AAUA2N1B1AA1Z = 0x00A16DF0;
- // [ԭ��] public: class Material const & __ptr64 __cdecl BlockSource::getMaterial(int,int,int)const __ptr64
- // [����] ?getMaterial@BlockSource@@QEBAAEBVMaterial@@HHH@Z
+ // [ԭ] public: class Material const & __ptr64 __cdecl BlockSource::getMaterial(int,int,int)const __ptr64
+ // [] ?getMaterial@BlockSource@@QEBAAEBVMaterial@@HHH@Z
constexpr RVA MSSYM_B1QE11getMaterialB1AE11BlockSourceB2AAE16QEBAAEBVMaterialB2AAA3HHHB1AA1Z = 0x00A1D7C0;
- // [ԭ��] public: class LevelChunk * __ptr64 __cdecl BlockSource::getChunk(class ChunkPos const & __ptr64)const __ptr64
- // [����] ?getChunk@BlockSource@@QEBAPEAVLevelChunk@@AEBVChunkPos@@@Z
+ // [ԭ] public: class LevelChunk * __ptr64 __cdecl BlockSource::getChunk(class ChunkPos const & __ptr64)const __ptr64
+ // [] ?getChunk@BlockSource@@QEBAPEAVLevelChunk@@AEBVChunkPos@@@Z
constexpr RVA MSSYM_B1QA8getChunkB1AE11BlockSourceB2AAE18QEBAPEAVLevelChunkB2AAE12AEBVChunkPosB3AAAA1Z = 0x00A15AE0;
- // [ԭ��] public: virtual class MobSpawnerData const * __ptr64 __cdecl BlockLegacy::getMobToSpawn(class SpawnConditions const & __ptr64,class BlockSource & __ptr64)const __ptr64
- // [����] ?getMobToSpawn@BlockLegacy@@UEBAPEBVMobSpawnerData@@AEBVSpawnConditions@@AEAVBlockSource@@@Z
-
- // [ԭ��] public: class DwellerComponent * __ptr64 __cdecl Actor::tryGetComponent(void) __ptr64
- // [����] ??$tryGetComponent@VDwellerComponent@@@Actor@@QEAAPEAVDwellerComponent@@XZ
+ // [ԭ] public: class DwellerComponent * __ptr64 __cdecl Actor::tryGetComponent(void) __ptr64
+ // [] ??$tryGetComponent@VDwellerComponent@@@Actor@@QEAAPEAVDwellerComponent@@XZ
constexpr RVA MSSYM_B3QQDE15tryGetComponentB1AE17VDwellerComponentB3AAAA5ActorB2AAE24QEAAPEAVDwellerComponentB2AAA2XZ = 0x00570200;
- // [ԭ��] public: class Actor * __ptr64 __cdecl Level::fetchEntity(struct ActorUniqueID,bool)const __ptr64
- // [����] ?fetchEntity@Level@@QEBAPEAVActor@@UActorUniqueID@@_N@Z
+ // [ԭ] public: class Actor * __ptr64 __cdecl Level::fetchEntity(struct ActorUniqueID,bool)const __ptr64
+ // [] ?fetchEntity@Level@@QEBAPEAVActor@@UActorUniqueID@@_N@Z
constexpr RVA MSSYM_B1QE11fetchEntityB1AA5LevelB2AAE13QEBAPEAVActorB2AAE14UActorUniqueIDB3AAUA1NB1AA1Z = 0x00A78690;
- // [ԭ��] public: class BlockPos __cdecl DwellerComponent::getVillageCenter(class Actor const & __ptr64)const __ptr64
- // [����] ?getVillageCenter@DwellerComponent@@QEBA?AVBlockPos@@AEBVActor@@@Z
+ // [ԭ] public: class BlockPos __cdecl DwellerComponent::getVillageCenter(class Actor const & __ptr64)const __ptr64
+ // [] ?getVillageCenter@DwellerComponent@@QEBA?AVBlockPos@@AEBVActor@@@Z
constexpr RVA MSSYM_B1QE16getVillageCenterB1AE16DwellerComponentB2AAA4QEBAB1QE10AVBlockPosB2AAA9AEBVActorB3AAAA1Z = 0x001F7C50;
- // [ԭ��] public: struct Tick const & __ptr64 __cdecl Level::getCurrentTick(void)const __ptr64
- // [����] ?getCurrentTick@Level@@QEBAAEBUTick@@XZ
+ // [ԭ] public: struct Tick const & __ptr64 __cdecl Level::getCurrentTick(void)const __ptr64
+ // [] ?getCurrentTick@Level@@QEBAAEBUTick@@XZ
constexpr RVA MSSYM_B1QE14getCurrentTickB1AA5LevelB2AAE12QEBAAEBUTickB2AAA2XZ = 0x00A7D840;
+ // [ԭ] public: class Block const & __ptr64 __cdecl BlockPalette::getBlock(unsigned int const & __ptr64)const __ptr64
+ // [] ?getBlock@BlockPalette@@QEBAAEBVBlock@@AEBI@Z
+ constexpr RVA MSSYM_B1QA8getBlockB1AE12BlockPaletteB2AAE13QEBAAEBVBlockB2AAA4AEBIB1AA1Z = 0x00A128B0;
+
}
-// �ļ�����
+// ļ
diff --git a/api/tools/DirtyLogger.cpp b/api/tools/DirtyLogger.cpp
index b968060..fdede90 100644
--- a/api/tools/DirtyLogger.cpp
+++ b/api/tools/DirtyLogger.cpp
@@ -32,7 +32,7 @@ namespace trapdoor {
//向日志里面打印信息
//如果是开发者模式就打印所有日志,无视日志等级
void logInfo(LOG_LEVEL level, const char *functionName, const char *fmt, ...) {
- if (logLevel > level && !devMode) return;
+ // if (logLevel > level && !devMode) return;
switch (level) {
case LOG_LEVEL::LOG_DEBUG:
setColor(10); //green
@@ -54,29 +54,29 @@ namespace trapdoor {
time_t rawTime;
time(&rawTime);
struct tm *t = localtime(&rawTime);
- fprintf(logger, "[%.2d-%.2d %.2d:%.2d:%.2d]", t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
- switch (logLevel) {
- case LOG_LEVEL::LOG_ERROR:
- fprintf(logger, "[ERROR] ");
- break;
- case LOG_LEVEL::LOG_DEBUG:
- fprintf(logger, "[DEBUG] ");
- break;
- case LOG_LEVEL::LOG_INFO:
- fprintf(logger, "[INFO] ");
- break;
- case LOG_LEVEL::LOG_WARNING:
- fprintf(logger, "[WARN] ");
- break;
- case LOG_LEVEL::NO_LOG:
- break;
- }
+ // fprintf(logger, "[%.2d-%.2d %.2d:%.2d:%.2d]", t->tm_mon + 1, t->tm_mday, t->tm_hour, t->tm_min, t->tm_sec);
+// switch (logLevel) {
+// case LOG_LEVEL::LOG_ERROR:
+// fprintf(logger, "[ERROR] ");
+// break;
+// case LOG_LEVEL::LOG_DEBUG:
+// fprintf(logger, "[DEBUG] ");
+// break;
+// case LOG_LEVEL::LOG_INFO:
+// fprintf(logger, "[INFO] ");
+// break;
+// case LOG_LEVEL::LOG_WARNING:
+// fprintf(logger, "[WARN] ");
+// break;
+// case LOG_LEVEL::NO_LOG:
+// break;
+// }
fprintf(logger, "(%s) ", functionName);
//输出到桌面(桌面输出不需要输出时间和函数名称)
- vfprintf(stdout, fmt, args);
- fprintf(stdout, "\n");
- fflush(stdout);
+// vfprintf(stdout, fmt, args);
+// fprintf(stdout, "\n");
+// fflush(stdout);
//输出到日志文件
vfprintf(logger, fmt, args);
fprintf(logger, "\n");
diff --git a/api/world/Level.cpp b/api/world/Level.cpp
index 432bd00..907a10c 100644
--- a/api/world/Level.cpp
+++ b/api/world/Level.cpp
@@ -9,6 +9,7 @@
#include "lib/mod.h"
#include "lib/SymHook.h"
#include "tools/DirtyLogger.h"
+#include "Block.h"
namespace trapdoor {
using namespace SymHook;
@@ -76,4 +77,13 @@ namespace trapdoor {
return *SYM_CALL(uint64_t*(*)(Level * ),
MSSYM_B1QE14getCurrentTickB1AA5LevelB2AAE12QEBAAEBUTickB2AAA2XZ, this);
}
-}
\ No newline at end of file
+
+ BlockPalette *Level::getGlobalPalette() {
+ //from EnderMan::getCarryingBlock
+ //*(v5 + 2000)
+ auto p = *(BlockPalette **) ((char *) (this) + 250);
+ printf("%p %p\n", p, &p);
+ return nullptr;
+ }
+
+}
diff --git a/api/world/Level.h b/api/world/Level.h
index 3f14e6f..67ecef1 100644
--- a/api/world/Level.h
+++ b/api/world/Level.h
@@ -6,7 +6,7 @@
#define TRAPDOOR_LEVEL_H
#include
-
+#include "block/Block.h"
#include
#include
@@ -19,6 +19,9 @@ namespace trapdoor {
class ActorUniqueID;
+
+
+
class Tick {
public:
uint64_t tick;
@@ -38,6 +41,9 @@ namespace trapdoor {
};
class Level {
+ private:
+ BlockPalette *getGlobalPalette();
+
public:
Level() = delete;
diff --git a/mod/TrapdoorMod.cpp b/mod/TrapdoorMod.cpp
index eb92783..e924244 100644
--- a/mod/TrapdoorMod.cpp
+++ b/mod/TrapdoorMod.cpp
@@ -15,6 +15,7 @@
#include "function/BackupHelper.h"
#include "os/process_stat.h"
#include "tools/MsgBuilder.h"
+#include "block/Block.h"
namespace mod {
void TrapdoorMod::heavyTick() {
@@ -132,6 +133,12 @@ namespace mod {
broadcastMsg("设置玩家[%s]为观察者模式", player->getNameTag().c_str());
});
+// commandManager.registerCmd("o", "test")
+// ->then(ARG("s", "cc", INT, {
+// player->setGameMode(holder->getInt());
+// broadcastMsg("设置玩家[%s]为模式 %d", player->getNameTag().c_str(), holder->getInt());
+// }));
+
commandManager.registerCmd("s", "切换到生存模式")
->EXE({
player->setGameMode(0);
@@ -144,6 +151,7 @@ namespace mod {
broadcastMsg("设置玩家[%s]为创造者模式", player->getNameTag().c_str());
});
+
//村庄
commandManager.registerCmd("village", "村庄相关功能")
->then(ARG("list", "显示所有正在加载的村庄", NONE, {
@@ -268,7 +276,6 @@ namespace mod {
this->playerFunctions.setRedstoneHelperAble(player->getNameTag(), holder->getBool());
info(player, "设置你的信号源提示开启/关闭 %d", holder->getBool());
}))
-
->EXE({ PlayerFunction::printInfo(player); });
commandManager.registerCmd("os", "显示服务器信息")
diff --git a/mod/TrapdoorMod.h b/mod/TrapdoorMod.h
index d0f73e3..75a50aa 100644
--- a/mod/TrapdoorMod.h
+++ b/mod/TrapdoorMod.h
@@ -44,6 +44,8 @@ namespace mod {
public:
ModInfo modeInfo;
+
+
public:
static void printCopyRightInfo();