Feature Request: Offer to show that autoresponse to muted was sent.

Also, stop letting RLV filter cmdline_printchat() calls.
This commit is contained in:
Inusaito Sayori
2015-03-19 03:37:01 -04:00
parent 8cc2499f0a
commit 6cd7941fd2
9 changed files with 53 additions and 45 deletions

View File

@@ -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"))))
{