chatBridge
- builtin
- by Takaro
- Takaro >=0.0.1
- all
Built-in modules ship with Takaro — no import needed.
Connect chat to other services like Discord.
Configuration 3
Settings you fill in when installing the module on a server.
| Setting | Type | Default | Description |
|---|---|---|---|
sendPlayerConnected Send player connected | boolean | true | Send a message when a player connects. |
sendPlayerDisconnected Send player disconnected | boolean | true | Send a message when a player disconnects. |
onlyGlobalChat Only global chat | boolean | true | Only relay messages from global chat. (no team chat or private messages) |
Raw config schema
{
"$schema": "http://json-schema.org/draft-07/schema#",
"type": "object",
"properties": {
"sendPlayerConnected": {
"title": "Send player connected",
"type": "boolean",
"description": "Send a message when a player connects.",
"default": true
},
"sendPlayerDisconnected": {
"title": "Send player disconnected",
"type": "boolean",
"description": "Send a message when a player disconnects.",
"default": true
},
"onlyGlobalChat": {
"title": "Only global chat",
"type": "boolean",
"default": true,
"description": "Only relay messages from global chat. (no team chat or private messages)"
}
},
"additionalProperties": false
} Raw UI schema
{} Hooks 4
Code that runs in reaction to a game or Takaro event.
-
DiscordToGame
Hook for discord-message events
Hook source
import { takaro, data } from '@takaro/helpers'; async function main() { try { if (data.eventData.author.isBot) { return; } await takaro.gameserver.gameServerControllerSendMessage(data.gameServerId, { message: `[D] ${data.eventData.author.displayName}: ${data.eventData.msg}`, }); } catch (error) { console.error(error); await takaro.discordControllerSendMessage(data.discordChannelId, { message: 'Failed to forward your message to the game. Please try again later.', }); } } await main(); //# sourceMappingURL=DiscordToGame.js.map -
GameToDiscord
Hook for chat-message events
Hook source
import { takaro, data } from '@takaro/helpers'; async function main() { const onlyGlobal = data.module.userConfig.onlyGlobalChat; if (onlyGlobal && data.eventData.channel !== 'global') { return; } const discordChannel = data.module.systemConfig.hooks.DiscordToGame.discordChannelId; const sender = data.player ? data.player.name : 'Non-player'; const message = `**${sender}**: ${data.eventData.msg}`; await takaro.discord.discordControllerSendMessage(discordChannel, { message: message, }); } await main(); //# sourceMappingURL=GameToDiscord.js.map -
PlayerConnected
Hook for player-connected events
Hook source
import { takaro, data } from '@takaro/helpers'; async function main() { const discordChannel = data.module.systemConfig.hooks.DiscordToGame.discordChannelId; await takaro.discord.discordControllerSendMessage(discordChannel, { message: `[⚡ Connected]: ${data.player.name}`, }); } await main(); //# sourceMappingURL=PlayerConnected.js.map -
PlayerDisconnected
Hook for player-disconnected events
Hook source
import { takaro, data } from '@takaro/helpers'; async function main() { const discordChannel = data.module.systemConfig.hooks.DiscordToGame.discordChannelId; await takaro.discord.discordControllerSendMessage(discordChannel, { message: `[👋 Disconnected]: ${data.player.name}`, }); } await main(); //# sourceMappingURL=PlayerDisconnected.js.map