Inter-Addon Communication
Mods talking to an addon or more than one addon in Nitrocid
Inter-Addon Communication allows your mods to execute the publicly-available functions of a kernel addon. It allows your mods to talk to the kernel addons in a mechanism that doesn't interfere with the other end's operations.
How to call a publicly accessible addon function?
To execute custom addon functions in your mod, you must specify the full addon name, such as Extras - RSS Shell, and the function to execute in the ExecuteCustomAddonFunction() method:
public static object ExecuteCustomAddonFunction(KnownAddons addonName, string functionName)
public static object ExecuteCustomAddonFunction(KnownAddons addonName, string functionName, params object[] parameters)
public static object ExecuteCustomAddonFunction(string addonName, string functionName)
public static object ExecuteCustomAddonFunction(string addonName, string functionName, params object[] parameters)How can I get/set a value from/to a property or a field?
To get a property value or a field value from an addon, you can call the following functions:
public static object GetCustomAddonPropertyValue(KnownAddons addonName, string propertyName)
public static object GetCustomAddonFieldValue(KnownAddons addonName, string fieldName)
public static object GetCustomAddonPropertyValue(string addonName, string propertyName)
public static object GetCustomAddonFieldValue(string addonName, string fieldName)Similarly, to set a property value or a field value declared publicly by an addon, you can call the following functions:
public static void SetCustomAddonPropertyValue(KnownAddons addonName, string propertyName, object value)
public static void SetCustomAddonFieldValue(KnownAddons addonName, string fieldName, object value)
public static void SetCustomAddonPropertyValue(string addonName, string propertyName, object value)
public static void SetCustomAddonFieldValue(string addonName, string fieldName, object value)Listing functions, properties, and fields
You can now list all the available functions, properties, and fields from a specific mod using one of the following functions:
public static string[] ListAvailableFunctions(string addonName)
public static string[] ListAvailableProperties(string addonName)
public static string[] ListAvailableFields(string addonName)Listing function and set property parameters
You can list all the function and set property parameters in depth by using the following functions:
public static ParameterInfo[] GetFunctionParameters(string addonName, string functionName)
public static ParameterInfo[] GetSetPropertyParameters(string addonName, string propertyName)Supported addons
Items that are marked in green, yellow, and red resemble functions, properties, and fields respectively. The following addons support inter-addon communication:
Nitrocid.Extras.ArchiveShell
ListArchiveEntriesExtractFileEntryPackFileChangeWorkingArchiveDirectoryChangeWorkingArchiveLocalDirectory
Nitrocid.Extras.Calendar
PrintCalendarPrintCalendar2PrintCalendar3AddEventRemoveEventListEventsLoadEventsLoadEventSaveEventsSaveEvents2SaveEventSaveEvent2AddReminderRemoveReminderListRemindersLoadRemindersLoadReminderSaveRemindersSaveReminders2SaveReminderSaveReminder2
Nitrocid.Extras.Contacts
GetContactsImportContactsInstallContactsInstallContacts2InstallContactFromMeCardRemoveContactRemoveContactsGetContactSearchNextSearchNext2SearchPreviousSearchPrevious2
Nitrocid.Extras.Diagnostics
GetThreadBacktraces
Nitrocid.Extras.Docking
DockScreenDockScreen2DoesDockScreenExistGetDockScreenNamesGetDockScreens
Nitrocid.Extras.Forecast
GetWeatherInfoGetWeatherInfo2PrintWeatherInfoPrintWeatherInfo2GetWeatherInfoOwmGetWeatherInfoOwm2GetWeatherInfoOwm3GetWeatherInfoOwm4PrintWeatherInfoOwmPrintWeatherInfoOwm2PreferredUnit
Nitrocid.Extras.FtpShell
FTPListRemoteFTPListRemote2FTPDeleteRemoteFTPChangeRemoteDirFTPMoveItemFTPCopyItemFTPChangePermissionsFTPGetHashFTPGetHashesFTPGetHashes2FTPGetFileFTPGetFile2FTPGetFolderFTPGetFolder2FTPUploadFileFTPUploadFile2FTPUploadFolderFTPUploadFolder2FTPDownloadToStringPromptForPasswordTryToConnectFileProgressMultipleProgress
Nitrocid.Extras.HttpShell
HttpDeleteHttpGetStringHttpGetHttpPutStringHttpPutFileHttpPostStringHttpPostFileHttpAddHeaderHttpRemoveHeaderHttpListHeadersHttpGetCurrentUserAgentHttpSetUserAgentNeutralizeUri
Nitrocid.Extras.JsonShell
OpenJsonFileCloseJsonFileSaveFileSaveFile2WasJsonEditedDetermineRootTypeDetermineTypeGetTokenGetTokenSafeGetTokenSafe2AddSetRemoveSerializeToString
Nitrocid.Extras.MailShell
CreateMailDirectoryDeleteMailDirectoryRenameMailDirectoryOpenFolderMailListDirectoriesMailListMessagesMailListMessages2MailRemoveMessageMailRemoveAllBySenderMailMoveAllBySenderDecryptMessageMailSendMessageMailSendMessage2MailSendEncryptedMessagePopulateMessagesShowPreview
Nitrocid.Extras.RssShell
GetFirstArticleSearchArticlesAddRSSFeedToBookmarkAddRSSFeedToBookmark2RemoveRSSFeedFromBookmarkRemoveRSSFeedFromBookmark2GetBookmarksGetBookmark
Nitrocid.Extras.SftpShell
SFTPListRemoteSFTPListRemote2SFTPDeleteRemoteSFTPChangeRemoteDirSFTPChangeLocalDirSFTPGetCanonicalPathSFTPGetFileSFTPUploadFileSFTPDownloadToStringPromptConnectionInfoSFTPTryToConnect
Nitrocid.Extras.SqlShell
IsSqlSqlEdit_OpenSqlFileSqlEdit_CheckSqlFileSqlEdit_SqlCommand
Nitrocid.Extras.Ssh
PromptConnectionInfoGetConnectionInfoInitializeSSHOpenShellOpenShell2OpenCommandOpenCommand2
Nitrocid.Extras.ToDoList
AddTaskRemoveTaskGetTaskGetTaskIndexTaskExistsSetDoneSetUndoneGetTaskNamesSaveTasksLoadTasks