diff --git a/.nojekyll b/.nojekyll deleted file mode 100644 index e69de29..0000000 diff --git a/docs/API.md b/docs/API.md new file mode 100644 index 0000000..8ed20c9 --- /dev/null +++ b/docs/API.md @@ -0,0 +1,1006 @@ + + +**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: