Reads, completes and saves the user classification JSON file, creating one if one doesn't exist. Removes any duplicate entries.
Reads, completes and saves the hostmasks JSON file, creating one if it doesn't exist.
Initialises the service's hostmasks and accounts resources.
Catch users in a reply for the request for a NAMES list of all the participants in a channel.
Removes old user entries when someone changes nickname. The old nickname no longer exists and the storage arrays should reflect that.
Removes a user's IRCUser entry from the users associative array of the current PersistenceService's IRCPluginState upon them disconnecting.
Reloads classifier definitions from disk.
Catch users in a reply for the request for a WHO list of all the participants in a channel.
Hijacks a reference to a IRCEvent after parsing and fleshes out the IRCEvent.sender and/or IRCEvent.target fields, so that things like account names that are only sent sometimes carry over.
Postprocessing implementation common for service and hostmasks mode.
Reloads the service, rehashing the user array and loading admin/staff/operator/elevated/whitelist/blacklist classifier definitions from disk.
Reloads admin/staff/operator/elevated/whitelist/blacklist classifier definitions from disk.
Reloads hostmasks definitions from disk.
The Persistence service keeps track of all encountered users, gathering as much information about them as possible, then injects them into IRCEvents when information about them is incomplete.
This means that even if a service only refers to a user by nickname, things like its ident and address will be available to plugins as well, assuming the Persistence service had seen that previously.
It has no commands.