@Override
public void run(PlayerInteractEvent evt) {
Player player = evt.getPlayer();
if (!ControlTicker.isTracking(player)) {
AzureAPI.playSound(player, Sound.UI_BUTTON_CLICK, true);
AzureAPI.log(player, "未找到信号接收源!");
return;
}
AzureAPI.log(player, "弹道方向设定完成!");
AzureAPI.playSound(player, Sound.ENTITY_TNT_PRIMED);
ControlTicker.sudo(player);
}
java类org.bukkit.event.player.PlayerInteractEvent的实例源码
ItemDirectionStick.java 文件源码
项目:Recreator
阅读 17
收藏 0
点赞 0
评论 0
CellularPhoneListener.java 文件源码
项目:MT_Communication
阅读 24
收藏 0
点赞 0
评论 0
@EventHandler
public void onCellPhoneInteract(PlayerInteractEvent e) {
Player p = e.getPlayer();
if (p.getInventory().getItemInMainHand().getType() != Material.WATCH)
return;
e.setCancelled(true);
CellularPhone phone = new CellularPhone(main);
// Left click for recipient toggle
if (e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.LEFT_CLICK_BLOCK) {
if (p.isSneaking()) {
phone.getNextContact(p);
} else {
phone.getPreviousContact(p);
}
}
// Right click for text messages
if (e.getAction() == Action.RIGHT_CLICK_AIR || e.getAction() == Action.RIGHT_CLICK_BLOCK) {
if (p.isSneaking()) {
phone.checkTextMessages(p);
} else {
phone.deleteTextMessage(p);
}
}
}
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
阅读 22
收藏 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);
}
Effects.java 文件源码
项目:RPGPlus
阅读 23
收藏 0
点赞 0
评论 0
public static void fireBarrier(PlayerInteractEvent event){
final Player player = (Player) event.getPlayer();
final Location loc = (Location) player.getLocation();
new BukkitRunnable() {
double phi = 0;
@Override
public void run() {
phi += (Math.PI/10);
for(double theta = 0; theta <= 2*Math.PI; theta += Math.PI/40){
double r = 1.5;
double x = r*Math.cos(theta)*Math.sin(phi);
double y = r* Math.cos(phi) + 1.5;
double z = r*Math.sin(theta)*Math.sin(phi);
loc.add(x,y,z);
ParticleEffect.FLAME.display(0, 0, 0, 3, 3, loc, 40);
loc.subtract(x,y,z);
if(theta == 0){
ActionBarAPI.sendActionBar(player, Main.colorThis("&c&lFire BARRIER SPELL &7&lACTIVATED"));
}
}
if(phi > 4*Math.PI){
this.cancel();
}
}
}.runTaskTimer(Main.getInstance(), 0, 1);
}
GeneratorListener.java 文件源码
项目:MT_Core
阅读 32
收藏 0
点赞 0
评论 0
@EventHandler
public void onLeverOrButton(PlayerInteractEvent event) {
Block clickedBlock = event.getClickedBlock();
Player player = event.getPlayer();
if (clickedBlock == null)
return;
String chunk = clickedBlock.getLocation().getChunk().getX() + ";"
+ clickedBlock.getLocation().getChunk().getZ();
if (event.getAction() != Action.RIGHT_CLICK_BLOCK)
return;
if (!powerable.containsKey(clickedBlock.getWorld().getName()))
return;
if (powerable.get(clickedBlock.getWorld().getName()).getList(chunk).contains(clickedBlock.getLocation()))
return;
// We cancel; send smoke particles for button, and we just turn off the
// lever (if it was, for some reason, on).
if (clickedBlock.getType() == Material.STONE_BUTTON || clickedBlock.getType() == Material.WOOD_BUTTON) {
clickedBlock.getWorld().spawnParticle(Particle.SMOKE_NORMAL, clickedBlock.getLocation().add(0.5, 1, 0.5), 7,
0, 0.2, 0, 0.03);
player.sendMessage(MortuusTerraCore.NOTI_PREFIX + ChatColor.RED + " There is no generator in range!");
} else if (clickedBlock.getType() == Material.LEVER) {
BlockState state = clickedBlock.getState();
Lever lever = (Lever) state.getData();
lever.setPowered(false);
state.setData(lever);
state.update();
clickedBlock.getWorld().spawnParticle(Particle.SMOKE_NORMAL, clickedBlock.getLocation().add(0.5, 1, 0.5), 7,
0, 0.2, 0, 0.03);
player.sendMessage(MortuusTerraCore.NOTI_PREFIX + ChatColor.RED + " There is no generator in range!");
}
}
ElevatorListener.java 文件源码
项目:HCFCore
阅读 25
收藏 0
点赞 0
评论 0
@EventHandler
public void onSignElevator(PlayerInteractEvent e) {
if (e.getClickedBlock() == null) {
return;
}
Block block = e.getClickedBlock();
BlockState state = block.getState();
if (state instanceof Sign) {
if(e.getAction() == Action.RIGHT_CLICK_BLOCK) {
Sign sign = (Sign)state;
double zdif = Math.abs(e.getPlayer().getLocation().getZ() - block.getLocation().getZ());
double xdif = Math.abs(e.getPlayer().getLocation().getX() - block.getLocation().getX());
String lineZero = sign.getLine(0);
String lineOne = sign.getLine(1);
if(ChatColor.stripColor(lineZero).equalsIgnoreCase("[Elevator]")) {
if(zdif < 1.5D && xdif < 1.5D ) {
if (ChatColor.stripColor(lineOne).equalsIgnoreCase("Up")) {
e.getPlayer().teleport(this.teleportSpotUp(block.getLocation(), block.getLocation().getBlockY(), 254));
}
if (ChatColor.stripColor(lineOne).equalsIgnoreCase("Down")) {
e.getPlayer().teleport(this.teleportSpotDown(block.getLocation(), block.getLocation().getBlockY(), 1));
}
} else {
e.getPlayer().sendMessage(ChatColor.RED + "You must be standing next to the sign!");
}
}
e.setCancelled(true);
return;
}
}
}
ModeratorMode.java 文件源码
项目:HCFCore
阅读 18
收藏 0
点赞 0
评论 0
@EventHandler
public void onRightClick2(PlayerInteractEvent event)
{
if(event.getAction().equals(Action.RIGHT_CLICK_AIR) || event.getAction().equals(Action.RIGHT_CLICK_BLOCK)) {
Player player = event.getPlayer();
if ((modMode.contains(player.getName())) && (player.getItemInHand().getType() == Material.FEATHER)) {
player.chat("/v");
}
}
}
MinerClass.java 文件源码
项目:HCFCore
阅读 21
收藏 0
点赞 0
评论 0
/**
* Applies the {@link MinerClass} invisibility {@link PotionEffect} depending on the {@link Player}s {@link Location}.
*
* @param player
* the {@link Player} to apply for
* @param from
* the from {@link Location}
* @param to
* the to {@link Location}
*/
@EventHandler(ignoreCancelled=false, priority=EventPriority.HIGH)
public void onMinerSpeedClick(PlayerInteractEvent event)
{
Action action = event.getAction();
if (((action == Action.RIGHT_CLICK_AIR) || (action == Action.RIGHT_CLICK_BLOCK)) &&
(event.hasItem()) && (event.getItem().getType() == Material.SUGAR))
{
if (this.plugin.getPvpClassManager().getEquippedClass(event.getPlayer()) != this) {
return;
}
Player player = event.getPlayer();
UUID uuid = player.getUniqueId();
long timestamp = this.minerSpeedCooldowns.get(uuid);
long millis = System.currentTimeMillis();
long remaining = timestamp == this.minerSpeedCooldowns.getNoEntryValue() ? -1L : timestamp - millis;
if (remaining > 0L)
{
player.sendMessage(ChatColor.RED + "Cannot use Speed Boost for another " + DurationFormatUtils.formatDurationWords(remaining, true, true) + ".");
}
else
{
ItemStack stack = player.getItemInHand();
if (stack.getAmount() == 1) {
player.setItemInHand(new ItemStack(Material.AIR, 1));
} else {
stack.setAmount(stack.getAmount() - 1);
}
player.sendMessage(ChatColor.GREEN + "Speed 3 activated for 10 seconds.");
this.plugin.getEffectRestorer().setRestoreEffect(player, MINER_SPEED_EFFECT);
this.minerSpeedCooldowns.put(event.getPlayer().getUniqueId(), System.currentTimeMillis() + MINER_SPEED_COOLDOWN_DELAY);
}
}
}
HeadEatHandler.java 文件源码
项目:UHC
阅读 17
收藏 0
点赞 0
评论 0
@EventHandler
public void onInteract(final PlayerInteractEvent event) {
if (event.getAction() == Action.LEFT_CLICK_AIR || event.getAction() == Action.LEFT_CLICK_BLOCK) return;
ItemStack item = event.getItem();
if (item instanceof PlayerheadItemStack) {
event.setCancelled(true);
Player player = event.getPlayer();
//Use the item
if (item.getAmount() > 1) item.setAmount(item.getAmount() - 1);
else player.getInventory().remove(item);
MainConfiguration config = UHC.getInstance().getMainConfig();
//Give effects & crap
PlayerheadItemStack playerhead = (PlayerheadItemStack) item;
boolean golden = playerhead.isGolden();
player.sendMessage(colour("&aYou ate " + playerhead.getFrom() + "'s playerhead!"));
int regenDuration = golden ? config.getGoldenHeadRegenerationDuration() : config.getHeadRegenerationDuration();
int regenAmpf = golden ? config.getGoldenHeadRegenerationAmplifier() : config.getHeadRegenerationAmplifier();
int absorpDuration = golden ? config.getGoldenHeadAbsorptionDuration() : config.getHeadAbsorptionDuration();
int absorpAmpf = golden ? config.getGoldenHeadAbsorptionAmplifier() : config.getHeadAbsorptionAmplifier();
player.addPotionEffect(new PotionEffect(PotionEffectType.REGENERATION, regenDuration, regenAmpf, false, true));
player.addPotionEffect(new PotionEffect(PotionEffectType.ABSORPTION, absorpDuration, absorpAmpf, false, true));
}
}