Engine-klasse
TextChatService
*Deze inhoud is vertaald met behulp van AI (bèta) en kan fouten bevatten. Klik hier om deze pagina in het Engels te bekijken.
Samenvatting
Eigenschappen
Methoden
CanUserChatAsync(userId: User):boolean |
CanUsersChatAsync(userIdFrom: User,userIdTo: User):boolean |
CanUsersDirectChatAsync(requesterUserId: User,userIds: {any}):{any} |
DisplayBubble(partOrCharacter: Instance,message: string):() |
GetChatGroupsAsync(players: Instances):{any} |
Evenementen
BubbleDisplayed(partOrCharacter: Instance,textChatMessage: TextChatMessage):RBXScriptSignal |
MessageReceived(textChatMessage: TextChatMessage):RBXScriptSignal |
SendingMessage(textChatMessage: TextChatMessage):RBXScriptSignal |
Callbacks
OnBubbleAdded(message: TextChatMessage,adornee: Instance):Tuple |
OnChatWindowAdded(message: TextChatMessage):Tuple |
OnIncomingMessage(message: TextChatMessage):Tuple |
API-referentie
Eigenschappen
ChatVersion
Methoden
CanUserChatAsync
CanUsersChatAsync
CanUsersDirectChatAsync
Teruggaves
Codevoorbeelden
CanUsersDirectChatAsync
local TextChatService = game:GetService("TextChatService")
local directChatParticipants = TextChatService:CanUsersDirectChatAsync(userId1, { userId2 })
-- Controleer op in aanmerking komende deelnemers
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("Kon geen TextChannel maken. Niet genoeg in aanmerking komende gebruikers.")
return nilDisplayBubble
GetChatGroupsAsync
Parameters
players:Instances |
Teruggaves
Codevoorbeelden
TeleporteerSpelerNaarBesteChatServer
-- Server Script
local TextChatService = game:GetService("TextChatService")
local TeleportService = game:GetService("TeleportService")
local Players = game:GetService("Players")
local TARGET_PLACE_ID = 1234567890 -- Bestemmingsplaats ID
--[[
Stubbed universum-brede serverstatus.
In de praktijk kunnen deze gegevens worden opgeslagen en bijgewerkt met behulp van MemoryStore
of een ander backend-systeem.
Voorbeeldvorm:
ActiveServers = {
{
serverId = "abc",
accessCode = "gereserveerde-server-code",
groupUserCounts = {
groupA = 12,
groupB = 5
}
},
{
serverId = "def",
accessCode = "gereserveerde-server-code",
groupUserCounts = {
groupB = 8
}
}
}
]]
local ActiveServers = {}
local function teleportPlayerToBestServer(player)
local success, chatGroups = pcall(function()
return TextChatService:GetChatGroupsAsync({ player })
end)
if not success or not chatGroups then
warn("Kon chatgroepen voor speler niet ophalen:", player.UserId)
return
end
-- Verzamel alle chatgroep-ID's waarvoor de speler in aanmerking komt
local playerGroupIds = {}
for _, group in ipairs(chatGroups) do
for _, groupId in ipairs(group) do
playerGroupIds[groupId] = true
end
end
local bestServer = nil
local bestUserCount = 0
-- Kies de server met het hoogste aantal compatibele gebruikers
for _, server in ipairs(ActiveServers) do
local compatibleUserCount = 0
for groupId, userCount in pairs(server.groupUserCounts) do
if playerGroupIds[groupId] then
compatibleUserCount += userCount
end
end
if compatibleUserCount > bestUserCount then
bestUserCount = compatibleUserCount
bestServer = server
end
end
if not bestServer then
warn("Geen geschikte server gevonden voor speler:", player.UserId)
return
end
local ok, err = pcall(function()
TeleportService:TeleportToPrivateServer(
TARGET_PLACE_ID,
bestServer.accessCode,
{ player }
)
end)
if not ok then
warn("Teleporteren mislukt:", err)
end
end
Players.PlayerAdded:Connect(teleportPlayerToBestServer)Krijg Chatgroepen Asynchroon
local TextChatService = game:GetService("TextChatService")
local Players = game:GetService("Players")
local players = Players:GetPlayers()
local success, chatGroups = pcall(function()
return TextChatService:GetChatGroupsAsync(players)
end)
if not success then
warn("Kon chatgroepen niet ophalen")
return
end
for _, group in ipairs(chatGroups) do
-- Elke groep bevat chatgroep ID-strings.
-- Spelers die een overeenkomende groep ID delen, kunnen met elkaar chatten.
for _, groupId in ipairs(group) do
print("Chatgroep ID:", groupId)
end
endEvenementen
BubbleDisplayed
TextChatService.BubbleDisplayed(
Parameters
MessageReceived
Parameters
SendingMessage
Parameters
Callbacks
OnBubbleAdded
Parameters
Teruggaves
OnChatWindowAdded
Parameters
Teruggaves
OnIncomingMessage
Parameters
Teruggaves