Search in sources :

Example 46 with Player

use of cn.nukkit.Player 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)

Example 47 with Player

use of cn.nukkit.Player in project LuckPerms by lucko.

the class LPNukkitPlugin method removePlatformHooks.

@Override
protected void removePlatformHooks() {
    // uninject from players
    for (Player player : this.bootstrap.getServer().getOnlinePlayers().values()) {
        try {
            PermissibleInjector.unInject(player, false);
        } catch (Exception e) {
            e.printStackTrace();
        }
        if (getConfiguration().get(ConfigKeys.AUTO_OP)) {
            player.setOp(false);
        }
        final User user = getUserManager().getIfLoaded(player.getUniqueId());
        if (user != null) {
            user.getCachedData().invalidateCaches();
            getUserManager().unload(user);
        }
    }
    // uninject custom maps
    InjectorSubscriptionMap.uninject();
    InjectorPermissionMap.uninject();
    InjectorDefaultsMap.uninject();
}
Also used : Player(cn.nukkit.Player) User(me.lucko.luckperms.common.model.User)

Example 48 with Player

use of cn.nukkit.Player in project Nukkit by Nukkit.

the class BlockEntityBrewingStand method sendFuel.

protected void sendFuel() {
    ContainerSetDataPacket pk = new ContainerSetDataPacket();
    for (Player p : this.inventory.getViewers()) {
        int windowId = p.getWindowId(this.inventory);
        if (windowId > 0) {
            pk.windowId = windowId;
            pk.property = ContainerSetDataPacket.PROPERTY_BREWING_STAND_FUEL_AMOUNT;
            pk.value = this.fuelAmount;
            p.dataPacket(pk);
            pk.property = ContainerSetDataPacket.PROPERTY_BREWING_STAND_FUEL_TOTAL;
            pk.value = this.fuelTotal;
            p.dataPacket(pk);
        }
    }
}
Also used : Player(cn.nukkit.Player) ContainerSetDataPacket(cn.nukkit.network.protocol.ContainerSetDataPacket)

Example 49 with Player

use of cn.nukkit.Player in project Nukkit by Nukkit.

the class PlayerCursorInventory method sendSlot.

public void sendSlot(int index, Player... target) {
    InventorySlotPacket pk = new InventorySlotPacket();
    pk.slot = index;
    pk.item = this.getItem(index);
    for (Player p : target) {
        if (p == this.getHolder()) {
            pk.inventoryId = ContainerIds.CURSOR;
            p.dataPacket(pk);
        } else {
            int id;
            if ((id = p.getWindowId(this)) == ContainerIds.NONE) {
                this.close(p);
                continue;
            }
            pk.inventoryId = id;
            p.dataPacket(pk);
        }
    }
}
Also used : Player(cn.nukkit.Player) InventorySlotPacket(cn.nukkit.network.protocol.InventorySlotPacket)

Example 50 with Player

use of cn.nukkit.Player in project Nukkit by Nukkit.

the class PlayerInventory method sendContents.

@Override
public void sendContents(Player[] players) {
    InventoryContentPacket pk = new InventoryContentPacket();
    pk.slots = new Item[this.getSize()];
    for (int i = 0; i < this.getSize(); ++i) {
        pk.slots[i] = this.getItem(i);
    }
    for (Player player : players) {
        int id = player.getWindowId(this);
        if (id == -1 || !player.spawned) {
            this.close(player);
            continue;
        }
        pk.inventoryId = id;
        player.dataPacket(pk.clone());
    }
}
Also used : Player(cn.nukkit.Player) InventoryContentPacket(cn.nukkit.network.protocol.InventoryContentPacket)

Aggregations

Player (cn.nukkit.Player)85 TranslationContainer (cn.nukkit.lang.TranslationContainer)24 Entity (cn.nukkit.entity.Entity)13 BlockEntity (cn.nukkit.blockentity.BlockEntity)10 Item (cn.nukkit.item.Item)10 Level (cn.nukkit.level.Level)7 IOException (java.io.IOException)6 CompoundTag (cn.nukkit.nbt.tag.CompoundTag)5 Block (cn.nukkit.block.Block)4 ItemBlock (cn.nukkit.item.ItemBlock)4 BlockAir (cn.nukkit.block.BlockAir)3 EventHandler (cn.nukkit.event.EventHandler)3 BaseFullChunk (cn.nukkit.level.format.generic.BaseFullChunk)3 InventoryContentPacket (cn.nukkit.network.protocol.InventoryContentPacket)3 InventorySlotPacket (cn.nukkit.network.protocol.InventorySlotPacket)3 User (me.lucko.luckperms.common.model.User)3 IPlayer (cn.nukkit.IPlayer)2 CommandSender (cn.nukkit.command.CommandSender)2 EntityItem (cn.nukkit.entity.item.EntityItem)2 EntityArrow (cn.nukkit.entity.projectile.EntityArrow)2