Search in sources :

Example 6 with PluginManager

use of cn.nukkit.plugin.PluginManager in project LuckPerms by lucko.

the class InjectorSubscriptionMap method inject.

private LPSubscriptionMap inject() throws Exception {
    Objects.requireNonNull(PERM_SUBS_FIELD, "PERM_SUBS_FIELD");
    PluginManager pluginManager = this.plugin.getBootstrap().getServer().getPluginManager();
    Object map = PERM_SUBS_FIELD.get(pluginManager);
    if (map instanceof LPSubscriptionMap) {
        if (((LPSubscriptionMap) map).plugin == this.plugin) {
            return null;
        }
        map = ((LPSubscriptionMap) map).detach();
    }
    // noinspection unchecked
    Map<String, Set<Permissible>> castedMap = (Map<String, Set<Permissible>>) map;
    // make a new subscription map & inject it
    LPSubscriptionMap newMap = new LPSubscriptionMap(this.plugin, castedMap);
    PERM_SUBS_FIELD.set(pluginManager, newMap);
    return newMap;
}
Also used : PluginManager(cn.nukkit.plugin.PluginManager) Set(java.util.Set) Permissible(cn.nukkit.permission.Permissible) Map(java.util.Map)

Example 7 with PluginManager

use of cn.nukkit.plugin.PluginManager in project LuckPerms by lucko.

the class LPNukkitPlugin method performFinalSetup.

@Override
protected void performFinalSetup() {
    // register permissions
    try {
        PluginManager pm = this.bootstrap.getServer().getPluginManager();
        PermissionDefault permDefault = getConfiguration().get(ConfigKeys.COMMANDS_ALLOW_OP) ? PermissionDefault.OP : PermissionDefault.FALSE;
        for (CommandPermission p : CommandPermission.values()) {
            pm.addPermission(new Permission(p.getPermission(), null, permDefault.toString()));
        }
    } catch (Exception e) {
    // this throws an exception if the plugin is /reloaded, grr
    }
    if (!getConfiguration().get(ConfigKeys.OPS_ENABLED)) {
        Config ops = this.bootstrap.getServer().getOps();
        ops.getKeys(false).forEach(ops::remove);
    }
    // replace the temporary executor when the Nukkit one starts
    this.bootstrap.getServer().getScheduler().scheduleTask(this.bootstrap, () -> this.bootstrap.getScheduler().setUseFallback(false), true);
    // Load any online users (in the case of a reload)
    for (Player player : this.bootstrap.getServer().getOnlinePlayers().values()) {
        this.bootstrap.getScheduler().doAsync(() -> {
            try {
                User user = this.connectionListener.loadUser(player.getUniqueId(), player.getName());
                if (user != null) {
                    this.bootstrap.getScheduler().doSync(() -> {
                        try {
                            LPPermissible lpPermissible = new LPPermissible(player, user, this);
                            PermissibleInjector.inject(player, lpPermissible);
                        } catch (Throwable t) {
                            t.printStackTrace();
                        }
                    });
                }
            } catch (Exception e) {
                e.printStackTrace();
            }
        });
    }
}
Also used : PluginManager(cn.nukkit.plugin.PluginManager) LPPermissible(me.lucko.luckperms.nukkit.model.permissible.LPPermissible) Player(cn.nukkit.Player) User(me.lucko.luckperms.common.model.User) PermissionDefault(me.lucko.luckperms.nukkit.model.PermissionDefault) Config(cn.nukkit.utils.Config) CommandPermission(me.lucko.luckperms.common.command.access.CommandPermission) Permission(cn.nukkit.permission.Permission) CommandPermission(me.lucko.luckperms.common.command.access.CommandPermission)

Aggregations

PluginManager (cn.nukkit.plugin.PluginManager)7 Permission (cn.nukkit.permission.Permission)3 HashMap (java.util.HashMap)3 Map (java.util.Map)3 Player (cn.nukkit.Player)1 Permissible (cn.nukkit.permission.Permissible)1 Config (cn.nukkit.utils.Config)1 ImmutableMap (com.google.common.collect.ImmutableMap)1 Set (java.util.Set)1 CommandPermission (me.lucko.luckperms.common.command.access.CommandPermission)1 User (me.lucko.luckperms.common.model.User)1 PermissionDefault (me.lucko.luckperms.nukkit.model.PermissionDefault)1 LPPermissible (me.lucko.luckperms.nukkit.model.permissible.LPPermissible)1