// This Header is auto generated by BDSLiteLoader Toolchain #pragma once #define AUTO_GENERATED #include "../Global.h" #include "Bedrock.hpp" #define BEFORE_EXTRA // Add include headers & pre-declares #include "Core.hpp" #include "BlockInstance.hpp" #include "Tick.hpp" #include "Social.hpp" #include "Types.hpp" class Actor; class ActorDamageSource; class ItemStack; class ItemActor; class Block; class CompoundTag; class Player; class BlockSource; class BlockPalette; class Container; class Dimension; struct ActorUniqueID; class Packet; class Spawner; #undef BEFORE_EXTRA class Level { #define AFTER_EXTRA // Add new members to class public: #define ENABLE_VIRTUAL_FAKESYMBOL_LEVEL //Entity & Player //LIAPI static void forEachPlayer(class std::function callback); //LIAPI static void forEachPlayer(class std::function callback); LIAPI static std::vector getAllPlayers(); LIAPI Player* getPlayer(const string& info); // name or xuid LIAPI Player* getPlayer(ActorUniqueID id); // UniqueID LIAPI Player* getPlayer(const mce::UUID& uuid)const; //原生函数Level::getPlayer(mce::UUID) LIAPI static Actor* getEntity(ActorUniqueID id); LIAPI static std::vector getAllEntities(int dimId); LIAPI static std::vector getAllEntities(); LIAPI static Actor* spawnMob(Vec3 pos, int dimId, std::string typeName); LIAPI static Actor* spawnItem(Vec3 pos, int dimId, ItemStack *item); LIAPI static bool createExplosion(Vec3 pos, int dimId, Actor* source, float radius, bool createFire, bool canBreak, float maxResistance = 3.40282347e+38); //LIAPI static class MapItemSavedData* getMapSavedData(struct ActorUniqueID a0); LIAPI static Actor* cloneMob(Vec3 pos, int dimId, Actor* ac); //Block LIAPI static Block* getBlock(BlockPos* pos, int dimId); LIAPI static Block* getBlock(BlockPos* pos, BlockSource* blockSource); LIAPI static Block* getBlock(const BlockPos& pos, int dimId); LIAPI static Block* getBlock(const BlockPos& pos, BlockSource *blockSource); LIAPI static Block* getBlockEx(const BlockPos& pos, int dimId); LIAPI static BlockInstance getBlockInstance(BlockPos* pos, int dimId); LIAPI static BlockInstance getBlockInstance(BlockPos* pos, BlockSource* blockSource); LIAPI static BlockInstance getBlockInstance(const BlockPos& pos, int dimId); LIAPI static BlockInstance getBlockInstance(const BlockPos& pos, BlockSource* blockSource); LIAPI static BlockActor* getBlockEntity(BlockPos* pos, int dimId); LIAPI static BlockActor* getBlockEntity(BlockPos* pos, BlockSource* blockSource); LIAPI static BlockActor* getBlockEntity(const BlockPos& pos, int dimId); LIAPI static BlockActor* getBlockEntity(const BlockPos& pos, BlockSource* blockSource); LIAPI static bool setBlock(const BlockPos& pos, int dim, Block* block); LIAPI static bool setBlock(const BlockPos& pos, int dim, const string& name, unsigned short tileData); LIAPI static bool setBlock(const BlockPos& pos, int dim, CompoundTag* nbt); //LIAPI static bool breakBlockNaturally(BlockSource* bs, const BlockPos& pos); //LIAPI static bool breakBlockNaturally(BlockSource* bs, const BlockPos& pos, ItemStack* tool); //LIAPI static bool destroyBlock(class BlockSource& bs, class BlockPos const& pos, bool a2); //LIAPI static void spawnParticleEffect(std::string const& type, class Vec3 const& pos, class Dimension* a2); //LIAPI static void spawnParticleEffect(std::string const& type, class Actor const& a1, class Vec3 const& a2); LIAPI static bool hasContainer(Vec3 pos, int dim); LIAPI static Container* getContainer(Vec3 pos, int dim); //Item // The return value should be freed by the developer if it is no longer used LIAPI static ItemStack* getItemStackFromId(short itemId, int aux = 0); //Helper LIAPI static BlockSource* getBlockSource(int dimid); LIAPI static BlockSource* getBlockSource(Actor* actor); //LIAPI static BlockPalette* getBlockPalette(); //LIAPI static Dimension* getDimension(class AutomaticID a0); LIAPI static Actor* getDamageSourceEntity(ActorDamageSource* ads); LIAPI static void broadcastText(const string& text, TextType type); LIAPI static void broadcastTitle(const string& text, TitleType Type, int FadeInDuration, int RemainDuration, int FadeOutDuration); [[deprecated("This is a typo. Use Level::sendPacketForAllPlayers")]] LIAPI static void sendPacketForAllPlayer(Packet& pkt); LIAPI static void sendPacketForAllPlayers(Packet& pkt); LIAPI static std::string getCurrentLevelName(); LIAPI static std::string getCurrentLevelPath(); LIAPI static int64_t createBossEvent(); public: static void dummy() { ; } // struct ServerCommandOrigin { // void* myVTBL; // void* UUID[2]; // ServerLevel* lvl; // string Name; // unsigned char Perm; // static void* fake_vtbl[26]; // // [[deprecated]] // ServerCommandOrigin() // { // if (fake_vtbl[1] == nullptr) { // memcpy(fake_vtbl, (void**)(SYM("??_7ServerCommandOrigin@@6B@")) - 1, sizeof(fake_vtbl)); // fake_vtbl[1] = (void*)dummy; // } // myVTBL = fake_vtbl + 1; // Name = "Server"; // Perm = 4; // lvl = Global; // } // }; LIAPI static bool executeCommandAs(Player* player, const string& cmd); LIAPI static std::pair executeCommandEx(const string& cmd); LIAPI static bool executeCommand(const string& cmd); //For compatibility LIAPI static bool runcmdAs(Player* pl, const string& cmd) { return executeCommandAs(pl, cmd); } LIAPI static std::pair runcmdEx(const string& cmd) { return executeCommandEx(cmd); } LIAPI static bool runcmd(const string& cmd) { return executeCommand(cmd); } inline Spawner& getSpawner() const{ return *dAccess>(this,1968).get(); }; #undef AFTER_EXTRA #ifndef DISABLE_CONSTRUCTOR_PREVENTION_LEVEL public: class Level& operator=(class Level const &) = delete; Level(class Level const &) = delete; Level() = delete; #endif public: #ifdef ENABLE_VIRTUAL_FAKESYMBOL_LEVEL MCVAPI class Actor * addAutonomousEntity(class BlockSource &, std::unique_ptr); MCVAPI class Actor * addEntity(class BlockSource &, std::unique_ptr); MCVAPI void addEntryToTagCache(std::string const &); MCVAPI class Actor * addGlobalEntity(class BlockSource &, std::unique_ptr); MCVAPI void addPlayer(std::unique_ptr); MCVAPI std::unique_ptr borrowEntity(struct ActorUniqueID, class LevelChunk *); MCVAPI bool canUseSkin(class SerializedSkin const &, class NetworkIdentifier const &, class mce::UUID const &, std::string const &) const; MCVAPI void clearTagCache(); MCVAPI void decrementTagCache(std::string const &, class TagRegistry, struct IDType> &); MCVAPI void directTickEntities(class BlockSource &); MCVAPI void dropEntryFromTagCache(std::string const &); MCVAPI class BiomeComponentFactory & getBiomeComponentFactory(); MCVAPI class BiomeComponentFactory const & getBiomeComponentFactory() const; MCVAPI class BiomeRegistry & getBiomeRegistry(); MCVAPI class BiomeRegistry const & getBiomeRegistry() const; MCVAPI class BlockPalette & getBlockPalette(); MCVAPI class BlockPalette const & getBlockPalette() const; MCVAPI class ResourcePackManager * getClientResourcePackManager() const; MCVAPI struct Tick const getCurrentServerTick() const; MCVAPI class Factory & getDimensionFactory(); MCVAPI class Factory const & getDimensionFactory() const; MCVAPI class FeatureRegistry & getFeatureRegistry(); MCVAPI class FeatureRegistry const & getFeatureRegistry() const; MCVAPI class FeatureTypeFactory & getFeatureTypeFactory(); MCVAPI class FeatureTypeFactory const & getFeatureTypeFactory() const; MCVAPI class JigsawStructureRegistry & getJigsawStructureRegistry(); MCVAPI class JigsawStructureRegistry const & getJigsawStructureRegistry() const; MCVAPI class Factory & getLightTextureImageBuilderFactory(); MCVAPI class Factory const & getLightTextureImageBuilderFactory() const; MCVAPI class PositionTrackingDB::PositionTrackingDBServer * getPositionTrackerDBServer() const; MCVAPI class ResourcePackManager * getServerResourcePackManager() const; MCVAPI class StructureManager & getStructureManager(); MCVAPI class StructureManager const & getStructureManager() const; MCVAPI class SurfaceBuilderRegistry & getSurfaceBuilderRegistry(); MCVAPI class SurfaceBuilderRegistry const & getSurfaceBuilderRegistry() const; MCVAPI class TagRegistry, struct IDType> & getTagRegistry(); MCVAPI class TradeTables * getTradeTables(); MCVAPI void incrementTagCache(std::string const &, class TagRegistry, struct IDType> &); MCVAPI bool initialize(std::string const &, class LevelSettings const &, class LevelData *, std::string const *); MCVAPI void loadFunctionManager(); MCVAPI void onChunkLoaded(class ChunkSource &, class LevelChunk &); MCVAPI void onPlayerDeath(class Player &, class ActorDamageSource const &); MCVAPI void onSourceCreated(class BlockSource &); MCVAPI void onSourceDestroyed(class BlockSource &); MCVAPI void queueEntityRemoval(std::unique_ptr &&, bool); MCVAPI void removeEntityReferences(class Actor &, bool); MCVAPI void runCommand(class HashedString const &, class CommandOrigin &, enum CommandOriginSystem, enum CurrentCmdVersion); MCVAPI void saveAdditionalData(); MCVAPI void setCommandsEnabled(bool); MCVAPI void setDifficulty(enum Difficulty); MCVAPI void setFinishedInitializing(); MCVAPI void setWorldTemplateOptionsUnlocked(); MCVAPI void startLeaveGame(); MCVAPI std::unique_ptr takeEntity(struct ActorUniqueID); MCVAPI void tick(); MCVAPI void updateSleepingPlayerList(); MCVAPI ~Level(); #endif MCAPI Level(class gsl::not_null> const &, std::unique_ptr, std::unique_ptr, class IMinecraftEventing &, bool, unsigned char, class Scheduler &, class StructureManager &, class ResourcePackManager &, class IEntityRegistryOwner &, std::unique_ptr, std::unique_ptr); MCAPI void _checkUserStorage(); MCAPI void addListener(class LevelListener &); MCAPI class Particle * addParticle(enum ParticleType, class Vec3 const &, class Vec3 const &, int, class CompoundTag const *, bool); MCAPI void addTerrainParticleEffect(class BlockPos const &, class Block const &, class Vec3 const &, float, float, float); MCAPI void broadcastActorEvent(class Actor &, enum ActorEvent, int); MCAPI void broadcastBossEvent(enum BossEventUpdateType); MCAPI void broadcastDimensionEvent(class BlockSource &, enum LevelEvent, class Vec3 const &, int, class Player *); MCAPI void broadcastLevelEvent(enum LevelEvent, class Vec3 const &, int, class Player *); MCAPI void broadcastLevelEvent(enum LevelEvent, class CompoundTag const &, class Player *); MCAPI void broadcastSoundEvent(class BlockSource &, enum LevelSoundEvent, class Vec3 const &, int, struct ActorDefinitionIdentifier const &, bool, bool); MCAPI bool checkAndHandleMaterial(class AABB const &, enum MaterialType, class Actor *); MCAPI bool copyAndLockMap(struct ActorUniqueID, struct ActorUniqueID); MCAPI class Dimension * createDimension(class AutomaticID); MCAPI class MapItemSavedData & createMapSavedData(struct ActorUniqueID const &, class BlockPos const &, class AutomaticID, int); MCAPI class MapItemSavedData & createMapSavedData(std::vector const &, class BlockPos const &, class AutomaticID, int); MCAPI void createPhotoStorage(); MCAPI void denyEffect(class Vec3 const &); MCAPI bool destroyBlock(class BlockSource &, class BlockPos const &, bool); MCAPI void entityChangeDimension(class Actor &, class AutomaticID); MCAPI struct ActorUniqueID expandMapByID(struct ActorUniqueID, bool); MCAPI void explode(class BlockSource &, class Actor *, class Vec3 const &, float, bool, bool, float, bool); MCAPI bool extinguishFire(class BlockSource &, class BlockPos const &, unsigned char); MCAPI class Actor * fetchEntity(struct ActorUniqueID, bool) const; MCAPI class Player * findPlayer(class std::function) const; MCAPI void forEachDimension(class std::function); MCAPI void forEachPlayer(class std::function); MCAPI void forEachPlayer(class std::function) const; MCAPI void forceRemoveEntity(class Actor &); MCAPI struct AdventureSettings & getAdventureSettings(); MCAPI struct Tick const & getCurrentTick() const; MCAPI enum GameType getDefaultGameType() const; MCAPI enum Difficulty getDifficulty() const; MCAPI class Dimension * getDimension(class AutomaticID) const; MCAPI class DimensionConversionData getDimensionConversionData() const; MCAPI class GameRules & getGameRules(); MCAPI class MapItemSavedData * getMapSavedData(struct ActorUniqueID); MCAPI int getNewPlayerId() const; MCAPI class PacketSender * getPacketSender() const; MCAPI class Color getPlayerColor(class Player const &) const; MCAPI std::string const & getPlayerPlatformOnlineId(class mce::UUID const &) const; MCAPI std::string const & getPlayerXUID(class mce::UUID const &) const; MCAPI class Player * getPrimaryLocalPlayer() const; MCAPI class Player * getRandomPlayer(); MCAPI class Actor * getRuntimeEntity(class ActorRuntimeID, bool) const; MCAPI unsigned int getSeed(); MCAPI class BlockPos const & getSharedSpawnPos() const; MCAPI float getSpecialMultiplier(class AutomaticID) const; MCAPI class ITickingArea * getTickingArea(class mce::UUID const &) const; MCAPI bool hasCommandsEnabled() const; MCAPI bool hasExperimentalGameplayEnabled() const; MCAPI bool isPlayerSuspended(class Player &) const; MCAPI void onChunkDiscarded(class LevelChunk &); MCAPI void playSound(class BlockSource &, enum LevelSoundEvent, class Vec3 const &, int, struct ActorDefinitionIdentifier const &, bool, bool); MCAPI void playSound(enum LevelSoundEvent, class Vec3 const &, int, struct ActorDefinitionIdentifier const &, bool, bool); MCAPI void playSynchronizedSound(class BlockSource &, enum LevelSoundEvent, class Vec3 const &, int, struct ActorDefinitionIdentifier const &, bool, bool); MCAPI void potionSplash(class Vec3 const &, class Color const &, bool); MCAPI void removeAutonomousEntity(class Actor &, class LevelChunk *); MCAPI void removeListener(class LevelListener &); MCAPI void requestMapInfo(struct ActorUniqueID, bool); MCAPI void requestPlayerChangeDimension(class Player &, std::unique_ptr); MCAPI void save(); MCAPI void saveBiomeData(); MCAPI void saveDirtyChunks(); MCAPI void saveGameData(); MCAPI void saveLevelData(); MCAPI void saveVillages(); MCAPI void setDefaultGameType(enum GameType); MCAPI void spawnParticleEffect(std::string const &, class Vec3 const &, class Dimension *); MCAPI void tickEntities(); MCAPI void unregisterTemporaryPointer(class _TickPtr &); MCAPI void updateWeather(float, int, float, int); //private: MCAPI void _cleanupDisconnectedPlayers(); MCAPI class MapItemSavedData & _createMapSavedData(struct ActorUniqueID const &); MCAPI void _fixEntitiesRegion(std::vector &, class BlockSource const &, class Dimension &); MCAPI enum CrashDumpLogStringID _getCrashDumpLogCategory(); MCAPI std::string _getValidatedPlayerName(std::string const &); MCAPI void _handleChangeDimensionRequests(); MCAPI void _handlePlayerSuspension(); MCAPI void _loadAutonomousEntities(); MCAPI void _loadBiomeData(); MCAPI class MapItemSavedData * _loadMapData(struct ActorUniqueID const &); MCAPI bool _playerChangeDimension(class Player *, class ChangeDimensionRequest &); MCAPI void _saveAutonomousEntities(); MCAPI void _saveSomeChunks(); MCAPI void _syncTime(int); private: };