updated managers to make more sense, removed old

This commit is contained in:
Sxtanna
2020-07-24 14:30:57 -04:00
parent 60a74258ec
commit f3ba9d588e
21 changed files with 996 additions and 990 deletions

View File

@@ -20,7 +20,7 @@ public final class CommandECloudClear extends PlaceholderCommand
@Override
public void evaluate(@NotNull final PlaceholderAPIPlugin plugin, @NotNull final CommandSender sender, @NotNull final String alias, @NotNull @Unmodifiable final List<String> params)
{
plugin.getExpansionCloud().clean();
plugin.getCloudExpansionManager().clean();
Msg.msg(sender,
"&aThe eCloud cache has been cleared!");
}

View File

@@ -30,7 +30,7 @@ public final class CommandECloudDownload extends PlaceholderCommand
return;
}
final CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(params.get(0)).orElse(null);
final CloudExpansion expansion = plugin.getCloudExpansionManager().findCloudExpansionByName(params.get(0)).orElse(null);
if (expansion == null)
{
Msg.msg(sender,
@@ -61,7 +61,7 @@ public final class CommandECloudDownload extends PlaceholderCommand
}
}
plugin.getExpansionCloud().downloadExpansion(expansion, version).whenComplete((file, exception) -> {
plugin.getCloudExpansionManager().downloadExpansion(expansion, version).whenComplete((file, exception) -> {
if (exception != null)
{
Msg.msg(sender,
@@ -72,8 +72,8 @@ public final class CommandECloudDownload extends PlaceholderCommand
Msg.msg(sender,
"&aSuccessfully downloaded expansion to file: &e" + file.getName());
plugin.getExpansionCloud().clean();
plugin.getExpansionCloud().fetch(plugin.getPlaceholderAPIConfig().cloudAllowUnverifiedExpansions());
plugin.getCloudExpansionManager().clean();
plugin.getCloudExpansionManager().fetch(plugin.getPlaceholderAPIConfig().cloudAllowUnverifiedExpansions());
});
}
@@ -87,12 +87,12 @@ public final class CommandECloudDownload extends PlaceholderCommand
if (params.size() <= 1)
{
final Stream<String> names = plugin.getExpansionCloud().getCloudExpansions().values().stream().map(CloudExpansion::getName).map(name -> name.replace(' ', '_'));
final Stream<String> names = plugin.getCloudExpansionManager().getCloudExpansions().values().stream().map(CloudExpansion::getName).map(name -> name.replace(' ', '_'));
suggestByParameter(names, suggestions, params.isEmpty() ? null : params.get(0));
return;
}
final Optional<CloudExpansion> expansion = plugin.getExpansionCloud().getCloudExpansion(params.get(0));
final Optional<CloudExpansion> expansion = plugin.getCloudExpansionManager().findCloudExpansionByName(params.get(0));
if (!expansion.isPresent())
{
return;

View File

@@ -30,7 +30,7 @@ public final class CommandECloudExpansionInfo extends PlaceholderCommand
return;
}
final CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(params.get(0)).orElse(null);
final CloudExpansion expansion = plugin.getCloudExpansionManager().findCloudExpansionByName(params.get(0)).orElse(null);
if (expansion == null)
{
Msg.msg(sender,
@@ -99,12 +99,12 @@ public final class CommandECloudExpansionInfo extends PlaceholderCommand
if (params.size() <= 1)
{
final Stream<String> names = plugin.getExpansionCloud().getCloudExpansions().values().stream().map(CloudExpansion::getName).map(name -> name.replace(' ', '_'));
final Stream<String> names = plugin.getCloudExpansionManager().getCloudExpansions().values().stream().map(CloudExpansion::getName).map(name -> name.replace(' ', '_'));
suggestByParameter(names, suggestions, params.isEmpty() ? null : params.get(0));
return;
}
final Optional<CloudExpansion> expansion = plugin.getExpansionCloud().getCloudExpansion(params.get(0));
final Optional<CloudExpansion> expansion = plugin.getCloudExpansionManager().findCloudExpansionByName(params.get(0));
if (!expansion.isPresent())
{
return;

View File

@@ -1,19 +1,25 @@
package me.clip.placeholderapi.commands.impl.cloud;
import com.google.common.collect.ImmutableSet;
import com.google.common.collect.Lists;
import com.google.common.collect.Sets;
import com.google.common.primitives.Ints;
import me.clip.placeholderapi.PlaceholderAPIPlugin;
import me.clip.placeholderapi.commands.PlaceholderCommand;
import me.clip.placeholderapi.expansion.cloud.CloudExpansion;
import me.clip.placeholderapi.util.Msg;
import me.rayzr522.jsonmessage.JSONMessage;
import org.bukkit.ChatColor;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Unmodifiable;
import java.text.SimpleDateFormat;
import java.util.Collection;
import java.util.Collections;
import java.util.Comparator;
import java.util.List;
import java.util.Map;
import java.util.Objects;
import java.util.Set;
import java.util.stream.Collectors;
@@ -22,7 +28,7 @@ import java.util.stream.IntStream;
public final class CommandECloudExpansionList extends PlaceholderCommand
{
private static final int PAGE_SIZE = 3;
private static final int PAGE_SIZE = 10;
@Unmodifiable
@@ -34,6 +40,90 @@ public final class CommandECloudExpansionList extends PlaceholderCommand
super("list");
}
@NotNull
private static List<CloudExpansion> getPage(@NotNull final List<CloudExpansion> expansions, final int page, final int pageSize)
{
if (expansions.isEmpty())
{
return Collections.emptyList();
}
final int head = (page * pageSize);
final int tail = Math.min(expansions.size(), head + pageSize);
if (expansions.size() < head)
{
return Collections.emptyList();
}
return IntStream.range(head, tail).mapToObj(expansions::get).filter(Objects::nonNull).collect(Collectors.toList());
}
@NotNull
private static Collection<CloudExpansion> getExpansions(@NotNull final String target, @NotNull final PlaceholderAPIPlugin plugin)
{
switch (target.toLowerCase())
{
case "all":
return plugin.getCloudExpansionManager().getCloudExpansions().values();
case "installed":
return plugin.getCloudExpansionManager().getCloudExpansionsInstalled().values();
default:
return plugin.getCloudExpansionManager().getCloudExpansionsByAuthor(target).values();
}
}
@NotNull
private static JSONMessage getMessage(@NotNull final List<CloudExpansion> expansions, final int page)
{
final SimpleDateFormat format = PlaceholderAPIPlugin.getDateFormat();
final StringBuilder tooltip = new StringBuilder();
final JSONMessage message = JSONMessage.create();
int index = ((page - 1) * PAGE_SIZE) + 1;
for (int i = 0; i < expansions.size(); i++)
{
final CloudExpansion expansion = expansions.get(i);
tooltip.append("&bClick to download this expansion!")
.append('\n')
.append('\n')
.append("&bAuthor: &f")
.append(expansion.getAuthor())
.append('\n')
.append("&bVerified: ")
.append(expansion.isVerified() ? "&a&l✔&r" : "&c&l❌&r")
.append('\n')
.append("&bLatest Version: &f")
.append(expansion.getLatestVersion())
.append('\n')
.append("&bReleased: &f")
.append(format.format(expansion.getLastUpdate()));
final String description = expansion.getDescription();
if (description != null && !description.isEmpty())
{
tooltip.append('\n')
.append('\n')
.append("&f")
.append(description.replace("\r", "").trim());
}
message.then(Msg.color("&8" + (index++) + ".&r " + (expansion.shouldUpdate() ? "&6" : expansion.hasExpansion() ? "&a" : "&7") + expansion.getName()));
message.tooltip(Msg.color(tooltip.toString()));
message.suggestCommand("/papi ecloud download " + expansion.getName());
if (i < expansions.size() - 1)
{
message.newline();
}
tooltip.setLength(0);
}
return message;
}
@Override
public void evaluate(@NotNull final PlaceholderAPIPlugin plugin, @NotNull final CommandSender sender, @NotNull final String alias, @NotNull @Unmodifiable final List<String> params)
@@ -45,8 +135,7 @@ public final class CommandECloudExpansionList extends PlaceholderCommand
return;
}
@Unmodifiable final Map<Integer, CloudExpansion> expansions = getExpansions(params.get(0), plugin);
final List<CloudExpansion> expansions = Lists.newArrayList(getExpansions(params.get(0), plugin));
final int page;
@@ -77,6 +166,7 @@ public final class CommandECloudExpansionList extends PlaceholderCommand
page = parsed;
}
expansions.sort(Comparator.comparing(CloudExpansion::getLastUpdate).reversed());
final StringBuilder builder = new StringBuilder();
final List<CloudExpansion> values = getPage(expansions, page - 1, PAGE_SIZE);
@@ -100,27 +190,63 @@ public final class CommandECloudExpansionList extends PlaceholderCommand
.append(page)
.append('\n');
int index = ((page - 1) * PAGE_SIZE) + 1;
for (final CloudExpansion expansion : values)
if (sender instanceof Player)
{
builder.append("&8")
.append(index++)
.append(". ")
.append(expansion.shouldUpdate() ? "&e" : "&a")
.append(expansion.getName())
.append('\n')
.append(" &bAuthor: &f")
.append(expansion.getAuthor())
.append('\n')
.append(" &bVerified: ")
.append(expansion.isVerified() ? "&a&l✔&r" : "&c&l❌&r")
.append('\n')
.append(" &bLatest Version: &f")
.append(expansion.getLatestVersion())
.append('\n');
Msg.msg(sender, builder.toString());
final int limit = (int) Math.ceil((double) expansions.size() / PAGE_SIZE);
final JSONMessage message = getMessage(values, page);
if (limit > 1)
{
message.newline();
message.then("")
.color(page <= 1 ? ChatColor.GRAY : ChatColor.DARK_GRAY);
if (page > 1)
{
message.runCommand("/papi ecloud list " + params.get(0) + " " + (page - 1));
}
message.then(" " + page + " ").color(ChatColor.GREEN);
message.then("")
.color(page >= limit ? ChatColor.GRAY : ChatColor.DARK_GRAY);
if (page < limit)
{
message.runCommand("/papi ecloud list " + params.get(0) + " " + (page + 1));
}
}
message.send(((Player) sender));
}
else
{
int index = ((page - 1) * PAGE_SIZE) + 1;
for (final CloudExpansion expansion : values)
{
builder.append("&8")
.append(index++)
.append(". ")
.append((expansion.shouldUpdate() ? "&6" : expansion.hasExpansion() ? "&a" : "&7"))
.append(expansion.getName())
.append('\n')
.append(" &bAuthor: &f")
.append(expansion.getAuthor())
.append('\n')
.append(" &bVerified: ")
.append(expansion.isVerified() ? "&a&l✔&r" : "&c&l❌&r")
.append('\n')
.append(" &bLatest Version: &f")
.append(expansion.getLatestVersion())
.append('\n');
}
Msg.msg(sender, builder.toString());
}
Msg.msg(sender, builder.toString());
}
@Override
@@ -133,42 +259,11 @@ public final class CommandECloudExpansionList extends PlaceholderCommand
if (params.size() <= 1)
{
suggestByParameter(Sets.union(OPTIONS, plugin.getExpansionCloud().getCloudAuthorNames()).stream(), suggestions, params.isEmpty() ? null : params.get(0));
suggestByParameter(Sets.union(OPTIONS, plugin.getCloudExpansionManager().getCloudExpansionAuthors()).stream(), suggestions, params.isEmpty() ? null : params.get(0));
return;
}
final Map<Integer, CloudExpansion> expansions = getExpansions(params.get(0), plugin);
suggestByParameter(IntStream.rangeClosed(1, (int) Math.ceil((double) expansions.size() / PAGE_SIZE)).mapToObj(Objects::toString), suggestions, params.get(1));
}
@NotNull
private static List<CloudExpansion> getPage(@NotNull final Map<Integer, CloudExpansion> expansions, final int page, final int pageSize)
{
if (expansions.isEmpty())
{
return Collections.emptyList();
}
final int head = (page * pageSize);
final int tail = (head + pageSize);
return IntStream.range(head, tail).mapToObj(expansions::get).filter(Objects::nonNull).collect(Collectors.toList());
}
@NotNull
private static Map<Integer, CloudExpansion> getExpansions(@NotNull final String target, @NotNull final PlaceholderAPIPlugin plugin)
{
switch (target.toLowerCase())
{
case "all":
return plugin.getExpansionCloud().getCloudExpansions();
case "installed":
return plugin.getExpansionCloud().getAllInstalled();
default:
return plugin.getExpansionCloud().getAllByAuthor(target);
}
suggestByParameter(IntStream.rangeClosed(1, (int) Math.ceil((double) getExpansions(params.get(0), plugin).size() / PAGE_SIZE)).mapToObj(Objects::toString), suggestions, params.get(1));
}
}

View File

@@ -31,7 +31,7 @@ public final class CommandECloudExpansionPlaceholders extends PlaceholderCommand
return;
}
final CloudExpansion expansion = plugin.getExpansionCloud().getCloudExpansion(params.get(0)).orElse(null);
final CloudExpansion expansion = plugin.getCloudExpansionManager().findCloudExpansionByName(params.get(0)).orElse(null);
if (expansion == null)
{
Msg.msg(sender,
@@ -63,7 +63,13 @@ public final class CommandECloudExpansionPlaceholders extends PlaceholderCommand
return;
}
final Stream<String> names = plugin.getExpansionCloud().getCloudExpansions().values().stream().map(CloudExpansion::getName).map(name -> name.replace(' ', '_'));
final Stream<String> names = plugin.getCloudExpansionManager()
.getCloudExpansions()
.values()
.stream()
.map(CloudExpansion::getName)
.map(name -> name.replace(' ', '_'));
suggestByParameter(names, suggestions, params.isEmpty() ? null : params.get(0));
}

View File

@@ -20,8 +20,8 @@ public final class CommandECloudRefresh extends PlaceholderCommand
@Override
public void evaluate(@NotNull final PlaceholderAPIPlugin plugin, @NotNull final CommandSender sender, @NotNull final String alias, @NotNull @Unmodifiable final List<String> params)
{
plugin.getExpansionCloud().clean();
plugin.getExpansionCloud().fetch(plugin.getPlaceholderAPIConfig().cloudAllowUnverifiedExpansions());
plugin.getCloudExpansionManager().clean();
plugin.getCloudExpansionManager().fetch(plugin.getPlaceholderAPIConfig().cloudAllowUnverifiedExpansions());
Msg.msg(sender,
"&aThe eCloud Manager has been refreshed!");

View File

@@ -2,7 +2,7 @@ package me.clip.placeholderapi.commands.impl.cloud;
import me.clip.placeholderapi.PlaceholderAPIPlugin;
import me.clip.placeholderapi.commands.PlaceholderCommand;
import me.clip.placeholderapi.expansion.cloud.ExpansionCloudManager;
import me.clip.placeholderapi.expansion.manager.CloudExpansionManager;
import me.clip.placeholderapi.util.Msg;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
@@ -21,10 +21,10 @@ public final class CommandECloudStatus extends PlaceholderCommand
@Override
public void evaluate(@NotNull final PlaceholderAPIPlugin plugin, @NotNull final CommandSender sender, @NotNull final String alias, @NotNull @Unmodifiable final List<String> params)
{
final ExpansionCloudManager manager = plugin.getExpansionCloud();
final CloudExpansionManager manager = plugin.getCloudExpansionManager();
final int updateCount = manager.getCloudUpdateCount();
final int authorCount = manager.getCloudAuthorCount();
final int authorCount = manager.getCloudExpansionAuthorCount();
final int expansionCount = manager.getCloudExpansions().size();
final StringBuilder builder = new StringBuilder();

View File

@@ -17,7 +17,6 @@ public final class CommandECloudToggle extends PlaceholderCommand
super("toggle", "enable", "disable");
}
@Override
public void evaluate(@NotNull final PlaceholderAPIPlugin plugin, @NotNull final CommandSender sender, @NotNull final String alias, @NotNull @Unmodifiable final List<String> params)
{
@@ -39,8 +38,7 @@ public final class CommandECloudToggle extends PlaceholderCommand
if (desiredState == currentState)
{
Msg.msg(sender,
"&7The eCloud Manager is already " + (desiredState ? "enabled" : "disabled"));
Msg.msg(sender, "&7The eCloud Manager is already " + (desiredState ? "enabled" : "disabled"));
return;
}
@@ -48,15 +46,14 @@ public final class CommandECloudToggle extends PlaceholderCommand
if (desiredState)
{
plugin.enableCloud();
plugin.getCloudExpansionManager().load();
}
else
{
plugin.disableCloud();
plugin.getCloudExpansionManager().kill();
}
Msg.msg(sender,
"&aThe eCloud Manager has been " + (desiredState ? "enabled" : "disabled"));
Msg.msg(sender, "&aThe eCloud Manager has been " + (desiredState ? "enabled" : "disabled"));
}
}

View File

@@ -3,13 +3,17 @@ package me.clip.placeholderapi.commands.impl.local;
import me.clip.placeholderapi.PlaceholderAPIPlugin;
import me.clip.placeholderapi.commands.PlaceholderCommand;
import me.clip.placeholderapi.expansion.PlaceholderExpansion;
import me.clip.placeholderapi.expansion.manager.LocalExpansionManager;
import me.clip.placeholderapi.util.Msg;
import org.bukkit.command.CommandSender;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Unmodifiable;
import java.io.File;
import java.util.Arrays;
import java.util.List;
import java.util.Optional;
import java.util.logging.Level;
public final class CommandExpansionRegister extends PlaceholderCommand
{
@@ -29,16 +33,45 @@ public final class CommandExpansionRegister extends PlaceholderCommand
return;
}
final PlaceholderExpansion expansion = plugin.getExpansionManager().registerExpansion(params.get(0));
if (expansion == null)
final LocalExpansionManager manager = plugin.getLocalExpansionManager();
final File file = new File(manager.getExpansionsFolder(), params.get(0));
if (!file.exists())
{
Msg.msg(sender,
"&cFailed to register expansion from &f" + params.get(0));
"&cThe file &f" + file.getName() + "&c doesn't exist!");
return;
}
Msg.msg(sender,
"&aSuccessfully registered expansion: &f" + expansion.getName());
manager.findExpansionsInFile(file).whenCompleteAsync((classes, exception) -> {
if (exception != null)
{
Msg.msg(sender,
"&cFailed to find expansion in file: &f" + file);
plugin.getLogger().log(Level.WARNING, "failed to find expansion in file: " + file, exception);
return;
}
if (classes.isEmpty())
{
Msg.msg(sender,
"&cNo expansion class found in file: &f" + file);
return;
}
final Optional<PlaceholderExpansion> expansion = manager.register(classes.get(0));
if (!expansion.isPresent())
{
Msg.msg(sender,
"&cFailed to register expansion from &f" + params.get(0));
return;
}
Msg.msg(sender,
"&aSuccessfully registered expansion: &f" + expansion.get().getName());
});
}
@Override
@@ -49,7 +82,7 @@ public final class CommandExpansionRegister extends PlaceholderCommand
return;
}
final String[] fileNames = plugin.getExpansionManager().getFolder().list((dir, name) -> name.endsWith(".jar"));
final String[] fileNames = plugin.getLocalExpansionManager().getExpansionsFolder().list((dir, name) -> name.endsWith(".jar"));
if (fileNames == null || fileNames.length == 0)
{
return;

View File

@@ -10,6 +10,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Unmodifiable;
import java.util.List;
import java.util.Optional;
public final class CommandExpansionUnregister extends PlaceholderCommand
{
@@ -29,8 +30,8 @@ public final class CommandExpansionUnregister extends PlaceholderCommand
return;
}
final PlaceholderExpansion expansion = plugin.getExpansionManager().getRegisteredExpansion(params.get(0));
if (expansion == null)
final Optional<PlaceholderExpansion> expansion = plugin.getLocalExpansionManager().findExpansionByName(params.get(0));
if (!expansion.isPresent())
{
Msg.msg(sender,
"&cThere is no expansion loaded with the identifier: &f" + params.get(0));
@@ -38,11 +39,11 @@ public final class CommandExpansionUnregister extends PlaceholderCommand
}
final String message = !PlaceholderAPI.unregisterExpansion(expansion) ?
final String message = !plugin.getLocalExpansionManager().unregister(expansion.get()) ?
"&cFailed to unregister expansion: &f" :
"&aSuccessfully unregistered expansion: &f";
Msg.msg(sender, message + expansion.getName());
Msg.msg(sender, message + expansion.get().getName());
}
@Override

View File

@@ -10,6 +10,7 @@ import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Unmodifiable;
import java.util.List;
import java.util.Optional;
public final class CommandInfo extends PlaceholderCommand
{
@@ -29,7 +30,7 @@ public final class CommandInfo extends PlaceholderCommand
return;
}
final PlaceholderExpansion expansion = plugin.getExpansionManager().getRegisteredExpansion(params.get(0));
final PlaceholderExpansion expansion = plugin.getLocalExpansionManager().findExpansionByName(params.get(0)).orElse(null);
if (expansion == null)
{
Msg.msg(sender,