package com.realistic.signal;
import java.util.Random;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.block.Block;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.block.BlockPlaceEvent;
import org.bukkit.scheduler.BukkitRunnable;
import com.realistic.api.API;
import com.realistic.api.MessageManager;
import com.realistic.api.MessageManager.MsgType;
import com.realistic.config.configMessage;
import com.realistic.list.MinecraftList;
import com.realistic.otherAPI.ParticleEffect;
import com.realistic.timers.Crate_spawn;
public class Handler_commonSignal implements Listener {
private final Random r = new Random();
public static Location commonSignalLocation;
public static Block commonSignalBlock;
@SuppressWarnings("deprecation")
@EventHandler
public void dropCommon(BlockPlaceEvent e) {
Player p = e.getPlayer();
Block b = e.getBlockPlaced();
World w = p.getWorld();
Location loc = p.getLocation();
commonSignalLocation = e.getBlock().getLocation();
commonSignalBlock = b;
ProtectSignals.ProtectCommon();
if (e.isCancelled()) {
return;
}
if (e.getBlockPlaced().getTypeId() == 76) {
if (p.getItemInHand().getItemMeta().getDisplayName() != null
&& p.getItemInHand().getItemMeta().getDisplayName()
.equalsIgnoreCase(ChatColor.GOLD + ChatColor.BOLD.toString() + "Сигнальная шашка")) {
MessageManager.getManager().msg(p, MsgType.SUCCESS,
configMessage.messageConfig.getString("signal_enable"));
MinecraftList.commonSignal.add(p);
BukkitRunnable run = new BukkitRunnable() {
@Override
public void run() {
if (MinecraftList.commonSignal.contains(p)) {
int radius = 25;
for (int x = -radius; x < radius; x++) {
for (int y = -radius; y < radius; y++) {
for (int z = -radius; z < radius; z++) {
Block b = w.getBlockAt(loc.getBlockX() + x, loc.getBlockY() + y,
loc.getBlockZ() + z);
if (b.getType() == Material.REDSTONE_TORCH_ON) {
if (b.getType() == Material.AIR) {
MinecraftList.commonSignal.remove(p);
}
if (r.nextInt(5000) <= 50) {
b.setType(Material.AIR);
Crate_spawn.commonCrate();
MessageManager.getManager().msg(p, MsgType.SUCCESS,
configMessage.messageConfig.getString("signal_success"));
}
ParticleEffect.SMOKE_LARGE.display(0, 2, 0, 0, 5,
b.getLocation().add(0.5, 3, 0.5), 200);
}
}
}
}
}
}
};
run.runTaskTimer(API.getInstance(), 2, 2);
}
}
}
}