dragonroll/documentation/docs/client/api.md
BinarySandia04 62471fa858
Some checks failed
test / run-tests-client (push) Successful in 18s
test / run-tests-backend (push) Failing after 15s
More documentation and sockets now work
2024-10-15 14:50:14 +02:00

8.9 KiB

Client Api

ClientApi

The ClientApi object is used for interacting with everything related to the Dragonroll client. It is passed to the Main function at the entrypoint defined in the plugin.json file

createView

Creates a ClientView object from a Vue view defined inside the client/views folder

Parameters

Property Type Required Description
path String yes The path relative from client/views to the Vue view without the .vue extension

Returns

Type Description
ClientView The new created view

Example

// Supposing that we have /your-plugin-root/client/views/Calculator.vue
let calculatorView = Api.createView('Calculator');

createModule

Creates a ClientModule. The module needs to be later registered with the registerModule method to be loaded by Dragonroll. See creating a module

Parameters

Property Type Required Description
id String yes The identifier of the new module

Returns

Type Description
ClientModule The new ClientModule

Example

let dndModule = Api.createModule('dnd-5e');
dndModule.title = "Dungeons & Dragons 5e";
dndModule.description = "Dungeons & Dragons Fifth edition module";
dndModule.version = "1.0";
dndModule.color = "#e92026";
dndModule.icon = "icon.png";

createWindow

This method instances a new window from an already registered one. You can also pass custom parameters inside this method and then read them from your view.

Parameters

Property Type Required Description
type String (WindowType) yes The type of the new window
data Object (WindowData) no Aditional data for the created window

Example

let databaseWindow = Api.registerWindow('database', Api.createView('Database'));

// Opens the database window
Api.createWindow(databaseWindow, {
  id: 'my-database-window',
  title: "My Database",
  custom: [
    {
      data: "This is custom data"
    }
  ]
})

clearWindow

Clears the window with the specified id

Parameters

Property Type Required Description
id String yes The id of the window to clear

Example

Api.createWindow(databaseWindow, {
  id: 'my-database-window',
  title: "My Database",
  close: () => {
    // When the close button is pressed, clear the window
    Api.clearWindow('my-database-window');
  }
})

registerModule

Registers an already created module to Dragonroll

Parameters

Property Type Required Description
module ClientModule yes The module to register

Example

let dndModule = Api.createModule('dnd-5e');
...
api.registerModule(dndModule);

registerWindow

Registers a new window to Dragonroll and returns the registered id

Parameters

Property Type Required Description
name String yes The name of the new window
view ClientView yes The view that contains the window

Returns

Type Description
String (WindowType) The registered type of window

Example

let databaseWindow = Api.registerWindow('database', Api.createView('Database'));

router

Gets the router object associated with the API. It has no prefix and can make all kinds of calls to the Dragonroll backend

Returns

Type Description
ClientRouter The client router

baseRouter

Gets the royter object associated with the API. It has no prefix and can make all kinds of calls to the Dragonroll backend.

Type Description
ClientRouter The client router from root

socket

Gets the socket object associated with the Plugin.

Returns

Type Description
ClientSocket The client socket

ClientModule

setData

Sets the information data displayed in Dragonroll of the current module

Parameters

This method accepts an Object type with the following properties:

Property Type Required Description
title String yes The display name of the module
description String yes The description of the module
version String yes The version of the module
color String yes The display color for the module
authors [Author] no The authors of the module
icon String yes The icon to be displayed with the module. Relative to the public folder

Example

dndModule.setData({
  title: "Dungeons & Dragons 5e",
  description: "Dungeons & Dragons Fifth edition game system support",
  version: "0.1",
  color: "#e92026",
  authors: [{
      name: "Aran Roig",
      webpage: "aranroig.com"  
  }],
  icon: "icon.png"
});

onInit

Sets a callback when the module is instantiated, i.e, when the client enters a campaign using that module

Property Type Required Description
callback Function() yes The function to call when the module is instantiated

onExit

Sets a callback when the module instance is destroyed, i.e, when the user leaves a game with a campaign using that module

Property Type Required Description
callback Function() yes The function to call when the module is destroyed

setButtons

router

Gets the ClientRouter associated with that module. The paths of this router can be easily catched by the same BackendRouter associated with the module with the same id.

Returns

Type Description
ClientRouter The router associated with the module

socket

Gets the ClientSocket object associated with the Module.

Returns

Type Description
ClientSocket The module socket

baseSocket

Gets the ClientSocket pointing to the root of the application. Use it only for calling internal socket.io events of Dragonroll.

Returns

Type Description
ClientSocket The socket object

ClientRouter

The ClientRouter class is used to make http requests between the Dragonroll client and the Dragonroll backend. To make the routing process easier, Dragonroll provides different instances of the ClientRouter class depending on the context. For example, you can have a ClientRouter for registering routes for an specific module inside your plugin, and another for registering more general routes that you may want to create within the backend part of your plugin. It is also possible to make http requests to the internal Dragonroll routes using the baseRouter

get

Parameters

Creates a GET request to the backend

Property Type Required Description
path String yes The path to the route to make the HTTP request

Returns

Type Description
Callback<Response> A callback with data about the result of the request

post

Parameters

Creates a POST request to the backend

Property Type Required Description
path String yes The path to the route to make the HTTP request
data Object no The body of the request

Returns

Type Description
Callback<Response> A callback with data about the result of the request

put

Parameters

Creates a PUT request to the backend

Property Type Required Description
path String yes The path to the route to make the HTTP request
data Object no The body of the request

Returns

Type Description
Callback<Response> A callback with data about the result of the request

delete

Parameters

Creates a GET request to the backend

Property Type Required Description
path String yes The path to the route to make the HTTP request

Returns

Type Description
Callback<Response> A callback with data about the result of the request

ClientSocket

on

ClientView

path

WindowType

WindowData