UNPKG

@jsprismarine/prismarine

Version:

Dedicated Minecraft Bedrock Edition server written in TypeScript

170 lines 5.12 kB
import { default as GameruleManager } from './GameruleManager'; import { Vector3 } from '../../../math/src/index.ts'; import { Block, Player, Server, Service } from '../'; import { Entity } from '../entity/Entity'; import { Item } from '../item/Item'; import { WorldEvent } from '../network/packet/WorldEventPacket'; import { Generator } from './Generator'; import { default as Chunk } from './chunk/Chunk'; import { default as BaseProvider } from './providers/BaseProvider'; export interface WorldData { name: string; path: string; server: Server; provider: BaseProvider; seed: number; generator: Generator; config?: any; } export interface LevelData { spawn: { x: number; y: number; z: number; } | undefined; gameRules: Array<[string, any]>; entities: Array<{ uuid: string; type: string; position: { x: number; y: number; z: number; }; }>; } export interface WorldPlayerData { gamemode: string; position: { x: number; y: number; z: number; pitch: number; yaw: number; headYaw: number; }; } export declare class World implements Service { private readonly uuid; private name; private readonly entities; private readonly chunks; private readonly gameruleManager; private currentTick; private readonly provider; private readonly server; private readonly seed; private readonly generator; private readonly config; private spawn; constructor({ name, server, provider, seed, generator, config }: WorldData); /** * On enable hook. * @group Lifecycle */ enable(): Promise<void>; /** * On disable hook. * @group Lifecycle */ disable(): Promise<void>; getGenerator(): Generator; /** * Called every tick. * * @param tick */ update(tick: number): Promise<void>; /** * Returns a block instance in the given world position. * @param {number} x - block x * @param {number} y - block y * @param {number} z - block z * @param {number} [layer=0] - block storage layer (0 for blocks, 1 for liquids) */ getBlock(x: number, y: number, z: number, layer?: number): Promise<Block>; /** * Returns the chunk in the specifies x and z, if the chunk doesn't exists * it is generated. */ getChunk(cx: number, cz: number): Promise<Chunk>; /** * Loads a chunk in a given x and z and returns its. * @param {number} x - x coordinate. * @param {number} z - z coordinate. */ loadChunk(x: number, z: number, _ignoreWarn?: boolean): Promise<Chunk>; /** * Sends a world event packet to all the viewers in the position chunk. * @param {Vector3} position - world position. * @param {number} event - event identifier. * @param {number} data - event data. */ sendWorldEvent(position: Vector3 | null, event: WorldEvent, data: number): Promise<void>; /** * Returns a chunk from a block position's x and z coordinates. */ getChunkAt(x: Vector3): Promise<Chunk>; getChunkAt(x: number, z: number): Promise<Chunk>; /** * Returns the world default spawn position. */ getSpawnPosition(): Promise<Vector3>; /** * Set the world's spawn position. * @param {Vector3} pos - The position. */ setSpawnPosition(pos: Vector3): void; useItemOn(itemInHand: Item | Block | null, blockPosition: Vector3, face: number, clickPosition: Vector3, player: Player): Promise<void>; /** * Sends the current time to all players in the world. */ sendTime(): Promise<void>; /** * Adds an entity to the level. * @param {Entity} entity - The entity to add. */ addEntity(entity: Entity): Promise<void>; /** * Removes an entity from the level. * @param {Entity} entity - The entity to remove. */ removeEntity(entity: Entity): Promise<void>; /** * Get all entities in this world. * @returns {Entity[]} the entities. */ getEntities(): Entity[]; /** * Get all players in this world. * @returns {Player[]} the players. */ getPlayers(): Player[]; /** * Saves changed chunks into disk. */ saveChunks(): Promise<void>; save(): Promise<void>; getGameruleManager(): GameruleManager; getTicks(): number; setTicks(tick: number): void; getProvider(): any; getUUID(): string; getName(): string; getFormattedName(): string; getSeed(): number; private getLevelData; saveLevelData(): Promise<void>; /** * Get the player data for a player. * @param {Player} player - The player to get the data for. * @returns {Promise<WorldPlayerData>} The player data. */ getPlayerData(player: Player): Promise<Partial<WorldPlayerData>>; savePlayerData(player: Player): Promise<void>; /** * @returns {Server} The server instance. */ getServer(): Server; } //# sourceMappingURL=World.d.ts.map