diff --git a/.npmignore b/.npmignore index f38794f1..a3a68329 100644 --- a/.npmignore +++ b/.npmignore @@ -2,8 +2,7 @@ node_modules modpePlugins/ config/settings.json logs/ -src/plugins/* -!src/plugins/README.md +src/ distTest world/* !world/.gitkeep \ No newline at end of file diff --git a/docs/API.md b/docs/API.md deleted file mode 100644 index a0095c9f..00000000 --- a/docs/API.md +++ /dev/null @@ -1,1179 +0,0 @@ - - -**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.pluginsReady](#servpluginsready) - - [serv.entityMaxId](#serventitymaxid) - - [serv.players](#servplayers) - - [serv.uuidToPlayer](#servuuidtoplayer) - - [serv.overworld](#servoverworld) - - [serv.netherworld](#servnetherworld) - - [serv.entities](#serventities) - - [serv.bannedPlayers](#servbannedplayers) - - [serv.time](#servtime) - - [serv.tickCount](#servtickcount) - - [serv.doDaylightCycle](#servdodaylightcycle) - - [serv.plugins](#servplugins) - - [serv.commands](#servcommands) - - [serv.tabComplete](#servtabcomplete) - - [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) - - ["pluginsReady"](#pluginsready) - - [Methods](#methods) - - [serv.formatMessage(message)](#servformatmessagemessage) - - [serv.createLog()](#servcreatelog) - - [serv.log(message)](#servlogmessage) - - [serv.info(message)](#servinfomessage) - - [serv.warn(message)](#servwarnmessage) - - [serv.err(message)](#serverrmessage) - - [serv.broadcast(message[,color])](#servbroadcastmessagecolor) - - [serv.getPlayer(username)](#servgetplayerusername) - - [serv.getNearby(loc)](#servgetnearbyloc) - - [serv.onItemPlace(name, handler)](#servonitemplacename-handler) - - [serv.onBlockInteraction(name, handler)](#servonblockinteractionname-handler) - - [serv.onBlockUpdate(name, handler)](#servonblockupdatename-handler) - - [serv.updateBlock(world, pos, fromTick, tick, forceNotify = false, data = null)](#servupdateblockworld-pos-fromtick-tick-forcenotify--false-data--null) - - [serv.notifyNeighborsOfStateChange(world, pos, fromTick, tick, forceNotify = false, data = null)](#servnotifyneighborsofstatechangeworld-pos-fromtick-tick-forcenotify--false-data--null) - - [serv.notifyNeighborsOfStateChangeDirectional(world, pos, dir, fromTick, tick, forceNotify = false, data = null)](#servnotifyneighborsofstatechangedirectionalworld-pos-dir-fromtick-tick-forcenotify--false-data--null) - - [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.setBlockAction(world, position, actionId, actionParam)](#serversetblockactionworld-position-actionid-actionparam) - - [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) - - [serv.selectorString(str, pos, world, allowUser = true, ctxEntityId)](#servselectorstringstr-pos-world-allowuser--true-ctxentityid) - - [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) - - [serv._loadPlayerChunk(chunkX, chunkZ, player)](#serv_loadplayerchunkchunkx-chunkz-player) - - [serv._unloadPlayerChunk(chunkX, chunkZ, player)](#serv_unloadplayerchunkchunkx-chunkz-player) - - [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) - - [Events](#events-2) - - ["connected"](#connected) - - ["spawned"](#spawned) - - ["disconnected"](#disconnected) - - ["chat" (message)](#chat-message) - - ["kicked" (kicker,reason)](#kicked-kickerreason) - - ["change_world"](#change_world) - - ["playerChangeRenderDistance" (newDistance=player.view, unloadFirst=false)](#playerchangerenderdistance-newdistanceplayerview-unloadfirstfalse) - - ["positionChanged"](#positionchanged) - - [Behaviors](#behaviors-1) - - ["move"](#move-1) - - ["look"](#look) - - ["chat"](#chat) - - ["command"](#command) - - ["punch"](#punch) - - ["sendBlock"](#sendblock) - - ["sendBlockAction"](#sendblockaction) - - ["sendChunk"](#sendchunk) - - ["dig"](#dig) - - ["dug"](#dug) - - ["cancelDig"](#canceldig) - - ["forceCancelDig"](#forcecanceldig) - - ["breakAnimation"](#breakanimation) - - ["placeBlock"](#placeblock) - - ["attack"](#attack) - - ["requestRespawn"](#requestrespawn) - - [Methods](#methods-2) - - [player.save()](#playersave) - - [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.sendBlockAction(position,actionId,actionParam,blockType)](#playersendblockactionpositionactionidactionparamblocktype) - - [player.sendBrand(brand = 'flying-squid')](#playersendbrandbrand--flying-squid) - - [player.sendInitialPosition()](#playersendinitialposition) - - [player.setGameMode(gameMode)](#playersetgamemodegamemode) - - [player.handleCommand(command)](#playerhandlecommandcommand) - - [player.setBlock(position,blockType,blockData)](#playersetblockpositionblocktypeblockdata) - - [player.setBlockAction(position,actionId,actionParam)](#playersetblockactionpositionactionidactionparam) - - [player.updateHealth(health)](#playerupdatehealthhealth) - - [player.updateFood(food)](#playerupdatefoodfood) - - [player.updateFoodSaturation(foodSaturation)](#playerupdatefoodsaturationfoodsaturation) - - [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) - - [player._unloadChunk(chunkX, chunkZ)](#player_unloadchunkchunkx-chunkz) - - [player._unloadAllChunks()](#player_unloadallchunks) - - - -# 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.pluginsReady - -`true` if all async plugins are ready and the server is ready to accept connections. - -#### 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.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: