summaryrefslogtreecommitdiff
path: root/indra/newview/groupchatlistener.cpp
diff options
context:
space:
mode:
Diffstat (limited to 'indra/newview/groupchatlistener.cpp')
-rw-r--r--indra/newview/groupchatlistener.cpp19
1 files changed, 8 insertions, 11 deletions
diff --git a/indra/newview/groupchatlistener.cpp b/indra/newview/groupchatlistener.cpp
index 09951ba1cc..298f41ff8c 100644
--- a/indra/newview/groupchatlistener.cpp
+++ b/indra/newview/groupchatlistener.cpp
@@ -43,7 +43,8 @@ static const F32 GROUP_CHAT_THROTTLE_PERIOD = 1.f;
LLGroupChatListener::LLGroupChatListener():
LLEventAPI("GroupChat",
"API to enter, leave, send and intercept group chat messages"),
- mLastThrottleTime(0)
+ mIMThrottle("sendGroupIM", &LLGroupChatListener::sendGroupIM_, this,
+ GROUP_CHAT_THROTTLE_PERIOD)
{
add("startGroupChat",
"Enter a group chat in group with UUID [\"group_id\"]\n"
@@ -101,18 +102,14 @@ void LLGroupChatListener::sendGroupIM(LLSD const &data)
return;
}
- F64 cur_time = LLTimer::getElapsedSeconds();
-
- if (cur_time < mLastThrottleTime + GROUP_CHAT_THROTTLE_PERIOD)
- {
- LL_DEBUGS("LLGroupChatListener") << "'sendGroupIM' was throttled" << LL_ENDL;
- return;
- }
- mLastThrottleTime = cur_time;
+ mIMThrottle(data["group_id"], data["message"]);
+}
- LLUUID group_id(data["group_id"]);
- LLIMModel::sendMessage(LUA_PREFIX + data["message"].asString(),
+void LLGroupChatListener::sendGroupIM_(const LLUUID& group_id, const std::string& message)
+{
+ LLIMModel::sendMessage(LUA_PREFIX + message,
gIMMgr->computeSessionID(IM_SESSION_GROUP_START, group_id),
group_id,
IM_SESSION_SEND);
}
+