Skip to content
This repository has been archived by the owner on Aug 24, 2021. It is now read-only.

krrrr38/jabot

Repository files navigation

Jabot

Build Status Maven Central License: MIT

Java + Bot ⇒ Jabot

require Java8 or later

This module is inspired by Ruboty, thank you r7kamura.

Usage

Access Releases Page.

  1. downlaod jabot-app-*-executable.zip and unzip (mvn clean package)
  • NOTE: Do not choose Source code zip. Please choose jabot-app-**-executable.zip.
  1. edit plugins.yml to load adapter and handlers
  2. add custom plugin into lib directory
  3. sh bin/jabot (-c /path/to/plugins.yml)

One adapter is required. Handlers and Brain are optional. If brain is not set, in-memory brain would be used.

├── plugins.yml
├── bin
│   ├── jabot
│   └── jabot.bat
└── lib
    ├── jabot-echo-handler.jar
    ├── jabot-ping-handler.jar
    ├── jabot-inmemory-brain.jar
    ├── jabot-shell-adapter.jar
    ├── ...
    └── ... (more custom plugin jar)

plugins.yml example (namespace is used as brain namespace)

# this file is example plugins setting
name: jabot
adapter: # require one adapter
  plugin: com.krrrr38.jabot.plugin.adapter.ShellAdapter
  namespace: shell-adapter
  options:
    prompt: "> "
handlers: # NOTE: messages would be handled by THIS ORDER.
  - plugin: com.krrrr38.jabot.plugin.handler.HelpHandler
    namespace: help-handler
  - plugin: com.krrrr38.jabot.plugin.handler.PingHandler
    namespace: ping-handler
    options:
      foo: bar
brain:
  plugin: com.krrrr38.jabot.plugin.brain.InmemoryBrain
  namespace: inmemory-brain
  options:
    foo: bar

See plugins directory.

Development jabot

git clone [email protected]:krrrr38/jabot.git
mvn clean test

Development jabot Plugins

When using following plugins, just package and copy jar into plugins directory and edit plugins.yml, then restart jabot.

Adapter

add dependency

<dependency>
  <groupId>com.krrrr38</groupId>
  <artifactId>jabot-adapter-plugin</artifactId>
</dependency>

write your Adapter which extends Adapter

Handler

add dependency

<dependency>
  <groupId>com.krrrr38</groupId>
  <artifactId>jabot-handler-plugin</artifactId>
</dependency>

write your Handler which extends Handler

Brain

add dependency

<dependency>
  <groupId>com.krrrr38</groupId>
  <artifactId>jabot-brain-plugin</artifactId>
</dependency>

write your Brain which extends Brain

Distribution

packaging

$ mvn clean package # generate executable zip, tar.gz in `jabot-app/target`