From 826203745eea87f7e5499e4bd28baf3b8aa1910d Mon Sep 17 00:00:00 2001 From: Banbeucmas Date: Sun, 1 Apr 2018 16:49:31 +0900 Subject: [PATCH 01/14] Adding the option to use PlaceholderAPI chat format internally --- EssentialsChat/pom.xml | 12 ++++++++++++ .../chat/EssentialsChatPlayerListenerLowest.java | 5 +++++ EssentialsChat/src/plugin.yml | 2 +- 3 files changed, 18 insertions(+), 1 deletion(-) diff --git a/EssentialsChat/pom.xml b/EssentialsChat/pom.xml index 21d2add6374..93f7515afe9 100644 --- a/EssentialsChat/pom.xml +++ b/EssentialsChat/pom.xml @@ -21,6 +21,12 @@ EssentialsXChat-${full.version} + + + placeholderapi + http://repo.extendedclip.com/content/repositories/placeholderapi/ + + @@ -28,5 +34,11 @@ EssentialsX ${project.version} + + me.clip + placeholderapi + LATEST + provided + \ No newline at end of file diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java index 95284e5c965..ff3b5a01204 100644 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java @@ -2,7 +2,9 @@ import com.earth2me.essentials.User; import com.earth2me.essentials.utils.FormatUtil; +import me.clip.placeholderapi.PlaceholderAPI; import net.ess3.api.IEssentials; +import org.bukkit.Bukkit; import org.bukkit.Server; import org.bukkit.entity.Player; import org.bukkit.event.EventHandler; @@ -57,6 +59,9 @@ public void onPlayerChat(final AsyncPlayerChatEvent event) { format = format.replace("{5}", team == null ? "" : team.getDisplayName()); format = format.replace("{6}", prefix); format = format.replace("{7}", suffix); + if(Bukkit.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")){ + format = PlaceholderAPI.setPlaceholders(event.getPlayer(), format); + } synchronized (format) { event.setFormat(format); } diff --git a/EssentialsChat/src/plugin.yml b/EssentialsChat/src/plugin.yml index 5f855228b0e..09249aaa4d1 100644 --- a/EssentialsChat/src/plugin.yml +++ b/EssentialsChat/src/plugin.yml @@ -7,4 +7,4 @@ website: http://tiny.cc/EssentialsCommands description: Provides chat control features for Essentials. Requires Permissions. authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits, md_5, Okamosy, Iaccidentally] depend: [Essentials] -#softdepend: [Factions] +softdepend: [PlaceholderAPI] From d36d1e61f6c7fa38d35ddc301ef60a781622ab4b Mon Sep 17 00:00:00 2001 From: Banbeucmas Date: Sun, 1 Apr 2018 17:46:45 +0900 Subject: [PATCH 02/14] Update pom.xml --- EssentialsChat/pom.xml | 12 ------------ pom.xml | 10 ++++++++++ 2 files changed, 10 insertions(+), 12 deletions(-) diff --git a/EssentialsChat/pom.xml b/EssentialsChat/pom.xml index 93f7515afe9..21d2add6374 100644 --- a/EssentialsChat/pom.xml +++ b/EssentialsChat/pom.xml @@ -21,12 +21,6 @@ EssentialsXChat-${full.version} - - - placeholderapi - http://repo.extendedclip.com/content/repositories/placeholderapi/ - - @@ -34,11 +28,5 @@ EssentialsX ${project.version} - - me.clip - placeholderapi - LATEST - provided - \ No newline at end of file diff --git a/pom.xml b/pom.xml index 3efbf97d14e..14250c2a433 100644 --- a/pom.xml +++ b/pom.xml @@ -31,6 +31,10 @@ bukkit-repo https://hub.spigotmc.org/nexus/content/groups/public/ + + placeholderapi + http://repo.extendedclip.com/content/repositories/placeholderapi/ + @@ -68,6 +72,12 @@ 1.12.2 provided + + me.clip + placeholderapi + LATEST + provided + From 87549f808f6bea85e2d371de2ed4cb5a9e396cea Mon Sep 17 00:00:00 2001 From: Banbeucmas Date: Sun, 1 Apr 2018 17:47:17 +0900 Subject: [PATCH 03/14] Switching method to FormatUtils --- .../earth2me/essentials/utils/FormatUtil.java | 18 ++++++++++++++++++ Essentials/src/plugin.yml | 2 +- .../EssentialsChatPlayerListenerLowest.java | 6 ++---- 3 files changed, 21 insertions(+), 5 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java index 7de0a472688..e56ef325f1e 100644 --- a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java @@ -1,7 +1,10 @@ package com.earth2me.essentials.utils; +import me.clip.placeholderapi.PlaceholderAPI; import net.ess3.api.IUser; +import org.bukkit.Bukkit; import org.bukkit.ChatColor; +import org.bukkit.entity.Player; import java.util.regex.Pattern; @@ -38,6 +41,21 @@ public static String stripEssentialsFormat(final String input) { return stripColor(input, REPLACE_ALL_PATTERN); } + //Formatting PlaceholderAPI Placeholders, returns the original string if the plugin isn't enabled + //Seperate this from #getChatFormat() in ISettings due to the requirement of Player as an argurment + public static String placeholderAPIFormat(final IUser user, final String input){ + if(input == null) { + return null; + } + + Player player = user.getBase(); + //Checking here instead, please tell me if there is a better way + if(Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { + return PlaceholderAPI.setPlaceholders(player, input); + } + return input; + } + //This is the general permission sensitive message format function, checks for urls. public static String formatMessage(final IUser user, final String permBase, final String input) { if (input == null) { diff --git a/Essentials/src/plugin.yml b/Essentials/src/plugin.yml index 6012c572722..e7fdba30cf6 100644 --- a/Essentials/src/plugin.yml +++ b/Essentials/src/plugin.yml @@ -5,7 +5,7 @@ main: com.earth2me.essentials.Essentials version: ${full.version} website: http://tiny.cc/EssentialsCommands description: Provides an essential, core set of commands for Bukkit. -softdepend: [Vault] +softdepend: [Vault, PlaceholderAPI] authors: [Zenexer, ementalo, Aelux, Brettflan, KimKandor, snowleo, ceulemans, Xeology, KHobbits, md_5, Iaccidentally, drtshock, vemacs, SupaHam, md678685] commands: afk: diff --git a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java index ff3b5a01204..20d904b76e0 100644 --- a/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java +++ b/EssentialsChat/src/com/earth2me/essentials/chat/EssentialsChatPlayerListenerLowest.java @@ -2,7 +2,6 @@ import com.earth2me.essentials.User; import com.earth2me.essentials.utils.FormatUtil; -import me.clip.placeholderapi.PlaceholderAPI; import net.ess3.api.IEssentials; import org.bukkit.Bukkit; import org.bukkit.Server; @@ -59,9 +58,8 @@ public void onPlayerChat(final AsyncPlayerChatEvent event) { format = format.replace("{5}", team == null ? "" : team.getDisplayName()); format = format.replace("{6}", prefix); format = format.replace("{7}", suffix); - if(Bukkit.getServer().getPluginManager().isPluginEnabled("PlaceholderAPI")){ - format = PlaceholderAPI.setPlaceholders(event.getPlayer(), format); - } + format = FormatUtil.placeholderAPIFormat(user, format); + synchronized (format) { event.setFormat(format); } From 3603d235e7734f757567dc191a644c83b189ad0c Mon Sep 17 00:00:00 2001 From: md678685 Date: Tue, 3 Apr 2018 11:23:59 +0100 Subject: [PATCH 04/14] Only check whether PAPI is enabled first time --- .../src/com/earth2me/essentials/utils/FormatUtil.java | 11 +++++++++-- 1 file changed, 9 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java index e56ef325f1e..5d60d549eb9 100644 --- a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java @@ -25,6 +25,8 @@ public class FormatUtil { static final transient Pattern URL_PATTERN = Pattern.compile("((?:(?:https?)://)?[\\w-_\\.]{2,})\\.([a-zA-Z]{2,3}(?:/\\S+)?)"); public static final Pattern IPPATTERN = Pattern.compile("^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"); + static Boolean papiEnabled = null; + //This method is used to simply strip the native minecraft colour codes public static String stripFormat(final String input) { if (input == null) { @@ -44,13 +46,18 @@ public static String stripEssentialsFormat(final String input) { //Formatting PlaceholderAPI Placeholders, returns the original string if the plugin isn't enabled //Seperate this from #getChatFormat() in ISettings due to the requirement of Player as an argurment public static String placeholderAPIFormat(final IUser user, final String input){ - if(input == null) { + if (input == null) { return null; } Player player = user.getBase(); + + if (papiEnabled == null) { + papiEnabled = Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI"); + } + //Checking here instead, please tell me if there is a better way - if(Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI")) { + if (papiEnabled) { return PlaceholderAPI.setPlaceholders(player, input); } return input; From 9da486f0e35806decf4cdc452048bb23918e5a56 Mon Sep 17 00:00:00 2001 From: md678685 Date: Tue, 3 Apr 2018 11:35:52 +0100 Subject: [PATCH 05/14] Add placeholderAPIFormat overload Not sure if this is necessary - thoughts? --- .../src/com/earth2me/essentials/utils/FormatUtil.java | 10 ++++++---- 1 file changed, 6 insertions(+), 4 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java index 5d60d549eb9..c754d6cc858 100644 --- a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java @@ -43,15 +43,17 @@ public static String stripEssentialsFormat(final String input) { return stripColor(input, REPLACE_ALL_PATTERN); } + public static String placeholderAPIFormat(final IUser user, final String input) { + return placeholderAPIFormat(user.getBase(), input); + } + //Formatting PlaceholderAPI Placeholders, returns the original string if the plugin isn't enabled - //Seperate this from #getChatFormat() in ISettings due to the requirement of Player as an argurment - public static String placeholderAPIFormat(final IUser user, final String input){ + //Seperate this from #getChatFormat() in ISettings due to the requirement of Player as an argument + public static String placeholderAPIFormat(final Player player, final String input) { if (input == null) { return null; } - Player player = user.getBase(); - if (papiEnabled == null) { papiEnabled = Bukkit.getPluginManager().isPluginEnabled("PlaceholderAPI"); } From fe93124e5593771a889f7d57516759abdc26a467 Mon Sep 17 00:00:00 2001 From: Banbeucmas Date: Tue, 3 Apr 2018 21:36:13 +0900 Subject: [PATCH 06/14] Use PlaceholderAPI in quit message --- .../com/earth2me/essentials/EssentialsPlayerListener.java | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index d67e8d9c6fb..9f91364d092 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -5,6 +5,7 @@ import com.earth2me.essentials.textreader.TextInput; import com.earth2me.essentials.textreader.TextPager; import com.earth2me.essentials.utils.DateUtil; +import com.earth2me.essentials.utils.FormatUtil; import com.earth2me.essentials.utils.LocationUtil; import net.ess3.api.IEssentials; import net.ess3.nms.refl.ReflUtil; @@ -152,7 +153,11 @@ public void onPlayerQuit(final PlayerQuitEvent event) { event.setQuitMessage(null); } else if (ess.getSettings().isCustomQuitMessage() && event.getQuitMessage() != null) { final Player player = event.getPlayer(); - event.setQuitMessage(ess.getSettings().getCustomQuitMessage().replace("{PLAYER}", player.getDisplayName()).replace("{USERNAME}", player.getName())); + String quitMessage = ess.getSettings().getCustomQuitMessage(); + quitMessage.replace("{PLAYER}", player.getDisplayName()) + .replace("{USERNAME}", player.getName()); + quitMessage = FormatUtil.placeholderAPIFormat(user, quitMessage); + event.setQuitMessage(quitMessage); } user.startTransaction(); From 6b609f584967d04aec34c03dd5d1a4e9dca38bf3 Mon Sep 17 00:00:00 2001 From: Banbeucmas Date: Tue, 3 Apr 2018 21:37:08 +0900 Subject: [PATCH 07/14] Use PlaceholderAPI in join message --- .../src/com/earth2me/essentials/EssentialsPlayerListener.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index 9f91364d092..e409c600a0c 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -264,6 +264,7 @@ public void run() { String msg = ess.getSettings().getCustomJoinMessage() .replace("{PLAYER}", player.getDisplayName()).replace("{USERNAME}", player.getName()) .replace("{UNIQUE}", NumberFormat.getInstance().format(ess.getUserMap().getUniqueUsers())); + msg = FormatUtil.placeholderAPIFormat(player, msg); ess.getServer().broadcastMessage(msg); } else if (ess.getSettings().allowSilentJoinQuit()) { ess.getServer().broadcastMessage(message); From 4de18a0b8556d2a0914ed23aca52991d5127a264 Mon Sep 17 00:00:00 2001 From: md678685 Date: Tue, 3 Apr 2018 14:12:15 +0100 Subject: [PATCH 08/14] Include PAPI formatting in KeywordReplacer --- .../src/com/earth2me/essentials/textreader/KeywordReplacer.java | 2 ++ 1 file changed, 2 insertions(+) diff --git a/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java b/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java index 2a1ed4caee2..7f1cf87e7c2 100644 --- a/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java +++ b/Essentials/src/com/earth2me/essentials/textreader/KeywordReplacer.java @@ -6,6 +6,7 @@ import com.earth2me.essentials.User; import com.earth2me.essentials.utils.DateUtil; import com.earth2me.essentials.utils.DescParseTickFormat; +import com.earth2me.essentials.utils.FormatUtil; import com.earth2me.essentials.utils.NumberUtil; import net.ess3.api.IEssentials; import org.bukkit.Location; @@ -74,6 +75,7 @@ private void replaceKeywords(final CommandSource sender) { for (int i = 0; i < input.getLines().size(); i++) { String line = input.getLines().get(i); + line = FormatUtil.placeholderAPIFormat(user, line); final Matcher matcher = KEYWORD.matcher(line); while (matcher.find()) { From d93f4135ffe198908ce577fdc54c80f9961e5be5 Mon Sep 17 00:00:00 2001 From: Banbeucmas Date: Sat, 7 Apr 2018 23:26:24 +0900 Subject: [PATCH 09/14] Use PluginEvent to handle PlaceholderAPI load. --- .../earth2me/essentials/EssentialsPlayerListener.java | 2 ++ .../earth2me/essentials/EssentialsPluginListener.java | 10 ++++++++++ .../src/com/earth2me/essentials/utils/FormatUtil.java | 3 ++- 3 files changed, 14 insertions(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index e409c600a0c..a0e2431bd25 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -156,6 +156,7 @@ public void onPlayerQuit(final PlayerQuitEvent event) { String quitMessage = ess.getSettings().getCustomQuitMessage(); quitMessage.replace("{PLAYER}", player.getDisplayName()) .replace("{USERNAME}", player.getName()); + //Untested, should work tho quitMessage = FormatUtil.placeholderAPIFormat(user, quitMessage); event.setQuitMessage(quitMessage); } @@ -261,6 +262,7 @@ public void run() { } else if (message == null) { //NOOP } else if (ess.getSettings().isCustomJoinMessage()) { + //Untested, should work tho String msg = ess.getSettings().getCustomJoinMessage() .replace("{PLAYER}", player.getDisplayName()).replace("{USERNAME}", player.getName()) .replace("{UNIQUE}", NumberFormat.getInstance().format(ess.getUserMap().getUniqueUsers())); diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java index d7543cdc8d5..2773223ab69 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java @@ -1,7 +1,9 @@ package com.earth2me.essentials; import com.earth2me.essentials.register.payment.Methods; +import com.earth2me.essentials.utils.FormatUtil; import net.ess3.api.IEssentials; +import org.bukkit.Bukkit; import org.bukkit.event.EventHandler; import org.bukkit.event.EventPriority; import org.bukkit.event.Listener; @@ -29,6 +31,10 @@ public void onPluginEnable(final PluginEnableEvent event) { if (!Methods.hasMethod() && Methods.setMethod(ess.getServer().getPluginManager())) { ess.getLogger().log(Level.INFO, "Payment method found (" + Methods.getMethod().getLongName() + " version: " + ess.getPaymentMethod().getMethod().getVersion() + ")"); } + + if(!FormatUtil.papiEnabled && event.getPlugin().getName().equals("PlaceholderAPI")) { + FormatUtil.papiEnabled = true; + } } @EventHandler(priority = EventPriority.MONITOR) @@ -42,6 +48,10 @@ public void onPluginDisable(final PluginDisableEvent event) { Methods.reset(); ess.getLogger().log(Level.INFO, "Payment method was disabled. No longer accepting payments."); } + + if(FormatUtil.papiEnabled && event.getPlugin().getName().equals("PlaceholderAPI")){ + FormatUtil.papiEnabled = false; + } } @Override diff --git a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java index c754d6cc858..1fdb725d5a6 100644 --- a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java @@ -25,7 +25,8 @@ public class FormatUtil { static final transient Pattern URL_PATTERN = Pattern.compile("((?:(?:https?)://)?[\\w-_\\.]{2,})\\.([a-zA-Z]{2,3}(?:/\\S+)?)"); public static final Pattern IPPATTERN = Pattern.compile("^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"); - static Boolean papiEnabled = null; + //If we are going to make this static, should we move it? + public static Boolean papiEnabled = null; //This method is used to simply strip the native minecraft colour codes public static String stripFormat(final String input) { From 9a4bc390deea5c038f2aa471b635361d2412196f Mon Sep 17 00:00:00 2001 From: Banbeucmas Date: Sat, 7 Apr 2018 23:36:24 +0900 Subject: [PATCH 10/14] Why is it null? --- Essentials/src/com/earth2me/essentials/utils/FormatUtil.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java index 1fdb725d5a6..3597ba7ca68 100644 --- a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java @@ -26,7 +26,7 @@ public class FormatUtil { public static final Pattern IPPATTERN = Pattern.compile("^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"); //If we are going to make this static, should we move it? - public static Boolean papiEnabled = null; + public static Boolean papiEnabled = false; //This method is used to simply strip the native minecraft colour codes public static String stripFormat(final String input) { From 8acb0075f594dc4ab57633e404b08f083a037076 Mon Sep 17 00:00:00 2001 From: Banbeucmas Date: Sun, 8 Apr 2018 02:45:15 +0900 Subject: [PATCH 11/14] Keep it null and adding null check for listener --- .../src/com/earth2me/essentials/EssentialsPluginListener.java | 4 ++-- Essentials/src/com/earth2me/essentials/utils/FormatUtil.java | 2 +- 2 files changed, 3 insertions(+), 3 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java index 2773223ab69..1499b83bd5d 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPluginListener.java @@ -32,7 +32,7 @@ public void onPluginEnable(final PluginEnableEvent event) { ess.getLogger().log(Level.INFO, "Payment method found (" + Methods.getMethod().getLongName() + " version: " + ess.getPaymentMethod().getMethod().getVersion() + ")"); } - if(!FormatUtil.papiEnabled && event.getPlugin().getName().equals("PlaceholderAPI")) { + if((FormatUtil.papiEnabled == null || !FormatUtil.papiEnabled) && event.getPlugin().getName().equals("PlaceholderAPI")) { FormatUtil.papiEnabled = true; } } @@ -49,7 +49,7 @@ public void onPluginDisable(final PluginDisableEvent event) { ess.getLogger().log(Level.INFO, "Payment method was disabled. No longer accepting payments."); } - if(FormatUtil.papiEnabled && event.getPlugin().getName().equals("PlaceholderAPI")){ + if(FormatUtil.papiEnabled != null && FormatUtil.papiEnabled && event.getPlugin().getName().equals("PlaceholderAPI")){ FormatUtil.papiEnabled = false; } } diff --git a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java index 3597ba7ca68..1fdb725d5a6 100644 --- a/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java +++ b/Essentials/src/com/earth2me/essentials/utils/FormatUtil.java @@ -26,7 +26,7 @@ public class FormatUtil { public static final Pattern IPPATTERN = Pattern.compile("^([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\." + "([01]?\\d\\d?|2[0-4]\\d|25[0-5])\\.([01]?\\d\\d?|2[0-4]\\d|25[0-5])$"); //If we are going to make this static, should we move it? - public static Boolean papiEnabled = false; + public static Boolean papiEnabled = null; //This method is used to simply strip the native minecraft colour codes public static String stripFormat(final String input) { From bf596cae92d213ba385f031853e78c40561f99cf Mon Sep 17 00:00:00 2001 From: md678685 Date: Thu, 14 Jun 2018 12:06:29 +0100 Subject: [PATCH 12/14] Format messages in User#sendMessage --- Essentials/src/com/earth2me/essentials/User.java | 1 + 1 file changed, 1 insertion(+) diff --git a/Essentials/src/com/earth2me/essentials/User.java b/Essentials/src/com/earth2me/essentials/User.java index f6f502b172a..51295378071 100644 --- a/Essentials/src/com/earth2me/essentials/User.java +++ b/Essentials/src/com/earth2me/essentials/User.java @@ -784,6 +784,7 @@ public void setRecipeSee(boolean recipeSee) { @Override public void sendMessage(String message) { if (!message.isEmpty()) { + message = FormatUtil.placeholderAPIFormat(this, message); base.sendMessage(message); } } From 3dc3f6910dea7bc72a04abbdee9bce1d37078986 Mon Sep 17 00:00:00 2001 From: md678685 Date: Thu, 14 Jun 2018 13:25:58 +0100 Subject: [PATCH 13/14] Implement FakePluginManager.isPluginEnabled Allows tests to pass --- Essentials/test/com/earth2me/essentials/FakeServer.java | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/Essentials/test/com/earth2me/essentials/FakeServer.java b/Essentials/test/com/earth2me/essentials/FakeServer.java index 41d50879d7d..7d53a3dccc5 100644 --- a/Essentials/test/com/earth2me/essentials/FakeServer.java +++ b/Essentials/test/com/earth2me/essentials/FakeServer.java @@ -989,7 +989,7 @@ public Plugin[] getPlugins() { @Override public boolean isPluginEnabled(String name) { - throw new UnsupportedOperationException("Not supported yet."); + return name.equals("Essentials"); } @Override From 4a6437e61b94f3a38d7e45acf403bea766fbdcf4 Mon Sep 17 00:00:00 2001 From: md678685 Date: Fri, 15 Jun 2018 18:44:28 +0100 Subject: [PATCH 14/14] Fix quit message replacement --- .../src/com/earth2me/essentials/EssentialsPlayerListener.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java index a0e2431bd25..3a1971a9973 100644 --- a/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java +++ b/Essentials/src/com/earth2me/essentials/EssentialsPlayerListener.java @@ -153,8 +153,8 @@ public void onPlayerQuit(final PlayerQuitEvent event) { event.setQuitMessage(null); } else if (ess.getSettings().isCustomQuitMessage() && event.getQuitMessage() != null) { final Player player = event.getPlayer(); - String quitMessage = ess.getSettings().getCustomQuitMessage(); - quitMessage.replace("{PLAYER}", player.getDisplayName()) + String quitMessage = ess.getSettings().getCustomQuitMessage() + .replace("{PLAYER}", player.getDisplayName()) .replace("{USERNAME}", player.getName()); //Untested, should work tho quitMessage = FormatUtil.placeholderAPIFormat(user, quitMessage);