Skip to main content Link Menu Expand (external link) Document Search Copy Copied

Write your own Extension!

Do you use something alongside with DCS that isn’t supported yet? Are you someone that does not fear some lines of Python code? Well then - write your own extension!

Just implement a python class, extend core.Extension and load it in your scheduler.json:

from __future__ import annotations
from typing import Optional
from core import Extension, report

class MyExtension(Extension):

    async def startup(self) -> bool:
        self.log.debug("Hello World!")
        return True

    async def shutdown(self) -> bool:
        self.log.debug("Cya World!")
        return True

    async def is_running(self) -> bool:
        return True

    @property
    def version(self) -> str:
        return "1.0.0"

    def verify(self) -> bool:
        return True

    def render(self, embed: report.EmbedElement, param: Optional[dict] = None):
        embed.add_field(name='MyExtension', value='enabled' if self.verify() else 'disabled')

You can then use this extension in your scheduler.json like so:

{
  "configs": [
    {
      "installation": "DCS.openbeta_server",
      [...]
      "extensions": {
        "mymodule.MyExtension": {}
      }
    }
  ]
}