**Table of Contents** *generated with [DocToc](https://github.com/thlorenz/doctoc)* - [API](#api) - [Classes](#classes) - [Entity](#entity) - [flying-squid.Command](#flying-squidcommand) - [flying-squid.Behavior](#flying-squidbehavior) - [Libs](#libs) - [flying-squid.generations](#flying-squidgenerations) - [flying-squid.version](#flying-squidversion) - [flying-squid.experience](#flying-squidexperience) - [getXpLevel(xp)](#getxplevelxp) - [getXpRequired(level, toLevel=level+1)](#getxprequiredlevel-tolevellevel1) - [getBaseXpFromLevel(level)](#getbasexpfromlevellevel) - [distanceToXpLevel(xp, toLevel=startLevel+1, startLevel=xp level)](#distancetoxplevelxp-tolevelstartlevel1-startlevelxp-level) - [MCServer](#mcserver) - [Flying-squid.createMCServer(options)](#flying-squidcreatemcserveroptions) - [Properties](#properties) - [serv.entityMaxId](#serventitymaxid) - [serv.players](#servplayers) - [serv.uuidToPlayer](#servuuidtoplayer) - [serv.overworld](#servoverworld) - [serv.netherworld](#servnetherworld) - [serv.endworld](#servendworld) - [serv.entities](#serventities) - [serv.bannedPlayers](#servbannedplayers) - [serv.time](#servtime) - [serv.tickCount](#servtickcount) - [serv.doDaylightCycle](#servdodaylightcycle) - [serv.plugins](#servplugins) - [Events](#events) - ["error" (error)](#error-error) - ["clientError" (client,error)](#clienterror-clienterror) - ["listening" (port)](#listening-port) - ["newPlayer" (player)](#newplayer-player) - ["banned" (banner,bannedUsername,reason)](#banned-bannerbannedusernamereason) - ["tick" (count)](#tick-count) - [Methods](#methods) - [serv.createLog()](#servcreatelog) - [serv.log(message)](#servlogmessage) - [serv.broadcast(message[,color])](#servbroadcastmessagecolor) - [serv.getPlayer(username)](#servgetplayerusername) - [serv.getNearby(loc)](#servgetnearbyloc) - [server.banUsername(username,reason,callback)](#serverbanusernameusernamereasoncallback) - [server.ban(uuid,reason)](#serverbanuuidreason) - [server.pardonUsername(username,callback)](#serverpardonusernameusernamecallback) - [server.pardon(uuid)](#serverpardonuuid) - [server.getUUIDFromUsername(username,callback)](#servergetuuidfromusernameusernamecallback) - [server.setTime(time)](#serversettimetime) - [server.setTickInterval(ticksPerSecond)](#serversettickintervaltickspersecond) - [server.setBlock(world, position, blockType, blockData)](#serversetblockworld-position-blocktype-blockdata) - [server.playSound(sound, world, position, opt)](#serverplaysoundsound-world-position-opt) - [server.playNoteBlock(world, position, pitch)](#serverplaynoteblockworld-position-pitch) - [server.getNote(note)](#servergetnotenote) - [server.emitParticle(particle, world, position, opt)](#serveremitparticleparticle-world-position-opt) - [Low level methods](#low-level-methods) - [server._writeAll(packetName, packetFields)](#server_writeallpacketname-packetfields) - [server._writeArray(packetName, packetFields, playerArray)](#server_writearraypacketname-packetfields-playerarray) - [server._writeNearby(packetName, packetFields, loc)](#server_writenearbypacketname-packetfields-loc) - [Entity](#entity-1) - [Properties](#properties-1) - [entity.id](#entityid) - [entity.position](#entityposition) - [entity.world](#entityworld) - [entity.type](#entitytype) - [entity.entityType](#entityentitytype) - [entity.name](#entityname) - [entity.nearbyEntities](#entitynearbyentities) - [entity.viewDistance](#entityviewdistance) - [entity.health](#entityhealth) - [entity.pitch](#entitypitch) - [entity.headPitch](#entityheadpitch) - [entity.yaw](#entityyaw) - [entity.gravity](#entitygravity) - [entity.terminalvelocity](#entityterminalvelocity) - [entity.friction](#entityfriction) - [entity.size](#entitysize) - [entity.deathTime](#entitydeathtime) - [entity.pickupTime](#entitypickuptime) - [entity.bornTime](#entityborntime) - [entity.itemId](#entityitemid) - [entity.itemDamage](#entityitemdamage) - [entity.metadata](#entitymetadata) - [entity.nearbyEntities](#entitynearbyentities-1) - [Events](#events-1) - [Behaviors](#behaviors) - [FORMAT](#format) - ["move"](#move) - [Methods](#methods-1) - [entity.getData(pluginName)](#entitygetdatapluginname) - [entity.getOthers()](#entitygetothers) - [entity.getOtherPlayers()](#entitygetotherplayers) - [entity.getNearby()](#entitygetnearby) - [entity.getNearbyPlayers()](#entitygetnearbyplayers) - [entity.nearbyPlayers()](#entitynearbyplayers) - [entity.takeDamage({sound='game.player.hurt', damage=1, velocity=new Vec3(0,0,0), maxVelocity=new Vec3(4, 4, 4), animation=true})](#entitytakedamagesoundgameplayerhurt-damage1-velocitynew-vec3000-maxvelocitynew-vec34-4-4-animationtrue) - [Low level Methods](#low-level-methods) - [entity._writeOthers(packetName, packetFields)](#entity_writeotherspacketname-packetfields) - [entity._writeOthersNearby(packetName, packetFields)](#entity_writeothersnearbypacketname-packetfields) - [Player](#player) - [Properties](#properties-2) - [player.username](#playerusername) - [player.view](#playerview) - [player.xp](#playerxp) - [player.displayXp](#playerdisplayxp) - [player.xpLevel](#playerxplevel) - [player.commands](#playercommands) - [Events](#events-2) - ["connected"](#connected) - ["spawned"](#spawned) - ["disconnected"](#disconnected) - ["chat" (message)](#chat-message) - ["kicked" (kicker,reason)](#kicked-kickerreason) - ["positionChanged"](#positionchanged) - [Behaviors](#behaviors-1) - ["move"](#move-1) - ["look"](#look) - ["chat"](#chat) - ["command"](#command) - ["punch"](#punch) - ["sendBlock"](#sendblock) - ["sendChunk"](#sendchunk) - ["dig"](#dig) - ["dug"](#dug) - ["cancelDig"](#canceldig) - ["forceCancelDig"](#forcecanceldig) - ["breakAnimation"](#breakanimation) - ["placeBlock"](#placeblock) - ["attack"](#attack) - ["requestRespawn"](#requestrespawn) - [Methods](#methods-2) - [player.login()](#playerlogin) - [player.ban(reason)](#playerbanreason) - [player.kick(reason)](#playerkickreason) - [player.getOthers()](#playergetothers) - [player.chat(message)](#playerchatmessage) - [player.changeBlock(position,blockType,blockData)](#playerchangeblockpositionblocktypeblockdata) - [player.sendBlock(position,blockType,blockData)](#playersendblockpositionblocktypeblockdata) - [player.sendInitialPosition()](#playersendinitialposition) - [player.setGameMode(gameMode)](#playersetgamemodegamemode) - [player.handleCommand(command)](#playerhandlecommandcommand) - [player.setBlock(position,blockType,blockData)](#playersetblockpositionblocktypeblockdata) - [player.updateHealth(health)](#playerupdatehealthhealth) - [player.changeWorld(world, opt)](#playerchangeworldworld-opt) - [player.spawnAPlayer(spawnedPlayer)](#playerspawnaplayerspawnedplayer) - [player.updateAndSpawnNearbyPlayers()](#playerupdateandspawnnearbyplayers) - [player.playSound(sound, opt)](#playerplaysoundsound-opt) - [player.setXp(xp, opt)](#playersetxpxp-opt) - [player.sendXp()](#playersendxp) - [player.setXpLevel(level)](#playersetxplevellevel) - [player.setDisplayXp(num)](#playersetdisplayxpnum) - [Low level properties](#low-level-properties) - [player._client](#player_client) - [Low level methods](#low-level-methods-1) # API ## Classes ### Entity See [prismarine-entity](https://github.com/PrismarineJS/prismarine-entity) ### flying-squid.Command ### flying-squid.Behavior ### Libs Collections of pure functions ### flying-squid.generations ### flying-squid.version ### flying-squid.experience #### getXpLevel(xp) Get level given XP amount #### getXpRequired(level, toLevel=level+1) Get's the amount of xp required to get from level to toLevel (or level to level+1) #### getBaseXpFromLevel(level) Gets the minimum amount of xp required to be at that level (or "base xp" for that level) #### distanceToXpLevel(xp, toLevel=startLevel+1, startLevel=xp level) Gets a number between 0 and 1 (used in player.displayXp as the green bar at the bottom) that is the progress of xp between startLevel and toLevel. By default, startLevel will be the xp's lowest possible level: getXpLevel(xp) By default, toLevel is startLevel + 1. This means when startLevel and toLevel are at their defaults, this function returns the progress to the next level of XP (from 0.0 to 1.0) ## MCServer ### Flying-squid.createMCServer(options) Create and return an instance of the class MCServer. Options is an object containing the following properties: * port: default to 25565 * host: default to localhost * kickTimeout: default to 10*1000 (10s), kick client that doesn't answer to keepalive after that time * checkTimeoutInterval: defaults to 4*1000 (4s), send keepalive packet at that period * online-mode: defaults to true * beforePing: allow customisation of the answer to ping the server does. It takes a function with argument response and client, response is the default json response, and client is client who sent a ping. It can take as third argument a callback. If the callback is passed, the function should pass its result to the callback, if not it should return. * motd: the string that players see when looking for the server. Defaults to "A Minecraft server" * max-players: the amount of players on the server. Defaults to 20 * logging: defaults to true, enables logging * gameMode: defaults to 0, 0 is survival 1 is creative. * generation: is an object. contains the name and the options for the generator. example: ```json { "name":"diamond_square", "options":{ "worldHeight":80 } } ``` * modpe: defaults to false, wether or not modpe should be enabled. * worldFolder : the world folder of the saved world (containing region, level.dat,...) * plugins * view-distance * player-list-text : an object with keys header and footer, displayed on the player list * everybody-op : true or false, makes everybody op ### Properties #### serv.entityMaxId The current maximum ID (i.e. the last entity that was spawned has that id) #### serv.players An array of players currently logged in #### serv.uuidToPlayer Object for converting UUIDs to players #### serv.overworld Contains the overworld world. This is where the default spawn point is #### 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 Contains 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: