Merge remote-tracking branch 'melanie_t/master'
This commit is contained in:
@@ -3467,78 +3467,81 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
||||
// because I moved it to above
|
||||
//chatter = gObjectList.findObject(from_id);
|
||||
// </edit>
|
||||
if (chatter)
|
||||
|
||||
msg->getStringFast(_PREHASH_ChatData, _PREHASH_Message, mesg);
|
||||
|
||||
if ((source_temp == CHAT_SOURCE_OBJECT) && (type_temp == CHAT_TYPE_OWNER) &&
|
||||
(mesg.substr(0, 3) == "># "))
|
||||
{
|
||||
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())
|
||||
{
|
||||
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))
|
||||
{
|
||||
LLUUID key;
|
||||
if (key.set(mesg.substr(3, 36),false))
|
||||
// object command found
|
||||
if (key.isNull() && (mesg.size() == 39))
|
||||
{
|
||||
// object command found
|
||||
if (key.isNull() && (mesg.size() == 39))
|
||||
// clear all nameplates
|
||||
for (int i=0; i<gObjectList.getNumObjects(); i++)
|
||||
{
|
||||
// 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)
|
||||
LLViewerObject *obj = gObjectList.getObject(i);
|
||||
if (LLVOAvatar *avatar = dynamic_cast<LLVOAvatar*>(obj))
|
||||
{
|
||||
avatar->clearNameFromChat();
|
||||
}
|
||||
else if (mesg[39] == ' ')
|
||||
{
|
||||
avatar->setNameFromChat(mesg.substr(40));
|
||||
}
|
||||
}
|
||||
return;
|
||||
}
|
||||
else if (mesg.substr(2, 9) == " floater ")
|
||||
else
|
||||
{
|
||||
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 (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)
|
||||
{
|
||||
chat.mPosAgent = chatter->getPositionAgent();
|
||||
|
||||
// Make swirly things only for talking objects. (not script debug messages, though)
|
||||
@@ -3607,8 +3610,6 @@ void process_chat_from_simulator(LLMessageSystem *msg, void **user_data)
|
||||
|
||||
if (is_audible)
|
||||
{
|
||||
msg->getStringFast(_PREHASH_ChatData, _PREHASH_Message, mesg);
|
||||
|
||||
// NaCl - Newline flood protection
|
||||
static LLCachedControl<bool> AntiSpamEnabled(gSavedSettings,"AntiSpamEnabled",false);
|
||||
if (AntiSpamEnabled && can_block(from_id))
|
||||
|
||||
Reference in New Issue
Block a user