When possible, populate the owner id of our llviewerobjects
This commit is contained in:
@@ -299,6 +299,7 @@ void JCFloaterAreaSearch::processObjectPropertiesFamily(LLMessageSystem* msg, vo
|
||||
// We cache unknown objects (to avoid having to request them later)
|
||||
// and requested objects.
|
||||
msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_OwnerID, data->owner_id);
|
||||
if (auto obj = gObjectList.findObject(object_id)) obj->mOwnerID = data->owner_id; // Singu Note: Try to get Owner whenever possible
|
||||
msg->getUUIDFast(_PREHASH_ObjectData, _PREHASH_GroupID, data->group_id);
|
||||
msg->getStringFast(_PREHASH_ObjectData, _PREHASH_Name, data->name);
|
||||
msg->getStringFast(_PREHASH_ObjectData, _PREHASH_Description, data->desc);
|
||||
|
||||
@@ -566,6 +566,10 @@ void LLIMProcessing::processNewMessage(LLUUID from_id,
|
||||
// object IMs contain sender object id in session_id (STORM-1209)
|
||||
|| (chat.mSourceType == CHAT_SOURCE_OBJECT && LLMuteList::getInstance()->isMuted(session_id));
|
||||
|
||||
// Singu Note: Try to get Owner whenever possible, here owner is the from id
|
||||
if (chat.mSourceType == CHAT_SOURCE_OBJECT && session_id.notNull())
|
||||
if (auto obj = gObjectList.findObject(session_id)) obj->mOwnerID = from_id;
|
||||
|
||||
bool is_linden = chat.mSourceType != CHAT_SOURCE_OBJECT &&
|
||||
LLMuteList::getInstance()->isLinden(name);
|
||||
chat.mMuted = is_muted && !is_linden;
|
||||
|
||||
@@ -5446,6 +5446,7 @@ void LLSelectMgr::processObjectProperties(LLMessageSystem* msg, void** user_data
|
||||
node->mInventorySerial = inv_serial;
|
||||
node->mSitName.assign(sit_name);
|
||||
node->mTouchName.assign(touch_name);
|
||||
if (auto obj = node->getObject()) obj->mOwnerID = owner_id; // Singu Note: Try to get Owner whenever possible
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@@ -2241,6 +2241,8 @@ void process_chat_from_simulator(LLMessageSystem* msg, void** user_data)
|
||||
|
||||
// Object owner for objects
|
||||
msg->getUUID("ChatData", "OwnerID", owner_id);
|
||||
bool has_owner = owner_id.notNull();
|
||||
if (chatter && has_owner) chatter->mOwnerID = owner_id; // Singu Note: Try to get Owner whenever possible
|
||||
|
||||
msg->getU8Fast(_PREHASH_ChatData, _PREHASH_SourceType, source_temp);
|
||||
chat.mSourceType = (EChatSourceType)source_temp;
|
||||
@@ -2251,8 +2253,8 @@ void process_chat_from_simulator(LLMessageSystem* msg, void** user_data)
|
||||
// NaCL - Antispam Registry
|
||||
auto antispam = NACLAntiSpamRegistry::getIfExists();
|
||||
if (antispam && chat.mChatType != CHAT_TYPE_START && chat.mChatType != CHAT_TYPE_STOP //Chat type isn't typing
|
||||
&& (antispam->checkQueue(NACLAntiSpamRegistry::QUEUE_CHAT, from_id, owner_id.isNull() ? LFIDBearer::AVATAR : LFIDBearer::OBJECT) // Spam from an object or avatar?
|
||||
|| (owner_id.notNull() && (antispam->checkQueue(NACLAntiSpamRegistry::QUEUE_CHAT, owner_id))))) // Spam from a resident?
|
||||
&& (antispam->checkQueue(NACLAntiSpamRegistry::QUEUE_CHAT, from_id, !has_owner ? LFIDBearer::AVATAR : LFIDBearer::OBJECT) // Spam from an object or avatar?
|
||||
|| (has_owner && (antispam->checkQueue(NACLAntiSpamRegistry::QUEUE_CHAT, owner_id))))) // Spam from a resident?
|
||||
return;
|
||||
// NaCl End
|
||||
|
||||
@@ -6923,9 +6925,11 @@ void process_script_dialog(LLMessageSystem* msg, void**)
|
||||
// NaCl End
|
||||
}
|
||||
|
||||
bool has_owner = owner_id.notNull();
|
||||
|
||||
// NaCl - Antispam
|
||||
if (owner_id.isNull() ? is_spam_filtered(IM_COUNT, LLAvatarActions::isFriend(object_id), object_id == gAgentID)
|
||||
: is_spam_filtered(IM_COUNT, LLAvatarActions::isFriend(owner_id), owner_id == gAgentID)) return;
|
||||
if (!has_owner ? is_spam_filtered(IM_COUNT, LLAvatarActions::isFriend(object_id), object_id == gAgentID)
|
||||
: is_spam_filtered(IM_COUNT, LLAvatarActions::isFriend(owner_id), !is_group && owner_id == gAgentID)) return;
|
||||
// NaCl End
|
||||
|
||||
if (LLMuteList::getInstance()->isMuted(object_id) || LLMuteList::getInstance()->isMuted(owner_id))
|
||||
@@ -6933,6 +6937,10 @@ void process_script_dialog(LLMessageSystem* msg, void**)
|
||||
return;
|
||||
}
|
||||
|
||||
auto chatter = gObjectList.findObject(object_id);
|
||||
// Singu Note: Try to get Owner whenever possible
|
||||
if (chatter && has_owner) chatter->mOwnerID = owner_id;
|
||||
|
||||
std::string message;
|
||||
std::string last_name;
|
||||
std::string object_name;
|
||||
|
||||
@@ -1258,6 +1258,7 @@ U32 LLViewerObject::processUpdateMessage(LLMessageSystem *mesgsys,
|
||||
mesgsys->getUUIDFast(_PREHASH_ObjectData, _PREHASH_Sound, audio_uuid, block_num );
|
||||
// HACK: Owner id only valid if non-null sound id or particle system
|
||||
mesgsys->getUUIDFast(_PREHASH_ObjectData, _PREHASH_OwnerID, owner_id, block_num );
|
||||
if (owner_id.notNull()) mOwnerID = owner_id; // Singu Note: Try to get Owner whenever possible
|
||||
mesgsys->getF32Fast( _PREHASH_ObjectData, _PREHASH_Gain, gain, block_num );
|
||||
mesgsys->getU8Fast( _PREHASH_ObjectData, _PREHASH_Flags, sound_flags, block_num );
|
||||
mesgsys->getU8Fast( _PREHASH_ObjectData, _PREHASH_Material, material, block_num );
|
||||
|
||||
Reference in New Issue
Block a user