UserService

유저 관련 기능을 제공합니다.

# Properties

[{"index":"Entity LocalPlayer (ReadOnly)","0":"내 유저 엔티티입니다. 클라이언트에서만 사용 가능합니다."}]

[{"index":"ReadOnlyDictionary UserEntities (ReadOnly)","0":"모든 유저 엔티티 목록입니다. key는 유저 Id, value는 유저 엔티티입니다."}]

[{"index":"ReadOnlyDictionary Users (ReadOnly)","0":"모든 유저 정보 목록입니다. key는 유저 Id, value는 유저 정보입니다."}]

# Methods

[{"index":"string GetUserBanReason(string profileCode) (ServerOnly) (ReleaseOnly)","0":"월드 인사이트를 통해 제재된 유저의 제재 사유를 확인합니다. 출시 환경에서만 동작합니다."}]

[{"index":"User GetUserByProfileCode(string profileCode)","0":"profileCode에 해당하는 유저 정보를 찾아 반환합니다."}]

[{"index":"int32 GetUserCount()","0":"현재 유저 수를 반환합니다."}]

[{"index":"Entity GetUserEntityByUserId(string userId)","0":"userId에 해당하는 유저 엔티티를 찾아 반환합니다."}]

[{"index":"table GetUsersByMapComponent(MapComponent mapComponent)","0":"mapComponent에 해당하는 맵에 속한 유저를 찾아 반환합니다."}]

[{"index":"table GetUsersByMapName(string mapName)","0":"mapName에 해당하는 맵에 속한 유저를 찾아 반환합니다."}]

[{"index":"boolean IsUserBanned(string profileCode) (ServerOnly) (ReleaseOnly)","0":"월드 인사이트를 통해 제재된 유저인지 확인합니다. 출시 환경에서만 동작합니다."}]

[{"index":"void KickUser(string userId, KickReason kickReason) (ServerOnly)","0":"userId에 해당하는 유저를 추방합니다. 추방 유저는 kickReason에 해당하는 사유로 추방되었음을 안내받습니다."}]

##### inherited from Service:

[{"index":"EventHandlerBase ConnectEvent(string key, IScriptFunction eventHandler)","0":"이벤트를 연결합니다. 이 서비스에서 타입의 이름이 key인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다."}]

[{"index":"EventHandlerBase ConnectEvent(Type eventType, IScriptFunction eventHandler)","0":"이벤트를 연결합니다. 이 서비스에서 타입이 eventType인 이벤트가 발생하면, 핸들러로 통지받습니다. 핸들러는 event 매개 변수를 전달받습니다."}]

[{"index":"boolean DisconnectEvent(string key, EventHandlerBase eventHandler)","0":"타입의 이름이 key인 이벤트와 핸들러와의 이벤트 연결을 끊습니다."}]

[{"index":"boolean DisconnectEvent(Type eventType, EventHandlerBase eventHandler)","0":"타입이 eventType인 이벤트와 핸들러와의 연결을 끊습니다."}]

[{"index":"void SendEvent(EventType sendEvent)","0":"이벤트를 발생시킵니다."}]

# Events

[{"index":"UserDisconnectEvent","0":"유저의 네트워크 접속이 불안정하여 끊겼을 때 발생하는 이벤트입니다."}]

[{"index":"UserEnterEvent","0":"유저가 입장할 때 UserService에서 발생하는 이벤트입니다."}]

[{"index":"UserKickEvent","0":"유저가 추방되었을 때 발생하는 이벤트입니다. 서버에서만 발생합니다."}]

[{"index":"UserLeaveEvent","0":"유저가 떠날 때 UserService에서 발생하는 이벤트입니다.\\\nUserLeaveEvent 핸들러 실행이 완료된 뒤 유저 엔티티 삭제가 진행됩니다.\\\nUserLeaveEvent 핸들러 실행이 오래 걸리면서 일정 시간 이상이 소요되면 유저 엔티티 삭제가 실행이 완료되기 전에 진행됩니다."}]

[{"index":"UserReconnectEvent","0":"유저가 재접속되었을 때 발생하는 이벤트입니다."}]

# Examples

다음은 유저가 서로의 닉네임을 알 수 없도록 `NameTag`를 변경하는 예제입니다. 유저가 입장하면 UserId에 따라 정해진 단어와 색상으로 `NamgTag`를 설정합니다.
    
    
    @Component
    script UserRoleNametagSetter extends Component
        @ExecSpace("ServerOnly")
        @EventSender("Service", "UserService")
        handler HandleUserEnterEvent(UserEnterEvent event)
        -- Parameters
        local UserId = event.UserId
        --------------------------------------------------------
    
        local userEntity = _UserService:GetUserEntityByUserId(UserId)
        local nametag = userEntity.NameTagComponent
    
        if UserId == "000000" then
        	nametag.Name = "Admin"
        	nametag.FontColor = Color.magenta
        else
        	nametag.Name = "Player"
        	nametag.FontColor = Color.cyan
        end
        end
    end
    

# SeeAlso

  * NameTagComponent
  * UserEnterEvent
  * Color