mirror of
https://github.com/EssentialsX/Essentials.git
synced 2025-01-03 15:08:18 +01:00
[trunk] adding new setting to send a person to spawn if /home is used with no home set
git-svn-id: https://svn.java.net/svn/essentials~svn/trunk@1187 e251c2fe-e539-e718-e476-b85c1f46cddb
This commit is contained in:
parent
b3d6c32b71
commit
dd164d2e38
@ -435,4 +435,9 @@ public class Settings implements IConf
|
||||
}
|
||||
return epBreakList;
|
||||
}
|
||||
|
||||
public Boolean spawnIfNoHome()
|
||||
{
|
||||
return config.getBoolean("spawn-if-no-home", true);
|
||||
}
|
||||
}
|
||||
|
@ -138,10 +138,12 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
public void teleportCooldown(boolean justCheck) throws Exception
|
||||
{
|
||||
long now = Calendar.getInstance().getTimeInMillis();
|
||||
if (lastTeleport > 0) {
|
||||
if (lastTeleport > 0)
|
||||
{
|
||||
long cooldown = Essentials.getSettings().getTeleportCooldown();
|
||||
long left = lastTeleport + cooldown - now;
|
||||
if (left > 0 && !isOp() && !isAuthorized("essentials.teleport.cooldown.bypass")) {
|
||||
if (left > 0 && !isOp() && !isAuthorized("essentials.teleport.cooldown.bypass"))
|
||||
{
|
||||
throw new Exception("Time before next teleport: " + Essentials.FormatTime(left));
|
||||
}
|
||||
}
|
||||
@ -157,10 +159,12 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
public void healCooldown() throws Exception
|
||||
{
|
||||
long now = Calendar.getInstance().getTimeInMillis();
|
||||
if (lastHeal > 0) {
|
||||
if (lastHeal > 0)
|
||||
{
|
||||
long cooldown = Essentials.getSettings().getHealCooldown();
|
||||
long left = lastHeal + cooldown - now;
|
||||
if (left > 0 && !isOp() && !isAuthorized("essentials.heal.cooldown.bypass")) {
|
||||
if (left > 0 && !isOp() && !isAuthorized("essentials.heal.cooldown.bypass"))
|
||||
{
|
||||
throw new Exception("Time before next heal: " + Essentials.FormatTime(left));
|
||||
}
|
||||
}
|
||||
@ -267,10 +271,11 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
load();
|
||||
if (data.containsKey("money"))
|
||||
{
|
||||
if (data.get("money") instanceof Number) {
|
||||
if (data.get("money") instanceof Number)
|
||||
{
|
||||
return ((Number)data.get("money")).doubleValue();
|
||||
}
|
||||
logger.log(Level.SEVERE, "Can't convert money value to double:"+ data.get("money"));
|
||||
logger.log(Level.SEVERE, "Can't convert money value to double:" + data.get("money"));
|
||||
}
|
||||
|
||||
try
|
||||
@ -336,8 +341,9 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
|
||||
public void charge(String cmd) throws Exception
|
||||
{
|
||||
if (isAuthorized("essentials.nocommandcost.all") ||
|
||||
isAuthorized("essentials.nocommandcost."+cmd)) {
|
||||
if (isAuthorized("essentials.nocommandcost.all")
|
||||
|| isAuthorized("essentials.nocommandcost." + cmd))
|
||||
{
|
||||
return;
|
||||
}
|
||||
double mon = getMoney();
|
||||
@ -501,10 +507,12 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
{
|
||||
List<Object> vals = (List<Object>)data.get("home");
|
||||
World world = getServer() == null ? null : getServer().getWorlds().get(0);
|
||||
if (vals.size() > 5 && getServer() != null) {
|
||||
if (vals.size() > 5 && getServer() != null)
|
||||
{
|
||||
world = getServer().getWorld((String)vals.get(5));
|
||||
}
|
||||
if (world == null) {
|
||||
if (world == null)
|
||||
{
|
||||
throw new Exception();
|
||||
}
|
||||
return new Location(
|
||||
@ -521,18 +529,20 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
Map<String, Object> gdata = Essentials.getData(this);
|
||||
List<Object> vals = (List<Object>)gdata.get("home");
|
||||
World world = getServer().getWorlds().get(0);
|
||||
if (vals.size() > 5) {
|
||||
if (vals.size() > 5)
|
||||
{
|
||||
world = getServer().getWorld((String)vals.get(5));
|
||||
}
|
||||
if (world == null) {
|
||||
if (world == null)
|
||||
{
|
||||
throw new Exception();
|
||||
}
|
||||
return new Location(world,
|
||||
((Number)vals.get(0)).doubleValue(),
|
||||
((Number)vals.get(1)).doubleValue(),
|
||||
((Number)vals.get(2)).doubleValue(),
|
||||
((Number)vals.get(3)).floatValue(),
|
||||
((Number)vals.get(4)).floatValue());
|
||||
((Number)vals.get(0)).doubleValue(),
|
||||
((Number)vals.get(1)).doubleValue(),
|
||||
((Number)vals.get(2)).doubleValue(),
|
||||
((Number)vals.get(3)).floatValue(),
|
||||
((Number)vals.get(4)).floatValue());
|
||||
}
|
||||
catch (Throwable ex)
|
||||
{
|
||||
@ -552,10 +562,23 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
}
|
||||
catch (Throwable ex)
|
||||
{
|
||||
if (Essentials.getSettings().spawnIfNoHome())
|
||||
{
|
||||
try
|
||||
{
|
||||
respawn(Essentials.getStatic().spawn, null);
|
||||
return;
|
||||
}
|
||||
catch (Throwable rex)
|
||||
{
|
||||
sendMessage("§cTeleport: " + rex.getMessage());
|
||||
return;
|
||||
}
|
||||
}
|
||||
|
||||
sendMessage("§cTeleport: " + ex.getMessage());
|
||||
return;
|
||||
}
|
||||
|
||||
if (delay <= 0 || isOp() || isAuthorized("essentials.teleport.timer.bypass"))
|
||||
{
|
||||
try
|
||||
@ -573,7 +596,9 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
}
|
||||
|
||||
cancelTeleport();
|
||||
sendMessage("§7Teleportation will commence in " + Essentials.FormatTime(delay) + ". Don't move.");
|
||||
|
||||
sendMessage("§7Teleportation will commence in "
|
||||
+ Essentials.FormatTime(delay) + ". Don't move.");
|
||||
teleTimer = getServer().getScheduler().scheduleSyncRepeatingTask(Essentials.getStatic(), new TeleportTimer(this, delay)
|
||||
{
|
||||
public void DoTeleport()
|
||||
@ -599,6 +624,9 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
public void teleportToHome()
|
||||
{
|
||||
teleportToHome(null);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void teleportToNow(Location loc) throws Exception
|
||||
@ -606,6 +634,9 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
cancelTeleport();
|
||||
lastLocation = getLocation();
|
||||
getBase().teleport(getSafeDestination(loc));
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void teleportToNow(Entity entity)
|
||||
@ -613,51 +644,81 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
cancelTeleport();
|
||||
lastLocation = getLocation();
|
||||
getBase().teleport(entity);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void teleportBack(final String chargeFor)
|
||||
{
|
||||
teleportTo(lastLocation, chargeFor);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void teleportBack()
|
||||
{
|
||||
teleportBack(null);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void dispose()
|
||||
{
|
||||
this.base = new OfflinePlayer(getName());
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void charge(IEssentialsCommand cmd) throws Exception
|
||||
{
|
||||
charge(cmd.getName());
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public boolean getJustPortaled()
|
||||
{
|
||||
return justPortaled;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void setJustPortaled(boolean value)
|
||||
{
|
||||
justPortaled = value;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void setReplyTo(CommandSender user)
|
||||
{
|
||||
replyTo = user;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public CommandSender getReplyTo()
|
||||
{
|
||||
return replyTo;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void setHome()
|
||||
{
|
||||
setHome(getLocation());
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void setHome(Location home)
|
||||
@ -672,91 +733,177 @@ public class User extends PlayerExtension implements Comparable<User>, IReplyTo
|
||||
data.put("home", vals);
|
||||
flush();
|
||||
|
||||
setCompassTarget(home);
|
||||
setCompassTarget(
|
||||
home);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public String getNick()
|
||||
{
|
||||
Essentials ess = Essentials.getStatic();
|
||||
String name = Essentials.getSettings().isCommandDisabled("nick") ? getName() : ess.readNickname(this);
|
||||
if (isOp() && ess.getConfiguration().getString("ops-name-color", "c").matches("^[0-9a-f]$")) {
|
||||
|
||||
|
||||
|
||||
if (isOp() && ess.getConfiguration().getString("ops-name-color", "c").matches("^[0-9a-f]$"))
|
||||
{
|
||||
name = "§" + ess.getConfiguration().getString("ops-name-color", "c") + name + "§f";
|
||||
|
||||
|
||||
|
||||
}
|
||||
return name;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void warpTo(String warp, final String chargeFor) throws Exception
|
||||
{
|
||||
lastLocation = getLocation();
|
||||
Location loc = Essentials.getWarps().getWarp(warp);
|
||||
teleportTo(loc, chargeFor);
|
||||
sendMessage("§7Warping to " + warp + ".");
|
||||
teleportTo(
|
||||
loc, chargeFor);
|
||||
sendMessage(
|
||||
"§7Warping to " + warp + ".");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void warpTo(String string) throws Exception
|
||||
{
|
||||
warpTo(string, null);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void clearNewFlag()
|
||||
{
|
||||
isNew = false;
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public int compareTo(User t) {
|
||||
public int compareTo(User t)
|
||||
{
|
||||
return ChatColor.stripColor(this.getDisplayName()).compareToIgnoreCase(ChatColor.stripColor(t.getDisplayName()));
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public Boolean canSpawnItem(int itemId)
|
||||
{
|
||||
return !Essentials.getSettings().itemSpawnBlacklist().contains(itemId);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public List<Integer> getUnlimited() {
|
||||
if (!data.containsKey("unlimited")) {
|
||||
public List<Integer> getUnlimited()
|
||||
{
|
||||
if (!data.containsKey("unlimited"))
|
||||
{
|
||||
return new ArrayList<Integer>();
|
||||
|
||||
|
||||
|
||||
}
|
||||
return (List<Integer>)data.get("unlimited");
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public boolean hasUnlimited(ItemStack stack) {
|
||||
public boolean hasUnlimited(ItemStack stack)
|
||||
{
|
||||
return getUnlimited().contains(stack.getTypeId());
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
public void setUnlimited(ItemStack stack, boolean state) {
|
||||
public void setUnlimited(ItemStack stack, boolean state)
|
||||
{
|
||||
List<Integer> items = getUnlimited();
|
||||
if (items.contains(stack.getTypeId())) {
|
||||
|
||||
|
||||
|
||||
if (items.contains(stack.getTypeId()))
|
||||
{
|
||||
items.remove(Integer.valueOf(stack.getTypeId()));
|
||||
|
||||
|
||||
|
||||
}
|
||||
if (state) {
|
||||
if (state)
|
||||
{
|
||||
items.add(stack.getTypeId());
|
||||
|
||||
|
||||
|
||||
}
|
||||
data.put("unlimited", items);
|
||||
flush();
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public String getPowertool(ItemStack stack) {
|
||||
if (!data.containsKey("powertools")) {
|
||||
public String getPowertool(ItemStack stack)
|
||||
{
|
||||
if (!data.containsKey("powertools"))
|
||||
{
|
||||
return null;
|
||||
|
||||
|
||||
|
||||
}
|
||||
@SuppressWarnings("unchecked")
|
||||
Map<Integer, String> tools = (Map<Integer, String>)data.get("powertools");
|
||||
|
||||
|
||||
|
||||
return tools.get(stack.getTypeId());
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
public void setPowertool(ItemStack stack, String command) {
|
||||
public void setPowertool(ItemStack stack, String command)
|
||||
{
|
||||
Map<Integer, String> tools = new HashMap<Integer, String>();
|
||||
if (data.containsKey("powertools")) {
|
||||
|
||||
|
||||
|
||||
if (data.containsKey("powertools"))
|
||||
{
|
||||
tools = (Map<Integer, String>)data.get("powertools");
|
||||
|
||||
|
||||
|
||||
}
|
||||
if (command == null || command.trim().isEmpty()) {
|
||||
if (command == null || command.trim().isEmpty())
|
||||
{
|
||||
tools.remove(Integer.valueOf(stack.getTypeId()));
|
||||
|
||||
|
||||
|
||||
return;
|
||||
|
||||
|
||||
|
||||
}
|
||||
tools.put(Integer.valueOf(stack.getTypeId()), command.trim());
|
||||
data.put("powertools", tools);
|
||||
flush();
|
||||
|
||||
}
|
||||
}
|
||||
|
@ -169,7 +169,8 @@ respawn-at-home: false
|
||||
# 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.
|
||||
bed-sethome: false
|
||||
|
||||
|
||||
#if no home is set send you to spawn when /home is used
|
||||
spawn-if-no-home: false
|
||||
|
||||
|
||||
############################################################
|
||||
|
Loading…
Reference in New Issue
Block a user