TextChatService

사용되지 않는 항목 표시

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

만들 수 없음
서비스

경험 내 텍스트 채팅을 처리하는 서비스, 포함 managing channels , 메시지 장식, 텍스트 필터링, creating commands , 그리고 사용자 지정 채팅 인터페이스 개발 .

자세한 내용은 TextChatService 개요에 참조하십시오.

추가 사용자 정의를 위해 TextChatService에는 다음과 같은 단일 자식이 있습니다:

요약

속성

메서드

  • DisplayBubble(partOrCharacter : Instance,message : string):()

    제공된 부분 또는 플레이어 캐릭터 위에 채팅 거품을 표시합니다.

  • 사용자가 경험에서 채팅할 수 있는 권한이 있는지 여부를 결정합니다.

  • CanUsersChatAsync(userIdFrom : number,userIdTo : number):boolean
    생성

    두 사용자가 서로 메시지를 받을지 여부를 결정합니다.

  • CanUsersDirectChatAsync(requesterUserId : number,userIds : Array):Array
    생성

    사용자가 부모 제어 설정과 같은 요소에 따라 경험에서 다른 사용자와 직접 채팅할 수 있는 권한이 있는지 여부를 결정합니다.

이벤트

콜백

속성

ChatTranslationEnabled

복제되지 않음
Roblox 스크립트 보안
병렬 읽기

채팅 번역이 활성화되었는지 여부를 결정합니다. true이면 시스템 메시지가 플레이어의 첫 번째 참여 시 채팅 메시지가 플레이어의 선호 언어로 번역될 수 있음을 플레이어에게 알립니다.

ChatVersion

Roblox 스크립트 보안
병렬 읽기

전체적으로 TextChatService 활성화하거나 레거시 채팅 시스템으로 되돌릴지 여부를 결정합니다.이 속성을 Enum.ChatVersion.LegacyChatService로 설정하면 TextChatService을 효과적으로 비활성화할 수 있습니다.

CreateDefaultCommands

플러그인 보안
병렬 읽기

기본 TextChatService를 생성해야 하는지 여부를 결정합니다. TextChatCommands .

참여가 진실이면 다음 TextChatCommands 가 생성되고 이름이 FolderTextChatCommands 내에 배치됩니다. 내부 TextChatService :


<th>기본 별칭</th>
<th>보조 별칭</th>
<th>설명</th>
<th>사용 예시</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>RBX클리어명령</b></td>
<td>지우다</td>
<td>cls</td>
<td>로컬 사용자의 채팅 로그를 지우십시오.</td>
<td><code>/clk스</code></td>
</tr>
<tr>
<td><b>RBXConsoleCommand</b></td><td>콘솔</td>
<td />
<td>개발자 콘솔을 엽니다.</td><td><code>/console</code> ></td>
</tr>
<tr>
<td><b>RBXEmoteCommand</b></td>
<td>감정 표현</td>
<td>e</td>
<td>아바타 감정 표현을 재생합니다.</td>
<td><code>/e dance</code></td>
</tr>
<tr>
<td><b>RBXHelpCommand</b></td>
<td>돕다</td>
<td>?</td>
<td>채팅 명령 목록을 표시합니다.</td>
<td><code>/헬프</code></td>
</tr>
<tr>
<td><b>RBXMuteCommand</b></td>
<td>음소거</td>
<td>m</td>
<td>모든 Class.TextChannel|TextChannels에서 사용자의 Class.Player.Name|Name 또는 Class.Player.DisplayName|DisplayName에 의해 음소거합니다.</td>
<td><code>/m 사용자명</code></td>
</tr>
<tr>
<td><b>RBX팀 명령</b></td>
<td>팀</td>
<td>t</td>
<td>팀원에게만 메시지가 표시되는 팀 채팅 모드로 들어갑니다.</td>
<td><code>/t</code></td>
</tr>
<tr>
<td><b>RBXUnmuteCommand</b></td>
<td>무음 해제</td>
<td>um</td>
<td>모든 Class.TextChannel|TextChannels에서 사용자의 Class.Player.Name|Name 또는 Class.Player.DisplayName|DisplayName에서 음소거를 해제합니다.</td>
<td><code>/um 사용자 이름</code></td>
</tr>
<tr>
<td><b>RBX버전명령</b></td>
<td>버전</td>
<td>v</td>
<td>채팅 버전을 표시합니다.</td>
<td><code>/버전</code></td>
</tr>
<tr>
<td><b>RBXWhisper명령</b></td>
<td>귓속말</td>
<td>w</td>
<td>다른 <code>Class.Player</code>로 위스퍼 모드에 들어갑니다.</td>
<td><code>/w DisplayName</code> 또는 <code>/w @Username</code></td>
</tr>
</tbody>
이름

Note that you can edit, create, and remove TextChatCommands even if CreateDefaultCommands 가 true이면 무음 및 음성 명령이 모든 TextChannels에 적용됩니다.

CreateDefaultTextChannels

플러그인 보안
병렬 읽기

기본 TextChatService를 생성해야 하는지 여부를 결정합니다. TextChannels .참여할 경우 true, a 명명된 텍스트 채널 은 런타임에서 내부에 생성되어 아래 표에 설명된 을 포함합니다.기본 채널 각각에는 내부 바인딩된 TextChannel.OnIncomingMessage 콜백 함수에 설명된 특별 동작이 적용되어 채널을 통해 전송되는 메시지의 모양이 변경되는 메시지가 적용됩니다.콜백은 런타임에 자동으로 할당되거나 TextChannel 가 있는 경우 또는 TextChannel 가 생성될 때 할당됩니다.


<th>설명</th>
</tr>
</thead>
<tbody>
<tr>
<td><b>RBX일반</b></td>
<td><code>Class.TextChannel</code> 플레이어 메시지용.채팅 창에서 메시지는 수정되어 <code>Class.TextChatMessage.PrefixText|PrefixText</code> 가 채팅 플레이어에게 고유한 이름 색상을 제공하기 위해 <a href="/ui/rich-text">풍부한 텍스트</a> 글꼴 태그를 받습니다.<code>Class.Player.Team</code>이 존재하면 기본 이름 색상 대신 <code>Class.Team.TeamColor</code>가 사용됩니다.</td>
</tr>
<tr>
<td><b>RBX시스템</b></td>
<td><code>Class.TextChannel</code> 시스템 메시지용.채팅 창에서 메시지는 기본적으로 <code>Class.TextChatMessage.Text</code> 에 라이트 그레이 색 태그가 지정되거나 <code>Class.TextChatMessage.Metadata</code> 에 단어 <code>"오류"</code> 가 포함되어 있으면 빨간색 태그가 지정됩니다.</td>
</tr>
<tr>
<td><b>RBX팀[브릭 색상]</b></td>
<td>Class.TextChannel 팀 특정 플레이어 메시지를 위한, Class.Team.TeamColor|TeamColor 가 사용 중인 경우 클래스 내에서 Class.Teams 서비스 내에서 생성된 메시지.생성된 채널의 이름은 <b>RBXTeam</b>으로, 그 다음에 <code>Class.Team.TeamColor|TeamColor</code> 이름이 따라옵니다.예를 들어, RBXTeamCrimson 는 활성 팀의 Class.Team.TeamColor|TeamColor 속성이 "크림슨" 데이터 형식 인 경우 생성된 Class.TextChannel 클래스입니다.채팅 창에서 메시지가 수정되어 Class.TextChatMessage.PrefixText|PrefixText 가 색상으로 지정되고 [팀] 팀 채널이 모든 비- Class.Player.Neutral|Neutral 플레이어에 생성되어 팀 전용 채팅을 사용할 수 있습니다.연결된 <code>Class.Team.TeamColor|TeamColor</code> 클래스가 남아 있지 않은 팀이 없으면 채널이 제거됩니다.</td>
</tr>
<tr>
<td><b>RBXWhisper:[사용자1]_[사용자2]</b></td>
<td>Class.TextChannel 두 플레이어 사이의 속삭임 메시지를 위한, 플레이어가 다른 플레이어에게 /whisper 명령을 사용할 때 생성된,예를 들어 RBXWhisper:2276836_505306092는 Class.TextChannel으로 플레이어에게 Class.Player.UserId|UserIds 및 505306092을 가진 클래스입니다.내부 속삭임 채널에는 각각의 <code>Class.TextSource|TextSources</code> 와 관련된 두 개의 <code>Class.Player.UserId|UserIds</code> 가 있으며, 채팅 창에서 메시지는 각각의 <b>RBXGeneral</b> 및 <code>Class.TextChatMessage.PrefixText</code> 와 동일한 색상으로 표시됩니다.Whisper 채널은 플레이어가 경험을 떠날 때 제거됩니다.</td>
</tr>
</tbody>
채널

기본 TextChannel.OnIncomingMessage 콜백을 재정의할 수 있습니다.또한 TextChannels가 참이면 편집, 생성 및 제거할 수 있으며, CreateDefaultTextChannels가 참이면 조차 가능합니다.

다른 텍스트 채널의 메시지는 ChannelTabsConfiguration를 사용하여 채팅 창의 다른 탭으로 분리할 수 있습니다.

메서드

DisplayBubble

()

제공된 부분 또는 플레이어 캐릭터 위에 채팅 거품을 표시하고 이 메서드에서 지정된 매개변수로 BubbleDisplayed 이벤트를 발생시킵니다.캐릭터 내부의 부품을 지정하여 플레이어가 아닌 캐릭터(NPC)의 거품을 표시할 수 있습니다(예: 머리).

이 메서드는 LocalScript에서만 사용할 수 있거나 Script에서 RunContextEnum.RunContext.Client과 함께 사용할 수 있습니다.

매개 변수

partOrCharacter: Instance

위에 표시될 거품의 부분 또는 문자입니다.

기본값: ""
message: string

채팅 거품에 표시될 텍스트.

기본값: ""

반환

()

CanUserChatAsync

생성

사용자가 경험에서 채팅할 수 있는 권한이 있는지 여부를 결정합니다.부모 제어 설정과 같은 요소는 사용자가 메시지를 보내는 것을 방지할 수 있습니다.현재 서버에 사용자 ID가 없으면 오류가 발생합니다.이 메서드는 현재 플레이어 모두와 함께 사용할 수 있으며, 에서는 의 또는 중 하나를 사용할 수 있습니다.이 메서드는 LocalScript에서도 사용할 수 있지만 로컬 플레이어의 UserId만 사용할 수 있습니다.

매개 변수

userId: number
기본값: ""

반환

CanUsersChatAsync

생성

두 사용자가 서로 메시지를 받을지 여부를 결정합니다.호환되지 않는 부모 제어 설정이나 차단된 상태와 같은 요소는 사용자 간의 메시지 전달을 방해할 수 있습니다 TextChannels 내부적으로 이 결과를 사용하여 사용자 간의 메시지를 전달할지 여부를 결정합니다.이 메서드는 ScriptRunContextEnum.RunContext.Server 또는 Enum.RunContext.Legacy 에서만 사용할 수 있습니다.

매개 변수

userIdFrom: number
기본값: ""
userIdTo: number
기본값: ""

반환

CanUsersDirectChatAsync

생성

사용자가 부모 제어 설정에 따라 다른 사용자와 직접 채팅할 수 있는 권한이 있는지 여부를 결정합니다. 사용 시기:

  • 통신 라인이 사용자 발생(개발자나 게임플레이가 발생시키지 않음)
  • 통신에 대한 액세스가 차단되고 제한되었습니다

직접 채팅의 예는 두 사용자 사이의 속삭임 채널입니다.

결과에 따라 경험의 특정 기능을 게이트할 수 있습니다.

직접 채팅을 위해 TextChannel를 생성할 때, 채널이 사용자 간에 메시지를 전달할지 여부를 결정할 수 있도록 TextChannel:SetDirectChatRequester()를 사용하여 requesterUserId를 설정합니다.When TextChannel.DirectChatRequester 가 null이 아닌 경우, TextChannels 내부적으로 이 결과를 사용하여 사용자 간에 메시지를 전달할지 여부를 결정합니다.


local whoCanDirectChat = TextChatService:CanUsersDirectChatAsync(requesterUserId, { userId1, userId2 })
if #whoCanDirectChat > 0 then
-- 요청자의 requesterUserId는 iPad1, iPad2 또는 둘 모두와 채팅을 연결할 수 있습니다
else
-- 요청자의 requesterUserId는 iPad1 또는 iPad2와 채팅을 지시할 수 없습니다
end

이 메서드는 Script 에서만 사용할 수 있으며, RunContext 또는 Enum.RunContext.ServerEnum.RunContext.Legacy 와 함께 사용할 수 없습니다.

매개 변수

requesterUserId: number

직접 채팅 요청을 시작할 사용자. 요청자UID가 현재 서버에 없으면 이 메서드가 오류가 발생합니다.

기본값: ""
userIds: Array

요청자UID가 직접 채팅하고 싶은 사용자 목록. 현재 서버에 없는 사용자는 무시됩니다.

기본값: ""

반환

직접 채팅 요청에 참여할 수 있는 사용자 목록.사용자 중 누구도 요청자 ID와 채팅을 연결할 수 없으면 결과는 빈 배열입니다.

코드 샘플

This example checks if two users can chat, creates a new TextChannel, and adds them to it.

CanUsersDirectChatAsync

local TextChatService = game:GetService("TextChatService")
local directChatParticipants = TextChatService:CanUsersDirectChatAsync(userId1, { userId2 })
-- Check for eligible participants
if #directChatParticipants > 0 then
local directChannel = Instance.new("TextChannel")
directChannel.Parent = TextChatService
for _, participant in directChatParticipants do
directChannel:AddUserAsync(participant)
end
return directChannel
end
warn("Could not create TextChannel. Not enough eligible users.")
return nil

이벤트

BubbleDisplayed

TextChatService:DisplayBubble()가 호출될 때 화재가 발생합니다.

매개 변수

partOrCharacter: Instance
textChatMessage: TextChatMessage

MessageReceived

Like TextChannel.MessageReceived , 클라이언트에서 TextChannel:DisplaySystemMessage() 가 호출되거나 서버에서 유효한 TextChannel:SendAsync() 응답을 받을 때 발생합니다.이 이벤트는 클라이언트에서만 발생합니다.

서버의 속성이 바인딩되어 반환되면 클라이언트가 발사되지 않습니다.

TextChatMessage 매개변수를 사용하여 메시지의 TextSource 및 텍스트(TextChatMessage.Text)를 가져옵니다.

TextChatMessage 매개 변수는 TextChatService.OnIncomingMessage 또는 TextChannel.OnIncomingMessage에 바인딩된 모든 함수의 최종 결과입니다.

매개 변수

textChatMessage: TextChatMessage

받은 TextChatMessage입니다.


SendingMessage

발신 클라이언트에 의해 TextChannel:SendAsync()가 호출될 때 화재가 발생합니다.서버 응답을 기다리는 동안 사용자에게 자리 표시자 메시지를 표시하도록 사용하세요 TextChannel:SendAsync() .

매개 변수

textChatMessage: TextChatMessage

콜백

OnBubbleAdded

거품 채팅이 표시될 때 호출됩니다. 이는 클라이언트에서만 구현할 수 있습니다.

개별 거품 채팅 메시지를 사용자 지정하려면 이를 사용하십시오.이 콜백이 BubbleChatMessageProperties를 반환하면 해당 속성이 연결된 거품에 적용되어 BubbleChatConfiguration 속성을 재정의합니다. , 또는 가 부모 아래에 있으면, 해당 상대방이 정의된 에서도 재정의됩니다.

채팅 메시지가 플레이어에 의해 전송되는 경우, message.TextSource 는 해당 플레이어에 해당하고, adorneenil 이 됩니다.

채팅 메시지가 를 통해 전송되면 가 제공되고 는 가 됩니다.

클라이언트에서 메시지를 보낼 때 바인딩되면 이 콜백은 메시지가 처음 로컬에서 전송되고 수신될 때와 클라이언트가 서버에서 필터링된 메시지의 결과를 받을 때 두 번 실행됩니다.

매개 변수

adornee: Instance

거품 채팅 메시지가 연결된 부분 또는 캐릭터.


반환

BubbleChatMessageProperties가 반환되면 해당 속성이 BubbleChatConfiguration 속성을 재정의합니다.

OnChatWindowAdded

채팅 창에 새 메시지가 표시될 때 호출됩니다. 클라이언트에서만 구현할 수 있습니다.

채팅 창에 나타나는 개별 메시지를 사용자 지정하려면 이를 사용하십시오.이 콜백이 ChatWindowMessageProperties를 반환하면 해당 속성이 연결된 메시지에 적용되어 ChatWindowConfiguration 속성을 재정의합니다. 에 부모로 지정된 가 있으면 에 정의된 속성 도 재정의됩니다.

클라이언트에서 메시지를 보낼 때 바인딩되면 이 콜백은 메시지가 처음 로컬에서 전송되고 수신될 때와 클라이언트가 서버에서 필터링된 메시지의 결과를 받을 때 두 번 실행됩니다.

매개 변수


반환

ChatWindowMessageProperties가 반환되면 해당 속성이 ChatWindowConfiguration 속성을 재정의합니다.

OnIncomingMessage

TextChatService 가 들어오는 메시지를 받을 때 호출됩니다. 클라이언트에서만 구현할 수 있습니다.

이것을 사용하여 TextChatMessages를 장식하십시오.이 콜백이 TextChatMessageProperties를 반환하면 해당 속성이 TextChatMessage 매개 변수와 병합되어 새로운 TextChatMessage를 생성합니다.

클라이언트에서 메시지를 보낼 때 바인딩되면 이 콜백은 메시지가 처음 로컬에서 전송되고 받을 때와 클라이언트가 서버에서 필터링된 메시지의 결과를 받을 때 두 번 실행됩니다.

이 콜백은 모든 콜백 전에 실행됩니다.

이는 소스 코드에서 한 번만 정의되어야 합니다. 여러 바인딩은 결정적이지 않은 방식으로 서로 재정의합니다.

매개 변수


반환

TextChatMessageProperties가 반환되면 해당 속성이 TextChatMessage 매개 변수와 병합되어 해당 속성을 가진 새로운 TextChatMessage가 생성됩니다. 그렇지 않으면 nil가 반환되면 TextChatMessage가 변경되지 않습니다.