@EventHandler
	public void placeblock(final BlockPlaceEvent event) {
		final Player p = event.getPlayer();
		if(event.getPlayer().getGameMode() == GameMode.CREATIVE) {
			
		}else if(p.getItemInHand().getType().equals(Material.RAILS)){
			/** Checks if player does not have a mode set, and sets one **/
			
			/** Creates the mode path **/
			boolean mode = getConfig().getBoolean(p.getName().toLowerCase() + ".mode");
			
			/** Create Selection **/
			
			Block b = event.getBlock();
			@SuppressWarnings("unused")
			Location block = b.getLocation();
			Location looking_at = b.getLocation(); Location block_on_grid = new Location(looking_at.getWorld(), looking_at.getX(), 31, looking_at.getZ());
			
			if(mode) {
				/** Already clicked, needs to place if correct **/
				//Block b2 = p.getTargetBlock(null, 200);
				//ocation loc = new Location(b2.getWorld(), b2.getX(), 31, b2.getZ());
				/**if(loc.getBlock().getType().equals(Material.BEACON)) {
					loc.getBlock().setType(Material.AIR);
					p.sendMessage(ChatColor.RED + "Placed!");
					getConfig().set(p.getName().toLowerCase() + ".mode", Boolean.valueOf(false));
					return;
				}else {
					
					getConfig().set(p.getName().toLowerCase() + ".mode", Boolean.valueOf(false));
					p.sendMessage(ChatColor.RED + "Something went wrong, action cancelled: " + loc.getBlock().getType());
					return;
				}**/

				
			}else {
				/** Has not yet clicked **/
				/** Needs to check for block detection **/
				
				
				if(block_on_grid.getBlock().getType().equals(Material.RAILS)) {
					
					/** Block is empty, we need to set it... **/
					event.getBlock().getLocation().getBlock().setType(Material.BEACON);
					
					this.getServer().getScheduler().scheduleSyncDelayedTask(this, new Runnable() {
					
						public void run() {
							if(event.getBlock().getType().equals(Material.BEACON)) {
								event.getBlock().setType(Material.AIR);
								p.sendMessage(ChatColor.RED + "Cancelled, action longer than 100 Ticks.");
							}
							
						}
						
					}, 100L);
					
					getConfig().set(p.getName().toLowerCase() + ".mode", Boolean.valueOf(true));
					p.sendMessage(ChatColor.RED + "Right click the " + ChatColor.BLUE + "'Beacon'" + ChatColor.RED +  " again to place!");
					return;
				}else {
					p.sendMessage(ChatColor.RED + "Placement cancelled, isInside block.");
				}
			}
		
		}else {
			event.setCancelled(true);
		}
	}