5 Commits
Author SHA1 Message Date
phidias c56f2f03de 1.0.7 RC4 2026-10-29 19:28:31 +09:00
phidias 984613de7d 1.0.7 RC3 2026-10-29 17:27:04 +09:00
phidias 5461422397 1.0.7 RC2 2026-10-29 15:51:25 +09:00
phidias 3b223191da 1.0.7 RC1 2026-10-19 01:09:14 +09:00
phidias 4f6c380859 1.0.6 RC9 2026-10-13 13:04:21 +09:00
7 changed files with 19 additions and 43 deletions

No files matched your search

+4 -2
View File
@@ -42,7 +42,7 @@ export const MAX_INBOUND_LENGTH = 400;
// Factorio renders these, so a Discord user could spoof a colour, an item link,
// or a fake speaker line. Whitelist the real tags rather than matching \[.*\],
// which would also eat innocent text like "array[0]" or "[lol]".
// which would also eat innocent text like 'array[0]' or '[lol]'.
const RICH_TEXT_RE = new RegExp(
String.raw`\[/?(?:color|font|item|entity|technology|recipe|fluid|tile|virtual-signal`
+ String.raw`|gps|img|specialisation|achievement|train|planet|space-location|quality)(?:=[^\]]*)?\]`,
@@ -104,7 +104,6 @@ export const plugin: lib.PluginDeclaration = {
name: 'chat_relay',
title: 'Chat Relay',
description: 'Bidirectional chat relay between Factorio and Discord.',
webEntrypoint: './web',
instanceEntrypoint: 'dist/node/instance.js',
controllerEntrypoint: 'dist/node/controller.js',
controllerConfigFields: {
@@ -133,4 +132,7 @@ export const plugin: lib.PluginDeclaration = {
ChatEvent,
ChatFromDiscordEvent,
],
features: [
'ScriptCommands',
],
};
+2 -2
View File
@@ -81,11 +81,11 @@ export default async function(context: InstancePluginContext) {
const message_content = message_index === -1 ? '' : message.slice(message_index + 1).trim();
queue.push({datetime: dt, message: `**\`${message_username}\`**: ${message_content}`});
} else if (action === 'JOIN' || action === 'LEAVE' || action === 'KICK' || action === 'BAN' || action === 'UNBANNED') {
} else if (action === 'JOIN' || action === 'LEAVE' || action === 'KICK') {
const message_index = message.indexOf(' ');
const message_username = message_index === -1 ? message : message.slice(0, message_index);
const message_content = message_index === -1 ? '' : message.slice(message_index + 1).trim();
const player_count = instance.playersOnline.size + (action === 'JOIN' ? 0 : -1);
const player_count = instance.playersOnline.size + (action === 'LEAVE' ? -1 : 0);
queue.push({datetime: dt, message: `**\`${message_username}\`** ${message_content} (${player_count})`});
}
+6 -6
View File
@@ -1,9 +1,9 @@
{
"name": "@phidias0303/chat_relay",
"version": "1.0.6",
"version": "1.0.7",
"description": "Chat relay of Discord and Factorio, seperate channel",
"author": "PHIDIAS <phidias@aperx.org>",
"license": "MIT",
"license": "Apache 2.0",
"homepage": "https://github.com/PHIDIAS0303/chat_relay#readme",
"repository": {
"type": "git",
@@ -22,18 +22,18 @@
],
"main": "dist/node/index.js",
"scripts": {
"prepare": "tsc --build && webpack-cli --mode production",
"prepare": "tsc --build && vite build",
"test": "echo \"Error: run tests from root\" && exit 1"
},
"peerDependencies": {
"@clusterio/controller": "workspace:^",
"@clusterio/lib": "workspace:^"
},
"devDependencies": {
"@clusterio/controller": "workspace:^",
"@clusterio/lib": "workspace:^",
"@clusterio/web_ui": "workspace:^",
"webpack": "catalog:",
"webpack-cli": "catalog:",
"webpack-merge": "catalog:"
"vite": "catalog:"
},
"dependencies": {
"discord.js": "^14.27.0",
+1 -1
View File
@@ -4,5 +4,5 @@
{"path": "../../packages/lib/tsconfig.browser.json"},
{"path": "../../packages/web_ui/tsconfig.browser.json"}
],
"include": ["web/**/*.tsx", "web/**/*.ts", "index.ts", "package.json"]
"include": ["index.ts", "package.json"]
}
+6
View File
@@ -0,0 +1,6 @@
import { defineConfig } from "vite";
import { clusterioPlugin } from "@clusterio/web_ui/vite.mjs";
export default defineConfig({
plugins: [clusterioPlugin()],
});
-4
View File
@@ -1,4 +0,0 @@
import {type WebPluginContext} from '@clusterio/web_ui';
export default async function loadWebPlugin(context: WebPluginContext) {
}
-28
View File
@@ -1,28 +0,0 @@
'use strict';
const path = require('path');
const webpack = require('webpack');
const {merge} = require('webpack-merge');
const common = require('@clusterio/web_ui/webpack.common');
module.exports = (env = {}, argv = {}) => merge(common(env, argv), {
context: __dirname,
entry: './web/index.tsx',
output: {
path: path.resolve(__dirname, 'dist', 'web'),
},
plugins: [
new webpack.container.ModuleFederationPlugin({
name: 'chat_relay',
library: {type: 'var', name: 'plugin_chat_relay'},
exposes: {
'./': './index.ts',
'./package.json': './package.json',
'./web': './web/index.tsx',
},
shared: {
'@clusterio/lib': {import: false},
'@clusterio/web_ui': {import: false},
},
}),
],
});