@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);
}
}
java类org.bukkit.inventory.EquipmentSlot的实例源码
SpellListener.java 文件源码
项目:MiniWynn
阅读 38
收藏 0
点赞 0
评论 0
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;
}