diff --git a/Essentials/src/main/java/com/earth2me/essentials/ISettings.java b/Essentials/src/main/java/com/earth2me/essentials/ISettings.java index 8db783517..8cc8c0298 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/main/java/com/earth2me/essentials/ISettings.java @@ -379,6 +379,8 @@ public interface ISettings extends IConf { boolean infoAfterDeath(); + boolean isRespawnAtBed(); + enum KeepInvPolicy { KEEP, DELETE, diff --git a/Essentials/src/main/java/com/earth2me/essentials/Settings.java b/Essentials/src/main/java/com/earth2me/essentials/Settings.java index 7dc88601c..1b6da2dca 100644 --- a/Essentials/src/main/java/com/earth2me/essentials/Settings.java +++ b/Essentials/src/main/java/com/earth2me/essentials/Settings.java @@ -1722,4 +1722,9 @@ public class Settings implements net.ess3.api.ISettings { public boolean infoAfterDeath() { return config.getBoolean("send-info-after-death", false); } + + @Override + public boolean isRespawnAtBed() { + return config.getBoolean("respawn-at-home-bed", true); + } } diff --git a/EssentialsSpawn/src/main/java/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java b/EssentialsSpawn/src/main/java/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java index be0619f09..fbe672f8a 100644 --- a/EssentialsSpawn/src/main/java/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java +++ b/EssentialsSpawn/src/main/java/com/earth2me/essentials/spawn/EssentialsSpawnPlayerListener.java @@ -47,12 +47,19 @@ class EssentialsSpawnPlayerListener implements Listener { if (ess.getSettings().getRespawnAtHome()) { final Location home; - final Location bed = user.getBase().getBedSpawnLocation(); // cannot nuke this sync load due to the event being sync so it would hand either way. + + Location bed = null; + if (ess.getSettings().isRespawnAtBed()) { + // cannot nuke this sync load due to the event being sync so it would hand either way + bed = user.getBase().getBedSpawnLocation(); + } + if (bed != null) { home = bed; } else { home = user.getHome(user.getLocation()); } + if (home != null) { event.setRespawnLocation(home); return;