When writing a SIL script that will handle an event, the username of the user who triggered the event will be available as the first element in the argv variable and you can use it like this:
string callingUser = getElement(argv, 0);
Also, the issue context (all standard variables and custom field values) will be set to those of the issue where the event was triggered from. For example, if a SIL script is triggered by an event launched from the "TST-123" issue, all standard variables and custom fields used in the SIL script will point to the "TST-123" issue, unless specified otherwise using the construction %otherIssueKey% variable.
Aside from the issue events that are configurable from Jira UI, a SIL Listener also enables you to react to other events. Note that these events will not run in an issue context since they're not related to an issue, and it doesn't make sense using standard issue variables without qualifying them with the key of the issue. Additionally, each event might add additional information to the argv variable aside from the information that is common for all events.
The first three elements in the argv string array are (note that indexing in the array starts with 0):
The user that triggered the event
An internal id for the event that was triggered. Normally you wouldn't need this.
The name of the event as specified in the dropdown list that configures the listener.
The next elements in the array after these are event-specific and are detailed in the following table.
4. version ID
5. string representation of a Version structure. You can retrieve this value and then cast it to a "Version" structure.