From 486b91d9754c031c86b6f2e1180265669f956bf0 Mon Sep 17 00:00:00 2001 From: tWizT3ddreaMr Date: Tue, 4 Jul 2023 16:58:22 -0500 Subject: [PATCH 1/6] Self history Didnt want the same thing to be repeated a third time so i made a method and named it an absolutely wrong name but cant thing of a a good name so i am leaving it with a bad until feedback --- .../advancedban/manager/UpdateManager.java | 19 ++++ .../me/leoko/advancedban/utils/Command.java | 104 ++++++++---------- core/src/main/resources/Messages.yml | 16 +++ 3 files changed, 78 insertions(+), 61 deletions(-) diff --git a/core/src/main/java/me/leoko/advancedban/manager/UpdateManager.java b/core/src/main/java/me/leoko/advancedban/manager/UpdateManager.java index 93d4815b..63c8d546 100644 --- a/core/src/main/java/me/leoko/advancedban/manager/UpdateManager.java +++ b/core/src/main/java/me/leoko/advancedban/manager/UpdateManager.java @@ -36,6 +36,25 @@ public void setup() { if (mi.isUnitTesting()) return; + if (!mi.contains(mi.getMessages(), "HistoryOwn")) { + addMessage("Warns:", "", 0); + addMessage("Warns:", "HistoryOwn:", -1); + addMessage("Warns:", " OutOfIndex: \"&cThere is no page %PAGE%!\"", -1); + addMessage("Warns:", " NoEntries: \"&c&oYou have no punishments yet\"", -1); + addMessage("Warns:", " Header:", -1); + addMessage("Warns:", " - \"%PREFIX% &7Your History:\"", -1); + addMessage("Warns:", " - \"&e&oDuration &8| &7&oOperator\"", -1); + addMessage("Warns:", " - \"&c&oType &8> &7&oReason\"", -1); + addMessage("Warns:", " - \"&7\"", -1); + addMessage("Warns:", " Entry:", -1); + addMessage("Warns:", " - \"&8[&e%DATE%&8]\"", -1); + addMessage("Warns:", " - \"&e%DURATION% &8| &7%OPERATOR%\"", -1); + addMessage("Warns:", " - \"&c%TYPE% &8> &7&o%REASON%\"", -1); + addMessage("Warns:", " - \"&7\"", -1); + addMessage("Warns:", " Footer: \"&7Page &e&o%CURRENT_PAGE% &7of &e&o%TOTAL_PAGES% &8| &7Total entries: &e&o%COUNT%\"", -1); + addMessage("Warns:", " PageFooter: \"&7Use &e&o/history %NEXT_PAGE% &7to see the next page\"", -1); + } + if(!mi.contains(mi.getConfig(), "FullHistory")){ try { FileUtils.writeLines(new File(mi.getDataFolder(), "config.yml"), "UTF8", Arrays.asList( diff --git a/core/src/main/java/me/leoko/advancedban/utils/Command.java b/core/src/main/java/me/leoko/advancedban/utils/Command.java index 444dbfcc..54762bf4 100644 --- a/core/src/main/java/me/leoko/advancedban/utils/Command.java +++ b/core/src/main/java/me/leoko/advancedban/utils/Command.java @@ -18,10 +18,7 @@ import me.leoko.advancedban.utils.tabcompletion.TabCompleter; import org.apache.commons.lang3.ArrayUtils; -import java.util.ArrayList; -import java.util.Calendar; -import java.util.GregorianCalendar; -import java.util.List; +import java.util.*; import java.util.function.Consumer; import java.util.function.Predicate; @@ -281,24 +278,22 @@ public enum Command { "Banlist.Usage", "banlist"), - HISTORY("ab.history", - "\\S+( [1-9][0-9]*)?", + HISTORY(null, + "\\S+( [1-9][0-9]*)?|\\S+|", new CleanTabCompleter((user, args) -> { if(args.length == 1) - return list(CleanTabCompleter.PLAYER_PLACEHOLDER, "[Name]"); - else if(args.length == 2) + if(Universal.get().getMethods().hasPerms(user, "ab.history.other")) + return list(CleanTabCompleter.PLAYER_PLACEHOLDER, "", ""); + else + return list(""); + else if(args.length == 2 && !args[0].matches("\\d+")) return list(""); else return list(); }), input -> { - MethodInterface mi = Universal.get().getMethods(); - List putList = new ArrayList<>(); - mi.getStringList(mi.getConfig(),"FullHistory").forEach((typeString -> putList.add(PunishmentType.valueOf(typeString)))); - - new ListProcessor( - target -> PunishmentManager.get().getPunishmentsOfTypes(target, putList, false), - "History", true, true).accept(input); + PunishmentType[] puts={}; + hasPerm(input, "History", false, puts); }, "History.Usage", "history"), @@ -316,29 +311,7 @@ else if(args.length == 2 && !args[0].matches("\\d+")) else return list(); }), - input -> { - if (input.hasNext() && !input.getPrimary().matches("[1-9][0-9]*")) { - if (!Universal.get().hasPerms(input.getSender(), "ab.warns.other")) { - MessageManager.sendMessage(input.getSender(), "General.NoPerms", true); - return; - } - - new ListProcessor( - target -> PunishmentManager.get().getPunishments(target, PunishmentType.WARNING, true), - "Warns", false, true).accept(input); - } else { - if (!Universal.get().hasPerms(input.getSender(), "ab.warns.own")) { - MessageManager.sendMessage(input.getSender(), "General.NoPerms", true); - return; - } - - String name = Universal.get().getMethods().getName(input.getSender()); - String identifier = processName(new Command.CommandInput(input.getSender(), new String[]{name})); - new ListProcessor( - target -> PunishmentManager.get().getPunishments(identifier, PunishmentType.WARNING, true), - "WarnsOwn", false, false).accept(input); - } - }, + input -> hasPerm(input, "Warns", true, PunishmentType.WARNING), "Warns.Usage", "warns"), NOTES(null, @@ -354,29 +327,7 @@ else if(args.length == 2 && !args[0].matches("\\d+")) else return list(); }), - input -> { - if (input.hasNext() && !input.getPrimary().matches("[1-9][0-9]*")) { - if (!Universal.get().hasPerms(input.getSender(), "ab.notes.other")) { - MessageManager.sendMessage(input.getSender(), "General.NoPerms", true); - return; - } - - new ListProcessor( - target -> PunishmentManager.get().getPunishments(target, PunishmentType.NOTE, true), - "Notes", false, true).accept(input); - } else { - if (!Universal.get().hasPerms(input.getSender(), "ab.notes.own")) { - MessageManager.sendMessage(input.getSender(), "General.NoPerms", true); - return; - } - - String name = Universal.get().getMethods().getName(input.getSender()); - String identifier = processName(new Command.CommandInput(input.getSender(), new String[]{name})); - new ListProcessor( - target -> PunishmentManager.get().getPunishments(identifier, PunishmentType.NOTE, true), - "NotesOwn", false, false).accept(input); - } - }, + input -> hasPerm(input, "Notes", true, PunishmentType.NOTE), "Notes.Usage", "notes"), @@ -531,6 +482,37 @@ else if(args.length == 2 && !args[0].matches("\\d+")) null, "advancedban"); + private static void hasPerm(Command.CommandInput input, String FriendlyName, boolean current, PunishmentType ... puts){ + MethodInterface mi = Universal.get().getMethods(); + List Types; + if(puts.length == 0){ + Types = new ArrayList<>(); + mi.getStringList(mi.getConfig(),"FullHistory").forEach((typeString -> Types.add(PunishmentType.valueOf(typeString)))); + }else + Types = Arrays.asList(puts); + + + if (input.hasNext() && !input.getPrimary().matches("[1-9][0-9]*")) { + if (!Universal.get().hasPerms(input.getSender(), "ab." + FriendlyName.toLowerCase() + ".other")) { + MessageManager.sendMessage(input.getSender(), "General.NoPerms", true); + return; + } + new ListProcessor( + target -> PunishmentManager.get().getPunishmentsOfTypes(target, Types, current), + FriendlyName, false, true).accept(input); + } else { + if (!Universal.get().hasPerms(input.getSender(), "ab." + FriendlyName.toLowerCase() + ".own")) { + MessageManager.sendMessage(input.getSender(), "General.NoPerms", true); + return; + } + + String name = Universal.get().getMethods().getName(input.getSender()); + String identifier = processName(new Command.CommandInput(input.getSender(), new String[]{name})); + new ListProcessor( + target -> PunishmentManager.get().getPunishmentsOfTypes(identifier, Types, current), + FriendlyName + "Own", false, false).accept(input); + } + } private final String permission; private final Predicate syntaxValidator; private final TabCompleter tabCompleter; diff --git a/core/src/main/resources/Messages.yml b/core/src/main/resources/Messages.yml index f817ddb4..a80028cb 100644 --- a/core/src/main/resources/Messages.yml +++ b/core/src/main/resources/Messages.yml @@ -225,6 +225,22 @@ History: Footer: "&7Page &e&o%CURRENT_PAGE% &7of &e&o%TOTAL_PAGES% &8| &7Total entries: &e&o%COUNT%" PageFooter: "&7Use &e&o/history %NAME% %NEXT_PAGE% &7to see the next page" +HistoryOwn: + OutOfIndex: "&cThere is no page %PAGE%!" + NoEntries: "&c&oCould not find the history of %NAME% :(" + Header: + - "%PREFIX% &7Your History:" + - "&e&oDuration &8| &7&oOperator" + - "&c&oType &8> &7&oReason" + - "&7" + Entry: + - "&8[&e%DATE%&8]" + - "&e%DURATION% &8| &7%OPERATOR%" + - "&c%TYPE% &8> &7&o%REASON%" + - "&7" + Footer: "&7Page &e&o%CURRENT_PAGE% &7of &e&o%TOTAL_PAGES% &8| &7Total entries: &e&o%COUNT%" + PageFooter: "&7Use &e&o/history %NEXT_PAGE% &7to see the next page" + Warns: Usage: "&cUsage &8ยป &7&o/warns [Name] &cor &7&o/warns " OutOfIndex: "&cThere is no page %PAGE%!" From d4fe6d92937a9f6ea081c7808116a1226167939e Mon Sep 17 00:00:00 2001 From: tWizT3ddreaMr Date: Wed, 5 Jul 2023 05:39:56 -0500 Subject: [PATCH 2/6] imports Somehow i accidentally merged the imports --- core/src/main/java/me/leoko/advancedban/utils/Command.java | 6 +++++- 1 file changed, 5 insertions(+), 1 deletion(-) diff --git a/core/src/main/java/me/leoko/advancedban/utils/Command.java b/core/src/main/java/me/leoko/advancedban/utils/Command.java index 54762bf4..4d726ac7 100644 --- a/core/src/main/java/me/leoko/advancedban/utils/Command.java +++ b/core/src/main/java/me/leoko/advancedban/utils/Command.java @@ -18,7 +18,11 @@ import me.leoko.advancedban.utils.tabcompletion.TabCompleter; import org.apache.commons.lang3.ArrayUtils; -import java.util.*; +import java.util.Arrays; +import java.util.ArrayList; +import java.util.Calendar; +import java.util.GregorianCalendar; +import java.util.List; import java.util.function.Consumer; import java.util.function.Predicate; From 29b70b40474fa45f0bf98917f77d9a4466ce0f6e Mon Sep 17 00:00:00 2001 From: tWizT3ddreaMr Date: Wed, 5 Jul 2023 11:16:37 -0500 Subject: [PATCH 3/6] Update Command.java I initially wrote this before I updated the branch "Full History", so it made more sense to have an array. So I rearranged it to better match the layout in PunishmentManager --- .../java/me/leoko/advancedban/utils/Command.java | 15 +++++++-------- 1 file changed, 7 insertions(+), 8 deletions(-) diff --git a/core/src/main/java/me/leoko/advancedban/utils/Command.java b/core/src/main/java/me/leoko/advancedban/utils/Command.java index 4d726ac7..bd9818c4 100644 --- a/core/src/main/java/me/leoko/advancedban/utils/Command.java +++ b/core/src/main/java/me/leoko/advancedban/utils/Command.java @@ -296,8 +296,7 @@ else if(args.length == 2 && !args[0].matches("\\d+")) return list(); }), input -> { - PunishmentType[] puts={}; - hasPerm(input, "History", false, puts); + hasPerm(input, "History", null, false); }, "History.Usage", "history"), @@ -315,7 +314,7 @@ else if(args.length == 2 && !args[0].matches("\\d+")) else return list(); }), - input -> hasPerm(input, "Warns", true, PunishmentType.WARNING), + input -> hasPerm(input, "Warns", PunishmentType.WARNING, true), "Warns.Usage", "warns"), NOTES(null, @@ -331,7 +330,7 @@ else if(args.length == 2 && !args[0].matches("\\d+")) else return list(); }), - input -> hasPerm(input, "Notes", true, PunishmentType.NOTE), + input -> hasPerm(input, "Notes", PunishmentType.NOTE, true), "Notes.Usage", "notes"), @@ -486,15 +485,15 @@ else if(args.length == 2 && !args[0].matches("\\d+")) null, "advancedban"); - private static void hasPerm(Command.CommandInput input, String FriendlyName, boolean current, PunishmentType ... puts){ + private static void hasPerm(Command.CommandInput input, String FriendlyName, PunishmentType put, boolean current){ MethodInterface mi = Universal.get().getMethods(); List Types; - if(puts.length == 0){ + + if(put == null){ Types = new ArrayList<>(); mi.getStringList(mi.getConfig(),"FullHistory").forEach((typeString -> Types.add(PunishmentType.valueOf(typeString)))); }else - Types = Arrays.asList(puts); - + Types.add(put); if (input.hasNext() && !input.getPrimary().matches("[1-9][0-9]*")) { if (!Universal.get().hasPerms(input.getSender(), "ab." + FriendlyName.toLowerCase() + ".other")) { From 7214252f27c5ef5717668dcf74569d5f24ded5d2 Mon Sep 17 00:00:00 2001 From: tWizT3ddreaMr Date: Wed, 5 Jul 2023 11:19:43 -0500 Subject: [PATCH 4/6] Initialize list I missed that error, but saw in the maven check that it failed because of it --- core/src/main/java/me/leoko/advancedban/utils/Command.java | 7 +++---- 1 file changed, 3 insertions(+), 4 deletions(-) diff --git a/core/src/main/java/me/leoko/advancedban/utils/Command.java b/core/src/main/java/me/leoko/advancedban/utils/Command.java index bd9818c4..51c927ea 100644 --- a/core/src/main/java/me/leoko/advancedban/utils/Command.java +++ b/core/src/main/java/me/leoko/advancedban/utils/Command.java @@ -487,12 +487,11 @@ else if(args.length == 2 && !args[0].matches("\\d+")) private static void hasPerm(Command.CommandInput input, String FriendlyName, PunishmentType put, boolean current){ MethodInterface mi = Universal.get().getMethods(); - List Types; + List Types = new ArrayList<>(); - if(put == null){ - Types = new ArrayList<>(); + if(put == null) mi.getStringList(mi.getConfig(),"FullHistory").forEach((typeString -> Types.add(PunishmentType.valueOf(typeString)))); - }else + else Types.add(put); if (input.hasNext() && !input.getPrimary().matches("[1-9][0-9]*")) { From 857bc18d15bb86c7a3b2cd20271d348c9440e37e Mon Sep 17 00:00:00 2001 From: tWizT3ddreaMr Date: Thu, 6 Jul 2023 17:43:36 -0500 Subject: [PATCH 5/6] I found a bug I didnt say true when it was history so it was just throwing all the errors --- core/src/main/java/me/leoko/advancedban/utils/Command.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/core/src/main/java/me/leoko/advancedban/utils/Command.java b/core/src/main/java/me/leoko/advancedban/utils/Command.java index 51c927ea..69f6079e 100644 --- a/core/src/main/java/me/leoko/advancedban/utils/Command.java +++ b/core/src/main/java/me/leoko/advancedban/utils/Command.java @@ -501,7 +501,7 @@ private static void hasPerm(Command.CommandInput input, String FriendlyName, Pun } new ListProcessor( target -> PunishmentManager.get().getPunishmentsOfTypes(target, Types, current), - FriendlyName, false, true).accept(input); + FriendlyName, put == null, true).accept(input); } else { if (!Universal.get().hasPerms(input.getSender(), "ab." + FriendlyName.toLowerCase() + ".own")) { MessageManager.sendMessage(input.getSender(), "General.NoPerms", true); @@ -512,7 +512,7 @@ private static void hasPerm(Command.CommandInput input, String FriendlyName, Pun String identifier = processName(new Command.CommandInput(input.getSender(), new String[]{name})); new ListProcessor( target -> PunishmentManager.get().getPunishmentsOfTypes(identifier, Types, current), - FriendlyName + "Own", false, false).accept(input); + FriendlyName + "Own", put == null, false).accept(input); } } private final String permission; From 2de26652ab16e63a4f6cf92e72a2e3dda4d59d2b Mon Sep 17 00:00:00 2001 From: tWizT3ddreaMr Date: Mon, 31 Mar 2025 19:40:51 -0500 Subject: [PATCH 6/6] Requests I was trying to do what was asked, however, I couldn't as the line didn't exist, however this redundant import did --- core/src/main/java/me/leoko/advancedban/utils/Command.java | 1 - 1 file changed, 1 deletion(-) diff --git a/core/src/main/java/me/leoko/advancedban/utils/Command.java b/core/src/main/java/me/leoko/advancedban/utils/Command.java index 69f6079e..6ab5a2b4 100644 --- a/core/src/main/java/me/leoko/advancedban/utils/Command.java +++ b/core/src/main/java/me/leoko/advancedban/utils/Command.java @@ -18,7 +18,6 @@ import me.leoko.advancedban.utils.tabcompletion.TabCompleter; import org.apache.commons.lang3.ArrayUtils; -import java.util.Arrays; import java.util.ArrayList; import java.util.Calendar; import java.util.GregorianCalendar;