cWorld


Index:
Articles
Classes
Hooks

Quick navigation:
cArrowEntity
cBeaconEntity
cBlockArea
cBlockEntity
cBlockEntityWithItems
cBlockInfo
cBoundingBox
cBrewingstandEntity
cChatColor
cChestEntity
cChunkDesc
cClientHandle
cCommandBlockEntity
cCompositeChat
cCraftingGrid
cCraftingRecipe
cCryptoHash
cCuboid
cDispenserEntity
cDropperEntity
cDropSpenserEntity
cEnchantments
cEntity
cEntityEffect
cExpBottleEntity
cFile
cFireChargeEntity
cFireworkEntity
cFloater
cFlowerPotEntity
cFurnaceEntity
cGhastFireballEntity
cHangingEntity
cHopperEntity
cIniFile
cInventory
cItem
cItemFrame
cItemGrid
cItems
cJson
cJukeboxEntity
cLineBlockTracer
cLuaWindow
cMap
cMapManager
cMobHeadEntity
cMobSpawnerEntity
cMojangAPI
cMonster
cNetwork
cNoteEntity
cObjective
cPainting
cPawn
cPickup
cPlayer
cPlugin
cPluginLua
cPluginManager
cProjectileEntity
cRankManager
cRoot
cScoreboard
cServer
cServerHandle
cSignEntity
cSplashPotionEntity
cStatManager
cStringCompression
cTCPLink
cTeam
cThrownEggEntity
cThrownEnderPearlEntity
cThrownSnowballEntity
cTNTEntity
cTracer
cUDPEndpoint
cUrlClient
cUrlParser
cWebAdmin
cWindow
cWitherSkullEntity
cWorld
HTTPFormData
HTTPRequest
HTTPTemplateRequest
ItemCategory
lxp
sqlite3
TakeDamageInfo
tolua
Vector3d
Vector3f
Vector3i
Globals

Contents


cWorld class

cWorld is the game world. It is the hub of all the information managed by individual classes, providing convenient access to them. Cuberite supports multiple worlds in any combination of world types. You can have two overworlds, three nethers etc. To enumerate all world the server provides, use the cRoot:ForEachWorld() function.

The world data is held in individual chunks. Each chunk consists of 16 (x) * 16 (z) * 256 (y) blocks, each block is specified by its block type (8-bit) and block metadata (4-bit). Additionally, each block has two light values calculated - skylight (how much daylight it receives) and blocklight (how much light from light-emissive blocks it receives), both 4-bit.

Each world runs several separate threads used for various housekeeping purposes, the most important of those is the Tick thread. This thread updates the game logic 20 times per second, and it is the thread where all the gameplay actions are evaluated. Liquid physics, entity interactions, player ovement etc., all are applied in this thread.

Additional threads include the generation thread (generates new chunks as needed, storage thread (saves and loads chunk from the disk), lighting thread (updates block light values) and the chunksender thread (compresses chunks to send to the clients).

The world provides access to all its players, entities and block entities. Because of multithreading issues, individual objects cannot be retrieved for indefinite handling, but rather must be modified in callbacks, within which they are guaranteed to stay valid.

Physics for individual blocks are handled by the simulators. These will fire in each tick for all blocks that have been scheduled for simulator update ("simulator wakeup"). The simulators include liquid physics, falling blocks, fire spreading and extinguishing and redstone.

Game time is also handled by the world. It provides the time-of-day and the total world age.


Functions

NameParametersReturn valueNotes
AreCommandBlocksEnabled
boolean
Returns whether command blocks are enabled on the (entire) server
BroadcastBlockAction
BlockXnumber
BlockYnumber
BlockZnumber
ActionByte1number
ActionByte2number
BlockTypenumber
ExcludeClientcClientHandle
Broadcasts the BlockAction packet to all clients who have the appropriate chunk loaded (except ExcludeClient). The contents of the packet are specified by the parameters for the call, the blocktype needn't match the actual block that is present in the world data at the specified location.
BroadcastChat
Messagestring
ExcludeClientcClientHandle
ChatPrefixeMessageType
Sends the Message to all players in this world, except the optional ExcludeClient. No formatting is done by the server.
BroadcastChatDeath
Messagestring
ExcludeClientcClientHandle
Prepends Gray [DEATH] / colours entire text (depending on ShouldUseChatPrefixes()) and broadcasts message. For when a player dies.
BroadcastChatFailure
Messagestring
ExcludeClientcClientHandle
Prepends Rose [INFO] / colours entire text (depending on ShouldUseChatPrefixes()) and broadcasts message. For a command that failed to run because of insufficient permissions, etc.
BroadcastChatFatal
Messagestring
ExcludeClientcClientHandle
Prepends Red [FATAL] / colours entire text (depending on ShouldUseChatPrefixes()) and broadcasts message. For a plugin that crashed, or similar.
BroadcastChatInfo
Messagestring
ExcludeClientcClientHandle
Prepends Yellow [INFO] / colours entire text (depending on ShouldUseChatPrefixes()) and broadcasts message. For informational messages, such as command usage.
BroadcastChatSuccess
Messagestring
ExcludeClientcClientHandle
Prepends Green [INFO] / colours entire text (depending on ShouldUseChatPrefixes()) and broadcasts message. For success messages.
BroadcastChatWarning
Messagestring
ExcludeClientcClientHandle
Prepends Rose [WARN] / colours entire text (depending on ShouldUseChatPrefixes()) and broadcasts message. For concerning events, such as plugin reload etc.
BroadcastEntityAnimation
TargetEntitycEntity
Animationnumber
ExcludeClientcClientHandle
Sends an animation of an entity to all clienthandles (except ExcludeClient if given)
BroadcastParticleEffect
ParticleNamestring
Xnumber
Ynumber
Znumber
OffsetXnumber
OffsetYnumber
OffsetZnumber
ParticleDatanumber
ParticleAmountnumber
ExcludeClientcClientHandle
Spawns the specified particles to all players in the world exept the optional ExeptClient. A list of available particles by thinkofdeath can be found Here
BroadcastSoundEffect
SoundNamestring
Xnumber
Ynumber
Znumber
Volumenumber
Pitchnumber
ExcludeClientcClientHandle
Sends the specified sound effect to all players in this world, except the optional ExceptClient
BroadcastSoundParticleEffect
EffectIDnumber
Xnumber
Ynumber
Znumber
EffectDatastring
ExcludeClientcClientHandle
Sends the specified effect to all players in this world, except the optional ExceptClient
CastThunderbolt
Xnumber
Ynumber
Znumber
Creates a thunderbolt at the specified coords
ChangeWeather Forces the weather to change in the next game tick. Weather is changed according to the normal rules: wSunny <-> wRain <-> wStorm
ChunkStay
ChunkCoordTabletable
OnChunkAvailablefunction
OnAllChunksAvailablefunction
Queues the specified chunks to be loaded or generated and calls the specified callbacks once they are loaded. ChunkCoordTable is an arra-table of chunk coords, each coord being a table of 2 numbers: { {Chunk1x, Chunk1z}, {Chunk2x, Chunk2z}, ...}. When any of those chunks are made available (including being available at the start of this call), the OnChunkAvailable() callback is called. When all the chunks are available, the OnAllChunksAvailable() callback is called. The function signatures are:
function OnChunkAvailable(ChunkX, ChunkZ)
function OnAllChunksAvailable()
All return values from the callbacks are ignored.
CreateProjectile
Xnumber
Ynumber
Znumber
ProjectileKindeKind
CreatorcEntity
Originating ItemcItem
SpeedVector3d
Creates a new projectile of the specified kind at the specified coords. The projectile's creator is set to Creator (may be nil). The item that created the projectile entity, commonly the player's currently equipped item, is used at present for fireworks to correctly set their entity metadata. It is not used for any other projectile. Optional speed indicates the initial speed for the projectile.
DigBlock
Xnumber
Ynumber
Znumber
Replaces the specified block with air, without dropping the usual pickups for the block. Wakes up the simulators for the block and its neighbors.
DoExplosionAt
Forcenumber
Xnumber
Ynumber
Znumber
CanCauseFireboolean
SourceeExplosionSource
SourceDataany
Creates an explosion of the specified relative force in the specified position. If CanCauseFire is set, the explosion will set blocks on fire, too. The Source parameter specifies the source of the explosion, one of the esXXX constants. The SourceData parameter is specific to each source type, usually it provides more info about the source.
DoWithBeaconAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a beacon at the specified coords, calls the CallbackFunction with the cBeaconEntity parameter representing the beacon. The CallbackFunction has the following signature:
function Callback(BeaconEntity)
The function returns false if there is no beacon, or if there is, it returns the bool value that the callback has returned.
DoWithBlockEntityAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a block entity at the specified coords, calls the CallbackFunction with the cBlockEntity parameter representing the block entity. The CallbackFunction has the following signature:
function Callback(BlockEntity)
The function returns false if there is no block entity, or if there is, it returns the bool value that the callback has returned. Use tolua.cast() to cast the Callback's BlockEntity parameter to the correct cBlockEntity descendant.
DoWithBrewingstandAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a brewingstand at the specified coords, calls the CallbackFunction with the cBrewingstandEntity parameter representing the brewingstand. The CallbackFunction has the following signature:
function Callback(cBrewingstandEntity)
The function returns false if there is no brewingstand, or if there is, it returns the bool value that the callback has returned.
DoWithChestAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a chest at the specified coords, calls the CallbackFunction with the cChestEntity parameter representing the chest. The CallbackFunction has the following signature:
function Callback(ChestEntity)
The function returns false if there is no chest, or if there is, it returns the bool value that the callback has returned.
DoWithCommandBlockAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a command block at the specified coords, calls the CallbackFunction with the cCommandBlockEntity parameter representing the command block. The CallbackFunction has the following signature:
function Callback(CommandBlockEntity)
The function returns false if there is no command block, or if there is, it returns the bool value that the callback has returned.
DoWithDispenserAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a dispenser at the specified coords, calls the CallbackFunction with the cDispenserEntity parameter representing the dispenser. The CallbackFunction has the following signature:
function Callback(DispenserEntity)
The function returns false if there is no dispenser, or if there is, it returns the bool value that the callback has returned.
DoWithDropSpenserAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a dropper or a dispenser at the specified coords, calls the CallbackFunction with the cDropSpenserEntity parameter representing the dropper or dispenser. The CallbackFunction has the following signature:
function Callback(DropSpenserEntity)
Note that this can be used to access both dispensers and droppers in a similar way. The function returns false if there is neither dispenser nor dropper, or if there is, it returns the bool value that the callback has returned.
DoWithDropperAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a dropper at the specified coords, calls the CallbackFunction with the cDropperEntity parameter representing the dropper. The CallbackFunction has the following signature:
function Callback(DropperEntity)
The function returns false if there is no dropper, or if there is, it returns the bool value that the callback has returned.
DoWithEntityByID
EntityIDnumber
CallbackFunctionfunction
boolean
If an entity with the specified ID exists, calls the callback with the cEntity parameter representing the entity. The CallbackFunction has the following signature:
function Callback(Entity)
The function returns false if the entity was not found, and it returns the same bool value that the callback has returned if the entity was found.
DoWithFlowerPotAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a flower pot at the specified coords, calls the CallbackFunction with the cFlowerPotEntity parameter representing the flower pot. The CallbackFunction has the following signature:
function Callback(FlowerPotEntity)
The function returns false if there is no flower pot, or if there is, it returns the bool value that the callback has returned.
DoWithFurnaceAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a furnace at the specified coords, calls the CallbackFunction with the cFurnaceEntity parameter representing the furnace. The CallbackFunction has the following signature:
function Callback(FurnaceEntity)
The function returns false if there is no furnace, or if there is, it returns the bool value that the callback has returned.
DoWithMobHeadAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a mob head at the specified coords, calls the CallbackFunction with the cMobHeadEntity parameter representing the furnace. The CallbackFunction has the following signature:
function Callback(MobHeadEntity)
The function returns false if there is no mob head, or if there is, it returns the bool value that the callback has returned.
DoWithNoteBlockAt
BlockXnumber
BlockYnumber
BlockZnumber
CallbackFunctionfunction
boolean
If there is a note block at the specified coords, calls the CallbackFunction with the cNoteEntity parameter representing the note block. The CallbackFunction has the following signature:
function Callback(NoteEntity)
The function returns false if there is no note block, or if there is, it returns the bool value that the callback has returned.
DoWithPlayer
PlayerNamestring
CallbackFunctionfunction
boolean
If there is a player of the specified name (exact match), calls the CallbackFunction with the cPlayer parameter representing the player. The CallbackFunction has the following signature:
function Callback(Player)
The function returns false if the player was not found, or whatever bool value the callback returned if the player was found.
DoWithPlayerByUUID
PlayerUUIDstring
CallbackFunctionfunction
boolean
If there is the player with the uuid, calls the CallbackFunction with the cPlayer parameter representing the player. The CallbackFunction has the following signature:
function Callback(Player)
The function returns false if the player was not found, or whatever bool value the callback returned if the player was found.
FastSetBlock
BlockCoordsVector3i
BlockTypenumber
BlockMetanumber
Sets the block at the specified coords, without waking up the simulators or replacing the block entities for the previous block type. Do not use if the block being replaced has a block entity tied to it!
FastSetBlock
BlockXnumber
BlockYnumber
BlockZnumber
BlockTypenumber
BlockMetanumber
Sets the block at the specified coords, without waking up the simulators or replacing the block entities for the previous block type. Do not use if the block being replaced has a block entity tied to it!
FindAndDoWithPlayer
PlayerNamestring
CallbackFunctionfunction
boolean
Calls the given callback function for the player with the name best matching the name string provided.
This function is case-insensitive and will match partial names.
Returns false if player not found or there is ambiguity, true otherwise. The CallbackFunction has the following signature:
function Callback(Player)
ForEachBlockEntityInChunk
ChunkXnumber
ChunkZnumber
CallbackFunctionfunction
boolean
Calls the specified callback for each block entity in the chunk. Returns true if all block entities in the chunk have been processed (including when there are zero block entities), or false if the callback has aborted the enumeration by returning true. The CallbackFunction has the following signature:
function Callback(BlockEntity)
The callback should return false or no value to continue with the next block entity, or true to abort the enumeration. Use tolua.cast() to cast the Callback's BlockEntity parameter to the correct cBlockEntity descendant.
ForEachBrewingstandInChunk
ChunkXnumber
ChunkZnumber
CallbackFunctionfunction
boolean
Calls the specified callback for each brewingstand in the chunk. Returns true if all brewingstands in the chunk have been processed (including when there are zero brewingstands), or false if the callback has aborted the enumeration by returning true. The CallbackFunction has the following signature:
function Callback(cBrewingstandEntity)
The callback should return false or no value to continue with the next brewingstand, or true to abort the enumeration.
ForEachChestInChunk
ChunkXnumber
ChunkZnumber
CallbackFunctionfunction
boolean
Calls the specified callback for each chest in the chunk. Returns true if all chests in the chunk have been processed (including when there are zero chests), or false if the callback has aborted the enumeration by returning true. The CallbackFunction has the following signature:
function Callback(ChestEntity)
The callback should return false or no value to continue with the next chest, or true to abort the enumeration.
ForEachEntity
CallbackFunctionfunction
boolean
Calls the specified callback for each entity in the loaded world. Returns true if all the entities have been processed (including when there are zero entities), or false if the callback function has aborted the enumeration by returning true. The callback function has the following signature:
function Callback(Entity)
The callback should return false or no value to continue with the next entity, or true to abort the enumeration.
ForEachEntityInBox
BoxcBoundingBox
CallbackFunctionfunction
boolean
Calls the specified callback for each entity in the specified bounding box. Returns true if all the entities have been processed (including when there are zero entities), or false if the callback function has aborted the enumeration by returning true. If any chunk within the bounding box is not valid, it is silently skipped without any notification. The callback function has the following signature:
function Callback(Entity)
The callback should return false or no value to continue with the next entity, or true to abort the enumeration.
ForEachEntityInChunk
ChunkXnumber
ChunkZnumber
CallbackFunctionfunction
boolean
Calls the specified callback for each entity in the specified chunk. Returns true if all the entities have been processed (including when there are zero entities), or false if the chunk is not loaded or the callback function has aborted the enumeration by returning true. The callback function has the following signature:
function Callback(Entity)
The callback should return false or no value to continue with the next entity, or true to abort the enumeration.
ForEachFurnaceInChunk
ChunkXnumber
ChunkZnumber
CallbackFunctionfunction
boolean
Calls the specified callback for each furnace in the chunk. Returns true if all furnaces in the chunk have been processed (including when there are zero furnaces), or false if the callback has aborted the enumeration by returning true. The CallbackFunction has the following signature:
function Callback(FurnaceEntity)
The callback should return false or no value to continue with the next furnace, or true to abort the enumeration.
ForEachLoadedChunk (undocumented)
ForEachPlayer
CallbackFunctionfunction
boolean
Calls the specified callback for each player in the loaded world. Returns true if all the players have been processed (including when there are zero players), or false if the callback function has aborted the enumeration by returning true. The callback function has the following signature:
function Callback(Player)
The callback should return false or no value to continue with the next player, or true to abort the enumeration.
GenerateChunk
ChunkXnumber
ChunkZnumber
Queues the specified chunk in the chunk generator. Ignored if the chunk is already generated (use RegenerateChunk() to force chunk re-generation).
GetBiomeAt
BlockXnumber
BlockZnumber
eBiomeEMCSBiome
Returns the biome at the specified coords. Reads the biome from the chunk, if it is loaded, otherwise it uses the chunk generator to provide the biome value.
GetBlock
BlockCoordsVector3i
BLOCKTYPEnumber
Returns the block type of the block at the specified coords, or 0 if the appropriate chunk is not loaded.
GetBlock
BlockXnumber
BlockYnumber
BlockZnumber
BLOCKTYPEnumber
Returns the block type of the block at the specified coords, or 0 if the appropriate chunk is not loaded.
GetBlockBlockLight
BlockXnumber
BlockYnumber
BlockZnumber
number
Returns the amount of block light at the specified coords, or 0 if the appropriate chunk is not loaded.
GetBlockBlockLight
PosVector3i
number
Returns the amount of block light at the specified coords, or 0 if the appropriate chunk is not loaded.
GetBlockInfo
BlockXnumber
BlockYnumber
BlockZnumber
IsBlockValidboolean
BlockTypenumber
BlockMetanumber
BlockSkyLightnumber
BlockBlockLightnumber
Returns the complete block info for the block at the specified coords. The first value specifies if the block is in a valid loaded chunk, the other values are valid only if BlockValid is true.
GetBlockMeta
BlockXnumber
BlockYnumber
BlockZnumber
number
Returns the block metadata of the block at the specified coords, or 0 if the appropriate chunk is not loaded.
GetBlockMeta
BlockCoordsVector3i
number
Returns the block metadata of the block at the specified coords, or 0 if the appropriate chunk is not loaded.
GetBlockSkyLight
BlockXnumber
BlockYnumber
BlockZnumber
number
Returns the block skylight of the block at the specified coords, or 0 if the appropriate chunk is not loaded.
GetBlockTypeMeta
BlockXnumber
BlockYnumber
BlockZnumber
IsBlockValidboolean
BlockTypenumber
BlockMetanumber
Returns the block type and metadata for the block at the specified coords. The first value specifies if the block is in a valid loaded chunk, the other values are valid only if BlockValid is true.
GetDefaultWeatherInterval
WeathereWeather
Returns the default weather interval for the specific weather type. Returns -1 for any unknown weather.
GetDimension
eDimension
Returns the dimension of the world - dimOverworld, dimNether or dimEnd.
GetGameMode
eGameMode
Returns the gamemode of the world - gmSurvival, gmCreative or gmAdventure.
GetGeneratorQueueLength
number
Returns the number of chunks that are queued in the chunk generator.
GetHeight
BlockXnumber
BlockZnumber
number
Returns the maximum height of the particula block column in the world. If the chunk is not loaded, it waits for it to load / generate. WARNING: Do not use, Use TryGetHeight() instead for a non-waiting version, otherwise you run the risk of a deadlock!
GetIniFileName
string
Returns the name of the world.ini file that the world uses to store the information.
GetLightingQueueLength
number
Returns the number of chunks in the lighting thread's queue.
GetLinkedEndWorldName
string
Returns the name of the end world this world is linked to.
GetLinkedNetherWorldName
string
Returns the name of the Netherworld linked to this world.
GetLinkedOverworldName
string
Returns the name of the world this world is linked to.
GetMapManager
cMapManager
Returns the MapManager object used by this world.
GetMaxCactusHeight
number
Returns the configured maximum height to which cacti will grow naturally.
GetMaxNetherPortalHeight
number
Returns the maximum height for a nether portal
GetMaxNetherPortalWidth
number
Returns the maximum width for a nether portal
GetMaxSugarcaneHeight
number
Returns the configured maximum height to which sugarcane will grow naturally.
GetMaxViewDistance
number
Returns the maximum viewdistance that players can see in this world. The view distance is the amount of chunks around the player that the player can see.
GetMinNetherPortalHeight
number
Returns the minimum height for a nether portal
GetMinNetherPortalWidth
number
Returns the minimum width for a nether portal
GetName
string
Returns the name of the world, as specified in the settings.ini file.
GetNumChunks
number
Returns the number of chunks currently loaded.
GetNumUnusedDirtyChunks
number
Returns the number of unused dirty chunks. That's the number of chunks that we can save and then unload.
GetScoreBoard
cScoreboard
Returns the Scoreboard object used by this world.
GetSeed
number
Returns the seed of the world.
GetSignLines
BlockXnumber
BlockYnumber
BlockZnumber
IsValidboolean
Line1string
Line2string
Line3string
Line4string
Returns true and the lines of a sign at the specified coords, or false if there is no sign at the coords.
GetSpawnX
number
Returns the X coord of the default spawn
GetSpawnY
number
Returns the Y coord of the default spawn
GetSpawnZ
number
Returns the Z coord of the default spawn
GetStorageLoadQueueLength
number
Returns the number of chunks queued up for loading
GetStorageSaveQueueLength
number
Returns the number of chunks queued up for saving
GetTNTShrapnelLevel
ShrapnelLeveleShrapnelLevel
Returns the shrapnel level, representing the block types that are propelled outwards following an explosion. Based on this value and a random picker, blocks are selectively converted to physics entities (FallingSand) and flung outwards.
GetTicksUntilWeatherChange
number
Returns the number of ticks that will pass before the weather is changed
GetTimeOfDay
number
Returns the number of ticks that have passed from the sunrise, 0 .. 24000.
GetWeather
eWeather
Returns the current weather in the world (wSunny, wRain, wStorm). To check for weather, use IsWeatherXXX() functions instead.
GetWorldAge
number
Returns the total age of the world, in ticks. The age always grows, cannot be set by plugins and is unrelated to TimeOfDay.
GrowCactus
BlockXnumber
BlockYnumber
BlockZnumber
NumBlocksToGrownumber
number
Grows a cactus block at the specified coords, by up to the specified number of blocks. Adheres to the world's maximum cactus growth (GetMaxCactusHeight()). Returns the amount of blocks the cactus grew inside this call.
GrowMelonPumpkin
BlockXnumber
BlockYnumber
BlockZnumber
StemBlockTypenumber
boolean
Grows a melon or pumpkin, based on the stem block type specified (assumed to be at the coords provided). Checks for normal melon / pumpkin growth conditions - stem not having another produce next to it and suitable ground below. Returns true if the melon or pumpkin grew successfully.
GrowRipePlant
BlockXnumber
BlockYnumber
BlockZnumber
IsByBonemealboolean
boolean
Grows the plant at the specified coords. If IsByBonemeal is true, checks first if the specified plant type is bonemealable in the settings. Returns true if the plant was grown, false if not.
GrowSugarcane
BlockXnumber
BlockYnumber
BlockZnumber
NumBlocksToGrownumber
number
Grows a sugarcane block at the specified coords, by up to the specified number of blocks. Adheres to the world's maximum sugarcane growth (GetMaxSugarcaneHeight()). Returns the amount of blocks the sugarcane grew inside this call.
GrowTree
BlockXnumber
BlockYnumber
BlockZnumber
Grows a tree based at the specified coords. If there is a sapling there, grows the tree based on that sapling, otherwise chooses a tree image based on the biome.
GrowTreeByBiome
BlockXnumber
BlockYnumber
BlockZnumber
Grows a tree based at the specified coords. The tree type is picked from types available for the biome at those coords.
GrowTreeFromSapling
BlockXnumber
BlockYnumber
BlockZnumber
SaplingMetanumber
Grows a tree based at the specified coords. The tree type is determined from the sapling meta (the sapling itself needn't be present).
IsBlockDirectlyWatered
BlockXnumber
BlockYnumber
BlockZnumber
boolean
Returns true if the specified block has a water block right next to it (on the X/Z axes)
IsDaylightCycleEnabled
boolean
Returns true if the daylight cycle is enabled.
IsDeepSnowEnabled
boolean
Returns whether the configuration has DeepSnow enabled.
IsGameModeAdventure
boolean
Returns true if the current gamemode is gmAdventure.
IsGameModeCreative
boolean
Returns true if the current gamemode is gmCreative.
IsGameModeSpectator
boolean
Returns true if the current gamemode is gmSpectator.
IsGameModeSurvival
boolean
Returns true if the current gamemode is gmSurvival.
IsPVPEnabled
boolean
Returns whether PVP is enabled in the world settings.
IsTrapdoorOpen
BlockXnumber
BlockYnumber
BlockZnumber
boolean
Returns false if there is no trapdoor there or if the block isn't a trapdoor or if the chunk wasn't loaded. Returns true if trapdoor is open.
IsWeatherRain
boolean
Returns true if the current world is raining (no thunderstorm).
IsWeatherRainAt
BlockXnumber
BlockZnumber
boolean
Returns true if the specified location is raining (takes biomes into account - it never rains in a desert).
IsWeatherStorm
boolean
Returns true if the current world is stormy.
IsWeatherStormAt
BlockXnumber
BlockZnumber
boolean
Returns true if the specified location is stormy (takes biomes into account - no storm in a desert).
IsWeatherSunny
boolean
Returns true if the current weather is sunny.
IsWeatherSunnyAt
BlockXnumber
BlockZnumber
boolean
Returns true if the current weather is sunny at the specified location (takes into account biomes).
IsWeatherWet
boolean
Returns true if the current world has any precipitation (rain or storm).
IsWeatherWetAt
BlockXnumber
BlockZnumber
boolean
Returns true if the specified location has any precipitation (rain or storm) (takes biomes into account, deserts are never wet).
PrepareChunk
ChunkXnumber
ChunkZnumber
Callbackfunction
Queues the chunk for preparing - making sure that it's generated and lit. It is legal to call with no callback. The callback function has the following signature:
function Callback(ChunkX, ChunkZ)
QueueBlockForTick
BlockXnumber
BlockYnumber
BlockZnumber
TicksToWaitnumber
Queues the specified block to be ticked after the specified number of gameticks.
QueueSaveAllChunks Queues all chunks to be saved in the world storage thread
QueueTask
TaskFunctionfunction
Queues the specified function to be executed in the tick thread. This is the primary means of interaction with a cWorld from the WebAdmin page handlers (see WebWorldThreads). The function signature is
function(World)
All return values from the function are ignored. Note that this function is actually called *after* the QueueTask() function returns. Note that it is unsafe to store references to Cuberite objects, such as entities, across from the caller to the task handler function; store the EntityID instead.
QueueUnloadUnusedChunks Queues a cTask that unloads chunks that are no longer needed and are saved.
RegenerateChunk
ChunkXnumber
ChunkZnumber
Queues the specified chunk to be re-generated, overwriting the current data. To queue a chunk for generating only if it doesn't exist, use the GenerateChunk() instead.
ScheduleTask
DelayTicksnumber
TaskFunctionfunction
Queues the specified function to be executed in the world's tick thread after a the specified number of ticks. This enables operations to be queued for execution in the future. The function signature is
function(World)
All return values from the function are ignored. Note that it is unsafe to store references to Cuberite objects, such as entities, across from the caller to the task handler function; store the EntityID instead.
SendBlockTo
BlockXnumber
BlockYnumber
BlockZnumber
PlayercPlayer
Sends the block at the specified coords to the specified player's client, as an UpdateBlock packet.
SetAreaBiome
MinXnumber
MaxXnumber
MinZnumber
MaxZnumber
BiomeEMCSBiome
boolean
Sets the biome in the rectangular area specified. Returns true if successful, false if any of the chunks were unloaded.
SetAreaBiome
CuboidcCuboid
BiomeEMCSBiome
boolean
Sets the biome in the cuboid specified. Returns true if successful, false if any of the chunks were unloaded. The cuboid needn't be sorted.
SetBiomeAt
BlockXnumber
BlockZnumber
BiomeEMCSBiome
boolean
Sets the biome at the specified block coords. Returns true if successful, false otherwise.
SetBlock
BlockXnumber
BlockYnumber
BlockZnumber
BlockTypenumber
BlockMetanumber
ShouldSendToClientsboolean
Sets the block at the specified coords, replaces the block entities for the previous block type, creates a new block entity for the new block, if appropriate, and wakes up the simulators. This is the preferred way to set blocks, as opposed to FastSetBlock(), which is only to be used under special circumstances. If ShouldSendToClients is true (default), the change is broadcast to all players who have this chunk loaded; if false, the change is made server-side only.
SetBlockMeta
BlockCoordsVector3i
BlockMetanumber
Sets the meta for the block at the specified coords.
SetBlockMeta
BlockXnumber
BlockYnumber
BlockZnumber
BlockMetanumber
ShouldMarkChunkDirtyboolean
ShouldSendToClientsboolean
Sets the meta for the block at the specified coords. If ShouldMarkChunkDirty is true (default), the chunk is marked dirty and will be saved later on. If ShouldSendToClients is true (default), the change is broadcast to all clients who have the chunk loaded, if false, the change is kept server-side only.
SetChunkAlwaysTicked
ChunkXnumber
ChunkZnumber
IsAlwaysTickedboolean
Sets the chunk to always be ticked and loaded even when it doesn't contain any clients. IsAlwaysTicked set to true turns forced ticking on, set to false turns it off. Every call with 'true' should be paired with a later call with 'false', otherwise the ticking won't stop. Multiple actions can request ticking independently, the ticking will continue until the last call with 'false'.
SetCommandBlockCommand
BlockXnumber
BlockYnumber
BlockZnumber
Commandstring
boolean
Sets the command to be executed in a command block at the specified coordinates. Returns if command was changed.
SetCommandBlocksEnabled
AreEnabledboolean
Sets whether command blocks should be enabled on the (entire) server.
SetDaylightCycleEnabled
IsEnabledboolean
Starts or stops the daylight cycle.
SetLinkedEndWorldName
WorldNamestring
Sets the name of the world that the end portal should link to.
SetLinkedNetherWorldName
WorldNamestring
Sets the name of the world that the nether portal should link to.
SetLinkedOverworldName
WorldNamestring
Sets the name of the world that the nether portal should link to?
SetMaxNetherPortalHeight
Heightnumber
Sets the maximum height for a nether portal
SetMaxNetherPortalWidth
Widthnumber
Sets the maximum width for a nether portal
SetMaxViewDistance
MaxViewDistancenumber
Sets the maximum viewdistance of the players in the world. This maximum takes precedence over each player's ViewDistance setting.
SetMinNetherPortalHeight
Heightnumber
Sets the minimum height for a nether portal
SetMinNetherPortalWidth
Widthnumber
Sets the minimum width for a nether portal
SetNextBlockTick
BlockXnumber
BlockYnumber
BlockZnumber
Sets the blockticking to start at the specified block in the next tick.
SetShouldUseChatPrefixes
ShouldUseChatPrefixesboolean
Sets whether coloured chat prefixes such as [INFO] is used with the SendMessageXXX() or BroadcastChatXXX(), or simply the entire message is coloured in the respective colour.
SetSignLines
BlockXnumber
BlockYnumber
BlockZnumber
Line1string
Line2string
Line3string
Line4string
PlayercPlayer
Sets the sign text at the specified coords. The sign-updating hooks are called for the change. The Player parameter is used to indicate the player from whom the change has come, it may be nil.
SetSpawn
Xnumber
Ynumber
Znumber
boolean
Sets the default spawn at the specified coords. Returns false if the new spawn couldn't be stored in the INI file.
SetTNTShrapnelLevel
ShrapnelLeveleShrapnelLevel
Sets the Shrapnel level of the world.
SetTicksUntilWeatherChange
NumTicksnumber
Sets the number of ticks after which the weather will be changed.
SetTimeOfDay
TimeOfDayTicksnumber
Sets the time of day, expressed as number of ticks past sunrise, in the range 0 .. 24000.
SetTrapdoorOpen
BlockXnumber
BlockYnumber
BlockZnumber
IsOpenboolean
Opens or closes a trapdoor at the specific coordinates.
SetWeather
WeathereWeather
Sets the current weather (wSunny, wRain, wStorm) and resets the TicksUntilWeatherChange to the default value for the new weather. The normal weather-changing hooks are called for the change.
ShouldBroadcastAchievementMessages
boolean
Returns true if the server should broadcast achievement messages in this world.
ShouldBroadcastDeathMessages
boolean
Returns true if the server should broadcast death messages in this world.
ShouldLavaSpawnFire
boolean
Returns true if the world is configured to spawn fires near lava (world.ini: [Physics].ShouldLavaSpawnFire value)
ShouldUseChatPrefixes
boolean
Returns whether coloured chat prefixes are prepended to chat messages or the entire message is simply coloured.
SpawnBoat
Xnumber
Ynumber
Znumber
EntityIDnumber
Spawns a boat at the specific coordinates. Returns the entity ID of the new boat, or cEntity.NO_ID if no boat was created.
SpawnExperienceOrb
Xnumber
Ynumber
Znumber
Rewardnumber
EntityIDnumber
Spawns an experience orb at the specified coords, with the given reward
SpawnFallingBlock
Xnumber
Ynumber
Znumber
BlockTypenumber
BlockMetanumber
EntityIDnumber
Spawns a Falling Block entity at the specified coords with the given block type/meta
SpawnItemPickups
PickupscItems
Xnumber
Ynumber
Znumber
FlyAwaySpeednumber
IsPlayerCreatedboolean
Spawns the specified pickups at the position specified. The FlyAwaySpeed is a coefficient (default: 1) used to initialize the random speed in which the pickups fly away from the spawn position. The IsPlayerCreated parameter (default: false) is used to initialize the created cPickup object's IsPlayerCreated value.
SpawnItemPickups
PickupscItems
Xnumber
Ynumber
Znumber
SpeedXnumber
SpeedYnumber
SpeedZnumber
IsPlayerCreatedboolean
Spawns the specified pickups at the position specified. All the pickups fly away from the spawn position using the specified speed. The IsPlayerCreated parameter (default: false) is used to initialize the created cPickup object's IsPlayerCreated value.
SpawnMinecart
Xnumber
Ynumber
Znumber
MinecartTypenumber
ItemcItem
BlockHeightnumber
EntityIDnumber
Spawns a minecart at the specific coordinates. MinecartType is the item type of the minecart. If the minecart is an empty minecart then the given Item (default: empty) is the block to be displayed inside the minecart, and BlockHeight (default: 1) is the relative distance of the block from the minecart. Returns the entity ID of the new minecart, or cEntity.NO_ID if no minecart was created.
SpawnMob
Xnumber
Ynumber
Znumber
MonsterTypecMonster
IsBabyboolean
EntityIDnumber
Spawns the specified type of mob at the specified coords. If the Baby parameter is true, the mob will be a baby. Returns the EntityID of the creates entity, or -1 on failure.
SpawnPrimedTNT
Xnumber
Ynumber
Znumber
FuseTicksnumber
InitialVelocityCoeffnumber
Spawns a primed TNT entity at the specified coords, with the given fuse ticks. The entity gets a random speed multiplied by the InitialVelocityCoeff, 1 being the default value.
TryGetHeight
BlockXnumber
BlockZnumber
IsValidboolean
Heightnumber
Returns true and height of the highest non-air block if the chunk is loaded, or false otherwise.
UpdateSign
BlockXnumber
BlockYnumber
BlockZnumber
Line1string
Line2string
Line3string
Line4string
PlayercPlayer
(DEPRECATED) Please use SetSignLines().
UseBlockEntity
PlayercPlayer
BlockXnumber
BlockYnumber
BlockZnumber
Makes the specified Player use the block entity at the specified coords (open chest UI, etc.) If the cords are in an unloaded chunk or there's no block entity, ignores the call.
VillagersShouldHarvestCrops Returns true if villagers can harvest crops.
WakeUpSimulators
BlockXnumber
BlockYnumber
BlockZnumber
Wakes up the simulators for the specified block.
WakeUpSimulatorsInArea
MinBlockXnumber
MaxBlockXnumber
MinBlockYnumber
MaxBlockYnumber
MinBlockZnumber
MaxBlockZnumber
Wakes up the simulators for all the blocks in the specified area (edges inclusive).

Using callbacks

To avoid problems with stale objects, the cWorld class will not let plugins get a direct pointer to an entity, block entity or a player. Such an object could be modified or even destroyed by another thread while the plugin holds it, so it would be rather unsafe.

Instead, the cWorld provides access to these objects using callbacks. The plugin provides a function that is called and receives the object as a parameter; cWorld guarantees that while the callback is executing, the object will stay valid. If a plugin needs to "remember" the object outside of the callback, it needs to store the entity ID, blockentity coords or player name.

The following code examples show how to use the callbacks

This code teleports player Player to another player named ToName in the same world:

-- Player is a cPlayer object
-- ToName is a string
-- World is a cWorld object
World:ForEachPlayer(
	function (a_OtherPlayer)
	if (a_OtherPlayer:GetName() == ToName) then
		Player:TeleportToEntity(a_OtherPlayer);
	end
);

This code fills each furnace in the chunk with 64 coals:

-- Player is a cPlayer object
-- World is a cWorld object
World:ForEachFurnaceInChunk(Player:GetChunkX(), Player:GetChunkZ(),
	function (a_Furnace)
		a_Furnace:SetFuelSlot(cItem(E_ITEM_COAL, 64));
	end
);

This code teleports all spiders up by 100 blocks:

-- World is a cWorld object
World:ForEachEntity(
	function (a_Entity)
		if not(a_Entity:IsMob()) then
			return;
		end

		-- Get the cMonster out of cEntity, now that we know the entity represents one.
		local Monster = tolua.cast(a_Entity, "cMonster");
		if (Monster:GetMobType() == mtSpider) then
			Monster:TeleportToCoords(Monster:GetPosX(), Monster:GetPosY() + 100, Monster:GetPosZ());
		end
	end
);

Generated on 2017-03-29 13:00:06, Build ID Unknown, Commit approx: 5dc0189a160a9ab4d6c9c2865fc8ff5d7ca32d69