Good job on your first add-on, keep it up. One thing I can suggest though is to return the parent to avoid potentially breaking things.
To do that, I believe it's -
function GameConnection::onClientLeaveGame(%c)
{
%r = Parent::onClientLeaveGame(%c);
announce("\c1" @ %c.name @ "'s BL_ID is \c3" @ %c.BL_ID);
return %r;
}
Also you don't need a namecheck.txt in this add-on. You only really need that if you have custom resources. So if somewhere in your script you had a full file path like this iconName.
datablock fxDTSBrickData (brick2x2difrentData : brick2x2Data)
{
uiName = "difrent 2x2";
iconName = "Add-Ons/Brick_Difrent2x2/difrent2x2icon";
};
You would need a namecheck.txt to ensure that no one changes the name of your add-on, thereby making it impossible to load certain assets.