No, haha. The semicolon goes after the closing } for the package.
Here's a properly formatted, corrected version.
package bootup 
{
    function NMH_Type::Send(%this)
    {
        %word = %this.getValue();
        %words = getWordCount(%word);
        for(%i=0;%i<%words;%i++)
        {
            %word = getWord(%message, %i);
            if(%word $= "Bootup, JSys" || %word $= "bootup, jsys" || %word $= "Bootup, jsys" || %word $= "Bootup, Jsys" || %word $= "Boot!")
            {
                activatepackage("SystemMain");
                commandToServer('messagesent',"JSys²: Booting up.");
                schedule(2000, 0, "commandtoServer", 'messageSent', "Beware: This is for use only with Johnny Blockhead.");
            }
        }
        Parent::Send(%this);
    }
};
activatepackage("bootup");