서버 사이드 채팅 모듈

*이 콘텐츠는 AI(베타)를 사용해 번역되었으며, 오류가 있을 수 있습니다. 이 페이지를 영어로 보려면 여기를 클릭하세요.

다음 채팅 모듈을 사용하여 서버 사이드 동작을 지원하는 Legacy Chat System 포함 기능을 지원할 수 있습니다.

  • ChatService : 다른 모든 채팅 모듈을 관리하는 싱글.
  • ChatSpeaker : 채팅 채널에서 메시지를 생성할 수 있는 엔터티입니다. 각 Player 가 자동으로 ChatSpeaker 및 봇을 가질 수 있으며, ChatSpeakers를 생성하여 채팅을 수행할 수 있습니다.
  • ChatMessage : 채팅 스피커가 채팅 채널로 보내는 콘텐츠를 위한 컨테이너; 메시지 형식을 지정하거나 명령에 추가 기능을 추가하는 데 사용되는 메타데이터를 포함합니다.
  • 채팅 채널 : 채팅 스피커가 채팅 메시지를 교환할 수 있는 채널. 또한 팀 채팅 및 조용한 채팅에 사용됩니다.

채팅 서비스

ChatService 는 Lua 채팅 시스템의 서버 사이드 동작을 처리하는 단일 개체입니다, 예를 들어 ChatChannelsChatSpeakers.

모든 ModuleScriptChatModule 폴더 내에 있는 함수를 반환하고, 그 함수는 ChatService 인스턴스에 의해 호출됩니다.

메서드

채널 추가

  • 매개 변수: string : channelName
  • 설명: 지정된 이름을 가진 ChatChannel 개체를 생성하고 반환합니다.

채널 제거

  • 매개 변수: string : channelName
  • 설명: 지정된 이름의 채널을 삭제합니다.
  • 반환: 무효

채널 가져오기

  • 매개 변수: string : channelName
  • 설명: 채널을 반환하거나 없으면 지정된 이름으로 채널을 반환합니다.

스피커 추가

  • 매개 변수: string : speakerName
  • 설명: 지정된 이름으로 채팅에 스피커를 생성하고 다시 반환합니다.
  • 반환: ChatSpeaker

스피커 제거

  • 매개 변수: string : speakerName
  • 설명: 제공된 이름으로 채팅에서 스피커를 제거합니다.
  • 반환: 무효

스피커 가져오기

  • 매개 변수: string : speakerName
  • 설명: 스피커를 지정된 이름으로 반환하거나 없으면 일반적인 이름으로 반환합니다.
  • 반환: ChatSpeaker

채널 목록 가져오기

  • 매개 변수: 없음
  • 설명: 채팅에 있는 모든 채널의 이름 목록을 반환합니다.
  • 반환: 배열< string >

가져오기 채널 목록

  • 매개 변수: 없음
  • 설명: 채팅에 있는 모든 채널의 이름을 반환합니다.AutoJoin 설정을 참조하십시오.
  • 반환: 배열< string >

RegisterFilterMessageFunction

  • 매개 변수: string : functionId , 0> 함수0> : 3> func 3>
  • 설명: 필터 기능을 채팅에 등록합니다. 메시지에 대한 모든 변경 사항은 메시지가 다른 필터 기능을 통과할 때 지속되고 표시됩니다. 이 함수는 functionId 에 대한 스피커의 이름, 메시지 개체 및 채널을 통해 메시지가 전송된 경로를 지속합니다.
  • 반환: 무효
  • 예:

-- 이 예시를 ChatModule 폴더 내의 ModuleScript에 붙여넣습니다.
-- 이 예시에서 키워드를 필터링하고 성공하면 메시지의 chatColor를 설정합니다.
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- 녹색
local function doFilter(speaker, messageObject, channelName)
-- 메시지에 키워드가 포함되어 있는지 확인하십시오
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- 채팅 색상도 설정하여 메시지에서 키워드를 제거(필터링)하고
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
ChatService:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

UnregisterFilterMessageFunction

  • 매개 변수: string : functionId
  • 설명: 등록된 RegisterFilterMessageFunction에 의해 등록된 필터 함수(식별자 functionId)를 제거합니다.
  • 반환: 무효

RegisterProcessCommandsFunction

  • 매개 변수: string : functionId , 0> 함수0> : 3> func 3>
  • 설명: 채팅에 식별된 프로세스 명령 함수를 등록합니다. 메시지가 필터링되기 전에 functionId 를 통해 전달됩니다. 함수 func (및 이 함수에 등록된 기타 함
  • 반환: 무효
  • 예:

-- 이 예시를 ChatModule 폴더 내의 ModuleScript에 붙여넣습니다.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- 페퍼로니 피자 조각 장비
local function processCommand(speakerName, message, channelName)
if string.sub(message, 1, command:len()) == command then
local model = game:GetService("InsertService"):LoadAsset(toolId)
local tool = model:GetChildren()[1]
local speaker = ChatService:GetSpeaker(speakerName)
local player = speaker:GetPlayer()
tool.Parent = player.Backpack
return true
end
return false
end
local function runChatModule(ChatService)
ChatService:RegisterProcessCommandsFunction(functionId, processCommand)
end
return runChatModule

UnregisterProcessCommandsFunction

  • 매개 변수: string : functionId
  • 설명: 식별자, RegisterProcessCommandsFunction 에 의해 등록된 명령 처리기(RegisterId)를 제거합니다. functionId 입니다.
  • 반환: 무효

이벤트

채널 추가됨

  • 매개 변수: string : channelName
  • 설명: 채널이 채팅에 추가되면 화면에 표시됩니다.

채널 제거

  • 매개 변수: string : channelName
  • 설명: 채팅에서 채널을 제거하면 화면에 표시됩니다.

스피커 추가

  • 매개 변수: string : speakerName
  • 설명: 스피커를 채팅에 추가하면 화면이 빨간색으로 표시됩니다.

스피커 제거

  • 매개 변수: string : speakerName
  • 설명: 스피커를 채팅에서 제거하면 화면이 빨간색으로 표시됩니다.

채팅 스피커

ChatSpeaker는 게임에 연결된 각 Player가 자동으로 연결된 채팅 채널에서 말하는 대표입니다. 각 Player는 게임에 연결된 각 1>ChatService:AddSpeaker()1>를 통해 자동으로 연결된 채팅 채널을 가질 수 있습니다. 게임에 연결

속성

이름

  • 유형: string : Name
  • 설명: 이 스피커를 참조하는 다른 함수를 호출하는 경우 이 스피커의 이름입니다.

메서드

채널 가입

  • 매개 변수: string : channelName
  • 설명: 스피커를 채널에 지정된 channelName와 함께 추가합니다.
  • 반환: 무효

채널 나가기

  • 매개 변수: string : channelName
  • 설명: 은 지정된 channelName과 함께 채널에서 스피커를 제거합니다.
  • 반환: 무효

채널 목록 가져오기

  • 매개 변수: 없음
  • 설명: 스피커가 있는 모든 채널의 이름을 반환합니다.
  • 반환: 배열< string >

이 채널에 있습니다

  • 매개 변수: string : channelName
  • 설명: 스피커가 제공된 channelName 채널에 있는지 여부를 반환합니다.
  • 반환: 부울

메시지 말하기

  • 매개 변수: string : message , 0> Library.문자열0> : 3> chanネーム3> , 사전< 6> Library.문자열6> , 변형> 9> extraData 9>
  • 설명: 스피커가 message을 말하고 생성된 ChatMessage 개체를 반환합니다.

메시지 전송

  • 매개 변수: string : message , 0> Library.문자열0> : 3> 채널3> , 6> Library.문자열6> : 9> fromSpeaker 9>
  • 설명: 이 메시지를 ChatSpeaker에 보냅니다. 채널에 해당하는 fromSpeaker 이름을 가진 스피커가 없으면 경고를 표시하고 스피커는 메시지를 보지 않습니다.
  • 반환: 무효

시스템 메시지 전송

  • 매개 변수: string : message , 0> Library.문자열0> : 3> channelName 3>
  • 설명: 시스템 메시지를 ChatChannel에 보냅니다. 제공된 channelName 으로 채널에 스피커가 없으면 이 메시지는 경고를 표시하고 다른 스피커는 채널에서 메시지를 볼 수 없습니다.
  • 반환: 무효

플레이어 가져오기

  • 매개 변수: 없음
  • 설명: 스피커와 관련된 Player 개체를 반환합니다. 스피커가 사용자(봇)가 아니면 이 반환은 nil 이 됩니다.
  • 반환: Player 또는 nil

설정ExtraData

  • 매개 변수: string : key , 변형 0> data0>
  • 설명: 스피커 아래에 있는 특정 key 아래에서 스피커가 채팅 메시지를 보낼 때 이 추가 데이터를 메시지에 연결합니다. 예를 들어, 이렇게 하면 채팅 색상이 설정될 수 있습니다. 예를 들어, 이렇게 하면 채팅 색상이 설정될 수 있습니다.
  • 반환: 무효

ExtraData 가져오기

  • 매개 변수: string : key
  • 설명: 은 SetExtraData를 사용하여 지정된 key 와 관련된 추가 데이터를 반환합니다.
  • 반환: 변형

메인 채널 설정

  • 매개 변수: string : channelName
  • 설명: 스피커를 제공된 채널에서 말하도록 합니다. MainChannelSet를 호출합니다.
  • 반환: nil

이벤트

메시지 표시

받은 메시지

  • 매개 변수: 채팅 메시지message , 0> Library.문자열0> : 3> channelName 3>
  • 설명: 스피커가 다른 스피커에서 ChatMessage를 받았을 때 발생합니다.

받은 시스템 메시지

  • 매개 변수: 채팅 메시지message , 0> Library.문자열0> : 3> channelName 3>
  • 설명: 스피커가 시스템에서 ChatMessage를 수신하면 발생합니다. ChatChannel에서 지정된 0>channelName0>을 가진 채팅 채널에서.

채널 가입됨

  • 매개 변수: string : channelName , 0> Library.문자열0> : 3> channelWelcomeMessage 3>
  • 설명: 스피커가 지정된 채널에 참여하면 발생합니다.

채널 왼쪽

  • 매개 변수: string : channelName
  • 설명: 스피커가 제공된 채널을 떠났을 때 발생합니다.

음소거

  • 매개 변수: string : channelName , 0> Library.문자열0> : 3> reason = null3> , 6> int6> : 9> duration 9> = 0
  • 설명: 스피커가 ChatChannel에 명시된 channelName 동안 뮤트되면 발생합니다. 일부 이유가 있을 수 있습니다. 0> reason0> 이 제공됩니다.

음소거 해제

  • 매개 변수: string : channelName
  • 설명: 스피커가 ChatChannel에서 지정된 channelName으로 음소거되면 발생합니다.

업데이트된 추가 데이터

  • 매개 변수: string : key , 변형 0> data0>
  • 설명: 스피커의 추가 데이터에 대한 키의 기본 값이 SetExtraData를 사용하여 업데이트되면 발생합니다.

주 채널 설정

  • 매개 변수: string : channelName
  • 설명: 스피커 주 채널이 ChatChannel로 변경된 경우 발생합니다.

채팅 메시지

채팅 메시지는 채팅 스피커로부터 보낸 메시지를 나타내는 데이터 구조입니다. 길이, Roblox에서 필터링된 텍스트, 메시지 표시에 대한 추가 데이터와 같은 메시지에 대한 데이터가 포함되어 있습니다.

속성

아이디

  • 유형: int
  • 설명: 메시지에 대한 고유한 숫자 식별자입니다.

스피커

원래 채널

필터링된

  • 형식: boo로
  • 설명: 메시지가 Roblox에 의해 필터링되는지 여부를 설명합니다(메시지가 있으면). nil

메시지 길이

  • 유형: int
  • 설명: 메시지의 길이. 이 메시지가 필터링된 경우 해시 문자열을 생성하는 데 사용할 수 있습니다.

메시지

  • 입력: string 또는 nil
  • 설명: 메시지의 텍스트입니다. 이 속성은 nil 이 필터링되었는지 경우에만 있습니다.

메시지 유형

  • 유형: string :
  • 설명: 메시지의 유형입니다. 이 형식은 ChatCommands 모듈에 설명되어 있습니다.
  • 가능한 값: "Message" , "System" , 0> "MeCommand"0> , 3> "Welcome"3> , 6> "SetCore"6> , 9> "Whisper" 9>

시간

  • 유형: int
  • 설명: 시간 戳; 메시지 작품시의 os.time() 값.

추가 데이터

  • 입력: 사전< string , 변형>
  • 설명: 이 메시지의 메타데이터 사전입니다. 이것은 메시지의 모양을 변경하는 데 사용됩니다. 다음 키가 있을 수 있습니다.

채팅 채널

ChatChannel 은 메시지를 채널 간에 교환할 수 있는 단일 채널에 대한 데이터를 저장하는 개체입니다. ChatSpeakers 와 함께 사용하여 채널을 수동으로 조인하거나 떠날 수 있는 시각적 개체(사용 /join 또는 <

기본적으로 모든 사용자는 "모두"및 "시스템"채팅 채널에 자동으로 추가되는 ChatSpeaker를 가지고 있습니다(그러나 시스템은 읽기 전용). Player.Team이 있는 경우, 사용자는 해당 팀에 대한 채널에만 액세스할 수 있습니다.

속성

이름

  • 유형: string
  • 설명: 채널의 이름, 다른 함수에서 채널을 참조하는 데 사용됩니다.

웰컴메시지

  • 유형: string
  • 설명: 사용자가 채널에 참여할 때 표시되는 메시지.

가입 가능

  • 형식: boo로
  • 설명: 사용자가 /join 명령을 사용하여 채널에 수동으로 가입할 수 있는지 여부를 결정합니다. 사용자는 여전히 ChatSpeaker:JoinChannel() 또는 기타 방법으로 채널에 추가될 수 있습니다. 이 속성이 사실이라도 사용자는 여전히 채널에 추가될 수 있습니다.

나가기

  • 형식: boo로
  • 설명: 사용자가 /leave 명령을 사용하여 채널을 수동으로 떠나는지 여부를 결정합니다. 사용자는 채널을 떠나는 것과 관련하여 여전히 ChatSpeaker:LeaveChannel() 또는 다른 방법으로 제거될 수 있습니다. 이 속성이 잘못 되었더라도 0>채널 설명0>에

자동 조인

  • 형식: boo로
  • 설명: 플레이어의 ChatSpeaker가 게임에 참여할 때 채널에 자동으로 참여할지 여부를 결정합니다. 다른 사용자 스피커는 채널에 자동으로 참여하지 않으며, 이 속성이 트루인 경우 ChatSpeaker:JoinChannel()를 사용하여 이 작업을 수행할 수 있습니다(이 속성이 트

개인

  • 형식: boo로
  • 설명: 채널이 ChatService:GetChannelList() 에 포함될지 여부를 결정합니다. 이것은 조용한 채팅 및 팀 채팅에 대해 작동합니다.

메서드

킥스피커

  • 매개 변수: string : speakerName , 0> Library.문자열0> : 3> reason = null 3>
  • 설명: 채널에서 제공된 speakerName 을 제거하고 사용자와 채널에서 사용자를 킥한 모든 사람에게 메시지를 보냅니다. reason 이 제공된 경우, 이유는 메시지에 포함됩니다.
  • 반환: 무효

뮤트 스피커

  • 매개 변수: string : speakerName , 0> Library.문자열0> : 3> reason = null3> , 6> int6> 9> duration = 0 9>
  • 설명: 채널에 지정된 speakerName 으로 스피커를 음소거하십시오. 만약 duration 이 0이거나 0인 경우 음소거는 무효입니다. 0> reason0> 이 있으면 채널에 채널 소유자가 있습니다.
  • 반환: 무효

스피커 끄기

  • 매개 변수: string : speakerName
  • 설명: 채널에서 지정한 speakerName 으로 스피커를 음소거 해제합니다.
  • 반환: 무효

스피커 뮤티드

  • 매개 변수: string : speakerName
  • 설명: 은 채널에 현재 speakerName이 뮤티드 여부를 설명합니다.
  • 반환: 부울

스피커 목록 가져오기

  • 매개 변수: 없음
  • 설명: 채널에 현재 ChatSpeaker의 이름을 포함하는 목록을 반환합니다.
  • 반환: 배열< string >

시스템 메시지 전송

  • 매개 변수: string : message
  • 설명: "시스템" ChatSpeaker에서 채널에 메시지를 보냅니다.
  • 반환: 무효

RegisterFilterMessageFunction

  • 매개 변수: string : functionId , 0> function0> , 3> func 3>
  • 설명: 필터 함수를 등록합니다, func , functionId 채널에 식별된 필터 함수. 필터 함수는 0> ChatSpeaker0>, 3> ChatMessage3> 및 6>Library.문자열 6> : 채��
  • 반환: 무효
  • 예:

-- 이 예시를 ChatModule 폴더 내의 ModuleScript에 붙여넣습니다.
local functionId = "getPizza"
local command = "/pizza"
local toolId = 22596452 -- 페퍼로니 피자 조각 장비
local function processCommand(speakerName, message, channelName)
if string.sub(message, 1, command:len()) == command then
local model = game:GetService("InsertService"):LoadAsset(toolId)
local tool = model:GetChildren()[1]
local speaker = ChatService:GetSpeaker(speakerName)
local player = speaker:GetPlayer()
tool.Parent = player.Backpack
return true
end
return false
end
local function runChatModule(ChatService)
ChatService:RegisterProcessCommandsFunction(functionId, processCommand)
end
return runChatModule

UnregisterFilterMessageFunction

  • 매개 변수: string : functionId
  • 설명: 등록된 RegisterFilterMessageFunction에 의해 등록된 필터 함수(식별자 functionId)를 제거합니다.
  • 반환: 무효

RegisterProcessCommandsFunction

  • 매개 변수: string : functionId , 0> function0> , 3> func 3>
  • 설명: 프로세스 명령 함수를 등록하고, func 을 채팅에 식별하는 functionId 에 대해 전송합니다. 메시지가 필터링되기 전에
  • 반환: 무효
  • 예:

-- 이 예시를 ChatModule 폴더 내의 ModuleScript에 붙여넣습니다.
-- 이 예시에서 키워드를 필터링하고 성공하면 메시지의 chatColor를 설정합니다.
local functionId = "greenText"
local keyword = "#green"
local chatColor = Color3.new(0, 1, 0) -- 녹색
local function doFilter(speaker, messageObject, channelName)
-- 메시지에 키워드가 포함되어 있는지 확인하십시오
local start, finish = string.find(messageObject.Message, keyword)
if start and finish then
-- 채팅 색상도 설정하여 메시지에서 키워드를 제거(필터링)하고
messageObject.Message = string.gsub(messageObject.Message, keyword, "")
messageObject.ExtraData.ChatColor = chatColor
end
end
local function runChatModule(ChatService)
-- 채널을 생성하고 필터 기능을 등록하십시오
local testChannel = ChatService:AddChannel("TestChannel")
testChannel:RegisterFilterMessageFunction(functionId, doFilter)
end
return runChatModule

UnregisterProcessCommandsFunction

  • 매개 변수: string : functionId
  • 설명: RegisterProcessCommandsFunction에 의해 등록된 명령 프로세서(식별자 functionId)를 등록 해제합니다.
  • 반환: 무효

이벤트

게시된 메시지

  • 매개 변수: 채팅 메시지 : message
  • 설명: 채널에 메시지가 게시되면 화면에 불이 붙습니다.

스피커 조인

  • 매개 변수: string : speakerName
  • 설명: 채널에 ChatSpeaker 가 참여하면 화재됩니다.

스피커 왼쪽

  • 매개 변수: string : speakerName
  • 설명: 채널을 떠나면 화면이 켜집니다.

스피커 뮤티드

  • 매개 변수: string : speakerName , 0> Library.문자열0> : 3> reason3> , 6> int6> 9> duration = 0 9>
  • 설명: 채널에서 채팅 스피커를 묵시적으로 음소거하면 화재됩니다.

스피커 음소거 해제

  • 매개 변수: string : speakerName
  • 설명: 채팅 스피커가 음소거되어 있을 때 화재됩니다.