diff options
Diffstat (limited to 'Minecraft.World/BeaconTileEntity.cpp')
| -rw-r--r-- | Minecraft.World/BeaconTileEntity.cpp | 25 |
1 files changed, 15 insertions, 10 deletions
diff --git a/Minecraft.World/BeaconTileEntity.cpp b/Minecraft.World/BeaconTileEntity.cpp index 9cfb0d67..d80eb906 100644 --- a/Minecraft.World/BeaconTileEntity.cpp +++ b/Minecraft.World/BeaconTileEntity.cpp @@ -80,21 +80,26 @@ void BeaconTileEntity::applyEffects() AABB *bb = AABB::newTemp(x, y, z, x + 1, y + 1, z + 1)->grow(range, range, range); bb->y1 = level->getMaxBuildHeight(); vector<shared_ptr<Entity> > *players = level->getEntitiesOfClass(typeid(Player), bb); - for (AUTO_VAR(it,players->begin()); it != players->end(); ++it) + if ( players ) { - shared_ptr<Player> player = dynamic_pointer_cast<Player>(*it); - player->addEffect(new MobEffectInstance(primaryPower, SharedConstants::TICKS_PER_SECOND * 9, baseAmp, true)); - } + for (auto& it : *players) + { + shared_ptr<Player> player = dynamic_pointer_cast<Player>(it); + if ( player ) + player->addEffect(new MobEffectInstance(primaryPower, SharedConstants::TICKS_PER_SECOND * 9, baseAmp, true)); + } - if (levels >= 4 && primaryPower != secondaryPower && secondaryPower > 0) - { - for (AUTO_VAR(it,players->begin()); it != players->end(); ++it) + if (levels >= 4 && primaryPower != secondaryPower && secondaryPower > 0) { - shared_ptr<Player> player = dynamic_pointer_cast<Player>(*it); - player->addEffect(new MobEffectInstance(secondaryPower, SharedConstants::TICKS_PER_SECOND * 9, 0, true)); + for ( auto& it : *players ) + { + shared_ptr<Player> player = dynamic_pointer_cast<Player>(it); + if ( player ) + player->addEffect(new MobEffectInstance(secondaryPower, SharedConstants::TICKS_PER_SECOND * 9, 0, true)); + } } + delete players; } - delete players; } } |
