diff --git a/src/main/java/com/minecolonies/core/colony/buildings/AbstractBuilding.java b/src/main/java/com/minecolonies/core/colony/buildings/AbstractBuilding.java index 17cdb10d61a..ecacaa3f5d2 100755 --- a/src/main/java/com/minecolonies/core/colony/buildings/AbstractBuilding.java +++ b/src/main/java/com/minecolonies/core/colony/buildings/AbstractBuilding.java @@ -84,8 +84,6 @@ import java.util.function.Predicate; import java.util.stream.Collectors; -import static com.minecolonies.api.colony.requestsystem.requestable.deliveryman.AbstractDeliverymanRequestable.MAX_BUILDING_PRIORITY; -import static com.minecolonies.api.colony.requestsystem.requestable.deliveryman.AbstractDeliverymanRequestable.getPlayerActionPriority; import static com.minecolonies.api.util.constant.BuildingConstants.CONST_DEFAULT_MAX_BUILDING_LEVEL; import static com.minecolonies.api.util.constant.BuildingConstants.NO_WORK_ORDER; import static com.minecolonies.api.util.constant.Constants.MOD_ID; @@ -1897,10 +1895,21 @@ public final ImmutableCollection> getResolvers() final IStandardRequestManager requestManager = (IStandardRequestManager) colony.getRequestManager(); if (!requestManager.getProviderHandler().getRegisteredResolvers(this).isEmpty()) { - return ImmutableList.copyOf(requestManager.getProviderHandler().getRegisteredResolvers(this) - .stream() - .map(token -> requestManager.getResolverHandler().getResolver(token)) - .collect(Collectors.toList())); + List> list = new ArrayList<>(); + for (Iterator> iterator = requestManager.getProviderHandler().getRegisteredResolvers(this).iterator(); iterator.hasNext(); ) + { + final IToken token = iterator.next(); + try + { + IRequestResolver resolver = requestManager.getResolverHandler().getResolver(token); + list.add(resolver); + } + catch (Exception e) + { + iterator.remove(); + } + } + return ImmutableList.copyOf(list); } return createResolvers(); diff --git a/src/main/java/com/minecolonies/core/event/EventHandler.java b/src/main/java/com/minecolonies/core/event/EventHandler.java index 968c1eaba8f..8a7061df56d 100755 --- a/src/main/java/com/minecolonies/core/event/EventHandler.java +++ b/src/main/java/com/minecolonies/core/event/EventHandler.java @@ -601,14 +601,14 @@ public static void onBlockBreak(@NotNull final BlockEvent.BreakEvent event) if (event.getState().getBlock() instanceof SpawnerBlock) { final BlockEntity spawner = event.getLevel().getBlockEntity(event.getPos()); - if (spawner instanceof SpawnerBlockEntity) + if (spawner instanceof SpawnerBlockEntity spawnerBE && spawnerBE.getSpawner().nextSpawnData != null) { final IColony colony = IColonyManager.getInstance() - .getColonyByDimension(((SpawnerBlockEntity) spawner).getSpawner().nextSpawnData.getEntityToSpawn().getInt(TAG_COLONY_ID), + .getColonyByDimension(spawnerBE.getSpawner().nextSpawnData.getEntityToSpawn().getInt(TAG_COLONY_ID), world.dimension()); if (colony != null) { - colony.getEventManager().onTileEntityBreak(((SpawnerBlockEntity) spawner).getSpawner().nextSpawnData.getEntityToSpawn().getInt(TAG_EVENT_ID), spawner); + colony.getEventManager().onTileEntityBreak(spawnerBE.getSpawner().nextSpawnData.getEntityToSpawn().getInt(TAG_EVENT_ID), spawner); } } } diff --git a/src/main/java/com/minecolonies/core/network/messages/client/colony/PlaySoundForCitizenMessage.java b/src/main/java/com/minecolonies/core/network/messages/client/colony/PlaySoundForCitizenMessage.java index 8c4d959f51c..c06fd1eb9f6 100644 --- a/src/main/java/com/minecolonies/core/network/messages/client/colony/PlaySoundForCitizenMessage.java +++ b/src/main/java/com/minecolonies/core/network/messages/client/colony/PlaySoundForCitizenMessage.java @@ -150,7 +150,7 @@ public PlaySoundForCitizenMessage(final int entityID, final SoundEvent event, fi @Override public void toBytes(final FriendlyByteBuf buf) { - buf.writeResourceLocation(ForgeRegistries.SOUND_EVENTS.getKey(this.soundEvent)); + buf.writeResourceLocation(this.soundEvent.getLocation()); buf.writeInt(soundSource.ordinal()); buf.writeBlockPos(pos); buf.writeUtf(dimensionID.location().toString());