Skip to content

@janitor

@janitor is not a second language. It is the field janitor on the receiver: @janitorself.janitor. You still declare Sweep sweep; (or Janitor janitor;) on the struct and assign it in init.

Header:

#pragma once
#include <clpp/libs/sweep.clh>
struct LeaderstatsServer {
Janitor janitor;
void PlayerEntered(Player player);
};
void LeaderstatsServer::PlayerEntered(Player player) {
guard (player != null) else {
warn("Invalid player");
return;
}
Folder folder = new Folder(player);
folder.Name = "leaderstats";
@janitor.Add(folder, "Destroy", player.Name);
}

Library calls use . (instance method), same as Roblox: sweep.Add, sweep.Cleanup, sweep.LinkToInstance. Full API: Libraries → Sweep.