add custom module config class

fix npe in tab listener
add getter for indefinite bans
fix npe in plex cmd
remove spring boot and add jetty
This commit is contained in:
Taah
2022-04-01 20:58:03 -07:00
parent 099680d068
commit 1f2eed78de
6 changed files with 189 additions and 23 deletions

View File

@ -4,19 +4,25 @@ import com.google.common.collect.Lists;
import dev.plex.Plex;
import dev.plex.command.PlexCommand;
import dev.plex.listener.PlexListener;
import java.io.File;
import java.util.List;
import java.util.Locale;
import lombok.AccessLevel;
import lombok.Getter;
import lombok.Setter;
import org.apache.logging.log4j.Logger;
import org.bukkit.event.HandlerList;
import org.jetbrains.annotations.NotNull;
import org.jetbrains.annotations.Nullable;
import java.io.File;
import java.io.IOException;
import java.io.InputStream;
import java.net.URL;
import java.net.URLConnection;
import java.util.List;
import java.util.Locale;
@Getter
@Setter(AccessLevel.MODULE)
public abstract class PlexModule
{
public abstract class PlexModule {
@Getter(AccessLevel.MODULE)
private final List<PlexCommand> commands = Lists.newArrayList();
@ -28,41 +34,49 @@ public abstract class PlexModule
private File dataFolder;
private Logger logger;
public void load()
{
public void load() {
}
public void enable()
{
public void enable() {
}
public void disable()
{
public void disable() {
}
public void registerListener(PlexListener listener)
{
public void registerListener(PlexListener listener) {
listeners.add(listener);
}
public void unregisterListener(PlexListener listener)
{
public void unregisterListener(PlexListener listener) {
listeners.remove(listener);
HandlerList.unregisterAll(listener);
}
public void registerCommand(PlexCommand command)
{
public void registerCommand(PlexCommand command) {
commands.add(command);
}
public void unregisterCommand(PlexCommand command)
{
public void unregisterCommand(PlexCommand command) {
commands.remove(command);
}
public PlexCommand getCommand(String name)
{
public PlexCommand getCommand(String name) {
return commands.stream().filter(plexCommand -> plexCommand.getName().equalsIgnoreCase(name) || plexCommand.getAliases().stream().map(String::toLowerCase).toList().contains(name.toLowerCase(Locale.ROOT))).findFirst().orElse(null);
}
@Nullable
public InputStream getResource(@NotNull String filename) {
try {
URL url = this.getClass().getClassLoader().getResource(filename);
if (url == null) {
return null;
}
URLConnection connection = url.openConnection();
connection.setUseCaches(false);
return connection.getInputStream();
} catch (IOException ex) {
return null;
}
}
}