forked from CFC-Servers/cfc_chat_transit
Add receive
This commit is contained in:
parent
7260991f02
commit
95140a74d6
1
moon/autorun/client/cfc_chat_transit_init.moon
Normal file
1
moon/autorun/client/cfc_chat_transit_init.moon
Normal file
@ -0,0 +1 @@
|
||||
include "cfc_chat_transit/client/receive_remote_message.lua"
|
@ -1,3 +1,6 @@
|
||||
require "cfc_steamlookup"
|
||||
include "cfc_chat_transit/server/init.lua"
|
||||
include "cfc_chat_transit/server/avatar_service.lua"
|
||||
include "cfc_chat_transit/server/remote_messages.lua"
|
||||
|
||||
AddCSLuaFile "cfc_chat_transit/client/receive_remote_message.lua"
|
||||
|
47
moon/cfc_chat_transit/client/receive_remote_message.moon
Normal file
47
moon/cfc_chat_transit/client/receive_remote_message.moon
Normal file
@ -0,0 +1,47 @@
|
||||
import Start, Receive, ReadBool, ReadString, WriteBool, Send from net
|
||||
import AddToolCategory, AddToolMenuOption from spawnmenu
|
||||
|
||||
shouldReceiveRemoteMessages = CreateConVar "cfc_chat_transit_remote_messages", true, FCVAR_ARCHIVE, "Should receive remote messges in chat", 0, 1
|
||||
|
||||
colors =
|
||||
white: Color 255, 255, 255
|
||||
blurple: Color 114, 137, 218
|
||||
|
||||
Receive "CFC_ChatTransit_RemoteMessageReceive", ->
|
||||
return unless shouldReceiveRemoteMessages\GetBool!
|
||||
|
||||
author = ReadString!
|
||||
message = ReadString!
|
||||
|
||||
return unless author
|
||||
return unless message
|
||||
|
||||
-- "@#{author}: #{message}"
|
||||
chat.AddText
|
||||
colors.blurple
|
||||
"@#{author}"
|
||||
|
||||
colors.white
|
||||
": #{message}"
|
||||
|
||||
alertPreference = (val) ->
|
||||
Start "CFC_ChatTransit_RemoteMessagePreference"
|
||||
WriteBool val
|
||||
Send!
|
||||
|
||||
hook.Add "InitPostEntity", "CFC_ChatTransit_AlertRemoteMessagePreference", ->
|
||||
alertPreference shouldReceiveRemoteMessages\GetBool!
|
||||
|
||||
populatePanel = (panel) ->
|
||||
label = "Should show remote messages (i.e. from Discord)"
|
||||
|
||||
with panel\CheckBox label, "cfc_chat_transit_remote_messages"
|
||||
.OnChange = (_, val) -> alertPreference val
|
||||
|
||||
hook.Add "AddToolMenuCategories", "CFC_ChatTransit_MenuCategory", ->
|
||||
AddToolCategory "Options", "ChatTransit", "Chat Transit"
|
||||
|
||||
hook.Add "PopulateToolMenu", "CFC_ChatTransit_MenuOption", ->
|
||||
AddToolMenuOption "Options", "ChatTransit", "should_receive_remote_messages", "Remote Messages", "", "", (panel) ->
|
||||
populatePanel panel
|
||||
|
34
moon/cfc_chat_transit/server/remote_messages.moon
Normal file
34
moon/cfc_chat_transit/server/remote_messages.moon
Normal file
@ -0,0 +1,34 @@
|
||||
import AddNetworkString, Decompress from util
|
||||
import Start, Receive, ReadBool, WriteString, Send from net
|
||||
|
||||
AddNetworkString "CFC_ChatTransit_RemoteMessagePreference"
|
||||
AddNetworkString "CFC_ChatTransit_RemoteMessageReceive"
|
||||
|
||||
IsValid = IsValid
|
||||
|
||||
recipients = RecipientFilter!
|
||||
|
||||
Receive "CFC_ChatTransit_RemoteMessagePreference", (_, ply) ->
|
||||
shouldReceive = ReadBool!
|
||||
|
||||
modify = shouldReceive and recipients.AddPlayer or recipients.RemovePlayer
|
||||
|
||||
modify recipients, ply
|
||||
|
||||
broadcastMessage = (ply, cmd, args, argStr) ->
|
||||
return if IsValid ply
|
||||
|
||||
author = rawget args, 1
|
||||
message = rawget args, 2
|
||||
|
||||
return unless author
|
||||
return unless message
|
||||
|
||||
message = Decompress(argStr) or message
|
||||
|
||||
Start "CFC_ChatTransit_RemoteMessageReceive"
|
||||
WriteString author
|
||||
WriteString message
|
||||
Send recipients
|
||||
|
||||
concommand.Add "chat_transit", broadcastMessage
|
Loading…
Reference in New Issue
Block a user