Class: Pets

Pets


new Pets()

Manages pet related commands.
Source:
Listens to Events:
  • Command#event:pet

Extends

Classes

BaseMoves
BasePetClasses
BasePets
Constants
NPC
Pet

Members


<private, constant> _baseMoves :Pets~BaseMoves

Instance of Pets~BaseMoves.
Type:
Source:

<private, constant> _basePets :Pets~BasePets

Instance of Pets~BasePets.
Type:
Source:

<private> _pets :object.<object.<Pet>>

All pets currently cached. Mapped by user ID, then pet ID. Only one pet is allowed per user at this time, but this future proofing in case users will be able to have multiples in the future.
Type:
  • object.<object.<Pet>>
Default Value:
  • {}
Source:

<private> _releasing :object.<boolean>

Cache of IDs that are currently being released to disk, but are not loaded anymore. Used for Pets._releasePet to prevent saving multiple times. If the ID exists, it will be true.
Type:
  • object.<boolean>
Default Value:
  • {}
Source:

<private, constant> _strings :Strings

Instance of locale strings helper.
Type:
Source:

<nullable> bot :SpikeyBot

The parent SpikeyBot instance. Defaults to required cache value for autocompletion, updates to current reference at init.
Type:
Inherited From:
Overrides:
Source:

client :Discord~Client

The current bot client. Defaults to require cache value for editor autocompletion, updates to current reference at init.
Type:
  • Discord~Client
Inherited From:
Overrides:
Source:

command :Command

The command object for registering command listeners. Defaults to require cache value for editor autocompletion, updates to current reference at init.
Type:
Inherited From:
Overrides:
Source:

<constant> commit :string

The commit at HEAD at the time this module was loaded. Essentially the version of this submodule.
Type:
  • string
Inherited From:
Overrides:
Source:

common :Common

The common object. Defaults to require cache value for editor autocompletion, updates to current reference at init.
Type:
Inherited From:
Overrides:
Source:

Discord :Discord

The current Discord object instance of the bot. Defaults to require cache value for editor autocompletion, updates to current reference at init.
Type:
  • Discord
Inherited From:
Overrides:
Source:

<abstract> helpMessage :undefined|string|Discord~EmbedBuilder

The help message to show the user in the main help message.
Type:
  • undefined | string | Discord~EmbedBuilder
Inherited From:
Overrides:
Source:

<protected, readonly> initialized :boolean

Has this subModule been initialized yet (Has begin() been called).
Type:
  • boolean
Inherited From:
Overrides:
Source:

<constant> loadTime :number

The time at which this module was loaded for use in checking if the module needs to be reloaded because the file has been modified since loading.
Type:
  • number
Inherited From:
Overrides:
Source:

<protected> myName :string

The name of this submodule. Used for differentiating in the log. Should be defined before begin().
Type:
  • string
Inherited From:
Overrides:
Source:

postPrefix :string

The postfix for the global prefix for this subModule. Must be defined before begin(), otherwise it is ignored.
Type:
  • string
Inherited From:
Overrides:
Source:

Methods


<private> _checkPurge(obj)

Check if pet is purgable from memory, and purges if possible.
Parameters:
Name Type Description
obj Pet Pet object to potentially purge.
Source:

<private> _commandAbandon(msg)

User requested to abandon a pet.
Parameters:
Name Type Description
msg Discord~Message Message that triggered command.
Source:
Listens to Events:
  • Command#event:pet_abandon

<private> _commandAdopt(msg)

User requested to adopt a new pet.
Parameters:
Name Type Description
msg Discord~Message Message that triggered command.
Source:
Listens to Events:
  • Command#event:pet_adopt

<private> _commandPet(msg)

User typed the pet command.
Parameters:
Name Type Description
msg Discord~Message Message that triggered command.
Source:
Listens to Events:
  • Command#event:pet

<private> _getAllPets(user, cb)

Get an array of all of a user's pets.
Parameters:
Name Type Description
user Discord~User Discord user to fetch all pets for.
cb function Callback with first argument as optional error, and second as array of Pet objects.
Source:

<private> _getPet(user, pId, cb)

Fetch a user's pet.
Parameters:
Name Type Description
user Discord~User A user of which to fetch the pet for.
pId string The pet ID to fetch.
cb function Callback once complete. First argument is optional error, second is parsed Pet object.
Source:

<private> _releasePet(uId, pId)

Force a pet to be saved to file and removed from memory immediately. File IO is still asynchronous. This is used to release pets from other shards, and returns true if pet has been completely released to disk.
Parameters:
Name Type Description
uId string The ID of the user.
pId string THe ID of the pet.
Source:
Returns:
True if fully released, false if not done yet.
Type
boolean

<private> _reply(msg, titleKey, bodyKey [, rep])

Reply to msg with locale strings.
Parameters:
Name Type Argument Description
msg Discord~Message Message to reply to.
titleKey string <nullable>
String key for the title, or null for default.
bodyKey string String key for the body message.
rep string <optional>
<repeatable>
Placeholder replacements for the body only.
Source:
Returns:
Message send promise from Discord.
Type
Promise.<Discord~Message>

<private> _saveSingle(obj [, opt] [, cb])

Save a single pet object to disk, and purge if stale.
Parameters:
Name Type Argument Default Description
obj Pet The pet object to save.
opt string <optional>
'sync' Either 'sync' or 'async'.
cb function <optional>
Optional callback that fires with no arguments on completion.
Source:

begin(Discord, client, command, common, bot)

Initialize this submodule.
Parameters:
Name Type Description
Discord Discord The Discord object for the API library.
client Discord~Client The client that represents this bot.
command Command The command instance in which to register command listeners.
common Common Class storing common functions.
bot SpikeyBot The parent SpikeyBot instance.
Inherited From:
Overrides:
Source:

<protected> debug(msg)

Log using common.logDebug, but automatically set name.
Parameters:
Name Type Description
msg string The message to log.
Inherited From:
Overrides:
Source:

end()

Trigger subModule to shutdown and get ready for process terminating.
Inherited From:
Overrides:
Source:

<protected> error(msg)

Log using common.error, but automatically set name.
Parameters:
Name Type Description
msg string The message to log.
Inherited From:
Overrides:
Source:

<protected> initialize()

The function called at the end of begin() for further initialization specific to the subModule. Must be defined before begin() is called.
Inherited From:
Overrides:
Source:

<protected> log(msg)

Log using common.log, but automatically set name.
Parameters:
Name Type Description
msg string The message to log.
Inherited From:
Overrides:
Source:

<abstract> reloadable()

Check if this module is in a state that is ready to be reloaded. If false is returned, this module should not be unloaded and doing such may risk putting the module into an uncontrollable state. This is different from unloadable, which checks if this module can be stopped completely, this checks if the module can be stopped and restarted.
Inherited From:
Overrides:
Source:
See:
  • SubModule~unloadable
Returns:
True if can be reloaded, false if cannot.
Type
boolean

save( [opt])

Saves all data to files necessary for saving current state.
Parameters:
Name Type Argument Default Description
opt string <optional>
'sync' Can be 'async', otherwise defaults to synchronous.
Inherited From:
Overrides:
Source:

<protected> shutdown()

Shutdown and disable this submodule. Removes all event listeners.
Inherited From:
Overrides:
Source:

<abstract> unloadable()

Check if this module is in a state that is ready to be unloaded. If false is returned, this module should not be unloaded and doing such may risk putting the module into an uncontrollable state.
Inherited From:
Overrides:
Source:
See:
  • SubModule~reloadable
Returns:
True if can be unloaded, false if cannot.
Type
boolean

<protected> warn(msg)

Log using common.logWarning, but automatically set name.
Parameters:
Name Type Description
msg string The message to log.
Inherited From:
Overrides:
Source: