wifi соединение)
есть класс Input там можно отследить, смотри примеры в поиске на слово Input. Также есть событие PlayerInteractEvent, к которому лучше привязаться для отслеживания ПКМ. Но можно и через Input. Shift будет блокировать взаимодействие с блоком чтобы не открылось GUI, это плюс. Но если вдруг тебе надо будет другую комбинацию ты рискуешь попасть в сложную ситуацию которую решать придётся по другому.
и вроде ещё были bind клавиши, то есть можно сделать свою привязку через мод.
По поводу самой связки, тут слишком много вариантов. Начни с того что заноси им в TileEntity, координаты другого блока и сам TileEntity другого блока. Но проверяй его каждый раз на null, потому что при загрузке карты, он потеряется и ты по координатам...