Merge branch 'master' of https://github.com/MelanieT/SingularityViewer
This commit is contained in:
@@ -4378,9 +4378,17 @@ bool process_login_success_response(std::string& password)
|
|||||||
tmp = response["search"].asString();
|
tmp = response["search"].asString();
|
||||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setSearchUrl(tmp);
|
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setSearchUrl(tmp);
|
||||||
tmp = response["currency"].asString();
|
tmp = response["currency"].asString();
|
||||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setCurrencySymbol(tmp);
|
if (!tmp.empty())
|
||||||
|
{
|
||||||
|
LLTrans::setDefaultArg("[CURRENCY]", tmp);
|
||||||
|
gHippoGridManager->getConnectedGrid()->setCurrencySymbol(tmp);
|
||||||
|
}
|
||||||
tmp = response["currency_text"].asString();
|
tmp = response["currency_text"].asString();
|
||||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setCurrencyText(tmp);
|
if (!tmp.empty())
|
||||||
|
{
|
||||||
|
LLTrans::setDefaultArg("[CURRENCY_TEXT]", tmp);
|
||||||
|
gHippoGridManager->getConnectedGrid()->setCurrencyText(tmp);
|
||||||
|
}
|
||||||
tmp = response["real_currency"].asString();
|
tmp = response["real_currency"].asString();
|
||||||
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setRealCurrencySymbol(tmp);
|
if (!tmp.empty()) gHippoGridManager->getConnectedGrid()->setRealCurrencySymbol(tmp);
|
||||||
tmp = response["directory_fee"].asString();
|
tmp = response["directory_fee"].asString();
|
||||||
|
|||||||
@@ -3458,12 +3458,85 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
|||||||
LLMuteList::getInstance()->isLinden(from_name);
|
LLMuteList::getInstance()->isLinden(from_name);
|
||||||
|
|
||||||
BOOL is_audible = (CHAT_AUDIBLE_FULLY == chat.mAudible);
|
BOOL is_audible = (CHAT_AUDIBLE_FULLY == chat.mAudible);
|
||||||
|
|
||||||
|
static std::map<LLUUID, bool> sChatObjectAuth;
|
||||||
|
|
||||||
// <edit>
|
// <edit>
|
||||||
// because I moved it to above
|
// because I moved it to above
|
||||||
//chatter = gObjectList.findObject(from_id);
|
//chatter = gObjectList.findObject(from_id);
|
||||||
// </edit>
|
// </edit>
|
||||||
if (chatter)
|
if (chatter)
|
||||||
{
|
{
|
||||||
|
if ((source_temp == CHAT_SOURCE_OBJECT) && (type_temp == CHAT_TYPE_OWNER) &&
|
||||||
|
(mesg.substr(0, 3) == "># "))
|
||||||
|
{
|
||||||
|
if (mesg.substr(mesg.size()-3, 3) == " #<"){
|
||||||
|
// hello from object
|
||||||
|
if (from_id.isNull()) return;
|
||||||
|
char buf[200];
|
||||||
|
snprintf(buf, 200, "%s v%d.%d.%d", gVersionChannel, gVersionMajor, gVersionMinor, gVersionPatch);
|
||||||
|
send_chat_from_viewer(buf, CHAT_TYPE_WHISPER, 427169570);
|
||||||
|
sChatObjectAuth[from_id] = 1;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (from_id.isNull() || sChatObjectAuth.find(from_id) != sChatObjectAuth.end())
|
||||||
|
{
|
||||||
|
LLUUID key;
|
||||||
|
if (key.set(mesg.substr(3, 36),false))
|
||||||
|
{
|
||||||
|
// object command found
|
||||||
|
if (key.isNull() && (mesg.size() == 39))
|
||||||
|
{
|
||||||
|
// clear all nameplates
|
||||||
|
for (int i=0; i<gObjectList.getNumObjects(); i++)
|
||||||
|
{
|
||||||
|
LLViewerObject *obj = gObjectList.getObject(i);
|
||||||
|
if (LLVOAvatar *avatar = dynamic_cast<LLVOAvatar*>(obj))
|
||||||
|
{
|
||||||
|
avatar->clearNameFromChat();
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
else
|
||||||
|
{
|
||||||
|
if (key.isNull())
|
||||||
|
{
|
||||||
|
llwarns << "Nameplate from chat on NULL avatar (ignored)" << llendl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
LLVOAvatar *avatar = gObjectList.findAvatar(key);
|
||||||
|
if (!avatar)
|
||||||
|
{
|
||||||
|
llwarns << "Nameplate from chat on invalid avatar (ignored)" << llendl;
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
if (mesg.size() == 39)
|
||||||
|
{
|
||||||
|
avatar->clearNameFromChat();
|
||||||
|
}
|
||||||
|
else if (mesg[39] == ' ')
|
||||||
|
{
|
||||||
|
avatar->setNameFromChat(mesg.substr(40));
|
||||||
|
}
|
||||||
|
}
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (mesg.substr(2, 9) == " floater ")
|
||||||
|
{
|
||||||
|
HippoFloaterXml::execute(mesg.substr(11));
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
else if (mesg.substr(2, 6) == " auth ")
|
||||||
|
{
|
||||||
|
std::string authUrl = mesg.substr(8);
|
||||||
|
authUrl += (authUrl.find('?') != std::string::npos)? "&auth=": "?auth=";
|
||||||
|
authUrl += gAuthString;
|
||||||
|
LLHTTPClient::get(authUrl, new AuthHandler);
|
||||||
|
return;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
chat.mPosAgent = chatter->getPositionAgent();
|
chat.mPosAgent = chatter->getPositionAgent();
|
||||||
|
|
||||||
// Make swirly things only for talking objects. (not script debug messages, though)
|
// Make swirly things only for talking objects. (not script debug messages, though)
|
||||||
@@ -3554,78 +3627,6 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
|||||||
}
|
}
|
||||||
// NaCl End
|
// NaCl End
|
||||||
|
|
||||||
static std::map<LLUUID, bool> sChatObjectAuth;
|
|
||||||
|
|
||||||
if ((source_temp == CHAT_SOURCE_OBJECT) && (type_temp == CHAT_TYPE_OWNER) &&
|
|
||||||
(mesg.substr(0, 3) == "># "))
|
|
||||||
{
|
|
||||||
if (mesg.substr(mesg.size()-3, 3) == " #<"){
|
|
||||||
// hello from object
|
|
||||||
if (from_id.isNull()) return;
|
|
||||||
char buf[200];
|
|
||||||
snprintf(buf, 200, "%s v%d.%d.%d", gVersionChannel, gVersionMajor, gVersionMinor, gVersionPatch);
|
|
||||||
send_chat_from_viewer(buf, CHAT_TYPE_WHISPER, 427169570);
|
|
||||||
sChatObjectAuth[from_id] = 1;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if (from_id.isNull() || sChatObjectAuth.find(from_id) != sChatObjectAuth.end())
|
|
||||||
{
|
|
||||||
LLUUID key;
|
|
||||||
if (key.set(mesg.substr(3, 36),false))
|
|
||||||
{
|
|
||||||
// object command found
|
|
||||||
if (key.isNull() && (mesg.size() == 39))
|
|
||||||
{
|
|
||||||
// clear all nameplates
|
|
||||||
for (int i=0; i<gObjectList.getNumObjects(); i++)
|
|
||||||
{
|
|
||||||
LLViewerObject *obj = gObjectList.getObject(i);
|
|
||||||
if (LLVOAvatar *avatar = dynamic_cast<LLVOAvatar*>(obj))
|
|
||||||
{
|
|
||||||
avatar->clearNameFromChat();
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
else
|
|
||||||
{
|
|
||||||
if (key.isNull())
|
|
||||||
{
|
|
||||||
llwarns << "Nameplate from chat on NULL avatar (ignored)" << llendl;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
LLVOAvatar *avatar = gObjectList.findAvatar(key);
|
|
||||||
if (!avatar)
|
|
||||||
{
|
|
||||||
llwarns << "Nameplate from chat on invalid avatar (ignored)" << llendl;
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
if (mesg.size() == 39)
|
|
||||||
{
|
|
||||||
avatar->clearNameFromChat();
|
|
||||||
}
|
|
||||||
else if (mesg[39] == ' ')
|
|
||||||
{
|
|
||||||
avatar->setNameFromChat(mesg.substr(40));
|
|
||||||
}
|
|
||||||
}
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if (mesg.substr(2, 9) == " floater ")
|
|
||||||
{
|
|
||||||
HippoFloaterXml::execute(mesg.substr(11));
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
else if (mesg.substr(2, 6) == " auth ")
|
|
||||||
{
|
|
||||||
std::string authUrl = mesg.substr(8);
|
|
||||||
authUrl += (authUrl.find('?') != std::string::npos)? "&auth=": "?auth=";
|
|
||||||
authUrl += gAuthString;
|
|
||||||
LLHTTPClient::get(authUrl, new AuthHandler);
|
|
||||||
return;
|
|
||||||
}
|
|
||||||
}
|
|
||||||
}
|
|
||||||
|
|
||||||
if (chatter && chatter->isAvatar())
|
if (chatter && chatter->isAvatar())
|
||||||
{
|
{
|
||||||
if (LLAvatarNameCache::getPNSName(from_id, from_name))
|
if (LLAvatarNameCache::getPNSName(from_id, from_name))
|
||||||
|
|||||||
Reference in New Issue
Block a user