Update home count to include the bed home if set, this does not prevent people from setting a bed home if they are at max.

This commit is contained in:
KHobbits 2012-05-07 00:05:02 +01:00
parent 78cd64c388
commit 9b731cc39c
2 changed files with 17 additions and 3 deletions

View File

@ -4,6 +4,7 @@ import static com.earth2me.essentials.I18n._;
import java.io.File;
import java.util.*;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.entity.Player;
import org.bukkit.inventory.ItemStack;
@ -149,6 +150,17 @@ public abstract class UserData extends PlayerExtension implements IConf
return new ArrayList<String>(homes.keySet());
}
public int getHomeCount()
{
int count = getHomes().size();
Location bed = getBedSpawnLocation();
if (bed != null && bed.getBlock().getType() == Material.BED_BLOCK)
{
count++;
}
return count;
}
public void setHome(String name, Location loc)
{
//Invalid names will corrupt the yaml

View File

@ -29,10 +29,11 @@ public class Commandsethome extends EssentialsCommand
{
if (user.isAuthorized("essentials.sethome.multiple"))
{
if ("bed".equals(args[0].toLowerCase(Locale.ENGLISH))) {
if ("bed".equals(args[0].toLowerCase(Locale.ENGLISH)))
{
throw new NotEnoughArgumentsException();
}
if ((user.isAuthorized("essentials.sethome.multiple.unlimited")) || (user.getHomes().size() < ess.getSettings().getHomeLimit(user))
if ((user.isAuthorized("essentials.sethome.multiple.unlimited")) || (user.getHomeCount() < ess.getSettings().getHomeLimit(user))
|| (user.getHomes().contains(args[0].toLowerCase(Locale.ENGLISH))))
{
user.setHome(args[0].toLowerCase(Locale.ENGLISH));
@ -66,7 +67,8 @@ public class Commandsethome extends EssentialsCommand
{
name = "home";
}
if ("bed".equals(name.toLowerCase(Locale.ENGLISH))) {
if ("bed".equals(name.toLowerCase(Locale.ENGLISH)))
{
throw new NotEnoughArgumentsException();
}
usersHome.setHome(name, user.getLocation());