forked from CFC-Servers/cfc_chat_transit
fork
- 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:
parent
c3a2e376a5
commit
d7ea74c929
@ -1,5 +1,3 @@
|
||||
require "steamlookup"
|
||||
|
||||
include "cfc_chat_transit/server/init.lua"
|
||||
include "cfc_chat_transit/server/remote_messages.lua"
|
||||
|
||||
|
@ -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= ""
|
||||
|
||||
|
@ -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"
|
||||
|
@ -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!
|
||||
|
Loading…
Reference in New Issue
Block a user