Java 类org.bukkit.entity.ItemFrame 实例源码

项目:Warzone    文件:BuildFilterType.java   
@EventHandler
public void onPlayerClickItemFram(PlayerInteractEntityEvent event) {
    if (!event.isCancelled() && event.getRightClicked() != null && event.getRightClicked() instanceof ItemFrame) {
        for (Region region : regions) {
            if (region.contains(event.getRightClicked().getLocation())) {
                for (MatchTeam matchTeam : teams) {
                    if (matchTeam.containsPlayer(event.getPlayer())) {
                        FilterResult filterResult = evaluator.evaluate(event.getPlayer());
                        if (filterResult == FilterResult.DENY) {
                            event.setCancelled(true);
                            event.getPlayer().sendMessage(message);
                        } else if (filterResult == FilterResult.ALLOW) {
                            event.setCancelled(false);
                        }
                    }
                }
            }
        }
    }
}
项目:bskyblock    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final EntityDamageByEntityEvent e) {
    // Check world
    if (!Util.inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getDamager() instanceof Projectile) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Projectile damage to itemframe");
        // Find out who fired the arrow
        Projectile p = (Projectile) e.getDamager();
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Shooter is " + p.getShooter().toString());
        if (p.getShooter() instanceof Skeleton || p.getShooter() instanceof Golem) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Shooter is mob");
            if (!Settings.allowMobDamageToItemFrames) {
                if (DEBUG)
                    plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
                e.setCancelled(true);
            }
        }
    }
}
项目:bskyblock    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final HangingBreakByEntityEvent e) {
    if (DEBUG) {
        plugin.getLogger().info("DEBUG: Hanging break by entity event");
        plugin.getLogger().info("DEBUG: cause = " + e.getCause());
        plugin.getLogger().info("DEBUG: entity = " + e.getEntity());
        plugin.getLogger().info("DEBUG: remover = " + e.getRemover());
    }
    // Check world
    if (!Util.inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getRemover() instanceof Skeleton || e.getRemover() instanceof Golem) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Remover is mob");
        if (!Settings.allowMobDamageToItemFrames) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
            e.setCancelled(true);
        }
    }
}
项目:ProjectAres    文件:EventRuleMatchModule.java   
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void checkItemFrameRotate(PlayerInteractEntityEvent event) {
    if(event.getRightClicked() instanceof ItemFrame) {
        ItemFrame itemFrame = (ItemFrame) event.getRightClicked();
        if(itemFrame.getItem() != null) {
            // If frame contains an item, right-click will rotate it, which is handled as a "use" event
            this.handleUse(event, getHangingBlockState(itemFrame), this.match.getParticipant(event.getPlayer()));
        } else if(event.getPlayer().getItemInHand() != null) {
            // If the frame is empty and it's right clicked with an item, this will place the item in the frame,
            // which is handled as a "place" event, with the placed item as the block material
            BlockState blockState = BlockStateUtils.cloneWithMaterial(itemFrame.getLocation().getBlock(),
                                                                      event.getPlayer().getItemInHand().getData());
            this.handleHangingPlace(event, blockState, event.getPlayer());
        }
    }
}
项目:kaosEssentials    文件:Core.java   
@EventHandler(priority=EventPriority.HIGHEST)
public void onClickFrame(PlayerInteractEntityEvent e){
    if(!(e.getRightClicked() instanceof ItemFrame)) return;
    String uuid = e.getPlayer().getUniqueId().toString();
    long curTime = System.currentTimeMillis();
    int posInList;
    if(uuidsClickItem.contains(uuid)){
        posInList = uuidsClickItem.indexOf(uuid);
        if(curTime < (lastClickItem.get(posInList) + 200)){
            e.getPlayer().sendMessage(tag + ChatColor.RED + "Please slow down clicking item frames!");
            Vector movDirection = e.getPlayer().getEyeLocation().getDirection();
            movDirection = movDirection.normalize().multiply(-2);
            e.getPlayer().setVelocity(movDirection);
            e.setCancelled(true);
        }
        if(curTime < (lastClickItem.get(posInList) + 50)){
            e.getPlayer().kickPlayer(tag + ChatColor.RED + "Please do not spam item frames!");

        }
        lastClickItem.set(posInList, curTime);
    }else{
        uuidsClickItem.add(uuid);
        lastClickItem.add(curTime);
    }
}
项目:UltimateSpawn    文件:BasicFeatures.java   
@EventHandler
public void onplayerinteract(PlayerInteractEntityEvent e) {
    Player p = e.getPlayer();
    if (ConfigGProtection.getConfig().getBoolean("Protection.PlayerInteractEntity-ItemFrame.Enable")) {
        if (!ConfigGProtection.getConfig().getBoolean("Protection.PlayerInteractEntity-ItemFrame.World.All_World")) {
            if (WorldUtils.getWPIEIF().contains(p.getWorld().getName())) {
                if ((e.getRightClicked() instanceof ItemFrame)) {
                    e.setCancelled(true);
                }
            }
        } else {
            if ((e.getRightClicked() instanceof ItemFrame)) {
                e.setCancelled(true);
            }
        }
    }
}
项目:UltimateSpawn    文件:BasicFeatures.java   
@EventHandler
public void onEntityDamage(EntityDamageByEntityEvent e) {
    if (ConfigGServerEvent.getConfig().getBoolean("Server.Disable.Damage.Enable")) {
        if (ConfigGServerEvent.getConfig().getBoolean("Server.Disable.Damage.Options.Entity.Enable")) {
      if (ConfigGServerEvent.getConfig().getBoolean("Server.Disable.Damage.Options.Entity.EntityDamageByEntity")) {
        if (!ConfigGServerEvent.getConfig().getBoolean("Server.Disable.Damage.World.All_World")) {
            if (WorldUtils.getWD().contains(e.getEntity().getWorld().getName())) {
                e.setCancelled(true);
                if (e.getEntity() instanceof ItemFrame) {
                      e.setCancelled(true);
                }
            }
        } else {
            e.setCancelled(true);
            if (e.getEntity() instanceof ItemFrame) {
                      e.setCancelled(true);
                }
        }
      }
        }
    }
}
项目:AnimatedFrames    文件:AnimatedFrame.java   
public void clearFrames() {
    if (this.mapWrappers != null) {
        for (MapWrapper wrapper : this.mapWrappers) {
            for (UUID uuid : worldPlayers) {
                Player player = Bukkit.getPlayer(uuid);
                if (player != null) {
                    ((MultiMapController) wrapper.getController()).clearFrames(player, this.itemFrameIds);
                }
            }
            wrapper.getController().clearViewers();
        }
        for (int[] iA : this.itemFrameIds) {
            for (int i : iA) {
                ItemFrame itemFrame = MapManagerPlugin.getItemFrameById(getWorld(), i);
                if (itemFrame != null) {
                    itemFrame.removeMetadata("ANIMATED_FRAMES_META", plugin);
                }
            }
        }
    }
}
项目:AnimatedFrames    文件:FrameManager.java   
@Synchronized
public AnimatedFrame createFrame(String name, String source, ItemFrame firstFrame, ItemFrame secondFrame) {
    if (frameMap.containsKey(name)) {
        throw new IllegalArgumentException("Frame '" + name + "' already exists");
    }
    JsonObject meta = new JsonObject();
    AsyncFrameCreationEvent creationEvent = new AsyncFrameCreationEvent(name, source, firstFrame, secondFrame, meta);
    Bukkit.getPluginManager().callEvent(creationEvent);
    name = creationEvent.getName();
    source = creationEvent.getSource();

    AnimatedFrame frame = new AnimatedFrame(firstFrame, new Vector3DDouble(firstFrame.getLocation().toVector()), new Vector3DDouble(secondFrame.getLocation().toVector()), name, source);
    frameMap.put(frame.getName(), frame);
    frame.setMeta(meta);

    return frame;
}
项目:MapManager    文件:MapInteractEvent.java   
/**
 * @return the {@link MapWrapper} of the clicked frame
 */
public MapWrapper getMapWrapper() {
    if (this.mapWrapper != null) { return this.mapWrapper; }
    ItemFrame itemFrame = getItemFrame();
    if (itemFrame != null) {
        if (itemFrame.hasMetadata("MAP_WRAPPER_REF")) {
            List<MetadataValue> metadataValues = itemFrame.getMetadata("MAP_WRAPPER_REF");
            for (MetadataValue value : metadataValues) {
                MapWrapper wrapper = (MapWrapper) value.value();
                if (wrapper != null) {
                    return this.mapWrapper = wrapper;
                }
            }
        }
    }
    return null;
}
项目:MapManager    文件:DefaultMapWrapper.java   
@Override
public void showInFrame(Player player, int entityId, String debugInfo) {
    if (!isViewing(player)) {
        return;
    }
    //Create the ItemStack with the player's map ID
    ItemStack itemStack = new ItemStack(Material.MAP, 1, getMapId(player));
    if (debugInfo != null) {
        //Add the debug info to the display
        ItemMeta itemMeta = itemStack.getItemMeta();
        itemMeta.setDisplayName(debugInfo);
        itemStack.setItemMeta(itemMeta);
    }

    ItemFrame itemFrame = MapManagerPlugin.getItemFrameById(player.getWorld(), entityId);
    if (itemFrame != null) {
        //Add a reference to this MapWrapper (can be used in MapWrapper#getWrapperForId)
        itemFrame.removeMetadata("MAP_WRAPPER_REF", MapManagerPlugin.instance);
        itemFrame.setMetadata("MAP_WRAPPER_REF", new FixedMetadataValue(MapManagerPlugin.instance, DefaultMapWrapper.this));
    }

    sendItemFramePacket(player, entityId, itemStack);
}
项目:RpgPlus    文件:ImagesComponent.java   
private void placePoster(List<ItemStack> maps, int width, int height, final Block topLeftBlock, final BlockFace facing) {
    for (int x = 0; x < width; x++) {
        for (int y = 0; y < height; y++) {
            Block block = Util.getRelative(topLeftBlock, facing, -y, x, 0);
            for (ItemFrame entity : block.getWorld().getEntitiesByClass(ItemFrame.class)) {
                if (entity.getLocation().getBlock().getRelative(entity.getAttachedFace()).getLocation().equals(block.getLocation())) {
                    entity.teleport(new Location(entity.getWorld(), 0, -1, 0)); //workaround so that respawning an item frame immediately works
                    entity.remove();
                    break;
                }
            }

            final ItemStack map = maps.get(y * width + x);
            ItemMeta meta = map.getItemMeta();
            meta.setDisplayName("");
            map.setItemMeta(meta);
            Util.attachItemFrame(Util.getRelative(topLeftBlock, facing, -y, x, 0), map, facing);
        }
    }
    propagateMaps(maps, topLeftBlock.getLocation());
}
项目:RedProtect    文件:RPBlockListener.java   
@EventHandler
 public void onFrameBrake(HangingBreakByEntityEvent e) {
    RedProtect.get().logger.debug("Is BlockListener - HangingBreakByEntityEvent event");
    if (e.isCancelled()){
        return;
    }

    Entity remover = e.getRemover();
    Entity ent = e.getEntity();
    Location l = e.getEntity().getLocation();

    if ((ent instanceof ItemFrame || ent instanceof Painting) && remover instanceof Monster) {
        Region r = RedProtect.get().rm.getTopRegion(l);
        if (r != null && !r.canMobLoot()){
            e.setCancelled(true);
}
     }    
 }
项目:RedProtect    文件:RPBlockListener.java   
@EventHandler
 public void onFrameBrake(HangingBreakEvent e) {
    RedProtect.get().logger.debug("Is BlockListener - HangingBreakEvent event");
    if (e.isCancelled()){
        return;
    }

    Entity ent = e.getEntity();
    Location l = e.getEntity().getLocation();       

    if ((ent instanceof ItemFrame || ent instanceof Painting) && (e.getCause().toString().equals("EXPLOSION"))) {
        Region r = RedProtect.get().rm.getTopRegion(l);
        if (r != null && !r.canFire()){
            e.setCancelled(true);
}
     }    
 }
项目:civcraft    文件:ItemFrameStorage.java   
public ItemFrameStorage(ItemFrame frame, Location attachedLoc) throws CivException {
        if (frame != null) {
            this.frameID = frame.getUniqueId();
            this.location = frame.getLocation();
            this.attachedBlock = new BlockCoord(attachedLoc);
            CivGlobal.addProtectedItemFrame(this);
        } else {
            throw new CivException("Passed a null item frame to storage constructor.");
        }

//      this.frame = frame;
//      if (this.frame != null) {
//          CivGlobal.addProtectedItemFrame(this);
//      } else {
//          CivLog.error("Passed a null item frame!!!");
//          throw new CivException("Passed a null item frame.");
//      }
    }
项目:civcraft    文件:ItemFrameStorage.java   
public ItemFrame getItemFrame() {
    // Gets the item frame by loading in the chunk where it is supposed to reside.
    // Then searching for it's UUID.

    if (!this.location.getChunk().isLoaded()) {
        if (!this.location.getChunk().load()) {
            CivLog.error("Could not load chunk to get item frame at:"+this.location);
            return null;
        }
    }

    Entity ent = CivGlobal.getEntityClassFromUUID(this.location.getWorld(), ItemFrame.class, this.frameID);
    if (ent == null) {
        CivLog.error("Could not find frame from frame ID:"+this.frameID.toString());
        return null;
    }

    if (!(ent instanceof ItemFrame)) {
        CivLog.error("Could not get a frame with ID:"+this.frameID+" ... it was not a frame.");
        return null;
    }

    //TODO try and use a cache and isValid()?

    return (ItemFrame)ent;
}
项目:civcraft    文件:DebugCommand.java   
public void moveframes_cmd() throws CivException {
    Player player = getPlayer();
    Chunk chunk = player.getLocation().getChunk();

//  int x = this.getNamedInteger(1);
//  int y = this.getNamedInteger(2);
//  int z = this.getNamedInteger(3);

//  Location loc = new Location(player.getWorld(), x, y, z);

    for (Entity entity : chunk.getEntities()) {
        if (entity instanceof ItemFrame) {
            CivMessage.send(sender, "Teleported...");
            entity.teleport(entity.getLocation());
        }
    }

}
项目:acidisland    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final EntityDamageByEntityEvent e) {
    // Check world
    if (!inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getDamager() instanceof Projectile) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Projectile damage to itemframe");
        // Find out who fired the arrow
        Projectile p = (Projectile) e.getDamager();
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Shooter is " + p.getShooter().toString());
        if (p.getShooter() instanceof Skeleton || p.getShooter() instanceof Golem) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Shooter is mob");
            if (!Settings.allowMobDamageToItemFrames) {
                if (DEBUG)
                    plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
                e.setCancelled(true);
            }
        }
    }
}
项目:acidisland    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final HangingBreakByEntityEvent e) {
    if (DEBUG) {
        plugin.getLogger().info("DEBUG: Hanging break by entity event");
        plugin.getLogger().info("DEBUG: cause = " + e.getCause());
        plugin.getLogger().info("DEBUG: entity = " + e.getEntity());
        plugin.getLogger().info("DEBUG: remover = " + e.getRemover());
    }
    // Check world
    if (!inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getRemover() instanceof Skeleton || e.getRemover() instanceof Golem) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Remover is mob");
        if (!Settings.allowMobDamageToItemFrames) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
            e.setCancelled(true);
        }
    }
}
项目:Factoid    文件:PlayerListener.java   
/**
 * On player interact entity.
 * 
 * @param event
 *            the event
 */
@EventHandler(priority = EventPriority.NORMAL, ignoreCancelled = true)
public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
    if (!playerConf.get(event.getPlayer()).isAdminMod()
            && event.getRightClicked() instanceof ItemFrame) {

        Player player = (Player) event.getPlayer();
        IDummyLand land = Factoid.getThisPlugin().iLands().getLandOrOutsideArea(
                event.getRightClicked().getLocation());

        if ((land instanceof ILand && ((ILand) land).isBanned(player))
                || !checkPermission(land, player,
                        PermissionList.BUILD.getPermissionType())
                || !checkPermission(land, player,
                        PermissionList.BUILD_PLACE.getPermissionType())) {
            messagePermission(player);
            event.setCancelled(true);
        }
    }
}
项目:UltimateSurvivalGames    文件:PlayerListener.java   
@EventHandler
public void onPlayerRightClick(PlayerInteractEntityEvent event) {
    User user = um.getUser(event.getPlayer().getName());
    if(user != null) {
        GameState state = user.getGame().getState();
        if(event.getRightClicked() instanceof ItemFrame || state == GameState.WAITING || state == GameState.VOTING || state == GameState.COOLDOWN) {
            event.setCancelled(true);
        }
    } else {
        for(Game game : SurvivalGames.gameManager.getGames()) {
            for(Arena arena : game.getArenas()) {
                if(arena.containsBlock(event.getRightClicked().getLocation()))
                    event.setCancelled(true);
            }
        }
    }

}
项目:askyblock    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final EntityDamageByEntityEvent e) {
    // Check world
    if (!inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getDamager() instanceof Projectile) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Projectile damage to itemframe");
        // Find out who fired the arrow
        Projectile p = (Projectile) e.getDamager();
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Shooter is " + p.getShooter().toString());
        if (p.getShooter() instanceof Skeleton || p.getShooter() instanceof Golem) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Shooter is mob");
            if (!Settings.allowMobDamageToItemFrames) {
                if (DEBUG)
                    plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
                e.setCancelled(true);
            }
        }
    }
}
项目:askyblock    文件:IslandGuard.java   
@EventHandler(priority = EventPriority.LOW, ignoreCancelled = true)
public void onItemFrameDamage(final HangingBreakByEntityEvent e) {
    if (DEBUG) {
        plugin.getLogger().info("DEBUG: Hanging break by entity event");
        plugin.getLogger().info("DEBUG: cause = " + e.getCause());
        plugin.getLogger().info("DEBUG: entity = " + e.getEntity());
        plugin.getLogger().info("DEBUG: remover = " + e.getRemover());
    }
    // Check world
    if (!inWorld(e.getEntity()) || !(e.getEntity() instanceof ItemFrame)) {
        return;
    }
    if (e.getRemover() instanceof Skeleton || e.getRemover() instanceof Golem) {
        if (DEBUG)
            plugin.getLogger().info("DEBUG: Remover is mob");
        if (!Settings.allowMobDamageToItemFrames) {
            if (DEBUG)
                plugin.getLogger().info("DEBUG: Damage not allowed, cancelling");
            e.setCancelled(true);
        }
    }
}
项目:BetonQuest    文件:QuestItemHandler.java   
@SuppressWarnings("deprecation")
   @EventHandler
public void onItemFrameClick(PlayerInteractEntityEvent event) {
    if (event.getPlayer().getGameMode() == GameMode.CREATIVE) {
        return;
    }
    // this prevents the journal from being placed inside of item frame
    if (event.getRightClicked() instanceof ItemFrame) {
        ItemStack item = null;
        try {
            item = (event.getHand() == EquipmentSlot.HAND) ? event.getPlayer().getInventory().getItemInMainHand() : event.getPlayer().getInventory().getItemInOffHand();
        } catch (LinkageError e) {
            item = event.getPlayer().getItemInHand();
        }
        String playerID = PlayerConverter.getID(event.getPlayer());
        if (Journal.isJournal(playerID, item) || Utils.isQuestItem(item)) {
            event.setCancelled(true);
        }
    }
}
项目:Bytecraft    文件:ItemFrameListener.java   
@EventHandler
public void onDamage(EntityDamageByEntityEvent event)
{
    if (!(event.getEntity() instanceof ItemFrame)) {
        return;
    }

    if (!(event.getDamager() instanceof Player)) {
        return;
    }

    BytecraftPlayer player = plugin.getPlayer((Player) event.getDamager());

    if (!player.hasBlockPermission(event.getEntity().getLocation(), true)) {
        event.setCancelled(true);
    }
}
项目:CraftoPlugin    文件:CraftomatListener.java   
private void handleClick(final Player player, final Craftomat craftomat) {
    CraftomatListener.debug("handleClick", player.getName() + " is interacting with craftomat " + craftomat.getId() + " (valid: " + craftomat.isValid() + ")");
    if (!craftomat.isValid()) { return; }

    ItemFrame frame = craftomat.getItemFrame().get();
    if (frame.getItem() != null && !frame.getItem().getType().equals(Material.AIR)) {
        // Craftomat contains an item!
        //CraftoMessenger.sendFailure(player, "Zurzeit können noch keine Items am Craftomaten umgewandelt werden!");
        craftomat.startRotation(player);
        return;
    }
    else {
        Optional<CraftoPlayer> craftoPlayer = CraftoPlayer.getPlayer(player);
        if (!craftoPlayer.isPresent()) { CraftoMessenger.sendFailure(player, Messages.PLAYER_INSTANCE_NOT_FOUND); return; }

        Optional<Account> account = this.module.getAccount(craftoPlayer.get());
        if (!account.isPresent()) { CraftoMessenger.sendFailure(player, "Du musst dir erst noch ein Bankkonto zulegen!"); return; }

        this.loginProgress.put(player.getUniqueId(), new StringBuilder(4));
        this.loginMenu.show(player);
    }
}
项目:tregmine    文件:ItemFrameListener.java   
@EventHandler
public void onDamage(EntityDamageByEntityEvent event)
{
    if (!(event.getEntity() instanceof ItemFrame)) {
        return;
    }

    if (!(event.getDamager() instanceof Player)) {
        return;
    }

    TregminePlayer player = plugin.getPlayer((Player) event.getDamager());

    if (!player.hasBlockPermission(event.getEntity().getLocation(), true)) {
        event.setCancelled(true);
    }
}
项目:HopperFilterSimplified    文件:HfsBlockListener.java   
/**
 * Event handler to watch whenever an itemframe is placed.
 * This will remove the cache of the hopper it was placed on.
 * 
 * @param event HangingPlaceEvent containing data about the item being hung. We care about an ItemFrame being placed.
 */
@EventHandler(ignoreCancelled=true)
public void onHangingPlaceEvent(HangingPlaceEvent event) {
    if (event.getEntity() instanceof ItemFrame) {
        if (event.getBlock().getType().equals(Material.HOPPER)) {
            Player player = event.getPlayer();
            if (!player.hasPermission("hopperfiltersimplified.build.place.itemframe")) {
                plugin.sendMessageInfo(player, "You do not have rights to place a hopper filter itemFrame.");
                event.setCancelled(true);
                return;
            }
            //debug if requested
            if (plugin.debugLevel_get() > 0) plugin.getLogger().info("ItemFrame placed at (" + event.getBlock().getLocation().toString() + ")");

            //Clear the cache from the hopper around the Hopper the itemFrame was placed on.
            plugin.knownHoppersCache_ClearAroundLocation(event.getBlock().getLocation());
        }
    }        
}
项目:HopperFilterSimplified    文件:HfsBlockListener.java   
/**
 * Event handler to watch whenever an itemframe is broken by something other than a player..
 * This will remove the cache of the hoppers around it.
 * 
 * @param event HangingBreakEvent containing data about the broken hanging item. We care about the ItemFrame being removed.
 */
@EventHandler(ignoreCancelled=true)
public void onHangingBreakEvent(HangingBreakEvent event) {
    if (event.getEntity() instanceof ItemFrame) {
        //get the item frame entity
        ItemFrame itemFrame =  (ItemFrame)event.getEntity();

        //get the block location that represents the ItemFrame location
        Location itemFrameLocation = itemFrame.getLocation().getBlock().getLocation();

        //debug if requested
        if (plugin.debugLevel_get() > 0) plugin.getLogger().info("ItemFrame broken by non-player at (" + itemFrameLocation.toString() + ")");

        //an itemFrame was broken. Clear the cache from the hoppers around the frame.
        plugin.knownHoppersCache_ClearAroundLocation(itemFrameLocation);
    }
}
项目:HopperFilterSimplified    文件:HopperFilterSimplified.java   
/**
 * Indicate if the hopper is next to an itemFrame that can be part of its filter
 * 
 * @param hopperLocation Location of the hopper in question
 * @return boolean true if there is an itemFrame next to the hopper that can be part of its filter
 */
protected boolean isHopperNextToItemFrame(final Location hopperLocation) {
    //Look right next to the hopper and avoid the frames on another hopper  
    double radius = 0.45;

    //create an entity in the exact center of the block so we can find the surrounding attached entities.
    Entity entity = hopperLocation.getBlock().getWorld().spawnEntity(hopperLocation.add(0.5,0.5,0.5), EntityType.EXPERIENCE_ORB);        
    //get all other entities in a radius around this entity not looking up or down. 
    List<Entity> entities = entity.getNearbyEntities(radius, 0, radius);
    //remove the temp entity
    entity.remove();

    //loop through all the adjacent entities next the hopper
    for (Entity nearbyEntity : entities) {
        if (nearbyEntity instanceof ItemFrame) { return true; }  
    }
    return false;
}
项目:Abyss    文件:ABPortal.java   
public ItemStack removeMod(final Player player, final ItemFrame frame) {
    // Get the mod slot.
    final ModInfo info = getModFromFrame(frame);
    if (info == null || !mods.contains(info))
        return null;

    // Get the item.
    final ItemStack item = frame.getItem();

    // If the material is special, do stuff.
    final PortalModifier modifier = PortalModifier.get(item.getType());
    if (modifier != null && !modifier.onRemove(player, this, info, item))
        return null;

    // Clear the item.
    info.item = null;
    frame.setItem(null);

    // Clear the configuration.
    info.flags.clear();

    // And return the item.
    return item;
}
项目:Abyss    文件:ABPortal.java   
public boolean setMod(final Player player, final ItemFrame frame, final ItemStack item) {
    // Get the mod slot.
    final ModInfo info = getModFromFrame(frame);
    if (info == null || !mods.contains(info))
        return false;

    // If we've already got a modifier, remove it. If we can't, return false.
    if (info.item != null && removeMod(player, frame) == null)
        return false;

    // Get the modifier for this material and try to apply it.
    final PortalModifier modifier = PortalModifier.get(item.getType());
    if (modifier == null || !modifier.hasPermission(player, this, info, item) || !modifier.onApply(player, this, info, item))
        return false;

    // It worked. Set the item and return.
    info.item = item;
    frame.setItem(item);
    return true;
}
项目:Abyss    文件:ABPortal.java   
public ItemFrame setFrame(FrameInfo.Frame type, ItemFrame frame) {
    // If we've got an existing frame of that type, remove it.
    FrameInfo info = frames.get(type);
    if (info != null) {
        // Remove the existing frame if it's not this frame.
        ItemFrame old = info.getFrame(true);
        if (old.equals(frame))
            return frame;

        old.remove();
        frames.remove(type);
    }

    // Create the new info and store it.
    info = new FrameInfo(type, frame);

    frames.put(type, info);
    frameIDs.put(info.id, info);
    plugin.getManager().addFrame(this, frame);

    return frame;
}
项目:Abyss    文件:ABPortal.java   
private void setIDFrames(short value, ItemFrame frame1, ItemFrame frame2) {
    // Try to avoid null pointer exceptions, shall we?
    if (frame1 == null || frame2 == null)
        return;

    if (value < 0 || value > 288) {
        ItemStack bedrock = new ItemStack(Material.BEDROCK, 1);
        frame1.setItem(bedrock);
        frame2.setItem(bedrock);
        return;
    }

    int f1 = (value / 17) - 1;
    int f2 = (value % 17) - 1;

    frame1.setItem((f1 == -1) ? null : new ItemStack(Material.WOOL, 1, (short) f1));
    frame2.setItem((f2 == -1) ? null : new ItemStack(Material.WOOL, 1, (short) f2));
}
项目:RahmenTests    文件:RahmenListener.java   
@EventHandler(priority=EventPriority.NORMAL )
   public void onPlayerInteractEntityEvent(PlayerInteractEntityEvent event)
{
       if (event.getRightClicked() instanceof ItemFrame) 
       {
        System.out.println(" plugin:  onPlayer InteractEntity Event  ");
        //get the block location of the ItemFrame
           Location itemFrameLocation = event.getRightClicked().getLocation();
           //cast the right clicked on item into an itemFrame
           ItemFrame itemFrame = (ItemFrame) event.getRightClicked();
           plugin.itemFrame1 = itemFrame;

           System.out.println("   "+itemFrame.getType());
           System.out.println("   "+itemFrame.getItem().getType());

           ItemFrame test = (ItemFrame)(event.getRightClicked());
           boolean isAir = test.getItem().getType().equals(Material.AIR);
       }
}
项目:FramePicture    文件:FrameManager.java   
public Frame addFrame(String pictureURL, ItemFrame entity) {
    Frame frame = new Frame(this.getNewFrameID(), pictureURL, entity.getLocation(), entity.getFacing());
    frame.setEntity(entity);

    if (frame.getBufferImage() == null) {
        return null;
    }

    Chunk chunk = entity.getLocation().getChunk();
    List<Frame> frameList = this.getFramesInChunk(chunk.getWorld().getName(), chunk.getX(), chunk.getZ());
    frameList.add(frame);
    this.setFramesInChunk(chunk.getWorld().getName(), chunk.getX(), chunk.getZ(), frameList);

    Utils.setFrameItemWithoutSending(entity, new ItemStack(Material.AIR));
    this.sendFrame(frame);
    this.saveFrames();
    return frame;
}
项目:ZentrelaRPG    文件:EnvironmentManager.java   
@EventHandler
public void onItemFrameInteract(PlayerInteractEntityEvent event) {
    Player p = event.getPlayer();
    Entity e = event.getRightClicked();
    if (e instanceof ItemFrame && p.getGameMode() != GameMode.CREATIVE) {
        event.setCancelled(true);
    }
}
项目:ProjectAres    文件:EventRuleMatchModule.java   
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
public void checkItemFrameItemRemove(EntityDamageByEntityEvent event) {
    // This event is fired when popping an item out of an item frame, without breaking the frame itself
    if(event.getEntity() instanceof ItemFrame && ((ItemFrame) event.getEntity()).getItem() != null) {
        this.handleHangingBreak(event, (Hanging) event.getEntity(), event.getDamager());
    }
}
项目:ProjectAres    文件:EventRuleMatchModule.java   
private static Material getHangingType(Hanging hanging) {
    if(hanging instanceof Painting) {
        return Material.PAINTING;
    } else if(hanging instanceof ItemFrame) {
        return Material.ITEM_FRAME;
    } else if(hanging instanceof LeashHitch) {
        return Material.LEASH;
    } else {
        return null;
    }
}
项目:mczone    文件:GeneralEvents.java   
@EventHandler
public void onEntityInteractEntity(PlayerInteractEntityEvent event) {
    if (event.getRightClicked().getType() == EntityType.ITEM_FRAME) {
        event.setCancelled(true);
        ItemFrame frame = (ItemFrame) event.getRightClicked();
        frame.setRotation(Rotation.NONE);
    }

}