Merge branch 'master' of github.com:essentials/Essentials

This commit is contained in:
KHobbits 2011-11-27 01:15:39 +00:00
commit 68297b5cf8
18 changed files with 112 additions and 105 deletions

View file

@ -178,7 +178,6 @@ public class Essentials extends JavaPlugin implements IEssentials
pm.registerEvent(Type.PLAYER_MOVE, playerListener, Priority.High, this); pm.registerEvent(Type.PLAYER_MOVE, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_LOGIN, playerListener, Priority.High, this); pm.registerEvent(Type.PLAYER_LOGIN, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_TELEPORT, playerListener, Priority.High, this); pm.registerEvent(Type.PLAYER_TELEPORT, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_INTERACT, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_EGG_THROW, playerListener, Priority.High, this); pm.registerEvent(Type.PLAYER_EGG_THROW, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_BUCKET_EMPTY, playerListener, Priority.High, this); pm.registerEvent(Type.PLAYER_BUCKET_EMPTY, playerListener, Priority.High, this);
pm.registerEvent(Type.PLAYER_ANIMATION, playerListener, Priority.High, this); pm.registerEvent(Type.PLAYER_ANIMATION, playerListener, Priority.High, this);

View file

@ -231,12 +231,12 @@ public class EssentialsPlayerListener extends PlayerListener
private void updateCompass(final User user) private void updateCompass(final User user)
{ {
try Location loc = user.getHome(user.getLocation());
{ if (loc == null) {
user.setCompassTarget(user.getHome(user.getLocation())); loc = user.getBedSpawnLocation();
} }
catch (Exception ex) if (loc != null) {
{ user.setCompassTarget(loc);
} }
} }
@ -255,32 +255,6 @@ public class EssentialsPlayerListener extends PlayerListener
updateCompass(user); updateCompass(user);
} }
@Override
public void onPlayerInteract(final PlayerInteractEvent event)
{
if (event.isCancelled())
{
return;
}
if (event.getAction() != Action.RIGHT_CLICK_BLOCK)
{
return;
}
if (ess.getSettings().getBedSetsHome() && event.getClickedBlock().getType() == Material.BED_BLOCK)
{
try
{
final User user = ess.getUser(event.getPlayer());
user.setHome();
user.sendMessage(_("homeSetToBed"));
}
catch (Throwable ex)
{
}
}
}
@Override @Override
public void onPlayerEggThrow(final PlayerEggThrowEvent event) public void onPlayerEggThrow(final PlayerEggThrowEvent event)
{ {
@ -387,7 +361,7 @@ public class EssentialsPlayerListener extends PlayerListener
} }
@Override @Override
public void onPlayerChangedWorld(PlayerChangedWorldEvent event) public void onPlayerChangedWorld(final PlayerChangedWorldEvent event)
{ {
if (ess.getSettings().getNoGodWorlds().contains(event.getPlayer().getLocation().getWorld().getName())) { if (ess.getSettings().getNoGodWorlds().contains(event.getPlayer().getLocation().getWorld().getName())) {
User user = ess.getUser(event.getPlayer()); User user = ess.getUser(event.getPlayer());
@ -395,5 +369,5 @@ public class EssentialsPlayerListener extends PlayerListener
user.sendMessage(_("noGodWorldWarning")); user.sendMessage(_("noGodWorldWarning"));
} }
} }
} }
} }

View file

@ -21,8 +21,6 @@ public interface ISettings extends IConf
long getBackupInterval(); long getBackupInterval();
boolean getBedSetsHome();
String getChatFormat(String group); String getChatFormat(String group);
int getChatRadius(); int getChatRadius();

View file

@ -36,12 +36,6 @@ public class Settings implements ISettings
return config.getBoolean("respawn-at-home", false); return config.getBoolean("respawn-at-home", false);
} }
@Override
public boolean getBedSetsHome()
{
return config.getBoolean("bed-sethome", false);
}
@Override @Override
public List<String> getMultipleHomes() public List<String> getMultipleHomes()
{ {

View file

@ -130,27 +130,32 @@ public abstract class UserData extends PlayerExtension implements IConf
return loc; return loc;
} }
public Location getHome(Location world) throws Exception public Location getHome(final Location world)
{ {
Location loc; try
for (String home : getHomes())
{ {
loc = config.getLocation("homes." + home, getServer()); Location loc;
if (world.getWorld() == loc.getWorld()) for (String home : getHomes())
{ {
return loc; loc = config.getLocation("homes." + home, getServer());
} if (world.getWorld() == loc.getWorld())
{
return loc;
}
}
loc = config.getLocation("homes." + getHomes().get(0), getServer());
return loc;
}
catch (Exception ex)
{
return null;
} }
loc = config.getLocation("homes." + getHomes().get(0), getServer());
return loc;
} }
public List<String> getHomes() public List<String> getHomes()
{ {
List<String> list = new ArrayList(homes.keySet()); return new ArrayList(homes.keySet());
return list;
} }
public void setHome(String name, Location loc) public void setHome(String name, Location loc)

View file

@ -6,6 +6,7 @@ import com.earth2me.essentials.User;
import com.earth2me.essentials.Util; import com.earth2me.essentials.Util;
import java.util.List; import java.util.List;
import java.util.Locale; import java.util.Locale;
import org.bukkit.Location;
import org.bukkit.Server; import org.bukkit.Server;
@ -42,14 +43,32 @@ public class Commandhome extends EssentialsCommand
} }
try try
{ {
if ("bed".equalsIgnoreCase(homeName)) {
final Location bed = player.getBedSpawnLocation();
if (bed != null)
{
user.getTeleport().teleport(bed, charge);
}
}
user.getTeleport().home(player, homeName.toLowerCase(Locale.ENGLISH), charge); user.getTeleport().home(player, homeName.toLowerCase(Locale.ENGLISH), charge);
} }
catch (NotEnoughArgumentsException e) catch (NotEnoughArgumentsException e)
{ {
final List<String> homes = player.getHomes(); final List<String> homes = player.getHomes();
if (homes.isEmpty() && player.equals(user) && ess.getSettings().spawnIfNoHome()) if (homes.isEmpty() && player.equals(user))
{ {
user.getTeleport().respawn(ess.getSpawn(), charge); final Location loc = player.getBedSpawnLocation();
if (loc == null)
{
if (ess.getSettings().spawnIfNoHome())
{
user.getTeleport().respawn(ess.getSpawn(), charge);
}
}
else
{
user.getTeleport().teleport(loc, charge);
}
} }
else if (homes.isEmpty()) else if (homes.isEmpty())
{ {
@ -61,6 +80,7 @@ public class Commandhome extends EssentialsCommand
} }
else else
{ {
homes.add("bed");
user.sendMessage(_("homes", Util.joinList(homes))); user.sendMessage(_("homes", Util.joinList(homes)));
} }
} }

View file

@ -3,7 +3,6 @@ package com.earth2me.essentials.commands;
import static com.earth2me.essentials.I18n._; import static com.earth2me.essentials.I18n._;
import com.earth2me.essentials.User; import com.earth2me.essentials.User;
import java.util.*; import java.util.*;
import org.bukkit.ChatColor;
import org.bukkit.Server; import org.bukkit.Server;
import org.bukkit.command.CommandSender; import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player; import org.bukkit.entity.Player;
@ -39,16 +38,15 @@ public class Commandlist extends EssentialsCommand
playerHidden++; playerHidden++;
} }
} }
//TODO: move these to messages file
final StringBuilder online = new StringBuilder(); String online;
online.append(ChatColor.BLUE).append("There are ").append(ChatColor.RED).append(server.getOnlinePlayers().length - playerHidden);
if (showhidden && playerHidden > 0) if (showhidden && playerHidden > 0)
{ {
online.append(ChatColor.GRAY).append("/").append(playerHidden); online = _("listAmountHidden", server.getOnlinePlayers().length - playerHidden, playerHidden, server.getMaxPlayers());
} else {
online = _("listAmount",server.getOnlinePlayers().length - playerHidden, server.getMaxPlayers());
} }
online.append(ChatColor.BLUE).append(" out of a maximum ").append(ChatColor.RED).append(server.getMaxPlayers()); sender.sendMessage(online);
online.append(ChatColor.BLUE).append(" players online.");
sender.sendMessage(online.toString());
if (ess.getSettings().getSortListByGroups()) if (ess.getSettings().getSortListByGroups())
{ {
@ -90,11 +88,11 @@ public class Commandlist extends EssentialsCommand
} }
if (user.isAfk()) if (user.isAfk())
{ {
groupString.append("§7[AFK]§f"); groupString.append(_("listAfkTag"));
} }
if (user.isHidden()) if (user.isHidden())
{ {
groupString.append("§7[HIDDEN]§f"); groupString.append(_("listHiddenTag"));
} }
groupString.append(user.getDisplayName()); groupString.append(user.getDisplayName());
groupString.append("§f"); groupString.append("§f");
@ -131,11 +129,11 @@ public class Commandlist extends EssentialsCommand
} }
if (user.isAfk()) if (user.isAfk())
{ {
onlineUsers.append("§7[AFK]§f"); onlineUsers.append(_("listAfkTag"));
} }
if (user.isHidden()) if (user.isHidden())
{ {
onlineUsers.append("§7[HIDDEN]§f"); onlineUsers.append(_("listHiddenTag"));
} }
onlineUsers.append(user.getDisplayName()); onlineUsers.append(user.getDisplayName());
onlineUsers.append("§f"); onlineUsers.append("§f");

View file

@ -47,6 +47,10 @@ public abstract class EssentialsCommand implements IEssentialsCommand
{ {
throw new NotEnoughArgumentsException(); throw new NotEnoughArgumentsException();
} }
if (args[pos].isEmpty())
{
throw new NoSuchFieldException(_("playerNotFound"));
}
final User user = ess.getUser(args[pos]); final User user = ess.getUser(args[pos]);
if (user != null) if (user != null)
{ {

View file

@ -236,15 +236,11 @@ no-god-in-worlds:
# +------------------------------------------------------+ # # +------------------------------------------------------+ #
############################################################ ############################################################
# When users die, should they respawn at their homes, instead of the spawnpoint? # When users die, should they respawn at their first home, instead of the spawnpoint or bed?
respawn-at-home: false respawn-at-home: false
# When a user interacts with a bed, should their home be set to that location? # If no home is set send you to bed or spawn when /home is used
# If you enable this and remove default user access to the /sethome command, you can make beds the only way for players to set their home location. spawn-if-no-home: true
bed-sethome: false
# If no home is set send you to spawn when /home is used
spawn-if-no-home: false
# Allow players to have multiple homes. # Allow players to have multiple homes.
# Define different amounts of multiple homes for different permissions, e.g. essentials.sethome.multiple.vip # Define different amounts of multiple homes for different permissions, e.g. essentials.sethome.multiple.vip

View file

@ -153,6 +153,10 @@ kitTimed=\u00a7cYou can''t use that kit again for another {0}.
kits=\u00a77Kits: {0} kits=\u00a77Kits: {0}
lightningSmited=\u00a77You have just been smited lightningSmited=\u00a77You have just been smited
lightningUse=\u00a77Smiting {0} lightningUse=\u00a77Smiting {0}
listAfkTag = \u00a77[AFK]\u00a7f
listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 players online.
listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
listHiddenTag = \u00a77[HIDDEN]\u00a7f
loadWarpError=Failed to load warp {0} loadWarpError=Failed to load warp {0}
loadinfo=Loaded {0} build {1} by: {2} loadinfo=Loaded {0} build {1} by: {2}
localFormat=Local: <{0}> {1} localFormat=Local: <{0}> {1}

View file

@ -153,6 +153,10 @@ kitTimed=\u00a7cDu kan ikke den pakke igen f\u00f8r om {0}.
kits=\u00a77Pakker: {0} kits=\u00a77Pakker: {0}
lightningSmited=\u00a77Du er blevet sl\u00e5et lightningSmited=\u00a77Du er blevet sl\u00e5et
lightningUse=\u00a77Sl\u00e5r {0} lightningUse=\u00a77Sl\u00e5r {0}
listAfkTag = \u00a77[AFK]\u00a7f
listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 players online.
listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
listHiddenTag = \u00a77[HIDDEN]\u00a7f
loadWarpError=Kunne ikke indl\u00e6se warp {0} loadWarpError=Kunne ikke indl\u00e6se warp {0}
loadinfo=Indl\u00e6ste {0} byg {1} af {2} loadinfo=Indl\u00e6ste {0} byg {1} af {2}
localFormat=Lokal: <{0}> {1} localFormat=Lokal: <{0}> {1}

View file

@ -153,6 +153,10 @@ kitTimed=\u00a7cDu kannst diese Ausr\u00fcstung nicht innerhalb von {0} anforder
kits=\u00a77Ausr\u00fcstungen: {0} kits=\u00a77Ausr\u00fcstungen: {0}
lightningSmited=\u00a77Du wurdest gepeinigt. lightningSmited=\u00a77Du wurdest gepeinigt.
lightningUse=\u00a77Peinige {0} lightningUse=\u00a77Peinige {0}
listAfkTag = \u00a77[Inaktiv]\u00a7f
listAmount = \u00a79Es sind \u00a7c{0}\u00a79 von maximal \u00a7c{1}\u00a79 Spielern online.
listAmountHidden = \u00a79Es sind \u00a7c{0}\u00a77/{1}\u00a79 von maximal \u00a7c{2}\u00a79 Spielern online.
listHiddenTag = \u00a77[Versteckt]\u00a7f
loadWarpError=Fehler beim Laden von Warp-Punkt {0} loadWarpError=Fehler beim Laden von Warp-Punkt {0}
loadinfo=Plugin {0} Version {1} geladen, erstellt von {2}, \u00fcbersetzt von snowleo loadinfo=Plugin {0} Version {1} geladen, erstellt von {2}, \u00fcbersetzt von snowleo
localFormat=Lokal: <{0}> {1} localFormat=Lokal: <{0}> {1}

View file

@ -153,6 +153,10 @@ kitTimed=\u00a7cYou can''t use that kit again for another {0}.
kits=\u00a77Kits: {0} kits=\u00a77Kits: {0}
lightningSmited=\u00a77You have just been smited lightningSmited=\u00a77You have just been smited
lightningUse=\u00a77Smiting {0} lightningUse=\u00a77Smiting {0}
listAfkTag = \u00a77[AFK]\u00a7f
listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 players online.
listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
listHiddenTag = \u00a77[HIDDEN]\u00a7f
loadWarpError=Failed to load warp {0} loadWarpError=Failed to load warp {0}
loadinfo=Loaded {0} build {1} by: {2} loadinfo=Loaded {0} build {1} by: {2}
localFormat=Local: <{0}> {1} localFormat=Local: <{0}> {1}

View file

@ -153,6 +153,10 @@ kitTimed=\u00a7c No puedes usar ese kit de nuevo para otro{0}.
kits=\u00a77Kits: {0} kits=\u00a77Kits: {0}
lightningSmited=\u00a77Acabas de ser golpeado lightningSmited=\u00a77Acabas de ser golpeado
lightningUse=\u00a77Golpeando a {0} lightningUse=\u00a77Golpeando a {0}
listAfkTag = \u00a77[AFK]\u00a7f
listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 players online.
listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
listHiddenTag = \u00a77[HIDDEN]\u00a7f
loadWarpError=Error al cargar el tenetransporte {0} loadWarpError=Error al cargar el tenetransporte {0}
loadinfo=Cargado {0}, construido {1} por: {2} loadinfo=Cargado {0}, construido {1} por: {2}
localFormat=Local: <{0}> {1} localFormat=Local: <{0}> {1}

View file

@ -153,6 +153,10 @@ kitTimed=\u00a7cVous ne pouvez pas utiliser ce kit pendant encore {0}.
kits=\u00a77Kits:{0} kits=\u00a77Kits:{0}
lightningSmited=\u00a77Vous venez d''\u00eatre foudroy\u00e9 lightningSmited=\u00a77Vous venez d''\u00eatre foudroy\u00e9
lightningUse=\u00a77{0} a \u00e9t\u00e9 foudroy\u00e9 lightningUse=\u00a77{0} a \u00e9t\u00e9 foudroy\u00e9
listAfkTag = \u00a77[AFK]\u00a7f
listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 players online.
listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
listHiddenTag = \u00a77[HIDDEN]\u00a7f
loadWarpError=\u00c9chec du chargement du warp {0} loadWarpError=\u00c9chec du chargement du warp {0}
loadinfo={0} version {1} par {2} a \u00e9t\u00e9 charg\u00e9 loadinfo={0} version {1} par {2} a \u00e9t\u00e9 charg\u00e9
localFormat=Local:<{0}> {1} localFormat=Local:<{0}> {1}

View file

@ -153,6 +153,10 @@ kitTimed=\u00a7cJe kan die kit pas weer gebruiken over {0}.
kits=\u00a77Kits: {0} kits=\u00a77Kits: {0}
lightningSmited=\u00a77Je bent zojuist verbrand lightningSmited=\u00a77Je bent zojuist verbrand
lightningUse=\u00a77Brand {0} lightningUse=\u00a77Brand {0}
listAfkTag = \u00a77[AFK]\u00a7f
listAmount = \u00a79There are \u00a7c{0}\u00a79 out of maximum \u00a7c{1}\u00a79 players online.
listAmountHidden = \u00a79There are \u00a7c{0}\u00a77/{1}\u00a79 out of maximum \u00a7c{2}\u00a79 players online.
listHiddenTag = \u00a77[HIDDEN]\u00a7f
loadWarpError=Fout bij het laden van warp {0} loadWarpError=Fout bij het laden van warp {0}
loadinfo=Build {1} geladen {0} van {2} loadinfo=Build {1} geladen {0} van {2}
localFormat=Local: <{0}> {1} localFormat=Local: <{0}> {1}

View file

@ -54,21 +54,15 @@ public class UserTest extends TestCase
user.setHome(); user.setHome();
OfflinePlayer base2 = server.createPlayer(base1.getName(), ess); OfflinePlayer base2 = server.createPlayer(base1.getName(), ess);
User user2 = ess.getUser(base2); User user2 = ess.getUser(base2);
try
{
Location home = user2.getHome(loc);
assertEquals(loc.getWorld().getName(), home.getWorld().getName());
assertEquals(loc.getX(), home.getX());
assertEquals(loc.getY(), home.getY());
assertEquals(loc.getZ(), home.getZ());
assertEquals(loc.getYaw(), home.getYaw());
assertEquals(loc.getPitch(), home.getPitch());
}
catch (Exception ex)
{
fail("Exception");
}
Location home = user2.getHome(loc);
assertNotNull(home);
assertEquals(loc.getWorld().getName(), home.getWorld().getName());
assertEquals(loc.getX(), home.getX());
assertEquals(loc.getY(), home.getY());
assertEquals(loc.getZ(), home.getZ());
assertEquals(loc.getYaw(), home.getYaw());
assertEquals(loc.getPitch(), home.getPitch());
} }
public void testMoney() public void testMoney()

View file

@ -15,8 +15,9 @@ public class EssentialsSpawnPlayerListener extends PlayerListener
{ {
private final transient IEssentials ess; private final transient IEssentials ess;
public EssentialsSpawnPlayerListener(IEssentials ess) public EssentialsSpawnPlayerListener(final IEssentials ess)
{ {
super();
this.ess = ess; this.ess = ess;
} }
@ -25,28 +26,24 @@ public class EssentialsSpawnPlayerListener extends PlayerListener
{ {
final User user = ess.getUser(event.getPlayer()); final User user = ess.getUser(event.getPlayer());
try if (ess.getSettings().getRespawnAtHome())
{ {
if (ess.getSettings().getRespawnAtHome()) Location home = user.getHome(user.getLocation());
if (home == null)
{
home = user.getBedSpawnLocation();
}
if (home != null)
{ {
Location home = user.getHome(user.getLocation());
if (home == null)
{
throw new Exception();
}
event.setRespawnLocation(home); event.setRespawnLocation(home);
return; return;
} }
} }
catch (Throwable ex) final Location spawn = ess.getSpawn().getSpawn(user.getGroup());
if (spawn != null)
{ {
event.setRespawnLocation(spawn);
} }
Location spawn = ess.getSpawn().getSpawn(user.getGroup());
if (spawn == null)
{
return;
}
event.setRespawnLocation(spawn);
} }
@Override @Override
@ -54,7 +51,7 @@ public class EssentialsSpawnPlayerListener extends PlayerListener
{ {
final User user = ess.getUser(event.getPlayer()); final User user = ess.getUser(event.getPlayer());
if (!user.isNew()) if (!user.isNew() || user.getBedSpawnLocation() != null)
{ {
return; return;
} }