From 70387f73f698feff2bd05cd177df054561e99ada Mon Sep 17 00:00:00 2001 From: Joseph Hirschfeld Date: Sun, 1 Apr 2018 22:37:19 -0400 Subject: [PATCH] [Feature] Add config optn. to disable jail free tp Adds the teleport-back-when-freed-from-jail configuration option. When set to true (default), as with previous versions will teleport the player which was jailed back to their previous position when freed. When false, Essentials will not teleport the player anywhere, leaving them where they are. Closes #1947 --- .../src/com/earth2me/essentials/ISettings.java | 2 ++ Essentials/src/com/earth2me/essentials/Settings.java | 12 ++++++++++++ Essentials/src/com/earth2me/essentials/User.java | 12 +++++++----- Essentials/src/config.yml | 3 +++ 4 files changed, 24 insertions(+), 5 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/ISettings.java b/Essentials/src/com/earth2me/essentials/ISettings.java index 367b4dbae..45d5eb7c1 100644 --- a/Essentials/src/com/earth2me/essentials/ISettings.java +++ b/Essentials/src/com/earth2me/essentials/ISettings.java @@ -306,4 +306,6 @@ public interface ISettings extends IConf { List getDefaultEnabledConfirmCommands(); boolean isConfirmCommandEnabledByDefault(String commandName); + + boolean isTeleportBackWhenFreedFromJail(); } diff --git a/Essentials/src/com/earth2me/essentials/Settings.java b/Essentials/src/com/earth2me/essentials/Settings.java index 56b4e50d5..9cf493782 100644 --- a/Essentials/src/com/earth2me/essentials/Settings.java +++ b/Essentials/src/com/earth2me/essentials/Settings.java @@ -533,6 +533,7 @@ public class Settings implements net.ess3.api.ISettings { currencyFormat = _getCurrencyFormat(); unprotectedSigns = _getUnprotectedSign(); defaultEnabledConfirmCommands = _getDefaultEnabledConfirmCommands(); + teleportBackWhenFreedFromJail = _isTeleportBackWhenFreedFromJail(); } private List itemSpawnBl = new ArrayList(); @@ -1439,4 +1440,15 @@ public class Settings implements net.ess3.api.ISettings { public boolean isConfirmCommandEnabledByDefault(String commandName) { return getDefaultEnabledConfirmCommands().contains(commandName.toLowerCase()); } + + private boolean teleportBackWhenFreedFromJail; + + private boolean _isTeleportBackWhenFreedFromJail() { + return config.getBoolean("teleport-back-when-freed-from-jail", true); + } + + @Override + public boolean isTeleportBackWhenFreedFromJail() { + return teleportBackWhenFreedFromJail; + } } diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index f6f502b17..07836a194 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -514,12 +514,14 @@ public class User extends UserData implements Comparable, IMessageRecipien setJailed(false); sendMessage(tl("haveBeenReleased")); setJail(null); - try { - getTeleport().back(); - } catch (Exception ex) { + if (ess.getSettings().isTeleportBackWhenFreedFromJail()) { try { - getTeleport().respawn(null, TeleportCause.PLUGIN); - } catch (Exception ex1) { + getTeleport().back(); + } catch (Exception ex) { + try { + getTeleport().respawn(null, TeleportCause.PLUGIN); + } catch (Exception ex1) { + } } } return true; diff --git a/Essentials/src/config.yml b/Essentials/src/config.yml index 28fcf6ca1..91b557388 100644 --- a/Essentials/src/config.yml +++ b/Essentials/src/config.yml @@ -522,6 +522,9 @@ default-enabled-confirm-commands: #- pay #- clearinventory +# Whether or not to teleport a player back to their previous position after they have been freed from jail. +teleport-back-when-freed-from-jail: true + ############################################################ # +------------------------------------------------------+ # # | EssentialsHome | #