답변 감사합니다! 실제로는 다른 방법으로 해결했지만, 제안해 주신 방법도 감사합니다. 제 방법보다 훨씬 깔끔해 보이거든요(제 코드에서는 클래스 이름을 직접 접근해야 하고, 제 메서드는 좀 해킹처럼 느껴집니다). 제가 사용한 전략은 다음과 같습니다:
// Also colorize names in the real-time chat
api.decorateChatMessage(function (messageContainer, chatChannel)
{
let colorized_groups = this.args?.message?.user?.colorized_groups;
if (colorized_groups == null)
return; // no groups, nothing to do
const nameClass = "chat-message-info__username__name";
let elements = messageContainer.getElementsByClassName(nameClass);
if (elements.length == 0) // normal: this might be a second message that does not have the username header
return;
let nameDiv = elements[0];
if (colorized_groups.indexOf("developer") > -1)
nameDiv.classList.add("developer");
else if (colorized_groups.indexOf("wip_researcher") > -1)
nameDiv.classList.add("wip_researcher");
else if (colorized_groups.indexOf("researcher") > -1)
nameDiv.classList.add("researcher");
});
제안해 주신 방법에서는 여전히 this.args.message.user가 전달되는 걸로 이해하면 되나요?