Skip to content
Open
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
19 changes: 19 additions & 0 deletions core/src/main/java/me/leoko/advancedban/manager/UpdateManager.java
Original file line number Diff line number Diff line change
Expand Up @@ -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(
Expand Down
97 changes: 40 additions & 57 deletions core/src/main/java/me/leoko/advancedban/utils/Command.java
Original file line number Diff line number Diff line change
Expand Up @@ -281,24 +281,21 @@ public enum Command {
"Banlist.Usage",
"banlist"),

HISTORY("ab.history",
"\\S+( [1-9][0-9]*)?",
HISTORY(null,
"\\S+( [1-9][0-9]*)?|\\S+|",
Copy link
Collaborator

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Can you clarify this change?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Why I did it this way, I have no idea, as it has been like two years.
But it seems like it is because because I split up the self history's own perm.

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, "<Name>", "<Page>");
else
return list("<Page>");
else if(args.length == 2 && !args[0].matches("\\d+"))
return list("<Page>");
else
return list();
}),
input -> {
MethodInterface mi = Universal.get().getMethods();
List<PunishmentType> 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);
hasPerm(input, "History", null, false);
},
"History.Usage",
"history"),
Expand All @@ -316,29 +313,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", PunishmentType.WARNING, true),
"Warns.Usage",
"warns"),
NOTES(null,
Expand All @@ -354,29 +329,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", PunishmentType.NOTE, true),
"Notes.Usage",
"notes"),

Expand Down Expand Up @@ -531,6 +484,36 @@ else if(args.length == 2 && !args[0].matches("\\d+"))
null,
"advancedban");

private static void hasPerm(Command.CommandInput input, String FriendlyName, PunishmentType put, boolean current){
MethodInterface mi = Universal.get().getMethods();
List<PunishmentType> Types = new ArrayList<>();

if(put == null)
mi.getStringList(mi.getConfig(),"FullHistory").forEach((typeString -> Types.add(PunishmentType.valueOf(typeString))));
else
Types.add(put);

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, put == null, 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", put == null, false).accept(input);
}
}
private final String permission;
private final Predicate<String[]> syntaxValidator;
private final TabCompleter tabCompleter;
Expand Down
16 changes: 16 additions & 0 deletions core/src/main/resources/Messages.yml
Original file line number Diff line number Diff line change
Expand Up @@ -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] <Page> &cor &7&o/warns <Page>"
OutOfIndex: "&cThere is no page %PAGE%!"
Expand Down
Loading