use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.
the class Events method onShop.
@EventHandler
public void onShop(InventoryClickEvent event) {
if (!(event.getWhoClicked() instanceof Player))
return;
Player player = (Player) event.getWhoClicked();
Inventory inv = event.getInventory();
Arena arena = ArenaRegistry.getArena((Player) event.getWhoClicked());
if (arena == null)
return;
User user = UserManager.getUser(player.getUniqueId());
if (user.isFakeDead()) {
event.setCancelled(true);
return;
}
if (inv.getName() == null || !inv.getName().equalsIgnoreCase(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Shop-GUI-Name")))
return;
event.setCancelled(true);
if (event.getCurrentItem() == null || !event.getCurrentItem().hasItemMeta() || !event.getCurrentItem().getItemMeta().hasLore())
return;
String string = event.getCurrentItem().getItemMeta().getLore().get(0);
string = ChatColor.stripColor(string);
if (!(string.contains(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Currency-In-Shop")) || string.contains("orbs"))) {
boolean b = false;
for (String s : event.getCurrentItem().getItemMeta().getLore()) {
if (string.contains(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Currency-In-Shop")) || string.contains("orbs")) {
string = s;
b = true;
}
}
if (!b)
return;
}
int price = Integer.parseInt(string.split(" ")[0]);
if (price > UserManager.getUser(player.getUniqueId()).getInt("orbs")) {
player.sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Not-Enough-Orbs"));
return;
}
if (event.getCurrentItem().hasItemMeta() && event.getCurrentItem().getItemMeta().hasDisplayName()) {
if (event.getCurrentItem().getItemMeta().getDisplayName().contains(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Golem-Item-Name"))) {
arena.spawnGolem(arena.getStartLocation(), player);
player.sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Messages.Golem-Spawned"));
UserManager.getUser(player.getUniqueId()).setInt("orbs", UserManager.getUser(player.getUniqueId()).getInt("orbs") - price);
return;
}
if (event.getCurrentItem().getItemMeta().getDisplayName().contains(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Wolf-Item-Name"))) {
arena.spawnWolf(arena.getStartLocation(), player);
player.sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Messages.Wolf-Spawned"));
UserManager.getUser(player.getUniqueId()).setInt("orbs", UserManager.getUser(player.getUniqueId()).getInt("orbs") - price);
return;
}
}
ItemStack itemStack = event.getCurrentItem().clone();
ItemMeta itemMeta = itemStack.getItemMeta();
List<String> lore = new ArrayList<>();
for (String loopLore : lore) {
if (loopLore.contains(ChatManager.colorMessage("In-Game.Messages.Shop-Messages.Currency-In-Shop"))) {
lore.remove(loopLore);
}
}
itemMeta.setLore(lore);
itemStack.setItemMeta(itemMeta);
player.getInventory().addItem(itemStack);
UserManager.getUser(player.getUniqueId()).setInt("orbs", UserManager.getUser(player.getUniqueId()).getInt("orbs") - price);
}
use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.
the class Events method onFriendHurt.
@EventHandler(priority = EventPriority.HIGHEST)
public void onFriendHurt(EntityDamageByEntityEvent event) {
if (!(event.getDamager() instanceof Player))
return;
Arena arena = ArenaRegistry.getArena((Player) event.getDamager());
if (arena == null)
return;
User user = UserManager.getUser(event.getDamager().getUniqueId());
if (user.isFakeDead()) {
event.setCancelled(true);
return;
}
if (!VILLAGE_ENTITIES.contains(event.getEntityType()))
return;
event.setCancelled(true);
}
use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.
the class Events method onRottenFleshDrop.
@EventHandler
public void onRottenFleshDrop(InventoryPickupItemEvent event) {
if (event.getInventory().getType() != InventoryType.HOPPER && !event.getItem().getItemStack().getType().equals(Material.ROTTEN_FLESH))
return;
for (Entity entity : Util.getNearbyEntities(event.getItem().getLocation(), 20)) {
if (!(entity instanceof Player)) {
continue;
}
if (ArenaRegistry.getArena((Player) entity) != null) {
Arena arena = ArenaRegistry.getArena(((Player) entity));
if (arena == null)
continue;
arena.addRottenFlesh(event.getItem().getItemStack().getAmount());
event.getItem().remove();
event.setCancelled(true);
event.getInventory().clear();
event.getItem().getLocation().getWorld().spigot().playEffect(event.getItem().getLocation(), Effect.CLOUD, 0, 0, 2, 2, 2, 1, 50, 100);
if (arena.checkLevelUpRottenFlesh()) {
for (Player player : arena.getPlayers()) {
player.setMaxHealth(player.getMaxHealth() + 2.0);
}
for (Player player1 : arena.getPlayers()) {
String message = ChatManager.formatMessage(arena, ChatManager.colorMessage("In-Game.Rotten-Flesh-Level-Up"), player1);
player1.sendMessage(ChatManager.PLUGIN_PREFIX + message);
}
}
}
}
}
use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.
the class Events method onEntityInteractEntity.
@EventHandler
public void onEntityInteractEntity(PlayerInteractEntityEvent event) {
Arena arena = ArenaRegistry.getArena(event.getPlayer());
if (arena == null)
return;
User user = UserManager.getUser(event.getPlayer().getUniqueId());
if (user.isFakeDead()) {
event.setCancelled(true);
return;
}
if (event.getPlayer().getItemInHand().getType() == Material.SADDLE) {
if (event.getRightClicked().getType() == EntityType.IRON_GOLEM || event.getRightClicked().getType() == EntityType.VILLAGER) {
event.getRightClicked().setPassenger(event.getPlayer());
event.setCancelled(true);
return;
}
}
if (event.getRightClicked().getType() == EntityType.VILLAGER) {
event.setCancelled(true);
ShopManager.openShop(event.getPlayer());
} else if (event.getRightClicked().getType() == EntityType.IRON_GOLEM) {
IronGolem ironGolem = (IronGolem) event.getRightClicked();
if (ironGolem.getCustomName() != null && ironGolem.getCustomName().contains(event.getPlayer().getName())) {
event.getRightClicked().setPassenger(event.getPlayer());
} else {
event.getPlayer().sendMessage(ChatManager.PLUGIN_PREFIX + ChatManager.colorMessage("In-Game.Messages.Cant-Ride-Others-Golem"));
}
}
}
use of pl.plajer.villagedefense3.arena.Arena in project Village_Defense by Plajer.
the class Events method KitMenuItemClick.
@EventHandler
public void KitMenuItemClick(InventoryClickEvent event) {
ItemStack inv = event.getCursor();
Arena arena = ArenaRegistry.getArena((Player) event.getWhoClicked());
if (arena == null)
return;
if (inv == null || !inv.hasItemMeta() || !inv.getItemMeta().hasDisplayName() || inv.getType() != plugin.getKitManager().getMaterial() || !inv.getItemMeta().getDisplayName().equalsIgnoreCase(plugin.getKitManager().getItemName()))
return;
event.setCancelled(true);
}
Aggregations