package tv.mineinthebox.essentials.events.pvp;
import java.io.File;
import org.bukkit.ChatColor;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.block.Block;
import org.bukkit.block.BlockFace;
import org.bukkit.configuration.file.FileConfiguration;
import org.bukkit.configuration.file.YamlConfiguration;
import org.bukkit.entity.Entity;
import org.bukkit.entity.Player;
import org.bukkit.event.EventHandler;
import org.bukkit.event.Listener;
import org.bukkit.event.entity.PlayerDeathEvent;
import tv.mineinthebox.essentials.xEssentials;
import tv.mineinthebox.essentials.enums.LogType;
public class ClientSideGraveYardEvent implements Listener {
private final xEssentials pl;
public ClientSideGraveYardEvent(xEssentials pl) {
this.pl = pl;
}
@SuppressWarnings("deprecation")
@EventHandler
public void getGrave(PlayerDeathEvent e) {
try {
for(Entity entity : e.getEntity().getNearbyEntities(16, 120, 16)) {
if(entity instanceof Player) {
Player p = (Player) entity;
Location loc = e.getEntity().getLocation();
Block block = loc.getBlock();
Block signBlock = block.getRelative(BlockFace.NORTH).getRelative(BlockFace.EAST);
p.sendBlockChange(signBlock.getLocation(), Material.SIGN_POST, (byte) 0xD);
String[] lines = {
ChatColor.translateAlternateColorCodes('&', "&F&lR.I.P"),
e.getEntity().getName(),
"we'all miss-",
"you."
};
//https://forums.bukkit.org/threads/change-the-direction-of-a-sign.31582/ relevant
p.sendSignChange(signBlock.getLocation(), lines);
//EntityPlayer player = ((CraftPlayer) p).getHandle();
//player.playerConnection.sendPacket(new PacketPlayOutUpdateSign(signBlock.getX(), signBlock.getY(), signBlock.getZ(), lines));
p.sendBlockChange(block.getLocation(), Material.MOSSY_COBBLESTONE, block.getData());
Block blockSkeleton = block.getRelative(BlockFace.UP);
p.sendBlockChange(blockSkeleton.getLocation(), Material.SKULL, (byte) 0);
Block redstone1 = block.getRelative(BlockFace.EAST);
p.sendBlockChange(redstone1.getLocation(), Material.REDSTONE_WIRE, redstone1.getData());
Block redstone2 = redstone1.getRelative(BlockFace.EAST);
p.sendBlockChange(redstone2.getLocation(), Material.REDSTONE_WIRE, redstone2.getData());
Block redstone3 = redstone2.getRelative(BlockFace.SOUTH);
p.sendBlockChange(redstone3.getLocation(), Material.REDSTONE_WIRE, redstone3.getData());
Block fire = redstone3.getRelative(BlockFace.WEST);
p.sendBlockChange(fire.getLocation(), Material.FIRE, fire.getData());
}
}
} catch(NoClassDefFoundError r) {
xEssentials.log("ClientSideGraveYards is only supported for Craftbukkit 1.7.2 R1, disabling configuration option...", LogType.SEVERE);
xEssentials.log("if you want more compatability please install ProtocolLib or update to the correct craftbukkit.", LogType.SEVERE);
try {
File f = new File(pl.getDataFolder() + File.separator + "pvp.yml");
FileConfiguration con = YamlConfiguration.loadConfiguration(f);
con.set("createClientSideGraveyard", false);
con.save(f);
pl.getConfiguration().reload();
} catch(Exception rr) {
rr.printStackTrace();
}
}
}
}