summaryrefslogtreecommitdiff
path: root/indra/newview/llviewermenu.cpp
diff options
context:
space:
mode:
authorHadetTheUndying <hadet@protonmail.com>2026-06-04 14:58:38 -0500
committerErik Kundiman <erik@megapahit.org>2026-06-05 10:03:41 +0800
commitb5c4fec2c0065311508aa1a268a8a4e510674dc5 (patch)
treeefc0a0a692b48830124b205ee9b467521bbcdb8b /indra/newview/llviewermenu.cpp
parent4a48c18093f164ac741664554323dccccc213719 (diff)
Add Estate Eject and Estate Ban to avatar context menusHEADmain
Diffstat (limited to 'indra/newview/llviewermenu.cpp')
-rw-r--r--indra/newview/llviewermenu.cpp41
1 files changed, 41 insertions, 0 deletions
diff --git a/indra/newview/llviewermenu.cpp b/indra/newview/llviewermenu.cpp
index 833a3cde6f..1b1d703f38 100644
--- a/indra/newview/llviewermenu.cpp
+++ b/indra/newview/llviewermenu.cpp
@@ -4065,6 +4065,44 @@ void handle_avatar_eject(const LLSD& avatar_id)
}
}
+void handle_avatar_estate_kick(const LLSD& avatar_id)
+{
+ LLUUID id = avatar_id.asUUID();
+ if (id.isNull())
+ {
+ LLVOAvatar* avatar = find_avatar_from_object(
+ LLSelectMgr::getInstance()->getSelection()->getPrimaryObject());
+ if (avatar) id = avatar->getID();
+ }
+ if (id.notNull())
+ {
+ LLAvatarActions::estateKickAvatar(id);
+ }
+}
+
+void handle_avatar_estate_ban(const LLSD& avatar_id)
+{
+ LLUUID id = avatar_id.asUUID();
+ if (id.isNull())
+ {
+ LLVOAvatar* avatar = find_avatar_from_object(
+ LLSelectMgr::getInstance()->getSelection()->getPrimaryObject());
+ if (avatar) id = avatar->getID();
+ }
+ if (id.notNull())
+ {
+ LLAvatarActions::estateBanAvatar(id);
+ }
+}
+
+bool enable_estate_eject_ban(const LLSD& avatar_id)
+{
+ LLViewerRegion* region = gAgent.getRegion();
+ if (!region) return false;
+ if (gAgent.isGodlike()) return true;
+ return region->getOwner() == gAgent.getID() || region->isEstateManager();
+}
+
bool my_profile_visible()
{
LLFloater* floaterp = LLAvatarActions::getProfileFloater(gAgentID);
@@ -10358,6 +10396,9 @@ void initialize_menus()
view_listener_t::addMenu(new LLAvatarVisibleDebug(), "Avatar.VisibleDebug");
view_listener_t::addMenu(new LLAvatarInviteToGroup(), "Avatar.InviteToGroup");
commit.add("Avatar.Eject", boost::bind(&handle_avatar_eject, LLSD()));
+ commit.add("Avatar.EstateKick", boost::bind(&handle_avatar_estate_kick, _2));
+ commit.add("Avatar.EstateBan", boost::bind(&handle_avatar_estate_ban, _2));
+ enable.add("Avatar.EnableEstateEjectBan", boost::bind(&enable_estate_eject_ban, _2));
commit.add("Avatar.ShowInspector", boost::bind(&handle_avatar_show_inspector));
view_listener_t::addMenu(new LLAvatarSendIM(), "Avatar.SendIM");
view_listener_t::addMenu(new LLAvatarCall(), "Avatar.Call");