lot of progress
This commit is contained in:
@@ -0,0 +1,59 @@
|
||||
package us.ajg0702.queue.commands;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import us.ajg0702.queue.api.commands.IBaseCommand;
|
||||
import us.ajg0702.queue.api.commands.ICommandSender;
|
||||
import us.ajg0702.queue.api.commands.ISubCommand;
|
||||
import us.ajg0702.utils.common.Messages;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class BaseCommand implements IBaseCommand {
|
||||
@Override
|
||||
public String getName() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImmutableList<String> getAliases() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImmutableList<ISubCommand> getSubCommands() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPermission() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Messages getMessages() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addSubCommand(ISubCommand subCommand) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(ICommandSender sender, String[] args) {
|
||||
|
||||
}
|
||||
|
||||
public boolean checkPermission(ICommandSender sender) {
|
||||
if(getPermission() != null && !sender.hasPermission(getPermission())) {
|
||||
sender.sendMessage(getMessages().getComponent("noperm"));
|
||||
return false;
|
||||
}
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> autoComplete(ICommandSender sender, String[] args) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,7 @@
|
||||
package us.ajg0702.queue.commands;
|
||||
|
||||
import us.ajg0702.queue.api.commands.ISubCommand;
|
||||
|
||||
public class SubCommand extends BaseCommand implements ISubCommand {
|
||||
|
||||
}
|
||||
@@ -0,0 +1,82 @@
|
||||
package us.ajg0702.queue.commands.commands.queue;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
import us.ajg0702.queue.api.commands.ICommandSender;
|
||||
import us.ajg0702.queue.api.commands.ISubCommand;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.commands.BaseCommand;
|
||||
import us.ajg0702.queue.common.QueueMain;
|
||||
import us.ajg0702.utils.common.Messages;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
|
||||
public class QueueCommand extends BaseCommand {
|
||||
|
||||
private final QueueMain main;
|
||||
|
||||
public QueueCommand(QueueMain main) {
|
||||
this.main = main;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getName() {
|
||||
return "queue";
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImmutableList<String> getAliases() {
|
||||
return ImmutableList.of("move", "server", "joinqueue", "joinq");
|
||||
}
|
||||
|
||||
@Override
|
||||
public ImmutableList<ISubCommand> getSubCommands() {
|
||||
return ImmutableList.<ISubCommand>builder().build();
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getPermission() {
|
||||
return null;
|
||||
}
|
||||
|
||||
@Override
|
||||
public Messages getMessages() {
|
||||
return main.getMessages();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void addSubCommand(ISubCommand subCommand) {
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void execute(ICommandSender sender, String[] args) {
|
||||
if(!checkPermission(sender)) return;
|
||||
if(!sender.isPlayer()) {
|
||||
sender.sendMessage(getMessages().getComponent("errors.player-only"));
|
||||
return;
|
||||
}
|
||||
AdaptedPlayer player = main.getPlatformMethods().senderToPlayer(sender);
|
||||
|
||||
if(args.length > 0) {
|
||||
if(main.getConfig().getBoolean("require-permission") && !player.hasPermission("ajqueue.queue."+args[0])) {
|
||||
sender.sendMessage(getMessages().getComponent("noperm"));
|
||||
return;
|
||||
}
|
||||
main.getQueueManager().addToQueue(player, args[0]);
|
||||
} else {
|
||||
sender.sendMessage(getMessages().getComponent("commands.joinqueue.usage"));
|
||||
}
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<String> autoComplete(ICommandSender sender, String[] args) {
|
||||
if(!main.getConfig().getBoolean("tab-complete-queues")) {
|
||||
return new ArrayList<>();
|
||||
}
|
||||
if(args.length == 1) {
|
||||
return main.getQueueManager().getServerNames();
|
||||
}
|
||||
return new ArrayList<>();
|
||||
}
|
||||
}
|
||||
@@ -1,12 +1,20 @@
|
||||
package us.ajg0702.queue.common;
|
||||
|
||||
import org.spongepowered.configurate.ConfigurateException;
|
||||
import us.ajg0702.queue.api.*;
|
||||
import us.ajg0702.queue.api.AliasManager;
|
||||
import us.ajg0702.queue.api.Logic;
|
||||
import us.ajg0702.queue.api.PlatformMethods;
|
||||
import us.ajg0702.queue.api.QueueManager;
|
||||
import us.ajg0702.queue.api.server.ServerBuilder;
|
||||
import us.ajg0702.queue.logic.LogicGetter;
|
||||
import us.ajg0702.utils.common.Config;
|
||||
import us.ajg0702.utils.common.Messages;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.ArrayList;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.List;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class QueueMain {
|
||||
@@ -41,20 +49,36 @@ public class QueueMain {
|
||||
return getLogic().isPremium();
|
||||
}
|
||||
|
||||
private PlatformMethods platformMethods;
|
||||
private final PlatformMethods platformMethods;
|
||||
public PlatformMethods getPlatformMethods() {
|
||||
return platformMethods;
|
||||
}
|
||||
|
||||
private Logger logger;
|
||||
private final Logger logger;
|
||||
public Logger getLogger() {
|
||||
return logger;
|
||||
}
|
||||
|
||||
private List<CompletableFuture<ServerBuilder>> serverCompletableFutures = new ArrayList<>();
|
||||
private ServerBuilder serverBuilder;
|
||||
public ServerBuilder getServerBuilder() {
|
||||
return serverBuilder;
|
||||
}
|
||||
public CompletableFuture<ServerBuilder> getFutureServerBuilder() {
|
||||
CompletableFuture<ServerBuilder> completableFuture = new CompletableFuture<>();
|
||||
if(serverBuilder != null) {
|
||||
completableFuture.complete(serverBuilder);
|
||||
}
|
||||
serverCompletableFutures.add(completableFuture);
|
||||
return completableFuture;
|
||||
}
|
||||
public void setServerBuilder(ServerBuilder serverBuilder) {
|
||||
if(this.serverBuilder != null) throw new IllegalStateException("SeverBuilder already set");
|
||||
this.serverBuilder = serverBuilder;
|
||||
for(CompletableFuture<ServerBuilder> future : serverCompletableFutures) {
|
||||
future.complete(serverBuilder);
|
||||
}
|
||||
}
|
||||
|
||||
private QueueManager queueManager;
|
||||
public QueueManager getQueueManager() {
|
||||
@@ -62,10 +86,15 @@ public class QueueMain {
|
||||
}
|
||||
|
||||
|
||||
public QueueMain(Logger logger, ServerBuilder serverBuilder, PlatformMethods platformMethods, File dataFolder) {
|
||||
private File dataFolder;
|
||||
|
||||
|
||||
public QueueMain(Logger logger, PlatformMethods platformMethods, File dataFolder) {
|
||||
this.logger = logger;
|
||||
this.serverBuilder = serverBuilder;
|
||||
this.platformMethods = platformMethods;
|
||||
this.dataFolder = dataFolder;
|
||||
|
||||
constructMessages();
|
||||
|
||||
try {
|
||||
config = new Config(dataFolder, logger);
|
||||
@@ -79,7 +108,14 @@ public class QueueMain {
|
||||
|
||||
queueManager = new QueueManagerImpl(this);
|
||||
|
||||
logic = new LogicGetter().constructLogic();
|
||||
aliasManager = new LogicGetter().constructAliasManager(config);
|
||||
|
||||
|
||||
|
||||
}
|
||||
|
||||
private void constructMessages() {
|
||||
LinkedHashMap<String, String> d = new LinkedHashMap<>();
|
||||
|
||||
d.put("status.offline.base", "&c{SERVER} is {STATUS}. &7You are in position &f{POS}&7 of &f{LEN}&7.");
|
||||
|
||||
@@ -6,13 +6,14 @@ import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.players.QueuePlayer;
|
||||
import us.ajg0702.queue.api.queues.QueueServer;
|
||||
import us.ajg0702.queue.api.server.AdaptedServer;
|
||||
import us.ajg0702.queue.api.server.AdaptedServerInfo;
|
||||
import us.ajg0702.queue.api.server.ServerBuilder;
|
||||
import us.ajg0702.queue.common.players.QueuePlayerImpl;
|
||||
import us.ajg0702.utils.bungee.BungeeUtils;
|
||||
import us.ajg0702.utils.common.Messages;
|
||||
import us.ajg0702.utils.common.TimeUtils;
|
||||
|
||||
import java.util.*;
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
import java.util.concurrent.ExecutionException;
|
||||
|
||||
public class QueueManagerImpl implements QueueManager {
|
||||
|
||||
@@ -24,6 +25,16 @@ public class QueueManagerImpl implements QueueManager {
|
||||
public QueueManagerImpl(QueueMain main) {
|
||||
this.main = main;
|
||||
this.msgs = main.getMessages();
|
||||
|
||||
CompletableFuture<ServerBuilder> serverBuilderFuture = main.getFutureServerBuilder();
|
||||
serverBuilderFuture.thenRunAsync(() -> {
|
||||
try {
|
||||
servers = serverBuilderFuture.get().buildServers();
|
||||
// TODO: groups
|
||||
} catch (InterruptedException | ExecutionException e) {
|
||||
e.printStackTrace();
|
||||
}
|
||||
});
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -107,12 +118,14 @@ public class QueueManagerImpl implements QueueManager {
|
||||
"SERVER:"+server.getAlias()));
|
||||
}
|
||||
} else {
|
||||
player.sendMessage(msgs.getComponent("status.now-in-queue",
|
||||
"POS:"+pos,
|
||||
"LEN:"+len,
|
||||
"SERVER:"+server.getAlias(),
|
||||
"SERVERNAME:"+server.getName()
|
||||
));
|
||||
player.sendMessage(
|
||||
msgs.getComponent("status.now-in-queue",
|
||||
"POS:"+pos,
|
||||
"LEN:"+len,
|
||||
"SERVER:"+server.getAlias(),
|
||||
"SERVERNAME:"+server.getName()
|
||||
)
|
||||
);
|
||||
}
|
||||
|
||||
main.getPlatformMethods().sendJoinQueueChannelMessages(server, queuePlayer);
|
||||
@@ -167,7 +180,7 @@ public class QueueManagerImpl implements QueueManager {
|
||||
|
||||
servers.clear();
|
||||
|
||||
servers.addAll(main.getServerBuilder().getServers());
|
||||
servers.addAll(main.getServerBuilder().buildServers());
|
||||
|
||||
List<String> groupsraw = main.getConfig().getStringList("server-groups");
|
||||
for(String groupraw : groupsraw) {
|
||||
|
||||
Reference in New Issue
Block a user