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
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
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
baseRouter
Gets the royter object associated with the API. It has no prefix and can make all kinds of calls to the Dragonroll backend.
socket
Gets the socket object associated with the Plugin.
Returns
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
baseSocket
Gets the ClientSocket pointing to the root of the application. Use it only for calling internal socket.io events of Dragonroll.
Returns
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