@Override
    public Set<Permissible> put(String key, Set<Permissible> value) {
        if (value == null) {
            throw new NullPointerException("Map value cannot be null");
        }

        // ensure values are LP subscription maps
        if (!(value instanceof LPSubscriptionValueSet)) {
            value = new LPSubscriptionValueSet(key, value);
        }
        return super.put(key, value);
    }
A replacement map for the 'permSubs' instance in Nukkit's SimplePluginManager.

This instance allows LuckPerms to intercept calls to
{@link PluginManager#subscribeToPermission(String, Permissible)},
{@link PluginManager#unsubscribeFromPermission(String, Permissible)} and
{@link PluginManager#getPermissionSubscriptions(String)}.

Nukkit for some reason sometimes uses subscription status to determine whether
a permissible has a given node, instead of checking directly with
{@link Permissible#hasPermission(String)}.

In order to implement predicable Nukkit behaviour, LP has two options:
1) register subscriptions for all players as normal, or
2) inject it's own map instance to proxy calls to {@link PluginManager#getPermissionSubscriptions(String)} back to LuckPerms.

This class implements option 2 above. It is preferred because it is faster & uses less memory

Injected by {@link InjectorSubscriptionMap}.
nukkit/src/main/java/me/lucko/luckperms/nukkit/inject/server/LuckPermsSubscriptionMap.java