下面列出了org.bukkit.event.player.PlayerItemHeldEvent#getPlayer ( ) 实例代码,或者点击链接到github查看源代码,也可以在右侧发表评论。
@EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
void onItemHeld(PlayerItemHeldEvent event) {
Player player = event.getPlayer();
if (player.getGameMode() == GameMode.CREATIVE) return;
ItemStack newItemInHand = player.getInventory().getItem(event.getNewSlot());
if (!Settings.isShopCreationItem(newItemInHand)) {
return;
}
if (!ShopkeepersPlugin.getInstance().hasCreatePermission(player)) {
// player cannot create any shopkeeper at all
return;
}
// print info message about usage:
Utils.sendMessage(player, Settings.msgCreationItemSelected);
}
@EventHandler(ignoreCancelled = true)
public void onSwap(PlayerItemHeldEvent event) {
if (!main.configStore.actionStore.enabled)
return;
ActionStore.ActionType actionType = ActionStore.ActionType.SWAP;
Player player = event.getPlayer();
ItemStack itemStack = player.getInventory().getItem(event.getNewSlot());
actionHelper.executeTriggers(actionType, player, itemStack);
}
@EventHandler(priority = EventPriority.HIGHEST)
public void onItemSwitch(PlayerItemHeldEvent event) {
if (event.isCancelled())
return;
Player player = event.getPlayer();
Bukkit.getScheduler().scheduleSyncDelayedTask(AdditionsAPI.getInstance(), () -> {
sendDurabilityBossBar(player, player.getInventory().getItemInMainHand(), EquipmentSlot.HAND);
sendDurabilityBossBar(player, player.getInventory().getItemInOffHand(), EquipmentSlot.OFF_HAND);
});
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerHeldItem(PlayerItemHeldEvent e) {
Player player = e.getPlayer();
ItemStack oldItem = player.getInventory().getItem(e.getPreviousSlot());
ItemStack newItem = player.getInventory().getItem(e.getNewSlot());
if ((oldItem == null && newItem == null) || (oldItem != null && newItem != null && oldItem.getType() == newItem.getType())) {
return;
}
Bukkit.getScheduler().runTask(plugin, () ->
plugin.updateHoldingSelectionItem(plugin.getPlayerInfos(player)));
}
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onPlayerItemHoldEvent(final PlayerItemHeldEvent event) {
final Player bukkitPlayer = event.getPlayer();
if (bukkitPlayer.isSneaking()) {
return;
}
FawePlayer<Object> fp = FawePlayer.wrap(bukkitPlayer);
com.sk89q.worldedit.entity.Player player = fp.getPlayer();
LocalSession session = fp.getSession();
Tool tool = session.getTool(player);
if (tool instanceof ScrollTool) {
final int slot = event.getNewSlot();
final int oldSlot = event.getPreviousSlot();
final int ri;
if ((((slot - oldSlot) <= 4) && ((slot - oldSlot) > 0)) || (((slot - oldSlot) < -4))) {
ri = 1;
} else {
ri = -1;
}
ScrollTool scrollable = (ScrollTool) tool;
if (scrollable.increment(player, ri)) {
if (Settings.IMP.EXPERIMENTAL.PERSISTENT_BRUSHES) {
bukkitPlayer.getInventory().setHeldItemSlot(oldSlot);
} else {
final PlayerInventory inv = bukkitPlayer.getInventory();
final ItemStack item = inv.getItem(slot);
final ItemStack newItem = inv.getItem(oldSlot);
inv.setItem(slot, newItem);
inv.setItem(oldSlot, item);
bukkitPlayer.updateInventory();
}
}
}
}
@EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
public void playerItemHeldEvent(PlayerItemHeldEvent event) {
if (event.getPlayer() != player) {
return;
}
if (!controls.containsKey(CONTROL.SCROLL)) {
return;
}
event.setCancelled(true);
if (debounce) {
return;
}
// Cheat and assume the closest distance between previous and new slots is the direction scrolled
int slotDistance = event.getPreviousSlot() - event.getNewSlot();
if (slotDistance > 5 || (slotDistance < 0 && slotDistance >= -5)) {
// Scrolled down
if (selectedOption < options.size() - 1) {
oldSelectedOption = selectedOption;
selectedOption++;
updateDisplay();
debounce = true;
}
} else if (slotDistance != 0) {
// Scrolled up
if (selectedOption > 0) {
oldSelectedOption = selectedOption;
selectedOption--;
updateDisplay();
debounce = true;
}
}
}