Skip to content

Commit d101e8a

Browse files
committed
Port in Firestorm's ad-hoc conference chat anti-spam feature
because somebody was mad cuz bad
1 parent b735358 commit d101e8a

5 files changed

Lines changed: 160 additions & 29 deletions

File tree

indra/newview/app_settings/settings_alchemy.xml

Lines changed: 33 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2492,6 +2492,39 @@
24922492
<key>Value</key>
24932493
<integer>0</integer>
24942494
</map>
2495+
<key>FSIgnoreAdHocSessions</key>
2496+
<map>
2497+
<key>Comment</key>
2498+
<string>Automatically ignore and leave all conference (ad-hoc) chats.</string>
2499+
<key>Persist</key>
2500+
<integer>1</integer>
2501+
<key>Type</key>
2502+
<string>Boolean</string>
2503+
<key>Value</key>
2504+
<integer>0</integer>
2505+
</map>
2506+
<key>FSReportIgnoredAdHocSession</key>
2507+
<map>
2508+
<key>Comment</key>
2509+
<string>Reports to nearby chat if a conference (ad-hoc) has been ignored.</string>
2510+
<key>Persist</key>
2511+
<integer>1</integer>
2512+
<key>Type</key>
2513+
<string>Boolean</string>
2514+
<key>Value</key>
2515+
<integer>0</integer>
2516+
</map>
2517+
<key>FSDontIgnoreAdHocFromFriends</key>
2518+
<map>
2519+
<key>Comment</key>
2520+
<string>Allow my friends to start conference chats with me.</string>
2521+
<key>Persist</key>
2522+
<integer>1</integer>
2523+
<key>Type</key>
2524+
<string>Boolean</string>
2525+
<key>Value</key>
2526+
<integer>0</integer>
2527+
</map>
24952528
</map>
24962529
</llsd>
24972530

indra/newview/llimview.cpp

Lines changed: 42 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -77,6 +77,7 @@
7777
#include "rlvactions.h"
7878
#include "rlvcommon.h"
7979
// [/RLVa:KB]
80+
#include "llslurl.h"
8081

8182
#include <array>
8283

@@ -3281,6 +3282,47 @@ void LLIMMgr::addMessage(
32813282
}
32823283
}
32833284

3285+
// <FS:PP> Configurable IM sounds
3286+
// //Play sound for new conversations
3287+
// if (!skip_message & !gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNewConversation")))
3288+
3289+
// <FS:PP> Option to automatically ignore and leave all conference (ad-hoc) chats
3290+
static LLCachedControl<bool> ignoreAdHocSessions(gSavedSettings, "FSIgnoreAdHocSessions");
3291+
bool is_group_chat = false;
3292+
if (dialog != IM_NOTHING_SPECIAL)
3293+
{
3294+
is_group_chat = gAgent.isInGroup(new_session_id);
3295+
}
3296+
if (dialog != IM_NOTHING_SPECIAL && !is_group_chat && ignoreAdHocSessions && !from_linden)
3297+
{
3298+
static LLCachedControl<bool> dontIgnoreAdHocFromFriends(gSavedSettings, "FSDontIgnoreAdHocFromFriends");
3299+
if (!dontIgnoreAdHocFromFriends || (dontIgnoreAdHocFromFriends && LLAvatarTracker::instance().getBuddyInfo(other_participant_id) == NULL))
3300+
{
3301+
static LLCachedControl<bool> reportIgnoredAdHocSession(gSavedSettings, "FSReportIgnoredAdHocSession");
3302+
//<FS:Beq> [FIRE-21385] Add inviter name/UUID to ad-hoc ignored messages
3303+
LLSD args;
3304+
args["AVATAR_NAME"] = LLSLURL("agent", other_participant_id, "about").getSLURLString();
3305+
// LL_INFOS() << "Ignoring conference (ad-hoc) chat from " << new_session_id.asString() << LL_ENDL;
3306+
LL_INFOS() << "Ignoring conference (ad-hoc) chat from " << args["AVATAR_NAME"] << LL_ENDL;
3307+
if (!gIMMgr->leaveSession(new_session_id))
3308+
{
3309+
LL_WARNS() << "Ad-hoc session " << new_session_id.asString() << " does not exist." << LL_ENDL;
3310+
}
3311+
else if (reportIgnoredAdHocSession)
3312+
{
3313+
// report_to_nearby_chat(LLTrans::getString("IgnoredAdHocSession"));
3314+
// FSCommon::report_to_nearby_chat(LLTrans::getString("IgnoredAdHocSession", args));
3315+
LLSD notify;
3316+
notify["text"] = LLTrans::getString("IgnoredAdHocSession", args);
3317+
notify["sourceType"] = CHAT_SOURCE_SYSTEM;
3318+
LLNotifications::instance().add("SystemMessage", notify, LLSD());
3319+
}
3320+
//</FS:Beq>
3321+
return;
3322+
}
3323+
}
3324+
// </FS:PP>
3325+
32843326
//Play sound for new conversations
32853327
if (!skip_message & !gAgent.isDoNotDisturb() && (gSavedSettings.getBOOL("PlaySoundNewConversation") == TRUE))
32863328
{

indra/newview/skins/default/xui/en/panel_preferences_chat.xml

Lines changed: 14 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -8,16 +8,16 @@
88
name="chat"
99
top="1"
1010
width="517">
11-
<tab_container
12-
top_pad="0"
13-
enabled="true"
14-
follows="left|top"
15-
height="430"
11+
<tab_container
12+
top_pad="0"
13+
enabled="true"
14+
follows="left|top"
15+
height="430"
1616
left_delta="0"
17-
mouse_opaque="false"
18-
name="chat_tab_container"
17+
mouse_opaque="false"
18+
name="chat_tab_container"
1919
tab_position="top"
20-
tab_stop="false"
20+
tab_stop="false"
2121
width="517">
2222
<panel
2323
label="General"
@@ -43,6 +43,12 @@
4343
filename="panel_preferences_chat_autoresponse.xml"
4444
layout="topleft"
4545
follows="top|left" />
46+
<panel
47+
label="Antispam"
48+
name="chat_pref_antispam"
49+
filename="panel_preferences_chat_antispam.xml"
50+
layout="topleft"
51+
follows="top|left" />
4652
</tab_container>
4753

4854
</panel>
Lines changed: 49 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,49 @@
1+
<?xml version="1.0" encoding="utf-8" standalone="yes" ?>
2+
<panel
3+
height="408"
4+
layout="topleft"
5+
name="antispam_settings"
6+
top="0"
7+
left="13"
8+
width="517">
9+
<panel
10+
border="false"
11+
height="60"
12+
layout="topleft"
13+
follows="left|top"
14+
name="general_chat_settings"
15+
top="10"
16+
left="13"
17+
width="517">
18+
<check_box
19+
layout="topleft"
20+
follows="left|top"
21+
top_pad="-1"
22+
width="30"
23+
height="18"
24+
name="FSIgnoreAdHocSessions"
25+
control_name="FSIgnoreAdHocSessions"
26+
label="Automatically ignore and leave all conference (ad-hoc) chats"/>
27+
<check_box
28+
layout="topleft"
29+
follows="left|top"
30+
left_delta="10"
31+
enabled_control="FSIgnoreAdHocSessions"
32+
top_pad="-1"
33+
width="30"
34+
height="18"
35+
name="FSReportIgnoredAdHocSession"
36+
control_name="FSReportIgnoredAdHocSession"
37+
label="Report ignored conference chats in nearby chat"/>
38+
<check_box
39+
layout="topleft"
40+
follows="left|top"
41+
enabled_control="FSIgnoreAdHocSessions"
42+
top_pad="-1"
43+
width="30"
44+
height="18"
45+
name="FSDontIgnoreAdHocFromFriends"
46+
control_name="FSDontIgnoreAdHocFromFriends"
47+
label="Don't ignore conference chats invitations from my friends"/>
48+
</panel>
49+
</panel>

indra/newview/skins/default/xui/en/strings.xml

Lines changed: 22 additions & 21 deletions
Original file line numberDiff line numberDiff line change
@@ -108,7 +108,7 @@ Voice Server Version: [VOICE_VERSION]
108108
<string name="LocalTime">[month, datetime, local] [day, datetime, local] [year, datetime, local] [hour, datetime, local]:[min, datetime, local]:[second,datetime, local]</string>
109109
<string name="ErrorFetchingServerReleaseNotesURL">Error fetching server release notes URL.</string>
110110
<string name="BuildConfiguration">Build Configuration</string>
111-
111+
112112
<!-- progress -->
113113
<string name="ProgressRestoring">Restoring...</string>
114114
<string name="ProgressChangingResolution">Changing resolution...</string>
@@ -150,10 +150,10 @@ Voice Server Version: [VOICE_VERSION]
150150
<string name="LoginFailedNoNetwork">Network error: Could not establish connection, please check your network connection.</string>
151151
<string name="LoginFailedHeader">Login failed.</string>
152152
<string name="Quit">Quit</string>
153-
153+
154154
<string name="AgniGridLabel">Second Life Main Grid (Agni)</string>
155155
<string name="AditiGridLabel">Second Life Beta Test Grid (Aditi)</string>
156-
156+
157157
<string name="ViewerDownloadURL">https://www.alchemyviewer.org/downloads</string>
158158
<string name="LoginFailedViewerNotPermitted">
159159
The viewer you are using can no longer access [CURRENT_GRID]. Please visit the following page to download a new viewer: https://www.alchemyviewer.org/downloads</string>
@@ -236,7 +236,7 @@ If you feel this is an error, please contact support@secondlife.com</string>
236236
<string name="YouHaveBeenDisconnected">You have been disconnected from the region you were in.</string>
237237
<string name="SentToInvalidRegion">You were sent to an invalid region.</string>
238238
<string name="TestingDisconnect">Testing viewer disconnect</string>
239-
239+
240240
<!-- SLShare: User Friendly Filter Names Translation -->
241241
<string name="BlackAndWhite">Black &amp; White</string>
242242
<string name="Colors1970">1970&apos;s Colors</string>
@@ -249,7 +249,7 @@ If you feel this is an error, please contact support@secondlife.com</string>
249249
<string name="LensFlare">Lens Flare</string>
250250
<string name="Miniature">Miniature</string>
251251
<string name="Toycamera">Toy Camera</string>
252-
252+
253253
<!-- Tooltip -->
254254
<string name="TooltipPerson">Person</string><!-- Object under mouse pointer is an avatar -->
255255
<string name="TooltipNoName">(no name)</string> <!-- No name on an object -->
@@ -286,10 +286,10 @@ If you feel this is an error, please contact support@secondlife.com</string>
286286
<string name="TooltipOutboxMixedStock">All items in a stock folder must have the same type and permission</string>
287287
<string name="TooltipOutfitNotInInventory">You can only put items or outfits from your personal inventory into "My outfits"</string>
288288
<string name="TooltipCantCreateOutfit">One or more items can't be used inside "My outfits"</string>
289-
289+
290290
<string name="TooltipDragOntoOwnChild">You can't move a folder into its child</string>
291291
<string name="TooltipDragOntoSelf">You can't move a folder into itself</string>
292-
292+
293293
<!-- tooltips for Urls -->
294294
<string name="TooltipHttpUrl">Click to view this web page</string>
295295
<string name="TooltipSLURL">Click to view this location's information</string>
@@ -398,7 +398,7 @@ are allowed.
398398
<string name="AssetUploadServerDifficulties">The server is experiencing unexpected difficulties.</string>
399399
<string name="AssetUploadServerUnavaliable">Service not available or upload timeout was reached.</string>
400400
<string name="AssetUploadRequestInvalid">
401-
Error in upload request. Please visit
401+
Error in upload request. Please visit
402402
http://secondlife.com/support for help fixing this problem.
403403
</string>
404404

@@ -563,7 +563,7 @@ http://secondlife.com/support for help fixing this problem.
563563
<string name="ChangeYourDefaultAnimations">Change your default animations</string>
564564
<string name="ForceSitAvatar">Force your avatar to sit</string>
565565
<string name="ChangeEnvSettings">Change your environment settings</string>
566-
566+
567567
<string name="NotConnected">Not Connected</string>
568568
<string name="AgentNameSubst">(You)</string> <!-- Substitution for agent name -->
569569
<string name="JoinAnExperience"/><!-- intentionally blank -->
@@ -2354,7 +2354,7 @@ For AI Character: Get the closest navigable point to the point provided.
23542354

23552355
<!-- inventory -->
23562356
<string name="InventoryNoMatchingItems">Didn't find what you're looking for? Try [secondlife:///app/search/all/[SEARCH_TERM] Search].</string>
2357-
<string name="InventoryNoMatchingRecentItems">Didn't find what you're looking for? Try [secondlife:///app/inventory/filters Show filters].</string>
2357+
<string name="InventoryNoMatchingRecentItems">Didn't find what you're looking for? Try [secondlife:///app/inventory/filters Show filters].</string>
23582358
<string name="PlacesNoMatchingItems">To add a place to your landmarks, click the star to the right of the location name.</string>
23592359
<string name="FavoritesNoMatchingItems">To add a place to your favorites, click the star to the right of the location name, then save the landmark to "Favorites bar".</string>
23602360
<string name="MarketplaceNoListing">You have no listings yet.</string>
@@ -2541,9 +2541,9 @@ If you continue to receive this message, please contact Second Life support for
25412541
<string name="InvFolder Local Inventory">Local Inventory</string>
25422542
<string name="InvFolder #RLV">#RLV</string>
25432543
<string name="InvFolder #Firestorm">#Firestorm</string>
2544-
2544+
25452545
<!-- are used for Friends and Friends/All folders in Inventory "Calling cards" folder. See EXT-694-->
2546-
<string name="InvFolder Friends">Friends</string>
2546+
<string name="InvFolder Friends">Friends</string>
25472547
<string name="InvFolder All">All</string>
25482548

25492549
<string name="no_attachments">No attachments worn</string>
@@ -2720,7 +2720,7 @@ If you continue to receive this message, please contact Second Life support for
27202720
<string name="UploadFailed">File upload failed: </string>
27212721
<string name="ObjectOutOfRange">Script (object out of range)</string>
27222722
<string name="ScriptWasDeleted">Script (deleted from inventory)</string>
2723-
2723+
27242724
<!-- god tools -->
27252725
<string name="GodToolsObjectOwnedBy">Object [OBJECT] owned by [OWNER]</string>
27262726

@@ -3907,7 +3907,7 @@ Please reinstall viewer from https://alchemyviewer.org/downloads and contact the
39073907

39083908
<string name="uploading_costs">Uploading costs L$ [AMOUNT]</string>
39093909
<string name="this_costs">This costs L$ [AMOUNT]</string>
3910-
3910+
39113911
<string name="buying_selected_land">This land costs</string>
39123912
<string name="this_object_costs">This item costs</string>
39133913
<string name="giving">You want to give</string>
@@ -3991,7 +3991,7 @@ Abuse Report</string>
39913991
<string name="New Daycycle">New Daycycle</string>
39923992
<string name="New Water">New Water</string>
39933993
<string name="New Sky">New Sky</string>
3994-
3994+
39953995

39963996
<string name="/bow">/bow</string>
39973997
<string name="/clap">/clap</string>
@@ -4073,7 +4073,7 @@ Please check http://status.secondlifegrid.net to see if there is a known problem
40734073
<string name="Accounting">Accounting</string>
40744074
<string name="Notices">Notices</string>
40754075
<string name="Chat">Chat</string>
4076-
4076+
40774077
<!-- SL Membership -->
40784078
<string name="BaseMembership">Base</string>
40794079
<string name="PremiumMembership">Premium</string>
@@ -4239,7 +4239,7 @@ Try enclosing path to the editor with double quotes.
42394239

42404240
<!-- commands -->
42414241

4242-
<string
4242+
<string
42434243
name="Command_360_Capture_Label">360 snapshot</string>
42444244
<string name="Command_AboutLand_Label">About land</string>
42454245
<string name="Command_AnimationOverride_Label">AO</string>
@@ -4361,14 +4361,14 @@ name="Command_360_Capture_Label">360 snapshot</string>
43614361

43624362
<!-- Spell check settings floater -->
43634363
<string name="UserDictionary">[User]</string>
4364-
4364+
43654365
<!-- RLVa -->
43664366
<string name="RLVaPendingRestart">(pending restart)</string>
43674367
<string name="RLVaToggleMessageLogin">RLVa has been [STATE] (no restart required)</string>
43684368
<string name="RLVaToggleMessageRestart">RLVa will be [STATE] after you restart</string>
43694369
<string name="RLVaToggleEnabled">enabled</string>
43704370
<string name="RLVaToggleDisabled">disabled</string>
4371-
4371+
43724372
<!-- Experience Tools strings -->
43734373
<string name="experience_tools_experience">Experience</string>
43744374
<string name="ExperienceNameNull">(no experience)</string>
@@ -4404,7 +4404,7 @@ name="Command_360_Capture_Label">360 snapshot</string>
44044404

44054405
<!-- PBR Materials -->
44064406
<string name="Material Texture Name Header">Textures present this material: </string>
4407-
4407+
44084408
<!-- Conversation log messages -->
44094409
<string name="logging_calls_disabled_log_empty">
44104410
Conversations are not being logged. To begin keeping a log, choose "Save: Log only" or "Save: Log and transcripts" under Preferences > Chat.
@@ -4427,7 +4427,7 @@ name="Command_360_Capture_Label">360 snapshot</string>
44274427
<string name="Default">Default</string>
44284428
<string name="none_paren_cap">(None)</string>
44294429
<string name="no_limit">No limit</string>
4430-
4430+
44314431
<string name="Mav_Details_MAV_FOUND_DEGENERATE_TRIANGLES">
44324432
The physics shape contains triangles which are too small. Try simplifying the physics model.
44334433
</string>
@@ -4576,4 +4576,5 @@ and report the problem.
45764576
</string>
45774577
<string name="AutoResponseModeDefault">The Resident you messaged has activated [APP_NAME] viewer&apos;s &apos;autorespond mode&apos; which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing.</string>
45784578
<string name="AutoResponseModeNonFriendsDefault">The Resident you messaged has activated [APP_NAME] viewer&apos;s &apos;autorespond mode&apos; which means they have requested not to be disturbed. Your message will still be shown in their IM panel for later viewing.</string>
4579+
<string name="IgnoredAdHocSession">You've been invited to a conference (ad-hoc) chat by [AVATAR_NAME], but viewer automatically ignored it because of your settings.</string>
45794580
</strings>

0 commit comments

Comments
 (0)