I think you're thinking about this the wrong way. Indeed, you should be checking whether X is opped or not (which can be done with the
isop operator), and make use of if/else statements to determine whether to ban one way or the other, rather than trying either to halt after X bans, or letting X fail to ban and having the /ban command kick in instead:
on !@*:JOIN:#<channel>:{
if (*sample.host* iswm $address) {
if (X isop #) msg X ban # $nick 2400 100 Not Welcome Here!
else {
ban # $nick
kick # $nick Not Welcome Here!
}
}
}
Added @ prefix.