Commit graph

184 commits

Author SHA1 Message Date
414ac7751b Enhance dashboard login with UUID return and enable bot self-chat in history with {BOT} tagging 2026-05-08 14:37:09 -06:00
5627b66229 feat: enhance bot commands, group handling, friend management, and avatar pick retrieval 2026-05-08 01:29:57 -06:00
adf4e30cd2 Dashboard & Group Management Integration
- [LibreMetaverse] Enhanced GroupInvitationEventArgs with GroupID.
- [InteractionService] Added persistence for group invites when auto-accept is disabled.
- [DataStoreService] Implemented pending group invitation tracking and management.
- [DataStoreService] Enhanced local chat recording with Shout/Whisper/OwnerSay type tags.
- [BotClientService] Improved logout stability with explicit logout call and delay.
- [RLVService] Exposed active RLV rules list for external monitoring.
- [Commands] Added GroupInviteRespond, GetPendingGroupInvites, and RLVStatus API commands.
- [Commands] Overhauled NearmeWithDetails to support multi-simulator tracking and better position resolution for seated avatars.
2026-05-05 16:01:58 -06:00
Madpeter
9c5274d656 Shorten avatar check interval, add guest log
Reduce the avatar tracking throttle from 30s to 10s to make avatar updates more responsive (update conditional and comment). Also add an informational log when the guest list becomes ready to track. No other functional changes.
2026-02-05 22:18:50 +00:00
Madpeter
27d5e29487 Refactor KnownAvatar into helper methods
Extract avatar lookup logic from KnownAvatar into three methods: SyncAvatarsHashMap (sync local avatar map), KnownAvatarUUID (check by UUID via UUIDNameReply), and KnownAvatarName (check by display name via AvatarPickerReply). Reworked KnownAvatar to call SyncAvatarsHashMap and then validate using the new helpers, returning false for UUID.Zero and avoiding the previous always-true outcome. Preserves event subscription/teardown and timeout waits while clarifying visibility (protected helpers, public KnownAvatar) and cleaning up callback logic.
2026-02-05 22:18:20 +00:00
Madpeter
4133496775 Refactor message handling to use SignedCommand
Updated IM and group message handling to use SignedCommand and CommandsService.RunCommand instead of direct client calls. Also updated data classes to use properties with getters and setters, and fixed casing inconsistencies in JsonCommandFormat.
2025-11-16 12:00:45 +00:00
Madpeter
80f1ce7af0 Remove redundant chat command execution
Eliminated the call to GetClient().Self.Chat for each command in RLVService, as it was only being used for testing
2025-11-03 20:51:15 +00:00
Madpeter
bbea1b7473 Refactor GetAllItems to use folder UUID
Changed GetAllItems to accept a folder UUID instead of InventoryNode, updating all relevant calls. Improved inventory item retrieval logic for outfit management and fixed recursive traversal to use folder UUIDs.
2025-11-03 20:45:29 +00:00
Madpeter
d46f0457ef correct issue with some commands
god dam json converter has issues converting UUIDs
2025-10-15 20:17:33 +01:00
Madpeter
be4e03d8d7 issue 116
System.Text.Json defaults suck and we want it to work like Newtonsoft.Json
2025-10-10 11:25:44 +01:00
Madpeter
008cb44e24 Use UnsafeRelaxed JSON serialization globally
Replaces all usages of JsonSerializer.Serialize with the UnsafeRelaxed option via a new JsonOptions.UnsafeRelaxed static property. This ensures consistent relaxed escaping for all JSON output, improving compatibility with consumers expecting unescaped JSON. Refactors affected command, service, and static classes to use the new option.
2025-10-05 20:07:42 +01:00
Madpeter
811baa74bc Use relaxed JSON escaping for command replies
Updated JSON serialization in CommandsService to use UnsafeRelaxedJsonEscaping for replies, ensuring special characters are not escaped unnecessarily when sending processed command results.
2025-10-05 19:36:14 +01:00
Madpeter
e63253dec0 Refactor BotCommandNotice to use auto-properties
Changed BotCommandNotice constructor parameter names and replaced field assignments with auto-properties for improved clarity and maintainability.
2025-10-05 18:21:50 +01:00
Madpeter
5d464edd4d Add ClearChatOnConnect option and improve channel cleaning
Introduces a new Discord config option 'ClearChatOnConnect' to control whether channels are cleaned on connect. Refactors channel cleaning logic to handle bulk and individual message deletion based on message age, and updates permission modification calls for clarity and maintainability.
2025-10-05 11:01:54 +01:00
Madpeter
7a04f2c520 Refactor TriggerEvent logic and improve debug output
Refactored the TriggerEvent method for clarity and modularity by extracting debug logging, event value building, rule evaluation, and action triggering into separate helper methods. Improved debug output and streamlined event and rule checks for better maintainability and readability.
2025-10-04 23:19:22 +01:00
Madpeter
7411ba3268 Refactor inventory event lookup logic
Replaced ContainsKey and indexer access with TryGetValue for InventoryEvents dictionary to improve performance and readability in EventsService.
2025-10-04 23:11:34 +01:00
Madpeter
04b4e872a8 Make InventoryUpdateEvent asynchronous
Wraps InventoryUpdateEvent logic in a Task to run asynchronously, improving responsiveness and preventing blocking of the main thread during event processing.
2025-10-04 23:05:56 +01:00
Madpeter
050ef3c133 Replace Newtonsoft.Json with System.Text.Json
Migrated all serialization and deserialization from Newtonsoft.Json to System.Text.Json across the codebase for improved performance and reduced dependencies. Updated package references and refactored helper method names for consistency (e.g., IsEmpty, NotEmpty, InRange). Also updated NuGet package versions in project files.
2025-10-03 23:12:20 +01:00
Madpeter
93dbde2818 Improve inventory preload tracking and reporting
Refactored inventory preload logic to track both folder and item counts, and updated related command and service methods to report these values. Changed folder loading to be asynchronous and recursive, improved reporting format, and fixed root folder naming in inventory contents command.
2025-10-03 21:56:33 +01:00
Madpeter
70c1dcc86c Add randomized delay to folder preloading
Replaced fixed delay with a randomized delay when preloading folders to reduce predictability and overloading the server with multiple requests at the same time Introduced a static Random instance for delay calculation.
2025-10-03 00:58:14 +01:00
Madpeter
91a1ba4086 Add inventory preload status and folder count commands
Introduces two new commands to check if inventory preload is done and to request the number of preloaded folders. Updates inventory node mapping to use dynamic type names and improves folder preload tracking in DataStoreService.
2025-10-03 00:50:54 +01:00
Madpeter
0139326d67 Add cached inventory mapping and log truncation
Introduces InventoryContentsCatched to return mapped inventory using cached data and adds InventoryNodeEntry for structured inventory representation. Also truncates command log results to 100 characters in CommandsService for improved logging.
2025-10-02 22:07:02 +01:00
Madpeter
c00a11a99d Add inventory prefetching support
Introduces configuration options and logic for prefetching inventory folders on startup, including depth control. Updates Dockerfile and DataStoreConfig to support new settings, and modifies DataStoreService to handle inventory preloading asynchronously.
2025-10-02 11:22:19 +01:00
Madpeter
dc9310e5ff tidy up 2025-09-17 20:57:23 +01:00
Madpeter
851328c74e improve relay and datastore
datastore can now prefetch display names (note the first time it sees a avatar the display name will be ?)
the relay service can now talk to rabbit as a target
the relay service can now use an extended output json
2025-07-10 00:27:55 +01:00
Madpeter
68d1cd08e0 add support for /json endpoint to http 2025-07-09 22:42:15 +01:00
Madpeter
8f95809c80 adds new rabbit SendMessageToQ command 2025-07-09 20:19:27 +01:00
Madpeter
78ea90a1c0 lol opps 2025-07-07 22:33:22 +01:00
Madpeter
28ad4d1fde fix a bug in recovery 2025-06-25 10:23:10 +01:00
Madpeter
5c69da371a add support for rabbit message Q for the bot 2025-06-23 23:03:20 +01:00
Madpeter
c410412097 allow custom subjects for notecards 2025-06-23 23:03:04 +01:00
Madpeter
b5b7a9fac6 update libmeta 2025-06-18 16:41:48 +01:00
Madpeter
7b3b0f07e5 improve get calling command 2025-06-15 13:08:19 +01:00
Madpeter
25ac5378e1 fix issue where inventory type was case sensitive. 2025-06-15 10:31:14 +01:00
Madpeter
57de6764bc add command type hinting to improve the way the wiki auto gens 2025-06-05 23:25:36 +01:00
Madpeter
988eb76463 improve wiki by adding more details to commands 2025-06-04 13:43:03 +01:00
Madpeter
bc5ca85489 cleanup and CommandHistoryLogResults 2025-02-12 20:25:52 +00:00
Madpeter
b615300985 adds support for WaitSecsToStart for on events 2025-02-06 21:20:38 +00:00
Madpeter
3792241774 smtp support 2025-02-06 03:48:55 +00:00
Madpeter
07bd928747 switch from Betalgo.OpenAI to Betalgo.Ranul.OpenAI and update 2025-02-05 17:24:31 +00:00
Madpeter
0c491144e3 cleanup feedback and add support for dot names for object owners if enabled 2025-02-04 10:53:44 +00:00
Madpeter
552f5a48ad add NotecardRead support 2025-02-04 02:02:27 +00:00
Madpeter
6def5f65cf fix ? entrys for command history sources 2025-02-04 02:02:07 +00:00
Madpeter
8812910509 patch interaction events to support dot name for masters following command config flag 2025-02-02 00:06:46 +00:00
Madpeter
9c42552a0f add debug support to interaction 2025-02-01 23:52:41 +00:00
Madpeter
4aedf5823e fix issue with AI unable to load from local storage if redis not enabled 2025-02-01 23:46:40 +00:00
Madpeter
969d98adfe adds redis support to chat AI 2025-01-29 20:38:51 +00:00
Madpeter
bb49f42549 fix triggering custom commands 2025-01-29 12:52:10 +00:00
Madpeter
68a71f5e0d adds custom name for the AI 2025-01-28 22:55:28 +00:00
Madpeter
0dc0def5e3 Libre meta update 2025-01-28 21:34:17 +00:00