Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- package craftsgp.altarmistico.Eventos;
- import java.text.NumberFormat;
- import java.util.ArrayList;
- import java.util.HashMap;
- import java.util.List;
- import org.bukkit.Bukkit;
- import org.bukkit.ChatColor;
- import org.bukkit.Effect;
- import org.bukkit.EntityEffect;
- import org.bukkit.Location;
- import org.bukkit.Material;
- import org.bukkit.entity.ArmorStand;
- import org.bukkit.entity.EnderCrystal;
- import org.bukkit.entity.Entity;
- import org.bukkit.entity.EntityType;
- import org.bukkit.entity.Player;
- import org.bukkit.event.EventHandler;
- import org.bukkit.event.Listener;
- import org.bukkit.event.block.BlockPlaceEvent;
- import org.bukkit.event.entity.EntityDamageEvent;
- import org.bukkit.event.player.PlayerInteractAtEntityEvent;
- import org.bukkit.inventory.ItemStack;
- import org.bukkit.inventory.meta.ItemMeta;
- import org.bukkit.metadata.FixedMetadataValue;
- import org.bukkit.metadata.MetadataValue;
- import org.bukkit.scheduler.BukkitRunnable;
- import org.bukkit.scheduler.BukkitTask;
- import craftsgp.altarmistico.Main;
- import craftsgp.altarmistico.Utils.Metodos;
- public class Eventos extends BukkitRunnable implements Listener {
- BukkitTask taskid;
- public void createEnderCrystal(Location e) {
- EnderCrystal ec = e.getWorld().spawn(e, EnderCrystal.class);
- ec.setCustomNameVisible(true);
- ec.setCustomName(Main.getInstance().getConfig().getString("Altar.Nome").replace('&', '§'));
- ec.setMetadata("Altar", new FixedMetadataValue(Main.getInstance(), Boolean.valueOf(true)));
- }
- @SuppressWarnings("deprecation")
- public void createNewArmorStand(Location e, String name) {
- HashMap<Player, Integer> tm = new HashMap<>();
- ArmorStand am = e.getWorld().spawn(e, ArmorStand.class);
- am.setVisible(false);
- am.setGravity(false);
- am.setCustomNameVisible(true);
- taskid = new BukkitRunnable() {
- int numero = Main.getInstance().getConfig().getInt("Altar.Tempo");
- @Override
- public void run() {
- if (numero > 0) {
- numero -- ;
- am.setCustomName(Main.getInstance().getConfig().getString("Altar.Descricao").replace('&', '§') + " " + numero + "m");
- }
- if (this.numero == 0) {
- ItemStack i = new ItemStack(Material.getMaterial(Main.getInstance().getConfig().getInt("Itens.Material")));
- ItemMeta m = i.getItemMeta();
- m.setDisplayName(Main.getInstance().getConfig().getString("Itens.Nome").replace('&', '§'));
- ArrayList<String> lore = new ArrayList<>();
- List<String> newLore = new ArrayList<>();
- lore.addAll(Main.getInstance().getConfig().getConfigurationSection("Itens").getStringList("Lore"));
- for(String s : lore) {
- newLore.add(ChatColor.translateAlternateColorCodes('&', s));
- }
- m.setLore(newLore);
- i.setItemMeta(m);
- am.getWorld().dropItem(am.getLocation(), i);
- this.numero = 30;
- }
- }
- }.runTaskTimer(Main.getInstance(), 0, 20*60);
- }
- @EventHandler
- public void colocarAltar(BlockPlaceEvent e) {
- Player p = e.getPlayer();
- if (!(p.getInventory().getItemInHand().hasItemMeta()) || p.getInventory().getItemInHand().getItemMeta().getLore() == null || e.getItemInHand() == null) return;
- if ((p.getItemInHand().getItemMeta().getDisplayName().equals(Metodos.Altar().getItemMeta().getDisplayName()))){
- e.getBlock().setType(Material.AIR);
- createEnderCrystal(e.getBlock().getLocation().add(0, 1, 0));
- createNewArmorStand(e.getBlock().getLocation().add(0, 0.5, 0), Main.getInstance().getConfig().getString("Altar.Nome").replace('&', '§'));
- }
- }
- @EventHandler
- public void aointeragir(PlayerInteractAtEntityEvent e) {
- Player p = e.getPlayer();
- if (e.getRightClicked().getType() == (EntityType.ENDER_CRYSTAL)) {
- if (p.getItemInHand().getType().equals(Material.BLAZE_ROD)) {
- if (p.hasPermission("altarmistico.admin")) {
- e.getRightClicked().remove();
- p.sendMessage("§aRemovido com Sucesso!");
- Bukkit.getScheduler().cancelAllTasks();
- for (Entity es : e.getRightClicked().getNearbyEntities(2, 2, 2))
- if (es instanceof ArmorStand) {
- es.remove();
- }
- e.setCancelled(true);
- return;
- }
- }
- }
- }
- @EventHandler
- public void damage(EntityDamageEvent event){
- Entity entity = event.getEntity();
- if (entity instanceof EnderCrystal){
- event.setCancelled(true);
- }
- }
- @Override
- public void run() {
- Bukkit.getScheduler().runTaskAsynchronously(Main.getInstance(), (Runnable) taskid);
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement