ChatBackendAddon icon

ChatBackendAddon -----

This plugin allows you to preprocess PistonChat messages on an external backend server.



This plugin allows you to preprocess PistonChat messages on an external backend server.

[​IMG]

Config
If you don't have DNS load balancer you could add the addresses of the replicas manually or just have one server to handle all requests. Retries field specifies how many times the plugin will try to process one message if it fails.
Code (YAML):
enable : true
allow-on-error
: true
timeout
: 1000
retries
: 1
enable-metrics
: true
servers
: # load balanced with round-robin
  - http://localhost:25501

Backend server example (Node)
You can write it in any language as long as the server accepts POST requests and returns a JSON object which contains at least an "allow" boolean field.
Code (Javascript):
const fastify = require ( 'fastify' ) ( { logger : true } ) ;
fastify. post ( '/' , async (request , reply ) => {
  const { username , message } = request. body ;
  console. log ( { username , message } ) ;
  return {
    allowed : !message. match ( /1\s*\+\s*1/g ) ,
    replacement : message. match ( /2/g ) ? message. replace ( /2/g , '3' ) : null
  } ;
} ) ;

const start = async ( ) => {
  try {
    await fastify. listen ( 25501 ) ;
  } catch (err ) {
    fastify. log. error (err ) ;
    process. exit ( 1 ) ;
  }
}
start ( ) ;

Building from source
Code (Text):
git clone https://github.com/comendantmc/ChatBackendAddon.git
cd ChatBackendAddon
mvn package
Resource Information
Author:
----------
Total Downloads: 88
First Release: Aug 11, 2022
Last Update: Aug 11, 2022
Category: ---------------
All-Time Rating:
0 ratings
Version -----
Released: --------------------
Downloads: ------
Version Rating:
----------------------
-- ratings