- dont require steamlookup
- dont use avatar_service
- fix 'cfc_realm command not found'
- ability to choose ws:// or wss://
- ability to receive messages from dedicated relay program
- added networkid for easy steamid access

(custom dedicated relay program not included in this repository)
This commit is contained in:
edshot99 2024-10-26 19:54:34 -05:00
parent c3a2e376a5
commit d7ea74c929
4 changed files with 15 additions and 8 deletions

View File

@ -1,5 +1,3 @@
require "steamlookup"
include "cfc_chat_transit/server/init.lua"
include "cfc_chat_transit/server/remote_messages.lua"

View File

@ -2,30 +2,36 @@ require "gwsockets"
require "logger"
export ChatTransit = { Logger: Logger "ChatTransit" }
include "cfc_chat_transit/server/avatar_service.lua"
include "cfc_chat_transit/server/player_count.lua"
import Read from file
import GetColor from team
import TableToJSON from util
import JSONToTable from util
logger = ChatTransit.Logger
relayHost = CreateConVar "cfc_relay_host", "", FCVAR_NONE
ChatTransit.Realm = CreateConVar "cfc_realm", "unknown", FCVAR_REPLICATED + FCVAR_ARCHIVE, "The Realm Name"
loadHook = "ChatTransit_WebsocketLoad"
hook.Add "Think", loadHook, ->
hook.Remove "Think", loadHook
ChatTransit.WebSocket = GWSockets.createWebSocket "wss://#{relayHost\GetString!}/relay", false
ChatTransit.Realm = CreateConVar "cfc_realm", "unknown", FCVAR_REPLICATED + FCVAR_ARCHIVE, "The Realm Name"
ChatTransit.WebSocket = GWSockets.createWebSocket "#{relayHost\GetString!}/relay", false
with ChatTransit.WebSocket
.reconnectTimerName = "CFC_ChatTransit_WebsocketReconnect"
.onMessage = (msg) =>
if msg ~= "keepalive"
logger\info "Received a not-keepalive message from the server:", msg
return
resp = JSONToTable msg
if resp.Type == "message" and resp.Realm == ChatTransit.Realm\GetString!
if resp.Data.DiscordName and resp.Data.Content
RunConsoleCommand "chat_transit", resp.Data.DiscordName, "255, 255, 255, 255", resp.Data.Content
else
logger\info "Received a not-keepalive message from the server:", msg
return
\write "keepalive"
@ -55,7 +61,7 @@ ChatTransit.Send = (data) =>
logger\debug "Sending '#{data.Type}'"
steamID64 = data.Data.SteamId
data.Data.Avatar or= ChatTransit.AvatarService\getAvatar steamID64
data.Data.Avatar or= nil
data.Realm = @Realm\GetString!
data.Data.SteamId or= ""

View File

@ -12,6 +12,7 @@ ChatTransit.PlayerConnect = (data) =>
Type: "connect"
Data:
SteamName: name
NetworkId: steamId
SteamId: steamId and SteamIDTo64 steamId
PlayerCountCurrent: ChatTransit.playerCount
PlayerCountMax: game\MaxPlayers!
@ -21,6 +22,7 @@ ChatTransit.PlayerInitialSpawn = (ply) =>
Type: "spawn"
Data:
SteamName: ply\Nick!
NetworkId: ply\SteamID!
SteamId: ply\SteamID64!
gameevent.Listen "player_connect"

View File

@ -11,6 +11,7 @@ ChatTransit.PlayerDisconnected = (data) =>
Type: "disconnect"
Data:
SteamName: ply and ply\Nick! or name
NetworkId: steamId
SteamId: ply and ply\SteamID64! or SteamIDTo64 steamId
PlayerCountCurrent: ChatTransit.playerCount
PlayerCountMax: game\MaxPlayers!