From f68fb52af1852c959fe6f23f55764daddbd81d63 Mon Sep 17 00:00:00 2001 From: AgentTroll Date: Sat, 9 Mar 2019 15:39:45 -0800 Subject: [PATCH] Add command to toggle reply player functionality --- .../src/com/earth2me/essentials/IUser.java | 4 ++ .../src/com/earth2me/essentials/UserData.java | 17 +++++++++ .../essentials/commands/Commandrtoggle.java | 37 +++++++++++++++++++ .../messaging/SimpleMessageRecipient.java | 12 +++--- Essentials/src/config.yml | 6 ++- Essentials/src/messages.properties | 4 ++ Essentials/src/plugin.yml | 4 ++ 7 files changed, 77 insertions(+), 7 deletions(-) create mode 100644 Essentials/src/com/earth2me/essentials/commands/Commandrtoggle.java diff --git a/Essentials/src/com/earth2me/essentials/IUser.java b/Essentials/src/com/earth2me/essentials/IUser.java index 66945addc..f9b0c2954 100644 --- a/Essentials/src/com/earth2me/essentials/IUser.java +++ b/Essentials/src/com/earth2me/essentials/IUser.java @@ -184,5 +184,9 @@ public interface IUser { void setPromptingClearConfirm(boolean prompt); + boolean isLastMessageReplyRecipient(); + + void setLastMessageReplyRecipient(boolean enabled); + Map getConfirmingPayments(); } diff --git a/Essentials/src/com/earth2me/essentials/UserData.java b/Essentials/src/com/earth2me/essentials/UserData.java index 7f85223f2..a2cfb1a43 100644 --- a/Essentials/src/com/earth2me/essentials/UserData.java +++ b/Essentials/src/com/earth2me/essentials/UserData.java @@ -93,6 +93,7 @@ public abstract class UserData extends PlayerExtension implements IConf { acceptingPay = _getAcceptingPay(); confirmPay = _getConfirmPay(); confirmClear = _getConfirmClear(); + lastMessageReplyRecipient = _getLastMessageReplyRecipient(); } private BigDecimal money; @@ -957,6 +958,22 @@ public abstract class UserData extends PlayerExtension implements IConf { save(); } + private boolean lastMessageReplyRecipient; + + private boolean _getLastMessageReplyRecipient() { + return config.getBoolean("last-message-reply-recipient", ess.getSettings().isLastMessageReplyRecipient()); + } + + public boolean isLastMessageReplyRecipient() { + return this.lastMessageReplyRecipient; + } + + public void setLastMessageReplyRecipient(boolean enabled) { + this.lastMessageReplyRecipient = enabled; + config.setProperty("last-message-reply-recipient", enabled); + save(); + } + public UUID getConfigUUID() { return config.uuid; } diff --git a/Essentials/src/com/earth2me/essentials/commands/Commandrtoggle.java b/Essentials/src/com/earth2me/essentials/commands/Commandrtoggle.java new file mode 100644 index 000000000..c972f575a --- /dev/null +++ b/Essentials/src/com/earth2me/essentials/commands/Commandrtoggle.java @@ -0,0 +1,37 @@ +package com.earth2me.essentials.commands; + +import com.earth2me.essentials.CommandSource; +import com.earth2me.essentials.User; +import org.bukkit.Server; + +import static com.earth2me.essentials.I18n.tl; + +public class Commandrtoggle extends EssentialsToggleCommand { + public Commandrtoggle() { + super("rtoggle", "essentials.rtoggle.others"); + } + + @Override + public void run(Server server, User user, String commandLabel, String[] args) throws Exception { + handleToggleWithArgs(server, user, args); + } + + @Override + public void run(Server server, CommandSource sender, String commandLabel, String[] args) throws Exception { + toggleOtherPlayers(server, sender, args); + } + + @Override + void togglePlayer(CommandSource sender, User user, Boolean enabled) throws NotEnoughArgumentsException { + if (enabled == null) { + enabled = !user.isLastMessageReplyRecipient(); + } + + user.setLastMessageReplyRecipient(enabled); + + user.sendMessage(!enabled ? tl("replyLastRecipientDisabled") : tl("replyLastRecipientEnabled")); + if (!sender.isPlayer() || !user.getBase().equals(sender.getPlayer())) { + sender.sendMessage(!enabled ? tl("replyLastRecipientDisabledFor", user.getDisplayName()) : tl("replyLastRecipientEnabledFor", user.getDisplayName())); + } + } +} diff --git a/Essentials/src/com/earth2me/essentials/messaging/SimpleMessageRecipient.java b/Essentials/src/com/earth2me/essentials/messaging/SimpleMessageRecipient.java index 445f1f759..370213c7f 100644 --- a/Essentials/src/com/earth2me/essentials/messaging/SimpleMessageRecipient.java +++ b/Essentials/src/com/earth2me/essentials/messaging/SimpleMessageRecipient.java @@ -1,13 +1,13 @@ package com.earth2me.essentials.messaging; -import static com.earth2me.essentials.I18n.tl; - import com.earth2me.essentials.IEssentials; import com.earth2me.essentials.IUser; import com.earth2me.essentials.User; import java.lang.ref.WeakReference; +import static com.earth2me.essentials.I18n.tl; + /** * Represents a simple reusable implementation of {@link IMessageRecipient}. This class provides functionality for the following methods: *