Borrowing from chadbdurham's regex with a little modification, you can simply do this:
on $*:TEXT:/^[!@.~';](join|part)\s(\x23\w+)/Si:*: {
if ($regml(1) == join) { join $regml(2) | .amsg $me has joined $regml(2) }
if ($regml(1) == part) { part $regml(2) | .amsg $me has left $regml(2) }
}
Usage: choose any symbol for the join or part trigger and then do, for example:
@join #channel
@part #channel
To make it workable for your own nick and ops or owners etc... only:
on $*:TEXT:/^[!@.~';](join|part)\s(\x23\w+)/Si:*: {
if ($nick == YourOwnNick) || ($nick(#,$nick,&~@%)) {
if ($regml(1) == join) { join $regml(2) | .amsg $me has joined $regml(2) }
if ($regml(1) == part) { part $regml(2) | .amsg $me has left $regml(2) }
}
}
And I think using /amsg is fitting.