public void startModification(Region r, String region, String input, Player p) {
    if (!p.getInventory().contains(new ItemStack(ConfigurationData.defaultSelectionTool, 1))) {
      ItemStack is = new ItemStack(ConfigurationData.defaultSelectionTool, 1);

      p.getInventory().addItem(is);

      if (p.getItemInHand() == new ItemStack(Material.AIR, 0)) {
        p.setItemInHand(is);
      }
    }
    if (r == null) {
      p.sendMessage(
          ChatColor.RED
              + "[Regios] The region "
              + ChatColor.BLUE
              + region
              + ChatColor.RED
              + " doesn't exist!");
      return;
    } else {
      if (!super.canModifyMain(r, p)) {
        p.sendMessage(ChatColor.RED + "[Regios] You are not permitted to modify this region!");
        return;
      }
      p.sendMessage(
          ChatColor.GREEN + "[Regios] Modifying points for region " + ChatColor.BLUE + region);
    }
    CreationCommands.modRegion.put(p, r);
    CreationCommands.modding.put(p, true);
    CreationCommands.setting.put(p, false);
  }
 public boolean banish(Player player, Player victim) {
   SuperNPlayer snplayer = SuperNManager.get(player);
   SuperNPlayer snvictim = SuperNManager.get(victim);
   if (!SupernaturalsPlugin.instance.getPvP(victim)) {
     SuperNManager.sendMessage(snplayer, "Cannot cast in a non-PvP zone.");
     return false;
   }
   if (snplayer.getPower() > SNConfigHandler.priestPowerBanish) {
     if (snvictim.isSuper()) {
       SuperNManager.alterPower(
           snplayer, -SNConfigHandler.priestPowerBanish, "Banished " + victim.getName());
       SuperNManager.sendMessage(
           snvictim,
           "You were banished by " + ChatColor.WHITE + snplayer.getName() + ChatColor.RED + "!");
       victim.teleport(SNConfigHandler.priestBanishLocation);
       ItemStack item = player.getItemInHand();
       if (item.getAmount() == 1) {
         player.setItemInHand(null);
       } else {
         item.setAmount(player.getItemInHand().getAmount() - 1);
       }
       return true;
     }
     SuperNManager.sendMessage(snplayer, "Can only banish supernatural players.");
     return false;
   } else {
     SuperNManager.sendMessage(snplayer, "Not enough power to banish.");
     return false;
   }
 }
 public boolean heal(Player player, Player victim) {
   SuperNPlayer snplayer = SuperNManager.get(player);
   SuperNPlayer snvictim = SuperNManager.get(victim);
   if (snplayer.getPower() > SNConfigHandler.priestPowerHeal) {
     if (!snvictim.isSuper() && victim.getHealth() < victim.getMaxHealth() && !victim.isDead()) {
       SuperNManager.alterPower(
           snplayer, -SNConfigHandler.priestPowerHeal, "Healed " + victim.getName());
       SuperNManager.sendMessage(
           snvictim,
           "You were healed by " + ChatColor.WHITE + snplayer.getName() + ChatColor.RED + "!");
       double health = victim.getHealth() + SNConfigHandler.priestHealAmount;
       if (health > victim.getMaxHealth()) {
         health = victim.getMaxHealth();
       }
       victim.setHealth(health);
       ItemStack item = player.getItemInHand();
       if (item.getAmount() == 1) {
         player.setItemInHand(null);
       } else {
         item.setAmount(player.getItemInHand().getAmount() - 1);
       }
       return true;
     } else {
       SuperNManager.sendMessage(snplayer, "Player cannot be healed.");
       return false;
     }
   } else {
     SuperNManager.sendMessage(snplayer, "Not enough power to heal.");
     return false;
   }
 }
 public boolean exorcise(Player player, Player victim) {
   SuperNPlayer snplayer = SuperNManager.get(player);
   SuperNPlayer snvictim = SuperNManager.get(victim);
   if (!SupernaturalsPlugin.instance.getPvP(victim)) {
     SuperNManager.sendMessage(snplayer, "Cannot cast in a non-PvP zone.");
     return false;
   }
   if (snplayer.getPower() > SNConfigHandler.priestPowerExorcise) {
     if (snvictim.isSuper()) {
       SuperNManager.alterPower(
           snplayer, -SNConfigHandler.priestPowerExorcise, "Exorcised " + victim.getName());
       SuperNManager.sendMessage(
           snvictim,
           "You were exorcised by " + ChatColor.WHITE + snplayer.getName() + ChatColor.RED + "!");
       SuperNManager.cure(snvictim);
       ItemStack item = player.getItemInHand();
       if (item.getAmount() == 1) {
         player.setItemInHand(null);
       } else {
         item.setAmount(player.getItemInHand().getAmount() - 1);
       }
       return true;
     } else {
       SuperNManager.sendMessage(snplayer, "Only supernatural players can be exorcised.");
       return false;
     }
   } else {
     SuperNManager.sendMessage(snplayer, "Not enough power to exorcise.");
     return false;
   }
 }
Esempio n. 5
0
 @SuppressWarnings("deprecation")
 @EventHandler
 public void onProjectileFire(ProjectileLaunchEvent e) {
   ProjectileSource shooter = e.getEntity().getShooter();
   if (shooter instanceof Player) {
     Player player = (Player) shooter;
     ItemStack item = player.getItemInHand();
     RPGItem rItem = ItemManager.toRPGItem(item);
     if (rItem == null) return;
     if (!WorldGuard.canPvP(player.getLocation()) && !rItem.ignoreWorldGuard) return;
     if (rItem.getHasPermission() == true
         && player.hasPermission(rItem.getPermission()) == false) {
       e.setCancelled(true);
       player.sendMessage(
           ChatColor.RED
               + String.format(
                   Locale.get("message.error.permission", Locale.getPlayerLocale(player))));
     }
     RPGMetadata meta = RPGItem.getMetadata(item);
     if (rItem.getMaxDurability() != -1) {
       int durability =
           meta.containsKey(RPGMetadata.DURABILITY)
               ? ((Number) meta.get(RPGMetadata.DURABILITY)).intValue()
               : rItem.getMaxDurability();
       durability--;
       if (durability <= 0) {
         player.setItemInHand(null);
       }
       meta.put(RPGMetadata.DURABILITY, Integer.valueOf(durability));
     }
     RPGItem.updateItem(item, Locale.getPlayerLocale(player), meta);
     player.updateInventory();
     rpgProjectiles.put(e.getEntity().getEntityId(), rItem.getID());
   }
 }
 public boolean drainPower(Player player, Player victim) {
   SuperNPlayer snplayer = SuperNManager.get(player);
   SuperNPlayer snvictim = SuperNManager.get(victim);
   if (!SupernaturalsPlugin.instance.getPvP(victim)) {
     SuperNManager.sendMessage(snplayer, "Cannot cast in a non-PvP zone.");
     return false;
   }
   if (snplayer.getPower() > SNConfigHandler.priestPowerDrain) {
     if (snvictim.isSuper()) {
       double power = snvictim.getPower();
       power *= SNConfigHandler.priestDrainFactor;
       SuperNManager.alterPower(
           snplayer,
           -SNConfigHandler.priestPowerDrain,
           "Drained  " + snvictim.getName() + "'s power!");
       SuperNManager.alterPower(snvictim, -power, "Drained by " + snplayer.getName());
       ItemStack item = player.getItemInHand();
       if (item.getAmount() == 1) {
         player.setItemInHand(null);
       } else {
         item.setAmount(player.getItemInHand().getAmount() - 1);
       }
       return true;
     } else {
       SuperNManager.sendMessage(snplayer, "Only supernatural players can be power drained.");
       return false;
     }
   } else {
     SuperNManager.sendMessage(snplayer, "Not enough power to drain power.");
     return false;
   }
 }
Esempio n. 7
0
  /**
   * Set the armor from the given slot as the given item.
   *
   * @param slot Slot of the armor (must be between 0 and 4)
   * @param item Item to set the armor as
   */
  @SuppressWarnings("deprecation")
  public void set(int slot, ItemStack item) {
    if (npc.getBukkitEntity() instanceof Enderman) {
      if (slot != 0) throw new UnsupportedOperationException("Slot can only be 0 for enderman");

      ((Enderman) npc.getBukkitEntity()).setCarriedMaterial(item.getData());
    } else if (npc.getBukkitEntity() instanceof Player) {
      Player player = (Player) npc.getBukkitEntity();
      switch (slot) {
        case 0:
          player.setItemInHand(item);
          break;
        case 1:
          player.getInventory().setHelmet(item);
          break;
        case 2:
          player.getInventory().setChestplate(item);
          break;
        case 3:
          player.getInventory().setLeggings(item);
          break;
        case 4:
          player.getInventory().setBoots(item);
          break;
        default:
          throw new IllegalArgumentException("Slot must be between 0 and 4");
      }
      player.updateInventory();
    }
    equipment[slot] = item;
  }
 public boolean cure(Player player, Player victim, Material material) {
   SuperNPlayer snplayer = SuperNManager.get(player);
   SuperNPlayer snvictim = SuperNManager.get(victim);
   if (snplayer.getPower() > SNConfigHandler.priestPowerCure) {
     if (snvictim.isSuper()) {
       if (victim.getItemInHand().getType().equals(material)) {
         SuperNManager.alterPower(
             snplayer, -SNConfigHandler.priestPowerCure, "Cured " + victim.getName());
         SuperNManager.sendMessage(
             snvictim,
             ChatColor.WHITE + snplayer.getName() + ChatColor.RED + " has restored your humanity");
         SuperNManager.cure(snvictim);
         ItemStack item = player.getItemInHand();
         ItemStack item2 = victim.getItemInHand();
         if (item.getAmount() == 1) {
           player.setItemInHand(null);
         } else {
           item.setAmount(player.getItemInHand().getAmount() - 1);
         }
         if (item2.getAmount() == 1) {
           victim.setItemInHand(null);
         } else {
           item2.setAmount(victim.getItemInHand().getAmount() - 1);
         }
         return true;
       } else {
         SuperNManager.sendMessage(
             snplayer,
             ChatColor.WHITE
                 + snvictim.getName()
                 + ChatColor.RED
                 + " is not holding "
                 + ChatColor.WHITE
                 + material.toString()
                 + ChatColor.RED
                 + ".");
         return false;
       }
     } else {
       SuperNManager.sendMessage(snplayer, "You can only cure supernatural players.");
       return false;
     }
   } else {
     SuperNManager.sendMessage(snplayer, "Not enough power to cure.");
     return false;
   }
 }
Esempio n. 9
0
  /**
   * Give player hunter equipment.
   *
   * @param event
   */
  @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
  public void onPlayerInteractEntity(PlayerInteractEntityEvent event) {
    Player player = event.getPlayer();

    if (event.getRightClicked().equals(this.plugin.getNpcIds()[3]) && player.hasPermission(PERM)) {
      player.setItemInHand(Predator.COMPASS);
    }
  }
Esempio n. 10
0
 @SuppressWarnings("deprecation")
 public static void setItemInHand(Player player, ItemStack item) {
   if (Version.getVersion().getVersionInteger() >= Version.v1_9_R1.getVersionInteger()) {
     player.getInventory().setItemInMainHand(item);
   } else {
     player.setItemInHand(item);
   }
 }
  /** Called when a block is broken. */
  @Override
  public void onBlockBreak(BlockBreakEvent event) {
    if (event.isCancelled()) {
      return;
    }

    Player player = event.getPlayer();
    WorldConfiguration wcfg = getWorldConfig(player);

    if (!wcfg.itemDurability) {
      ItemStack held = player.getItemInHand();
      if (held.getTypeId() > 0) {
        held.setDurability((short) -1);
        player.setItemInHand(held);
      }
    }

    if (!plugin.getGlobalRegionManager().canBuild(player, event.getBlock())) {
      player.sendMessage(ChatColor.DARK_RED + "You don't have permission for this area.");
      event.setCancelled(true);
      return;
    }

    if (wcfg.getBlacklist() != null) {
      if (!wcfg.getBlacklist()
          .check(
              new BlockBreakBlacklistEvent(
                  plugin.wrapPlayer(player),
                  toVector(event.getBlock()),
                  event.getBlock().getTypeId()),
              false,
              false)) {
        event.setCancelled(true);
        return;
      }

      if (!wcfg.getBlacklist()
          .check(
              new DestroyWithBlacklistEvent(
                  plugin.wrapPlayer(player),
                  toVector(event.getBlock()),
                  player.getItemInHand().getTypeId()),
              false,
              false)) {
        event.setCancelled(true);
        return;
      }
    }

    if (wcfg.isChestProtected(event.getBlock(), player)) {
      player.sendMessage(ChatColor.DARK_RED + "The chest is protected.");
      event.setCancelled(true);
      return;
    }
  }
  /*
   * Called when a block is broken.
   */
  @EventHandler(priority = EventPriority.HIGH, ignoreCancelled = true)
  public void onBlockBreak(BlockBreakEvent event) {
    Player player = event.getPlayer();
    WorldConfiguration wcfg = getWorldConfig(player);

    if (!wcfg.itemDurability) {
      ItemStack held = player.getItemInHand();
      if (held.getTypeId() > 0
          && !(ItemType.usesDamageValue(held.getTypeId())
              || BlockType.usesData(held.getTypeId()))) {
        held.setDurability((short) 0);
        player.setItemInHand(held);
      }
    }

    if (!plugin.getGlobalRegionManager().canBuild(player, event.getBlock())
        || !plugin.getGlobalRegionManager().canConstruct(player, event.getBlock())) {
      player.sendMessage(ChatColor.DARK_RED + "You don't have permission for this area.");
      event.setCancelled(true);
      return;
    }

    if (wcfg.getBlacklist() != null) {
      if (!wcfg.getBlacklist()
          .check(
              new BlockBreakBlacklistEvent(
                  plugin.wrapPlayer(player),
                  toVector(event.getBlock()),
                  event.getBlock().getTypeId()),
              false,
              false)) {
        event.setCancelled(true);
        return;
      }

      if (!wcfg.getBlacklist()
          .check(
              new DestroyWithBlacklistEvent(
                  plugin.wrapPlayer(player),
                  toVector(event.getBlock()),
                  player.getItemInHand().getTypeId()),
              false,
              false)) {
        event.setCancelled(true);
        return;
      }
    }

    if (wcfg.isChestProtected(event.getBlock(), player)) {
      player.sendMessage(ChatColor.DARK_RED + "The chest is protected.");
      event.setCancelled(true);
      return;
    }
  }
Esempio n. 13
0
 public static void disarmProcCheck(Player attacker, Player defender) {
   int skillLevel = Users.getProfile(attacker).getSkillLevel(SkillType.UNARMED);
   if (defender.getItemInHand() != null && defender.getItemInHand().getType() != Material.AIR) {
     if (skillLevel >= 1000) {
       if (Math.random() * 3000 <= 1000) {
         ItemStack item = defender.getItemInHand();
         defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
         m.mcDropItem(defender.getLocation(), item);
         defender.setItemInHand(null);
       }
     } else {
       if (Math.random() * 3000 <= skillLevel) {
         ItemStack item = defender.getItemInHand();
         defender.sendMessage(mcLocale.getString("Skills.Disarmed"));
         m.mcDropItem(defender.getLocation(), item);
         defender.setItemInHand(null);
       }
     }
   }
 }
Esempio n. 14
0
 @Override
 public void execute(CommandSender sender, String[] args) {
   Player player = (Player) sender;
   ItemStack item = player.getItemInHand();
   Chest chest = ChestMailManager.getMailBoxByName(args[0]);
   if (chest != null) {
     int empty = chest.getInventory().firstEmpty();
     chest.getInventory().setItem(empty, item);
     ChestMailManager.withdrawForSendingMail(player);
     player.setItemInHand(new ItemStack(Material.AIR));
   }
 }
Esempio n. 15
0
 public static void giveTool(Player player, int type) {
   final Inventory inv = player.getInventory();
   if (inv.contains(type))
     player.sendMessage(ChatColor.RED + "You have already a " + materialName(type));
   else {
     final int free = inv.firstEmpty();
     if (free >= 0) {
       if (player.getItemInHand() != null && player.getItemInHand().getTypeId() != 0)
         inv.setItem(free, player.getItemInHand());
       player.setItemInHand(new ItemStack(type, 1));
       player.sendMessage(ChatColor.GREEN + "Here's your " + materialName(type));
     } else player.sendMessage(ChatColor.RED + "You have no empty slot in your inventory");
   }
 }
Esempio n. 16
0
  public boolean removeItemInHand(Player p, int item_id, int item_data, int item_amount) {
    if ((p.getItemInHand() != null)
        && (p.getItemInHand().getTypeId() == item_id)
        && (p.getItemInHand().getAmount() >= item_amount)
        && ((item_data < 0) || (item_data == p.getItemInHand().getDurability()))) {

      if (p.getItemInHand().getAmount() > item_amount)
        p.getItemInHand().setAmount(p.getItemInHand().getAmount() - item_amount);
      else p.setItemInHand(new ItemStack(Material.AIR));

      return true;
    }
    return false;
  }
Esempio n. 17
0
  @EventHandler
  public void onPlayerAction(PlayerInteractEvent e) {
    Player player = e.getPlayer();
    if ((e.getAction() == Action.RIGHT_CLICK_AIR
        || (e.getAction() == Action.RIGHT_CLICK_BLOCK) && !e.isCancelled())) {
      ItemStack item = player.getItemInHand();
      if (item.getType() == Material.BOW
          || item.getType() == Material.SNOW_BALL
          || item.getType() == Material.EGG
          || item.getType() == Material.POTION) return;

      RPGItem rItem = ItemManager.toRPGItem(item);
      if (rItem == null) return;
      if (!WorldGuard.canPvP(player.getLocation()) && !rItem.ignoreWorldGuard) return;
      if (rItem.getHasPermission() == true
          && player.hasPermission(rItem.getPermission()) == false) {
        e.setCancelled(true);
        player.sendMessage(
            ChatColor.RED
                + String.format(
                    Locale.get("message.error.permission", Locale.getPlayerLocale(player))));
      }
      rItem.rightClick(player);
      if (player.getItemInHand().getTypeId() != 0) {
        RPGItem.updateItem(item, Locale.getPlayerLocale(player));
      } else player.setItemInHand(null);
      player.updateInventory();
    } else if (e.getAction() == Action.LEFT_CLICK_AIR || e.getAction() == Action.LEFT_CLICK_BLOCK) {
      ItemStack item = player.getItemInHand();
      if (item.getType() == Material.BOW
          || item.getType() == Material.SNOW_BALL
          || item.getType() == Material.EGG
          || item.getType() == Material.POTION) return;

      RPGItem rItem = ItemManager.toRPGItem(item);
      if (rItem == null) return;
      if (!WorldGuard.canPvP(player.getLocation()) && !rItem.ignoreWorldGuard) return;
      if (rItem.getHasPermission() == true
          && player.hasPermission(rItem.getPermission()) == false) {
        e.setCancelled(true);
        player.sendMessage(
            ChatColor.RED
                + String.format(
                    Locale.get("message.error.permission", Locale.getPlayerLocale(player))));
      }
      rItem.leftClick(player);
      RPGItem.updateItem(item, Locale.getPlayerLocale(player));
    }
  }
Esempio n. 18
0
 @Override
 @SuppressWarnings("deprecation")
 public void onSpawn() {
   if (npc.getBukkitEntity() instanceof Enderman) {
     Enderman enderman = (Enderman) npc.getBukkitEntity();
     if (equipment[0] != null) enderman.setCarriedMaterial(equipment[0].getData());
   } else if (npc.getBukkitEntity() instanceof Player) {
     Player player = (Player) npc.getBukkitEntity();
     if (equipment[0] != null) player.setItemInHand(equipment[0]);
     ItemStack[] armor = {equipment[4], equipment[3], equipment[2], equipment[1]};
     // bukkit ordering is boots, leggings, chestplate, helmet
     player.getInventory().setArmorContents(armor);
     player.updateInventory();
   }
 }
Esempio n. 19
0
 @EventHandler
 public final void PIE(final PlayerInteractEvent event) {
   if (event.getAction() != Action.RIGHT_CLICK_AIR
       && event.getAction() != Action.RIGHT_CLICK_BLOCK) return;
   final Player player = event.getPlayer();
   if (!player.isSneaking()) return;
   final ItemStack item = event.getItem();
   if (item == null
       || item.getType()
           != Material.getMaterial(
               getConfig().getString("id").trim().toUpperCase().replace(' ', '_'))) return;
   final String name = getConfig().getString("name");
   if (!name.isEmpty()
       && (!item.hasItemMeta()
           || !item.getItemMeta().hasDisplayName()
           || !item.getItemMeta()
               .getDisplayName()
               .equals(ChatColor.translateAlternateColorCodes('&', name)))) return;
   final Item entity =
       player
           .getWorld()
           .dropItem(
               player.getEyeLocation().clone().subtract(0, 0.3, 0), new ItemStack(item.getType()));
   entity.setVelocity(
       player.getLocation().getDirection().normalize().multiply(getConfig().getDouble("speed")));
   entity.setMetadata("isminebomb", new FixedMetadataValue(this, player.getName()));
   if (getConfig().getBoolean("use")) {
     if (item.getAmount() == 1) player.setItemInHand(new ItemStack(Material.AIR));
     else {
       item.setAmount(item.getAmount() - 1);
       player.setItemInHand(item);
     }
   }
   new ExplodeTimer(entity, getConfig().getInt("power"))
       .runTaskLater(this, getConfig().getInt("delay") * 20L);
 }
Esempio n. 20
0
  @SuppressWarnings("deprecation")
  @EventHandler(priority = EventPriority.HIGHEST)
  public void onBlockPlace(BlockPlaceEvent event) {
    Player player = event.getPlayer();

    if (event.getItemInHand().getType() == Config.ToolBlock
        && SessionManager.getSession(player).isUsingTool()) {
      ToolManager.toolSearch(player, event.getBlock());

      if (player.getGameMode() == GameMode.SURVIVAL)
        player.setItemInHand(event.getItemInHand()); // Insure update packet is sent

      event.setCancelled(true);
    }
  }
 @Override
 public void run(Player p, Block bl, MachineRecipe recipe) {
   ItemStack item1 = recipe.getIngredients().get(0);
   if (!p.getItemInHand().equals(item1)) {
     return;
   }
   for (ItemStack ing : recipe.getIngredients()) {
     if (!p.getInventory().contains(ing)) {
       return;
     }
   }
   for (ItemStack ing : recipe.getIngredients()) {
     p.getInventory().remove(ing);
   }
   p.setItemInHand(recipe.getResult());
 }
  public static void CreateMap(Player player) {
    ItemStack is = new ItemStack(Material.MAP);

    int mapNumber;
    try {
      mapNumber = IOManager.getPlayerMap(player.getName());
    } catch (NullPointerException e) {
      mapNumber = Main.server.createMap(player.getWorld()).getId();
      IOManager.setPlayerMap(player.getName(), mapNumber);
    }

    is.setDurability((short) mapNumber);
    player.setItemInHand(is);

    TownMapRenderer.drawToMap(Main.server.getMap((short) mapNumber));
  }
Esempio n. 23
0
  /**
   * Apply the Green Thumb ability to blocks.
   *
   * @param is The item in the player's hand
   * @param player The player activating the ability
   * @param block The block being used in the ability
   */
  public static void greenThumbBlocks(ItemStack is, Player player, Block block) {
    final int MAX_BONUS_LEVEL = 1500;

    PlayerProfile PP = Users.getProfile(player);
    int skillLevel = PP.getSkillLevel(SkillType.HERBALISM);
    int seeds = is.getAmount();

    player.setItemInHand(new ItemStack(Material.SEEDS, seeds - 1));
    /* No MOARE green terra :D
         if (skillLevel > MAX_BONUS_LEVEL || random.nextInt(1500) <= skillLevel) {
             greenTerra(player, block);
         }
         else {
             player.sendMessage(mcLocale.getString("mcPlayerListener.GreenThumbFail"));
         }
    */
  }
Esempio n. 24
0
  /**
   * Check for disarm.
   *
   * @param PPa Profile of the attacking player
   * @param defender The defending player
   */
  public static void disarmProcCheck(Player attacker, Player defender) {
    final int MAX_BONUS_LEVEL = 1000;

    PlayerProfile PPa = Users.getProfile(attacker);
    int skillLevel = PPa.getSkillLevel(SkillType.UNARMED);
    int skillCheck = Misc.skillCheck(skillLevel, MAX_BONUS_LEVEL);

    ItemStack inHand = defender.getItemInHand();

    if (!inHand.getType().equals(Material.AIR)) {
      if (random.nextInt(3000) <= skillCheck && !ironGrip(defender, attacker)) {
        defender.sendMessage(LocaleLoader.getString("Skills.Disarmed"));

        Misc.mcDropItem(defender.getLocation(), inHand);
        defender.setItemInHand(new ItemStack(Material.AIR));
      }
    }
  }
Esempio n. 25
0
 @SuppressWarnings("deprecation")
 @EventHandler(priority = EventPriority.LOWEST, ignoreCancelled = true)
 public void onItemDamage(PlayerItemDamageEvent event) {
   // disabling event on world
   if (Residence.isDisabledWorldListener(event.getPlayer().getWorld())) return;
   Player player = event.getPlayer();
   Location loc = player.getLocation();
   FlagPermissions perms = Residence.getPermsByLoc(loc);
   if (perms.has(Flags.nodurability, false)) {
     ItemStack held = Residence.getNms().itemInMainHand(player);
     if (held.getType() != Material.AIR) {
       held.setDurability(held.getDurability());
       player.setItemInHand(held);
       event.setDamage(0);
       event.setCancelled(true);
     }
   }
 }
Esempio n. 26
0
  @SuppressWarnings("deprecation")
  private double playerDamager(EntityDamageByEntityEvent e, double damage) {
    Player player = (Player) e.getDamager();
    ItemStack item = player.getItemInHand();
    if (item.getType() == Material.BOW
        || item.getType() == Material.SNOW_BALL
        || item.getType() == Material.EGG
        || item.getType() == Material.POTION) return damage;

    RPGItem rItem = ItemManager.toRPGItem(item);
    if (rItem == null) return damage;
    if (!WorldGuard.canPvP(player.getLocation()) && !rItem.ignoreWorldGuard) return damage;
    if (rItem.getHasPermission() == true && player.hasPermission(rItem.getPermission()) == false) {
      damage = 0;
      e.setCancelled(true);
      player.sendMessage(
          ChatColor.RED
              + String.format(
                  Locale.get("message.error.permission", Locale.getPlayerLocale(player))));
    }
    damage =
        rItem.getDamageMin() != rItem.getDamageMax()
            ? (rItem.getDamageMin() + random.nextInt(rItem.getDamageMax() - rItem.getDamageMin()))
            : rItem.getDamageMin();
    if (e.getEntity() instanceof LivingEntity) {
      LivingEntity le = (LivingEntity) e.getEntity();
      rItem.hit(player, le, e.getDamage());
    }
    RPGMetadata meta = RPGItem.getMetadata(item);
    if (rItem.getMaxDurability() != -1) {
      int durability =
          meta.containsKey(RPGMetadata.DURABILITY)
              ? ((Number) meta.get(RPGMetadata.DURABILITY)).intValue()
              : rItem.getMaxDurability();
      durability--;
      if (durability <= 0) {
        player.setItemInHand(null);
      }
      meta.put(RPGMetadata.DURABILITY, Integer.valueOf(durability));
    }
    RPGItem.updateItem(item, Locale.getPlayerLocale(player), meta);
    player.updateInventory();
    return damage;
  }
Esempio n. 27
0
  @SuppressWarnings("deprecation")
  @Override
  protected Boolean OnCommand(CommandSender sender, String[] args) {
    this.sender = sender;

    if (isInvalid(sender, args)) return true;
    Player player = (Player) sender;
    ItemStack itemStack =
        new ItemStack(Material.getMaterial(plugin.getConfig().getInt("InfoWandID")), 1);

    ItemMeta itemMeta = itemStack.getItemMeta();
    itemMeta.setDisplayName("YAPS Info Wand");
    itemStack.setItemMeta(itemMeta);

    player.setItemInHand(itemStack);
    SendMessage("&6Use Right and left click to get information of an area.");

    return true;
  }
Esempio n. 28
0
 @EventHandler
 public void onKill(PlayerDeathEvent evt) {
   Player dead = evt.getEntity();
   Player killer = dead.getKiller();
   if (killer == null) return;
   Kit k = Main.playerkits.get(killer.getName());
   if (!(k instanceof Kit_Barbarian)) return;
   ItemStack item = killer.getItemInHand();
   if (item == null) return;
   ItemMeta meta = item.getItemMeta();
   if (meta == null) return;
   String name = meta.getDisplayName();
   if (name == null) return;
   if (!(name.substring(0, swordname.indexOf(':') + 2))
           .equals(swordname.substring(0, swordname.indexOf(':') + 2))
       && meta.getLore().equals(swordlore)) return;
   addkill(item);
   killer.setItemInHand(item);
 }
Esempio n. 29
0
 @Override
 public void onClick(Player Player) {
   if (Player.getItemInHand() != null && Player.getItemInHand().getType() != Material.AIR) {
     if (TotalWar.economy.has(Player.getName(), this.CostOfBind)) {
       TotalWar.economy.withdrawPlayer(Player.getName(), this.CostOfBind);
       TotalWar.economy.depositPlayer("TheGamersCave", this.CostOfBind);
       List<String> LoreAdd = new ArrayList<String>();
       LoreAdd.add(ChatColor.GOLD + "Spell: " + this.Spell.getName());
       for (String S : this.Spell.getDescription()) {
         LoreAdd.add(S);
       }
       Player.setItemInHand(ItemHandler.addLore(Player.getItemInHand(), LoreAdd));
       Player.updateInventory();
       this.getMenu().closeMenu(Player);
       Player.sendMessage(ChatColor.GREEN + "Enjoy your spell-bound item");
     } else {
       Player.sendMessage(
           ChatColor.RED + "You don't have enough money to bind this spell to your item!");
     }
   }
 }
  public boolean guardianAngel(Player player, Player victim) {
    SuperNPlayer priest = SuperNManager.get(player);
    SuperNPlayer snvictim = SuperNManager.get(victim);

    if (priest.getPower() > SNConfigHandler.priestPowerGuardianAngel) {
      if (!snvictim.isSuper()) {
        if (SupernaturalsPlugin.instance.getDataHandler().hasAngel(priest)) {
          SuperNManager.sendMessage(
              priest,
              "Removed Guardian Angel from "
                  + ChatColor.WHITE
                  + SupernaturalsPlugin.instance.getDataHandler().getAngelPlayer(priest).getName());
          SuperNManager.sendMessage(
              SupernaturalsPlugin.instance.getDataHandler().getAngelPlayer(priest),
              "Guardian Angel removed!");
          SupernaturalsPlugin.instance.getDataHandler().removeAngel(priest);
        }
        SuperNManager.sendMessage(snvictim, "You now have a Guardian Angel!");
        SuperNManager.alterPower(
            priest,
            -SNConfigHandler.priestPowerGuardianAngel,
            "Guardian Angel on " + ChatColor.WHITE + snvictim.getName() + ChatColor.RED + "!");
        SupernaturalsPlugin.instance.getDataHandler().addAngel(priest, snvictim);

        ItemStack item = player.getItemInHand();
        if (item.getAmount() == 1) {
          player.setItemInHand(null);
        } else {
          item.setAmount(player.getItemInHand().getAmount() - 1);
        }
        return true;
      }
      SuperNManager.sendMessage(
          priest, "You cannot set a Guardian Angel on a Supernatural player.");
      return false;
    } else {
      SuperNManager.sendMessage(priest, "Not enough power to cast Guardian Angel.");
      return false;
    }
  }