Commit graph

180 commits

Author SHA1 Message Date
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
Madpeter
ef735b62c1 adds CheckDotNames 2025-01-24 16:35:32 +00:00
Madpeter
ec038b53d3 Update BotClientService.cs 2024-10-22 00:04:31 +01:00
Madpeter
14ff1b221d Update BotClientService.cs 2024-10-22 00:00:49 +01:00
Madpeter
41272be55a adjust how the bot deals with DC events 2024-10-21 03:35:03 +01:00