private boolean auditTemporaryNodes(DataType dataType) {
        Difference<Node> result = getData(dataType).removeIf(Node::hasExpired);
        if (!result.isEmpty()) {
            invalidateCache();
        }
        this.plugin.getEventDispatcher().dispatchNodeChanges(this, dataType, result);
        return !result.isEmpty();
    }
Removes temporary permissions that have expired

@return true if permissions had expired and were removed
common/src/main/java/me/lucko/luckperms/common/model/PermissionHolder.java