251 lines
5.5 KiB
Markdown
251 lines
5.5 KiB
Markdown
# 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](/plugin/plugin.json) file
|
|
|
|
|
|
### createView
|
|
|
|
Creates a [ClientView](#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](#clientview) | The new created view |
|
|
|
|
#### Example
|
|
|
|
```js
|
|
// Supposing that we have /your-plugin-root/client/views/Calculator.vue
|
|
let calculatorView = Api.createView('Calculator');
|
|
```
|
|
|
|
### createModule
|
|
|
|
Creates a [ClientModule](#clientmodule). The module needs to be later registered with the [registerModule](#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](#clientmodule) | The new ClientModule |
|
|
|
|
#### Example
|
|
|
|
```js
|
|
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
|
|
|
|
```js
|
|
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
|
|
|
|
```js
|
|
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](#clientmodule) to Dragonroll
|
|
|
|
#### Parameters
|
|
|
|
| Property | Type | Required | Description |
|
|
| -------- | ---- | -------- | ----------- |
|
|
| ``module`` | [ClientModule](#clientmodule) | yes | The module to register |
|
|
|
|
#### Example
|
|
|
|
```js
|
|
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](#clientview) | yes | The view that contains the window |
|
|
|
|
#### Returns
|
|
|
|
| Type | Description |
|
|
| ---- | ----------- |
|
|
| String ([WindowType](#windowpath)) | The registered type of window |
|
|
|
|
#### Example
|
|
|
|
```js
|
|
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](#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](#clientrouter) | The client router from root |
|
|
|
|
### socket
|
|
|
|
Gets the socket object associated with the Plugin.
|
|
|
|
#### Returns
|
|
|
|
| Type | Description |
|
|
| ---- | ----------- |
|
|
| [ClientSocket](#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
|
|
|
|
```js
|
|
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
|
|
|
|
### onExit
|
|
|
|
### setButtons
|
|
|
|
### router
|
|
|
|
## ClientRouter
|
|
|
|
### get
|
|
|
|
### post
|
|
|
|
### put
|
|
|
|
### delete
|
|
|
|
### baseGet
|
|
|
|
### basePost
|
|
|
|
### basePut
|
|
|
|
### baseDelete
|
|
|
|
## ClientSocket
|
|
|
|
### on
|
|
|
|
## ClientView
|
|
|
|
### path
|
|
|
|
## WindowType
|
|
|
|
## WindowData |