package cz.frafticekcz.ThePit.events.event_types; import com.sun.xml.internal.ws.api.message.HeaderList; import cz.frafticekcz.ThePit.Main; import cz.frafticekcz.ThePit.events.EventManager; import cz.frafticekcz.ThePit.hashes.PlayerManager; import cz.frafticekcz.ThePit.repository.PlayerData; import cz.frafticekcz.ThePit.utils.UtilMath; import net.minecraft.server.v1_8_R3.BlockStainedGlass; import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.BlockFace; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; import org.bukkit.event.player.PlayerMoveEvent; import org.bukkit.inventory.ItemStack; import org.bukkit.scheduler.BukkitRunnable; import java.util.HashMap; import java.util.Iterator; import java.util.Map; public class KingOfTheHill extends ThePitEvent { private Main plugin; private PlayerManager manager; public KingOfTheHill(Main plugin) { super(1000,"King of The Hill","KingOfTheHill", plugin); this.plugin = plugin; this.manager = plugin.getPlayerManager(); } private HashMap blockLocation = new HashMap<>(); @EventHandler public void playerMove(PlayerMoveEvent e) { Player p = e.getPlayer(); PlayerData data = plugin.getPlayerManager().GetData(p); Location loc = p.getLocation(); loc.subtract(0,2,0); if(p.getLocation().getBlock().getRelative(BlockFace.DOWN).getType().equals(Material.DIAMOND_BLOCK)) { data.eventsGoldMultipler = 3; data.eventsXpMultipler = 3; }else { data.eventsXpMultipler = 1; data.eventsGoldMultipler = 1; } } //Custom start algorithms @Override public void start() { World w = Bukkit.getWorlds().get(0); w.setStorm(true); w.setTime(13500); Location loc = new Location(w, 38, 32, -60); for(Player p : Bukkit.getOnlinePlayers()) { p.playSound(loc, Sound.WITHER_SPAWN, 1000,1); } double x, z; for(x = -3; x<=3 ; x ++) { for(z = -3; z <= 3; z++) { blockLocation.put(loc.clone().add(x, 0 , z),loc.clone().add(x, 0 , z).getBlock().getType()); loc.clone().add(x, 0 , z).getBlock().setType(Material.DIAMOND_BLOCK); } } ItemStack itemStack = new ItemStack(Material.STAINED_GLASS,1,(short)3 ); Block b = loc.getBlock(); b.setType(Material.STAINED_GLASS); b.setData((byte) 3); blockLocation.put(loc.clone().add(0,-1,0),loc.clone().add(0,-1,0).getBlock().getType()); loc.clone().add(0,-1,0).getBlock().setType(Material.BEACON); for(x = -3; x<=3 ; x ++) { for(z = -3; z <= 3; z++) { blockLocation.put(loc.clone().add(x, -2 , z),loc.clone().add(x, -2 , z).getBlock().getType()); loc.clone().add(x, -2 , z).getBlock().setType(Material.DIAMOND_BLOCK); } } w.strikeLightning(loc); w.strikeLightning(loc); new BukkitRunnable() { @Override public void run() { w.setStorm(false); w.setTime(0); } }.runTaskLater(plugin, 50); } //Custom stop algorithms @Override public void stop() { for (Map.Entry entry : blockLocation.entrySet()) { Location key = entry.getKey(); Material material = entry.getValue(); key.getBlock().setType(material); } for(Player pl : Bukkit.getOnlinePlayers()) { PlayerData data = plugin.getPlayerManager().GetData(pl); data.eventsXpMultipler = 1; data.eventsGoldMultipler = 1; } } }