java类org.bukkit.inventory.EquipmentSlot的实例源码

SpellListener.java 文件源码 项目:MiniWynn 阅读 38 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.HIGHEST)
public void on(PlayerInteractEvent event){
    Player player = event.getPlayer();
    if(event.getHand().equals(EquipmentSlot.OFF_HAND)) return;

    if(
            event.getAction().equals(Action.RIGHT_CLICK_AIR) ||
            event.getAction().equals(Action.RIGHT_CLICK_BLOCK)){
        on(player, Spell.MouseClick.RIGHT);
    }
}
ArmorStands.java 文件源码 项目:Kineticraft 阅读 24 收藏 0 点赞 0 评论 0
public ArmorPose(ArmorStand a) {
    this(a.getHeadPose(), a.getBodyPose(), a.getLeftArmPose(), a.getRightArmPose(), a.getLeftLegPose(), a.getRightLegPose(), new JsonMap<>());
    for (EquipmentSlot slot : EquipmentSlot.values()) { // Save gear.
        ItemStack i = Utils.getItem(a, slot);
        if (!Utils.isAir(i))
            getGear().put(slot.name(), i);
    }
}
GeneratorListener.java 文件源码 项目:MT_Core 阅读 23 收藏 0 点赞 0 评论 0
@EventHandler
public void onInteractBusy(PlayerInteractEvent event) {
    if (event.getClickedBlock() == null)
        return;
    if (!inUse.contains(event.getClickedBlock().getLocation()))
        return;

    event.setCancelled(true);

    if (event.getHand() == EquipmentSlot.HAND)
        event.getPlayer().sendMessage(ChatColor.RED + "That generator is busy right now!");
}
GeckPowerListener.java 文件源码 项目:MT_Core 阅读 38 收藏 0 点赞 0 评论 0
@EventHandler
public void onPlayerLeaverInteract(PlayerInteractEvent e) {
    Player p = e.getPlayer();
    Block clicked = e.getClickedBlock();

    if (clicked == null)
        return;

    Block underneath = clicked.getRelative(BlockFace.DOWN);
    Location underneathLoc = underneath.getLocation();

    if (e.getAction() != Action.RIGHT_CLICK_BLOCK || e.getHand() == EquipmentSlot.OFF_HAND)
        return;

    if (clicked.getType() != Material.LEVER || underneath == null)
        return;

    String chunk = clicked.getLocation().getChunk().getX() + ";" + clicked.getLocation().getChunk().getZ();

    if (underneath.getType() == Material.SPONGE && !underneath.isBlockPowered()) {
        if (!main.getGeckManager().isGeckBuildCorrect(underneath)) {
            p.sendMessage(ChatColor.RED + "You must build the GECK correctly!");

            // Check if the geck is inside the powerables list
        } else if (main.getGenListener().getPowerable().get(clicked.getWorld().getName()).getList(chunk)
                .contains(underneathLoc)) {
            main.getGeckObjectManager().addGeckLocation(underneathLoc);
            main.getGeckObjectManager().getGeckObject(underneathLoc).setCorrect(true);
            main.getGeckObjectManager().getGeckObject(underneathLoc).setPowered(true);
            p.sendMessage(ChatColor.GREEN + "GECK Enabled!");
            return;
        }

    } else if (main.getGeckObjectManager().getGeckObject(underneathLoc) != null && underneath.isBlockPowered()) {
        main.getGeckObjectManager().getGeckObject(underneathLoc).setPowered(false);
        main.getGeckObjectManager().removeGeckLocation(underneathLoc);
        p.sendMessage(ChatColor.RED + "GECK Disabled!");
    }
}
SpawnMob.java 文件源码 项目:PA 阅读 17 收藏 0 点赞 0 评论 0
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onSpawn(PlayerInteractEvent e){
    Player p = e.getPlayer();

    if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
        if(e.getHand() != EquipmentSlot.HAND) return;
        if (e.getItem() == null || !e.getItem().hasItemMeta() || !e.getItem().getItemMeta().hasDisplayName() || e.getItem().getType() != Material.MONSTER_EGG) return;
        if (!ChatColor.stripColor(e.getItem().getItemMeta().getDisplayName()).contains("Spawn")) return;
        int id = Integer.parseInt(e.getItem().getItemMeta().getLore().get(0));
        String s = e.getItem().getItemMeta().getLore().get(1);

        boolean canCatch = true;
        ApplicableRegionSet region = plugin.getWg().getRegionManager(p.getWorld()).getApplicableRegions(p.getLocation());
        for (ProtectedRegion r : region.getRegions()) if (!r.getOwners().contains(p.getName())) canCatch = false;

        if (!canCatch) {
            p.sendMessage(SafariNet.getInstance().getPrefix() + ChatColor.RED + "No puedes spawnear un mob en parcelas ajenas");
            return;
        }

        SNMob mob = new SNMob(p);
        if (!mob.isOwner(id)) {
           p.sendMessage(SafariNet.getInstance().getPrefix() + ChatColor.RED + "No eres el dueño de este huevo");
            return;
        }
        mob.spawnMob(id, s);
        p.getInventory().getItemInMainHand().setAmount(-1);
    }
}
RuneListener.java 文件源码 项目:AsgardAscension 阅读 27 收藏 0 点赞 0 评论 0
@EventHandler
public void onRuneUse(PlayerInteractEvent event) {
    if(!(event.getAction().equals(Action.RIGHT_CLICK_AIR) || event.getAction().equals(Action.RIGHT_CLICK_BLOCK))) {
        return;
    }

    if(event.getHand() == null || !event.getHand().equals(EquipmentSlot.HAND)) {
        return;
    }

    ItemStack item = event.getPlayer().getInventory().getItemInMainHand();
    if(item == null || item.getItemMeta() == null || !item.getType().equals(Material.ENCHANTED_BOOK)) {
        return;
    }

    Player player = event.getPlayer();
    Rune rune = plugin.getRuneManager().getRune(item.getItemMeta().getDisplayName().substring(2));
    if(rune == null) {
        return;
    }

    event.setCancelled(true);

    if(plugin.getRuneManager().hasActiveRune(player)) {
        player.sendMessage(Lang.HEADERS_TOKENS.toString() + Lang.TOKENS_RUNE_ALREADY_ACTIVE.toString());
        return;
    }

    if(Cooldowns.getCooldown(player, "rune") > 0) {
        player.sendMessage(Lang.HEADERS_TOKENS.toString() + Lang.TOKENS_RUNE_COOLDOWN.toString()
            .replaceAll("%d", Convert.timeToString((int) (Cooldowns.getCooldown(player, "rune") / 1000))));
        return;
    }

    plugin.getRuneManager().start(player, rune);
}
ArmorStandEquipmentSlot.java 文件源码 项目:MundoSK 阅读 16 收藏 0 点赞 0 评论 0
public static EquipSlot getByEquipmentSlot(EquipmentSlot equipmentSlot) {
    switch (equipmentSlot) {
        case HEAD: return HELMET;
        case CHEST: return CHESTPLATE;
        case LEGS: return LEGGINGS;
        case FEET: return BOOTS;
        default: return TOOL;
    }
}
BridgeEventHandler.java 文件源码 项目:CastleGates 阅读 20 收藏 0 点赞 0 评论 0
public boolean handleBlockClicked(PlayerInteractEvent event, PlayerStateManager.PlayerState state) {
    if(event.getAction() == Action.RIGHT_CLICK_BLOCK && event.getHand() == EquipmentSlot.HAND) {
        simpleActivate(event);
        return false;
    }

    if(event.getAction() != Action.LEFT_CLICK_BLOCK) return false;

    boolean interacted = false;
    ConfigManager configManager = CastleGates.getConfigManager();
    CommandMode mode = state != null ? state.mode: CommandMode.OFF;

    if(configManager.getAllowAutoCreate() && configManager.isCreationConsumeItem(event.getItem())) {
        interacted = createGearblockAndLink(event);
    }
    else if(mode == CommandMode.INFO) {
        showGearInfo(event);
        interacted = true;
    }
    else if(mode == CommandMode.TIMER) {
        interacted = setGearblockTimer(event, state);
    }
    else if(configManager.isStickItem(event.getItem())) {
        switch(mode) {
            case CREATE:
                interacted = createGearblock(event);
                break;
            case LINK:
                interacted = linkGearblocks(event);
                break;
            default:
                interacted = false;
                break;
        }
    }

    return interacted;
}
InventoryViewModule.java 文件源码 项目:GamePlate 阅读 15 收藏 0 点赞 0 评论 0
@EventHandler(ignoreCancelled = true)
public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
    if (ObserverModule.isObserver(event.getPlayer())) {
        if (event.getRightClicked() instanceof Player && !event.getPlayer().isSneaking()){
            if (event.getHand().equals(EquipmentSlot.HAND)) {
                openInventory(event.getPlayer(), (Player) event.getRightClicked(), false);
            }
        }
    }
}
EventCanceller.java 文件源码 项目:Damocles 阅读 22 收藏 0 点赞 0 评论 0
@EventHandler
public void runeCreation(PlayerInteractEntityEvent event){
    if(event.getRightClicked() instanceof EnderCrystal){
        event.setCancelled(true);
        if(event.getHand().equals(EquipmentSlot.OFF_HAND))
            return;

        event.getRightClicked().remove();
        Player player = event.getPlayer();
        int rand = ThreadLocalRandom.current().nextInt(100);
        if(rand <= 50){
            World world = event.getRightClicked().getWorld();
            Location loc = event.getRightClicked().getLocation();
            world.createExplosion(loc.getX(), loc.getY(), loc.getZ(), 2, false, false);
            Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
            Message.sendCenteredMessage(player, ChatColor.BOLD + "Rune");
            Message.sendCenteredMessage(player, ChatColor.YELLOW + "You fail to harvest any runes.");
            Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
            return;
        }else{
            Enchantments[] enchants = Enchantments.values();
            Enchantments ench = enchants[ThreadLocalRandom.current().nextInt(enchants.length - 1)];
            int level = ThreadLocalRandom.current().nextInt(enchantclass.getMaxLevel(ench) + 1);
            if(level == 0)
                level = 1;
            event.getRightClicked().getWorld().dropItem(event.getRightClicked().getLocation(), new ca.damocles.itemblueprints.Rune(ench, level, ThreadLocalRandom.current().nextInt(100), ThreadLocalRandom.current().nextInt(100)).getItemStack());
            Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
            Message.sendCenteredMessage(player, ChatColor.BOLD + "Rune");
            Message.sendCenteredMessage(player, ChatColor.YELLOW + "You successefuly harvest some runes.");
            Message.sendCenteredMessage(player, ChatColor.GREEN+"----------------------------------------------------");
            return;
        }
    }
    return;
}


问题


面经


文章

微信
公众号

扫码关注公众号