[Fix] Stacked mobs count towards spawnmob-limit count.

This commit is contained in:
KHobbits 2013-04-30 01:03:37 +01:00
parent 7913cfdb3c
commit 9d2358ed4d

View file

@ -106,16 +106,27 @@ public class SpawnMob
{ {
final Location sloc = Util.getSafeDestination(loc); final Location sloc = Util.getSafeDestination(loc);
for(int i = 0; i < parts.size(); i++) for (int i = 0; i < parts.size(); i++)
{ {
Mob mob = Mob.fromName(parts.get(i)); Mob mob = Mob.fromName(parts.get(i));
checkSpawnable(ess, sender, mob); checkSpawnable(ess, sender, mob);
} }
int serverLimit = ess.getSettings().getSpawnMobLimit(); final int serverLimit = ess.getSettings().getSpawnMobLimit();
if (mobCount > serverLimit) int effectiveLimit = serverLimit / parts.size();
if (effectiveLimit < 1)
{ {
mobCount = serverLimit; effectiveLimit = 1;
while (parts.size() > serverLimit)
{
parts.remove(serverLimit);
}
}
if (mobCount > effectiveLimit)
{
mobCount = effectiveLimit;
sender.sendMessage(_("mobSpawnLimit")); sender.sendMessage(_("mobSpawnLimit"));
} }
@ -126,7 +137,7 @@ public class SpawnMob
{ {
spawnMob(ess, server, sender, target, sloc, parts, data); spawnMob(ess, server, sender, target, sloc, parts, data);
} }
sender.sendMessage(mobCount + " " + mob.name.toLowerCase(Locale.ENGLISH) + mob.suffix + " " + _("spawned")); sender.sendMessage(mobCount * parts.size() + " " + mob.name.toLowerCase(Locale.ENGLISH) + mob.suffix + " " + _("spawned"));
} }
catch (MobException e1) catch (MobException e1)
{ {