类org.bukkit.entity.HumanEntity源码实例Demo

下面列出了怎么用org.bukkit.entity.HumanEntity的API类实例代码及写法,或者点击链接到github查看源代码。

源代码1 项目: EntityAPI   文件: ControllableVillagerBase.java
@Override
public BehaviourItem[] getDefaultMovementBehaviours() {
    return new BehaviourItem[]{
            new BehaviourItem(0, new BehaviourFloat(this)),
            new BehaviourItem(1, new BehaviourAvoidEntity(this, Zombie.class, 8.0F, 0.6D, 0.6D)),
            new BehaviourItem(1, new BehaviourTradeWithPlayer(this)),
            new BehaviourItem(1, new BehaviourLookAtTradingPlayer(this)),
            new BehaviourItem(2, new BehaviourMoveIndoors(this)),
            new BehaviourItem(3, new BehaviourRestrictOpenDoor(this)),
            new BehaviourItem(4, new BehaviourOpenDoor(this, true)),
            new BehaviourItem(5, new BehaviourMoveTowardsRestriction(this, 0.6D)),
            new BehaviourItem(6, new BehaviourMakeLove(this)),
            new BehaviourItem(7, new BehaviourTakeFlower(this)),
            new BehaviourItem(8, new BehaviourVillagerPlay(this, 0.32D)),
            new BehaviourItem(9, new BehaviourInteract(this, HumanEntity.class, 3.0F, 1.0F)),
            new BehaviourItem(9, new BehaviourInteract(this, Villager.class, 3.0F, 1.0F)),
            new BehaviourItem(9, new BehaviourRandomStroll(this, 0.6D)),
            new BehaviourItem(10, new BehaviourLookAtNearestEntity(this, InsentientEntity.class, 8.0F))
    };
}
 
源代码2 项目: CombatLogX   文件: ListenerInventories.java
@EventHandler(priority=EventPriority.HIGH, ignoreCancelled=true)
public void onOpenInventory(InventoryOpenEvent e) {
    FileConfiguration config = this.expansion.getConfig("cheat-prevention.yml");
    if(!config.getBoolean("inventories.close-on-tag")) return;

    HumanEntity human = e.getPlayer();
    if(!(human instanceof Player)) return;

    Player player = (Player) human;
    ICombatManager manager = this.plugin.getCombatManager();
    if(!manager.isInCombat(player)) return;

    e.setCancelled(true);
    String message = this.plugin.getLanguageMessageColoredWithPrefix("cheat-prevention.inventory.no-opening");
    this.plugin.sendMessage(player, message);
}
 
源代码3 项目: InventoryGui   文件: GuiPageElement.java
@Override
public ItemStack getItem(HumanEntity who, int slot) {
    if (((pageAction == PageAction.FIRST || pageAction == PageAction.LAST) && gui.getPageAmount() < 3)
            || (pageAction == PageAction.NEXT && gui.getPageNumber() + 1 >= gui.getPageAmount())
            || (pageAction == PageAction.PREVIOUS && gui.getPageNumber() == 0)) {
        return gui.getFiller() != null ? gui.getFiller().getItem(who, slot) : null;
    }
    if (pageAction == PageAction.PREVIOUS) {
        setNumber(gui.getPageNumber());
    } else if (pageAction == PageAction.NEXT) {
        setNumber(gui.getPageNumber() + 2);
    } else if (pageAction == PageAction.LAST) {
        setNumber(gui.getPageAmount());
    }
    return super.getItem(who, slot).clone();
}
 
源代码4 项目: EntityAPI   文件: ControllableOcelotBase.java
@Override
public BehaviourItem[] getDefaultTargetingBehaviours() {
    return new BehaviourItem[]{
            new BehaviourItem(1, new BehaviourFloat(this)),
            new BehaviourItem(2, new BehaviourSit(this)),
            new BehaviourItem(3, new BehaviourTempt(this, Material.RAW_FISH, true, 0.6D)),
            new BehaviourItem(4, new BehaviourAvoidEntity(this, HumanEntity.class, 16.0F, 0.8D, 1.33D)),
            new BehaviourItem(5, new BehaviourFollowTamer(this, 10.0F, 5.0F)),
            new BehaviourItem(6, new BehaviourSitOnBlock(this, 1.33D)),
            new BehaviourItem(7, new BehaviourLeapAtTarget(this, 0.3F)),
            new BehaviourItem(8, new BehaviourOcelotAttack(this)),
            new BehaviourItem(9, new BehaviourBreed(this, 0.8D)),
            new BehaviourItem(10, new BehaviourRandomStroll(this, 0.8D)),
            new BehaviourItem(11, new BehaviourLookAtNearestEntity(this, HumanEntity.class, 10.0F)),
    };
}
 
源代码5 项目: AnnihilationPro   文件: KitLoading.java
@EventHandler(priority=EventPriority.HIGHEST, ignoreCancelled=true)
public void StopClicking(InventoryClickEvent event)
{
    HumanEntity entity = event.getWhoClicked();
    ItemStack stack = event.getCurrentItem();
    InventoryType top = event.getView().getTopInventory().getType();
    
    if (stack != null && (entity instanceof Player)) 
    {
    	if (top == InventoryType.PLAYER || top == InventoryType.WORKBENCH || top == InventoryType.CRAFTING) 
    		return;

    	if(KitUtils.isSoulbound(stack))
          event.setCancelled(true); 
    }
 }
 
源代码6 项目: EchoPet   文件: InventoryMenu.java
@EventHandler
public void onInvClick(InventoryClickEvent event) {
    HumanEntity human = event.getWhoClicked();
    if (human instanceof Player) {
        Player player = (Player) human;
        Inventory inv = event.getView().getTopInventory();
        if (inv.getHolder() != null && inv.getHolder() instanceof InventoryMenu && event.getRawSlot() >= 0 && event.getRawSlot() < size) {
            InventoryMenu menu = (InventoryMenu) inv.getHolder();
            event.setCancelled(true);
            MenuIcon icon = slots.get(event.getSlot());
            if (icon != null) {
                icon.onClick(player);
                player.closeInventory();
            }
        }
    }
}
 
源代码7 项目: IF   文件: GuiListener.java
/**
   * Handles the disabling of the plugin
   *
   * @param event the event fired
   * @since 0.5.19
   */
  @EventHandler(priority = EventPriority.HIGHEST, ignoreCancelled = true)
  public void onPluginDisable(@NotNull PluginDisableEvent event) {
      Plugin thisPlugin = JavaPlugin.getProvidingPlugin(getClass());
      if (event.getPlugin() != thisPlugin) {
          return;
      }

      int counter = 0; //callbacks might open GUIs, eg. in nested menus
int maxCount = 10;
      while (!activeGuiInstances.isEmpty() && counter++ < maxCount) {
          for (Gui gui : new ArrayList<>(activeGuiInstances)) {
              for (HumanEntity viewer : gui.getViewers()) {
                  viewer.closeInventory();
              }
          }
      }

      if (counter == maxCount) {
	thisPlugin.getLogger().warning("Unable to close GUIs on plugin disable: they keep getting opened "
			+ "(tried: " + maxCount + " times)");
}
  }
 
源代码8 项目: GriefDefender   文件: PlayerEventHandler.java
private void onInventoryOpen(Event event, Location location, Object target, HumanEntity player) {
    GDCauseStackManager.getInstance().pushCause(player);
    if (event instanceof InventoryOpenEvent) {
        final InventoryOpenEvent inventoryEvent = (InventoryOpenEvent) event;
        target = inventoryEvent.getView().getType();
    }
    if (!GDFlags.INTERACT_INVENTORY || !GriefDefenderPlugin.getInstance().claimsEnabledForWorld(player.getWorld().getUID())) {
        return;
    }

    if (GriefDefenderPlugin.isTargetIdBlacklisted(Flags.INTERACT_INVENTORY.getName(), target, player.getWorld().getUID())) {
        return;
    }

    String targetId = GDPermissionManager.getInstance().getPermissionIdentifier(target);
    GDTimings.PLAYER_INTERACT_INVENTORY_OPEN_EVENT.startTiming();
    final GDClaim claim = this.dataStore.getClaimAt(location);
    final GDPermissionUser user = PermissionHolderCache.getInstance().getOrCreateUser(player.getUniqueId());
    if (user.getInternalPlayerData() != null && user.getInternalPlayerData().eventResultCache != null && user.getInternalPlayerData().eventResultCache.checkEventResultCache(claim, Flags.INTERACT_BLOCK_SECONDARY.getName()) == Tristate.TRUE) {
        GDPermissionManager.getInstance().processResult(claim, Flags.INTERACT_INVENTORY.getPermission(), "cache", Tristate.TRUE, user);
        GDTimings.PLAYER_INTERACT_INVENTORY_OPEN_EVENT.stopTiming();
        return;
    }
    final Tristate result = GDPermissionManager.getInstance().getFinalPermission(event, location, claim, Flags.INTERACT_INVENTORY, player, target, user, TrustTypes.CONTAINER, true);
    if (result == Tristate.FALSE) {
        final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.PERMISSION_INVENTORY_OPEN,
                ImmutableMap.of(
                "player", claim.getOwnerDisplayName(),
                "block", targetId));
        GriefDefenderPlugin.sendClaimDenyMessage(claim, player, message);
        ((Cancellable) event).setCancelled(true);
    }

    GDTimings.PLAYER_INTERACT_INVENTORY_OPEN_EVENT.stopTiming();
}
 
源代码9 项目: GriefDefender   文件: PlayerEventHandler.java
@EventHandler(priority = EventPriority.LOWEST)
public void onPlayerInteractInventoryClick(InventoryClickEvent event) {
    final HumanEntity player = event.getWhoClicked();
    GDCauseStackManager.getInstance().pushCause(player);
    if (!GDFlags.INTERACT_INVENTORY_CLICK || event.getClickedInventory() == null || !GriefDefenderPlugin.getInstance().claimsEnabledForWorld(player.getWorld().getUID())) {
        return;
    }

    GDTimings.PLAYER_INTERACT_INVENTORY_CLICK_EVENT.startTiming();
    final Location location = player.getLocation();
    final GDClaim claim = this.dataStore.getClaimAt(location);
    final ItemStack cursorItem = event.getCursor();
    final Inventory source = event.getInventory();
    final ItemStack target = event.getCurrentItem();

    if (GriefDefenderPlugin.isTargetIdBlacklisted(Flags.INTERACT_INVENTORY_CLICK.getName(), target, player.getWorld().getUID())) {
        GDTimings.PLAYER_INTERACT_INVENTORY_CLICK_EVENT.stopTiming();
        return;
    }

    final GDPermissionUser user = PermissionHolderCache.getInstance().getOrCreateUser(player.getUniqueId());
    final Tristate result = GDPermissionManager.getInstance().getFinalPermission(event, location, claim, Flags.INTERACT_INVENTORY_CLICK, source, target, user, TrustTypes.CONTAINER, true);
    if (result == Tristate.FALSE) {
        final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.PERMISSION_INTERACT_ITEM,
                ImmutableMap.of(
                "player", claim.getOwnerDisplayName(),
                "item", ItemTypeRegistryModule.getInstance().getNMSKey(target)));
        GriefDefenderPlugin.sendClaimDenyMessage(claim, player, message);
        event.setCancelled(true);
    }
    GDTimings.PLAYER_INTERACT_INVENTORY_CLICK_EVENT.stopTiming();
}
 
源代码10 项目: EntityAPI   文件: ControllableCowBase.java
@Override
public BehaviourItem[] getDefaultMovementBehaviours() {
    return new BehaviourItem[]{
            new BehaviourItem(0, new BehaviourFloat(this)),
            new BehaviourItem(1, new BehaviourPanic(this, 2.0D)),
            new BehaviourItem(2, new BehaviourBreed(this, 1.0D)),
            new BehaviourItem(3, new BehaviourTempt(this, Material.WHEAT, false, 1.25D)),
            new BehaviourItem(4, new BehaviourFollowParent(this, 1.25D)),
            new BehaviourItem(5, new BehaviourRandomStroll(this, 1.0D)),
            new BehaviourItem(6, new BehaviourLookAtNearestEntity(this, HumanEntity.class, 6.0F)),
            new BehaviourItem(7, new BehaviourLookAtRandom(this))
    };
}
 
源代码11 项目: TradePlus   文件: Trade.java
private void cancel() {
  inv1.setItem(49, null);
  inv2.setItem(49, null);
  cancelled = true;
  Bukkit.getScheduler()
      .runTaskLater(
          pl,
          () -> {
            new ArrayList<>(inv1.getViewers()).forEach(HumanEntity::closeInventory);
            new ArrayList<>(inv2.getViewers()).forEach(HumanEntity::closeInventory);
            new ArrayList<>(spectatorInv.getViewers()).forEach(HumanEntity::closeInventory);
            HandlerList.unregisterAll(this);
          },
          200L);
}
 
源代码12 项目: EntityAPI   文件: ControllableSpiderBase.java
@Override
public BehaviourItem[] getDefaultTargetingBehaviours() {
    return new BehaviourItem[]{
            new BehaviourItem(0, new BehaviourHurtByTarget(this, true, false, true)),
            new BehaviourItem(1, new BehaviourMoveTowardsNearestAttackableTarget(this, HumanEntity.class, 0, true))
    };
}
 
源代码13 项目: IF   文件: Gui.java
/**
 * Sets the title for this inventory. This will (unlike most other methods) directly update itself in order
 * to ensure all viewers will still be viewing the new inventory as well.
 *
 * @param title the title
 */
public void setTitle(@NotNull String title) {
    //copy the viewers
    List<HumanEntity> viewers = getViewers();

    this.inventory = Bukkit.createInventory(this, this.inventory.getSize(), title);
    this.title = title;

    viewers.forEach(humanEntity -> humanEntity.openInventory(inventory));
}
 
源代码14 项目: QuickShop-Reremake   文件: InventoryPreview.java
public void close() {
    if (inventory == null) {
        return;
    }
    for (HumanEntity player : inventory.getViewers()) {
        player.closeInventory();
    }
    inventory = null; // Destory
}
 
源代码15 项目: EntityAPI   文件: ControllableSkeletonEntity.java
@Override
public GroupDataEntity a(GroupDataEntity groupdataentity) {
    groupdataentity = super.a(groupdataentity);
    if (this.world.worldProvider instanceof WorldProviderHell && this.aI().nextInt(5) > 0) {
        if (this.controllableEntity != null) {
            this.controllableEntity.getMind().getMovementBehaviourSelector().addBehaviour(new BehaviourMeleeAttack(this.controllableEntity, HumanEntity.class, false, 1.2D), 4);
        }
        this.setSkeletonType(1);
        this.setEquipment(0, new ItemStack(Items.STONE_SWORD));
        this.getAttributeInstance(GenericAttributes.e).setValue(4.0D);
    } else {
        this.controllableEntity.getMind().getMovementBehaviourSelector().addBehaviour(new BehaviourRangedAttack(this.controllableEntity, 60, 15.0F, 1.0D), 4);
        this.bA();
        this.bB();
    }

    this.h(this.random.nextFloat() < 0.55F * this.world.b(this.locX, this.locY, this.locZ));
    if (this.getEquipment(4) == null) {
        Calendar calendar = this.world.V();

        if (calendar.get(2) + 1 == 10 && calendar.get(5) == 31 && this.random.nextFloat() < 0.25F) {
            this.setEquipment(4, new ItemStack(this.random.nextFloat() < 0.1F ? Blocks.JACK_O_LANTERN : Blocks.PUMPKIN));
            this.dropChances[4] = 0.0F;
        }
    }

    return groupdataentity;
}
 
源代码16 项目: IF   文件: Gui.java
/**
 * Sets the amount of rows for this inventory.
 * This will (unlike most other methods) directly update itself in order to ensure all viewers will still be viewing the new inventory as well.
 *
 * @param rows the amount of rows in range 1..6.
 */
public void setRows(int rows) {
    if (!(rows >= 1 && rows <= 6)) {
        throw new IllegalArgumentException("Rows should be between 1 and 6");
    }

    //copy the viewers
    List<HumanEntity> viewers = getViewers();

    this.inventory = Bukkit.createInventory(this, rows * 9, getTitle());

    viewers.forEach(humanEntity -> humanEntity.openInventory(inventory));
}
 
源代码17 项目: AuthMeReloaded   文件: PlayerListenerTest.java
@Test
public void shouldAllowInventoryClickEvent() {
    // given
    InventoryClickEvent event = mock(InventoryClickEvent.class);
    HumanEntity player = mock(Player.class);
    given(event.getWhoClicked()).willReturn(player);
    given(listenerService.shouldCancelEvent(player)).willReturn(false);

    // when
    listener.onPlayerInventoryClick(event);

    // then
    verify(event, only()).getWhoClicked();
}
 
源代码18 项目: EntityAPI   文件: ControllableWolfBase.java
@Override
public BehaviourItem[] getDefaultMovementBehaviours() {
    return new BehaviourItem[]{
            new BehaviourItem(1, new BehaviourFloat(this)),
            new BehaviourItem(2, new BehaviourSit(this)),
            new BehaviourItem(3, new BehaviourLeapAtTarget(this, 0.4F)),
            new BehaviourItem(4, new BehaviourMeleeAttack(this, true, 1.0D)),
            new BehaviourItem(5, new BehaviourFollowTamer(this, 10.0F, 2.0F, 1.0D)),
            new BehaviourItem(6, new BehaviourBreed(this, 1.0D)),
            new BehaviourItem(7, new BehaviourRandomStroll(this, 1.0D)),
            new BehaviourItem(8, new BehaviourBeg(this, new Material[]{Material.BONE})),
            new BehaviourItem(9, new BehaviourLookAtNearestEntity(this, HumanEntity.class, 8.0F)),
            new BehaviourItem(9, new BehaviourLookAtRandom(this))
    };
}
 
源代码19 项目: Kettle   文件: CraftInventoryCustom.java
public MinecraftInventory(InventoryHolder owner, int size, String title) {
    Validate.notNull(title, "Title cannot be null");
    this.items = NonNullList.withSize(size, ItemStack.EMPTY);
    this.title = title;
    this.viewers = new ArrayList<HumanEntity>();
    this.owner = owner;
    this.type = InventoryType.CHEST;
}
 
源代码20 项目: Civs   文件: TutorialManager.java
public void printTutorial(HumanEntity player, Civilian civilian) {
    String tutorialUrl = ConfigManager.getInstance().getTutorialUrl();
    player.sendMessage(Util.parseColors(ConfigManager.getInstance().getTopGuideSpacer()));
    TutorialManager.getInstance().sendMessageForCurrentTutorialStep(civilian, false);
    player.sendMessage(LocaleManager.getInstance().getTranslation(civilian.getLocale(), "tutorial-click"));
    player.sendMessage(tutorialUrl);
    player.sendMessage(Util.parseColors(ConfigManager.getInstance().getBottomGuideSpacer()));
}
 
源代码21 项目: UHC   文件: IconInventory.java
protected Collection<HumanEntity> getCurrentViewers() {
    final List<HumanEntity> viewers = Lists.newArrayList();
    for (final Inventory openedInventory : openedInventories) {
        viewers.addAll(openedInventory.getViewers());
    }

    return viewers;
}
 
源代码22 项目: EntityAPI   文件: ControllableSkeletonBase.java
@Override
public BehaviourItem[] getDefaultTargetingBehaviours() {
    return new BehaviourItem[]{
            new BehaviourItem(1, new BehaviourHurtByTarget(this, false)),
            new BehaviourItem(2, new BehaviourMoveTowardsNearestAttackableTarget(this, HumanEntity.class, 0, true))
    };
}
 
源代码23 项目: Hawk   文件: PlayerEventListener.java
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onInventoryCloseServerSide(InventoryCloseEvent e) {
    HumanEntity hE = e.getPlayer();
    if(!(hE instanceof Player))
        return;

    HawkPlayer pp = hawk.getHawkPlayer((Player) hE);
    pp.sendSimulatedAction(new Runnable() {
        @Override
        public void run() {
            pp.setInventoryOpen((byte)0);
        }
    });
}
 
源代码24 项目: InventoryGui   文件: StaticGuiElement.java
@Override
public ItemStack getItem(HumanEntity who, int slot) {
    if (item == null) {
        return null;
    }
    ItemStack clone = item.clone();
    gui.setItemText(clone, getText());
    if (number > 0 && number <= 64) {
        clone.setAmount(number);
    }
    return clone;
}
 
源代码25 项目: EntityAPI   文件: ControllableHorseBase.java
@Override
public BehaviourItem[] getDefaultMovementBehaviours() {
    return new BehaviourItem[]{
            new BehaviourItem(0, new BehaviourFloat(this)),
            new BehaviourItem(1, new BehaviourPanic(this, 1.2D)),
            new BehaviourItem(1, new BehaviourTameByRiding(this, 1.2D)),
            new BehaviourItem(2, new BehaviourBreed(this, 1.0D)),
            new BehaviourItem(4, new BehaviourFollowParent(this, 1.25D)),
            new BehaviourItem(6, new BehaviourRandomStroll(this, 0.7D)),
            new BehaviourItem(7, new BehaviourLookAtNearestEntity(this, HumanEntity.class, 6.0F)),
            new BehaviourItem(8, new BehaviourLookAtRandom(this))
    };
}
 
源代码26 项目: EntityAPI   文件: ControllableIronGolemBase.java
@Override
public BehaviourItem[] getDefaultMovementBehaviours() {
    return new BehaviourItem[]{
            new BehaviourItem(1, new BehaviourMeleeAttack(this, true, 1.0D)),
            new BehaviourItem(2, new BehaviourMoveTowardsTarget(this, 32.0F)),
            new BehaviourItem(3, new BehaviourMoveThroughVillage(this, true, 0.6D)),
            new BehaviourItem(4, new BehaviourMoveTowardsRestriction(this, 1.0D)),
            new BehaviourItem(5, new BehaviourOfferFlower(this, LivingEntity.class)),
            new BehaviourItem(6, new BehaviourRandomStroll(this)),
            new BehaviourItem(7, new BehaviourLookAtNearestEntity(this, HumanEntity.class, 6.0F)),
            new BehaviourItem(8, new BehaviourLookAtRandom(this))
    };
}
 
源代码27 项目: InventoryGui   文件: InventoryGui.java
/**
 * Close the GUI for everyone viewing it
 * @param clearHistory  Whether or not to close the GUI completely (by clearing the history)
 */
public void close(boolean clearHistory) {
    for (Inventory inventory : inventories.values()) {
        for (HumanEntity viewer : new ArrayList<>(inventory.getViewers())) {
            if (clearHistory) {
                clearHistory(viewer);
            }
            viewer.closeInventory();
        }
    }
}
 
源代码28 项目: InventoryGui   文件: InventoryGui.java
/**
 * Add a new history entry to the end of the history
 * @param player    The player to add the history entry for
 * @param gui       The GUI to add to the history
 */
public static void addHistory(HumanEntity player, InventoryGui gui) {
    GUI_HISTORY.putIfAbsent(player.getUniqueId(), new ArrayDeque<>());
    Deque<InventoryGui> history = getHistory(player);
    if (history.peekLast() != gui) {
        history.add(gui);
    }
}
 
源代码29 项目: InventoryGui   文件: InventoryGui.java
/**
 * Go back one entry in the history
 * @param player    The player to show the previous gui to
 * @return          <tt>true</tt> if there was a gui to show; <tt>false</tt> if not
 */
public static boolean goBack(HumanEntity player) {
    Deque<InventoryGui> history = getHistory(player);
    history.pollLast();
    if (history.isEmpty()) {
        return false;
    }
    InventoryGui previous = history.peekLast();
    if (previous != null) {
        previous.show(player, false);
    }
    return true;
}
 
源代码30 项目: EntityAPI   文件: ControllableCaveSpiderBase.java
@Override
public BehaviourItem[] getDefaultTargetingBehaviours() {
    return new BehaviourItem[]{
            new BehaviourItem(1, new BehaviourHurtByTarget(this, true, false, true)),
            new BehaviourItem(2, new BehaviourMoveTowardsNearestAttackableTarget(this, HumanEntity.class, 0, true))
    };
}
 
 类所在包
 同包方法