@SubscribeEvent
public void tickEnd(TickEvent.ClientTickEvent event){
if(event.phase == TickEvent.Phase.END) {
for(int i = 0; i < updatedObjects.size(); i++) {
INeedTickUpdate updatedObject = updatedObjects.get(i).get();
if(updatedObject != null) {
updatedObject.update();
} else {
updatedObjects.remove(i);
i--;
}
}