Feature Request: Offer to show that autoresponse to muted was sent.
Also, stop letting RLV filter cmdline_printchat() calls.
This commit is contained in:
@@ -2164,6 +2164,27 @@ std::string replace_wildcards(std::string autoresponse, const LLUUID& id, const
|
||||
return autoresponse;
|
||||
}
|
||||
|
||||
void autoresponder_finish(bool show_autoresponded, const LLUUID& computed_session_id, const LLUUID& from_id, const std::string& name, const LLUUID& itemid, bool is_muted)
|
||||
{
|
||||
LLAvatarName av_name;
|
||||
const std::string ns_name(LLAvatarNameCache::get(from_id, &av_name) ? av_name.getNSName() : name);
|
||||
void cmdline_printchat(const std::string& message);
|
||||
if (show_autoresponded)
|
||||
{
|
||||
const std::string notice(LLTrans::getString("IM_autoresponded_to") + ' ' + ns_name);
|
||||
is_muted ? cmdline_printchat(notice) : gIMMgr->addMessage(computed_session_id, from_id, name, notice);
|
||||
}
|
||||
if (LLViewerInventoryItem* item = gInventory.getItem(itemid))
|
||||
{
|
||||
LLGiveInventory::doGiveInventoryItem(from_id, item, computed_session_id);
|
||||
if (show_autoresponded)
|
||||
{
|
||||
const std::string notice(llformat("%s %s \"%s\"", ns_name.c_str(), LLTrans::getString("IM_autoresponse_sent_item").c_str(), item->getName().c_str()));
|
||||
is_muted ? cmdline_printchat(notice) : gIMMgr->addMessage(computed_session_id, from_id, name, notice);
|
||||
}
|
||||
}
|
||||
}
|
||||
|
||||
void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
{
|
||||
if (gNoRender)
|
||||
@@ -2422,7 +2443,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
response = gSavedPerAccountSettings.getString("AutoresponseMutedMessage");
|
||||
if (gSavedPerAccountSettings.getBOOL("AutoresponseMutedItem"))
|
||||
itemid = static_cast<LLUUID>(gSavedPerAccountSettings.getString("AutoresponseMutedItemID"));
|
||||
// We don't show that we've responded to mutes
|
||||
show_autoresponded = gSavedPerAccountSettings.getBOOL("AutoresponseMutedShow");
|
||||
}
|
||||
else if (is_autorespond_nonfriends)
|
||||
{
|
||||
@@ -2442,7 +2463,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
gMessageSystem,
|
||||
gAgentID,
|
||||
FALSE,
|
||||
gAgent.getSessionID(),
|
||||
gAgentSessionID,
|
||||
from_id,
|
||||
my_name,
|
||||
replace_wildcards(response, from_id, name),
|
||||
@@ -2451,21 +2472,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
session_id);
|
||||
gAgent.sendReliableMessage();
|
||||
|
||||
LLAvatarName av_name;
|
||||
std::string ns_name = LLAvatarNameCache::get(from_id, &av_name) ? av_name.getNSName() : name;
|
||||
if (show_autoresponded)
|
||||
{
|
||||
gIMMgr->addMessage(session_id, from_id, name, LLTrans::getString("IM_autoresponded_to") + " " + ns_name);
|
||||
}
|
||||
if (LLViewerInventoryItem* item = gInventory.getItem(itemid))
|
||||
{
|
||||
LLGiveInventory::doGiveInventoryItem(from_id, item, computed_session_id);
|
||||
if (show_autoresponded)
|
||||
{
|
||||
gIMMgr->addMessage(computed_session_id, from_id, name,
|
||||
llformat("%s %s \"%s\"", ns_name.c_str(), LLTrans::getString("IM_autoresponse_sent_item").c_str(), item->getName().c_str()));
|
||||
}
|
||||
}
|
||||
autoresponder_finish(show_autoresponded, computed_session_id, from_id, name, itemid, is_muted);
|
||||
}
|
||||
// We stored the incoming IM in history before autoresponding, logically.
|
||||
}
|
||||
@@ -2561,7 +2568,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
gMessageSystem,
|
||||
gAgentID,
|
||||
FALSE,
|
||||
gAgent.getSessionID(),
|
||||
gAgentSessionID,
|
||||
from_id,
|
||||
my_name,
|
||||
replace_wildcards(gSavedPerAccountSettings.getString("AutoresponseMutedMessage"), from_id, name),
|
||||
@@ -2569,9 +2576,8 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
IM_BUSY_AUTO_RESPONSE,
|
||||
session_id);
|
||||
gAgent.sendReliableMessage();
|
||||
if (gSavedPerAccountSettings.getBOOL("AutoresponseMutedItem"))
|
||||
if (LLViewerInventoryItem* item = gInventory.getItem(static_cast<LLUUID>(gSavedPerAccountSettings.getString("AutoresponseMutedItemID"))))
|
||||
LLGiveInventory::doGiveInventoryItem(from_id, item, computed_session_id);
|
||||
LLAvatarName av_name;
|
||||
autoresponder_finish(gSavedPerAccountSettings.getBOOL("AutoresponseMutedShow"), computed_session_id, from_id, LLAvatarNameCache::get(from_id, &av_name) ? av_name.getNSName() : name, gSavedPerAccountSettings.getBOOL("AutoresponseMutedItem") ? static_cast<LLUUID>(gSavedPerAccountSettings.getString("AutoresponseMutedItemID")) : LLUUID::null, true);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -2624,19 +2630,7 @@ void process_improved_im(LLMessageSystem *msg, void **user_data)
|
||||
pack_instant_message(gMessageSystem, gAgentID, false, gAgentSessionID, from_id, my_name, replace_wildcards(response, from_id, name), IM_ONLINE, IM_BUSY_AUTO_RESPONSE, session_id);
|
||||
gAgent.sendReliableMessage();
|
||||
|
||||
if (show_autoresponded)
|
||||
{
|
||||
gIMMgr->addMessage(session_id, from_id, name, LLTrans::getString("IM_autoresponded_to") + " " + ns_name);
|
||||
}
|
||||
if (LLViewerInventoryItem* item = gInventory.getItem(itemid))
|
||||
{
|
||||
LLGiveInventory::doGiveInventoryItem(from_id, item, computed_session_id);
|
||||
if (show_autoresponded)
|
||||
{
|
||||
gIMMgr->addMessage(computed_session_id, from_id, name,
|
||||
llformat("%s %s \"%s\"", ns_name.c_str(), LLTrans::getString("IM_autoresponse_sent_item").c_str(), item->getName().c_str()));
|
||||
}
|
||||
}
|
||||
autoresponder_finish(show_autoresponded, computed_session_id, from_id, name, itemid, is_muted);
|
||||
}
|
||||
}
|
||||
LLPointer<LLIMInfo> im_info = new LLIMInfo(gMessageSystem);
|
||||
@@ -3488,7 +3482,7 @@ void send_do_not_disturb_message (LLMessageSystem* msg, const LLUUID& from_id, c
|
||||
std::string ns_name = LLAvatarNameCache::get(from_id, &av_name) ? av_name.getNSName() : from_name;
|
||||
LLUUID session_id;
|
||||
msg->getUUIDFast(_PREHASH_MessageBlock, _PREHASH_ID, session_id);
|
||||
if (gSavedPerAccountSettings.getBOOL("BusyModeResponseShow")) gIMMgr->addMessage(session_id, from_id, from_name, LLTrans::getString("IM_autoresponded_to") + " " + ns_name);
|
||||
if (gSavedPerAccountSettings.getBOOL("BusyModeResponseShow")) gIMMgr->addMessage(session_id, from_id, from_name, LLTrans::getString("IM_autoresponded_to") + ' ' + ns_name);
|
||||
if (!gSavedPerAccountSettings.getBOOL("BusyModeResponseItem")) return; // Not sending an item, finished
|
||||
if (LLViewerInventoryItem* item = gInventory.getItem(static_cast<LLUUID>(gSavedPerAccountSettings.getString("BusyModeResponseItemID"))))
|
||||
{
|
||||
|
||||
Reference in New Issue
Block a user