flying-squid/doc/api.md

12 KiB

Table of Contents generated with DocToc

API

Classes

Entity

See prismarine-entity

MCServer

Flying-squid.createMCServer(options)

Create and return an instance of the class MCServer.

options is an object containing the settings

Properties

serv.entityMaxId

Current maximum entity id

serv.players

Array of connected players

serv.uuidToPlayer

Object uuid to players

serv.overworld

Contains the overworld world. This is where the default spoint is and where peope will play survival and such.

serv.netherworld

Contains the nether world. This WILL be used when a player travels through a portal if they are in the overworld.

serv.endworld

WILL contain the end world. NOT YET IMPLEMENTED!

serv.entities

All of the entities

serv.bannedPlayers

Object of players that are banned, key is their uuid. Use serv.getUUIDFromUsername() if you only have their username.

Example player:

{
    time: <time in epoch>,
    reason: <reason given>
}

serv.time

Current daylight cycle time in ticks. Morning is 0, noon is 6000, evening is 12000, and night is 18000. Resets to 0 at 24000. Use serv.setTime(time) to set the time.

serv.tickCount

Total number of ticks that have passed since the start of the world. Best to use with modulo (e.g. Something every 10 seconds is serv.tickCount % 20*10 == 0)

serv.doDaylightCycle

Default true. If false, time will not automatically pass.

Events

"error" (error)

Fires when there is an error.

"clientError" (client,error)

Fires when client has an error.

"listening" (port)

Fires when the server is listening.

"newPlayer" (player)

Fires when player login, allow external player plugins.

"banned" (banner,bannedUsername,reason)

banner banned bannedUsername with reason

"tick" (count)

Fires when one tick has passed (default is 50ms). count is the total world ticks (same as serv.tickCount)

Methods

serv.createLog()

creates the log file

serv.log(message)

logs a message

serv.broadcast(message[,color])

broadcasts message to all the players with the optional color.

serv.getPlayer(username)

Returns player object with that username or, if no such player is on the server, null.

serv.getNearby(loc)

Returns array of players within loc. loc is a required paramater. The object contains:

  • world: World position is in
  • position: Center position
  • radius: Distance from position

server.banUsername(username,reason,callback)

Bans players given a username. Mainly used if player is not online, otherwise use player.ban().

server.ban(uuid,reason)

Ban player given a uuid. If the player is online, using player.ban(). Bans with reason or You are banned!.

server.pardonUsername(username,callback)

Pardons a player given a username.

server.pardon(uuid)

Pardons a player given their uuid. Returns false if they are not banned.

server.getUUIDFromUsername(username,callback)

Gets UUID from username. Since it needs to fetch from mojang servers, it is not immediate.

Arguments in format: callback(uuid). uuid is null if no such username exists.

server.setTime(time)

Set daylight cycle time in ticks. See serv.time for more info.

server.setTickInterval(ticksPerSecond)

Resets tick interval to occur ticksPerSecond times per second.

Use server.stopTickInterval() if you want but this method already calls that and you can use serv.doDaylightCycle to stop it anyway.

server.setBlock(world, position, blockType, blockData)

Saves block in world and sends block update to all players of the same world.

Low level methods

server._writeAll(packetName, packetFields)

Writes packet to every player on the server

server._writeArray(packetName, packetFields, playerArray)

Writes packet to every player in playerArray

server._writeNearby(packetName, packetFields, loc)

Writes packet to all players within distance of loc. loc has the same paramater as loc in server.getNearby()

Player

Properties

player.entity

The entity of the player, of type Flying-squid.Entity

player.username

The username of the player

player.view

The view size of the player, for example 8 for 16x16

player.world

The world which the player is in.

player.nearbyPlayers

Nearby players.

Events

"connected"

Fires when the player is connected

"spawned"

Fires when the player is spawned

"disconnected"

Fires when the player disconnected

"chat" (message)

Fires when the player says message.

"kicked" (kicker,reason)

kicker kick the player with reason

"positionChanged"

fires when the position changes in small amounts (walking, running, or flying)

Methods

player.login()

login

player.ban(reason)

bans player with reason

player.kick(reason)

kicks player with reason

player.getOthers()

return the other players than player

player.chat(message)

sends message to the player

player.changeBlock(position,blockType,blockData)

change the block at position position to blockType and blockData

this will not change the block for the user themself. It is mainly useful when a user places a block and only needs to send it to other players on the server

player.sendBlock(position,blockType,blockData)

change the block at position position to blockType and blockData

this will not make any changes on the server's world and only sends it to the user as a "fake" or "local" block

player.sendInitialPosition()

send its initial position to the player

player.setGameMode(gameMode)

set player gameMode to gameMode

player.handleCommand(command)

handle command

player.setBlock(position,blockType,blockData)

Saves block in world and sends block update to all players of the same world.

player.updateHealth(health)

update the player health.

player.changeWorld(world, opt)

The world object which the player is in (use serv.overworld, serv.netherworld, serv.endworld, or a custom world). Options:

  • gamemode: Gamemode of the world (Default is player gamemode)
  • difficulty: Difficulty of world. Default is 0 (easiest)
  • dimension: Dimension of world. 0 is Overworld, -1 is Nether, 1 is End (Default is 0)

player.spawnAPlayer(spawnedPlayer)

Spawn spawnedPlayer for player.

player.despawnPlayers(despawnedPlayers)

Despawn despawnedPlayers for player.

player.updateAndSpawnNearbyPlayers()

Spawn and despawn the correct players depending on distance for player.

Low level properties

player._client

The internal implementation to communicate with a client

Low level methods

player._writeOthers(packetName, packetFields)

write to other players than player the packet packetName with fields packetFields

player._writeOthersNearby(packetName, packetFields)

write to other players in same world that are within 150 blocks (see player.getNearby())