progress
This commit is contained in:
@@ -7,11 +7,15 @@ group = "us.ajg0702.queue.api"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
|
||||
maven { url = uri("https://repo.ajg0702.us") }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation("net.kyori:adventure-api:4.8.1")
|
||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||
|
||||
compileOnly("us.ajg0702:ajUtils:1.1.6")
|
||||
}
|
||||
|
||||
publishing {
|
||||
|
||||
@@ -0,0 +1,8 @@
|
||||
package us.ajg0702.queue.api;
|
||||
|
||||
import us.ajg0702.utils.common.Config;
|
||||
|
||||
public interface LogicGetter {
|
||||
Logic constructLogic();
|
||||
AliasManager constructAliasManager(Config config);
|
||||
}
|
||||
@@ -1,6 +1,9 @@
|
||||
package us.ajg0702.queue.api;
|
||||
|
||||
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;
|
||||
|
||||
public interface PlatformMethods {
|
||||
/**
|
||||
@@ -10,7 +13,7 @@ public interface PlatformMethods {
|
||||
* BungeeUtils.sendCustomData(p, "inqueue", "true");
|
||||
* BungeeUtils.sendCustomData(p, "inqueueevent", "true");
|
||||
*/
|
||||
void sendJoinQueueChannelMessages();
|
||||
void sendJoinQueueChannelMessages(QueueServer queueServer, QueuePlayer queuePlayer);
|
||||
|
||||
/**
|
||||
* Sends a plugin message on the plugin messaging channel
|
||||
|
||||
@@ -1,10 +1,11 @@
|
||||
package us.ajg0702.queue.api.server;
|
||||
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.util.Handle;
|
||||
|
||||
import java.util.concurrent.CompletableFuture;
|
||||
|
||||
public interface AdaptedServer {
|
||||
public interface AdaptedServer extends Handle {
|
||||
|
||||
/**
|
||||
* Gets the ServerInfo for this server
|
||||
|
||||
@@ -1,6 +1,8 @@
|
||||
package us.ajg0702.queue.api.server;
|
||||
|
||||
public interface AdaptedServerInfo {
|
||||
import us.ajg0702.queue.api.util.Handle;
|
||||
|
||||
public interface AdaptedServerInfo extends Handle {
|
||||
|
||||
/**
|
||||
* Gets the name of the server
|
||||
|
||||
@@ -1,8 +1,9 @@
|
||||
package us.ajg0702.queue.api.server;
|
||||
|
||||
import net.kyori.adventure.text.Component;
|
||||
import us.ajg0702.queue.api.util.Handle;
|
||||
|
||||
public interface AdaptedServerPing {
|
||||
public interface AdaptedServerPing extends Handle {
|
||||
/**
|
||||
* Gets the component of the description (aka MOTD)
|
||||
* @return A compoent of the description
|
||||
|
||||
@@ -38,8 +38,6 @@ repositories {
|
||||
|
||||
dependencies {
|
||||
testImplementation("junit:junit:4.12")
|
||||
|
||||
implementation(project(":common"))
|
||||
}
|
||||
|
||||
|
||||
|
||||
@@ -13,7 +13,9 @@ repositories {
|
||||
dependencies {
|
||||
compileOnly("net.kyori:adventure-api:4.8.1")
|
||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||
compileOnly("us.ajg0702:ajUtils:1.1.5")
|
||||
compileOnly("us.ajg0702:ajUtils:1.1.6")
|
||||
|
||||
compileOnly("org.spongepowered:configurate-yaml:4.0.0")
|
||||
|
||||
implementation(project(":api"))
|
||||
}
|
||||
|
||||
@@ -1,9 +1,12 @@
|
||||
package us.ajg0702.queue.common;
|
||||
|
||||
import org.spongepowered.configurate.ConfigurateException;
|
||||
import us.ajg0702.queue.api.*;
|
||||
import us.ajg0702.utils.common.Config;
|
||||
import us.ajg0702.utils.common.Messages;
|
||||
|
||||
import java.io.File;
|
||||
import java.util.LinkedHashMap;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class QueueMain {
|
||||
@@ -57,4 +60,91 @@ public class QueueMain {
|
||||
public QueueManager getQueueManager() {
|
||||
return queueManager;
|
||||
}
|
||||
|
||||
|
||||
public QueueMain(Logger logger, ServerBuilder serverBuilder, PlatformMethods platformMethods, File dataFolder) {
|
||||
this.logger = logger;
|
||||
this.serverBuilder = serverBuilder;
|
||||
this.platformMethods = platformMethods;
|
||||
|
||||
try {
|
||||
config = new Config(dataFolder, logger);
|
||||
} catch (ConfigurateException e) {
|
||||
logger.warning("Unable to load config:");
|
||||
e.printStackTrace();
|
||||
return;
|
||||
}
|
||||
|
||||
timeBetweenPlayers = config.getDouble("wait-time");
|
||||
|
||||
queueManager = new QueueManagerImpl(this);
|
||||
|
||||
|
||||
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.");
|
||||
|
||||
d.put("status.offline.offline", "offline");
|
||||
d.put("status.offline.restarting", "restarting");
|
||||
d.put("status.offline.full", "full");
|
||||
d.put("status.offline.restricted", "restricted");
|
||||
d.put("status.offline.paused", "paused");
|
||||
|
||||
d.put("status.online.base", "&7You are in position &f{POS}&7 of &f{LEN}&7. Estimated time: {TIME}");
|
||||
d.put("status.left-last-queue", "&aYou left the last queue you were in.");
|
||||
d.put("status.now-in-queue", "&aYou are now queued for {SERVER}! &7You are in position &f{POS}&7 of &f{LEN}&7.\n&7Type &f/leavequeue&7 or &f<click:run_command:/leavequeue {SERVERNAME}>click here</click>&7 to leave the queue!");
|
||||
d.put("status.now-in-empty-queue", "");
|
||||
d.put("status.sending-now", "&aSending you to &f{SERVER} &anow..");
|
||||
|
||||
d.put("errors.server-not-exist", "&cThe server {SERVER} does not exist!");
|
||||
d.put("errors.already-queued", "&cYou are already queued for that server!");
|
||||
d.put("errors.player-only", "&cThis command can only be executed as a player!");
|
||||
d.put("errors.already-connected", "&cYou are already connected to this server!");
|
||||
d.put("errors.cant-join-paused", "&cYou cannot join the queue for {SERVER} because it is paused.");
|
||||
d.put("errors.deny-joining-from-server", "&cYou are not allowed to join queues from this server!");
|
||||
|
||||
d.put("commands.leave-queue", "&aYou left the queue for {SERVER}!");
|
||||
d.put("commands.reload", "&aConfig and messages reloaded successfully!");
|
||||
d.put("commands.joinqueue.usage", "&cUsage: /joinqueue <server>");
|
||||
|
||||
d.put("noperm", "&cYou do not have permission to do this!");
|
||||
|
||||
d.put("format.time.mins", "{m}m {s}s");
|
||||
d.put("format.time.secs", "{s} seconds");
|
||||
|
||||
d.put("list.format", "&b{SERVER} &7({COUNT}): {LIST}");
|
||||
d.put("list.playerlist", "&9{NAME}&7, ");
|
||||
d.put("list.total", "&7Total players in queues: &f{TOTAL}");
|
||||
d.put("list.none", "&7None");
|
||||
|
||||
d.put("spigot.actionbar.online", "&7You are queued for &f{SERVER}&7. You are in position &f{POS}&7 of &f{LEN}&7. Estimated time: {TIME}");
|
||||
d.put("spigot.actionbar.offline", "&7You are queued for &f{SERVER}&7. &7You are in position &f{POS}&7 of &f{LEN}&7.");
|
||||
|
||||
d.put("send", "&aAdded &f{PLAYER}&a to the queue for &f{SERVER}");
|
||||
d.put("remove", "&aRemoved &f{PLAYER} from all queues they were in.");
|
||||
|
||||
d.put("placeholders.queued.none", "None");
|
||||
d.put("placeholders.position.none", "None");
|
||||
|
||||
d.put("commands.leave.more-args", "&cPlease specify which queue you want to leave! &7You are in these queues: {QUEUES}");
|
||||
d.put("commands.leave.queues-list-format", "&f{NAME}&7, ");
|
||||
d.put("commands.leave.not-queued", "&cYou are not queued for that server! &7You are in these queues: {QUEUES}");
|
||||
d.put("commands.leave.no-queues", "&cYou are not queued!");
|
||||
|
||||
d.put("commands.pause.more-args", "&cUsage: /ajqueue pause <server> [on/off]");
|
||||
d.put("commands.pause.no-server", "&cThat server does not exist!");
|
||||
d.put("commands.pause.success", "&aThe queue for &f{SERVER} &ais now {PAUSED}");
|
||||
d.put("commands.pause.paused.true", "&epaused");
|
||||
d.put("commands.pause.paused.false", "&aun-paused");
|
||||
|
||||
d.put("commands.send.player-not-found", "&cThat player could not be found. Make sure they are online!");
|
||||
|
||||
d.put("commands.listqueues.header", "&9Queues:");
|
||||
d.put("commands.listqueues.format", "<hover:show_text:'&7Status: {STATUS}'>{COLOR}{NAME}&7: {COUNT} queued</hover>");
|
||||
|
||||
d.put("max-tries-reached", "&cUnable to connect to {SERVER}. Max retries reached.");
|
||||
d.put("auto-queued", "&aYou've been auto-queued for {SERVER} because you were kicked.");
|
||||
|
||||
messages = new Messages(dataFolder, logger, d);
|
||||
}
|
||||
}
|
||||
|
||||
@@ -115,7 +115,7 @@ public class QueueManagerImpl implements QueueManager {
|
||||
));
|
||||
}
|
||||
|
||||
main.getPlatformMethods().sendJoinQueueChannelMessages();
|
||||
main.getPlatformMethods().sendJoinQueueChannelMessages(server, queuePlayer);
|
||||
return true;
|
||||
}
|
||||
|
||||
|
||||
@@ -0,0 +1,21 @@
|
||||
package us.ajg0702.queue.logic;
|
||||
|
||||
import us.ajg0702.queue.api.AliasManager;
|
||||
import us.ajg0702.utils.common.Config;
|
||||
|
||||
public class FreeAliasManager implements AliasManager {
|
||||
Config config;
|
||||
public FreeAliasManager(Config config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAlias(String server) {
|
||||
return server;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getServer(String alias) {
|
||||
return alias;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package us.ajg0702.queue.logic;
|
||||
|
||||
import us.ajg0702.queue.api.Logic;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.players.QueuePlayer;
|
||||
import us.ajg0702.queue.api.queues.QueueServer;
|
||||
|
||||
public class FreeLogic implements Logic {
|
||||
@Override
|
||||
public boolean isPremium() {
|
||||
return false;
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueuePlayer priorityLogic(QueueServer server, AdaptedPlayer player) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package us.ajg0702.queue.logic;
|
||||
|
||||
import us.ajg0702.queue.api.AliasManager;
|
||||
import us.ajg0702.queue.api.Logic;
|
||||
import us.ajg0702.utils.common.Config;
|
||||
|
||||
public class LogicGetter implements us.ajg0702.queue.api.LogicGetter {
|
||||
|
||||
@Override
|
||||
public Logic constructLogic() {
|
||||
return new FreeLogic();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AliasManager constructAliasManager(Config config) {
|
||||
return new FreeAliasManager(config);
|
||||
}
|
||||
}
|
||||
@@ -14,12 +14,13 @@ repositories {
|
||||
dependencies {
|
||||
compileOnly("net.kyori:adventure-api:4.8.1")
|
||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||
compileOnly("us.ajg0702:ajUtils:1.1.5")
|
||||
compileOnly("us.ajg0702:ajUtils:1.1.6")
|
||||
|
||||
compileOnly("com.velocitypowered:velocity-api:3.0.0")
|
||||
annotationProcessor("com.velocitypowered:velocity-api:3.0.0")
|
||||
|
||||
implementation(project(":common"))
|
||||
implementation(project(":api"))
|
||||
}
|
||||
|
||||
|
||||
|
||||
+32
@@ -0,0 +1,32 @@
|
||||
package us.ajg0702.queue.platforms.velocity;
|
||||
|
||||
import com.velocitypowered.api.proxy.ProxyServer;
|
||||
import us.ajg0702.queue.api.PlatformMethods;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.players.QueuePlayer;
|
||||
import us.ajg0702.queue.api.queues.QueueServer;
|
||||
|
||||
import java.util.logging.Logger;
|
||||
|
||||
public class PlatformMethodImpl implements PlatformMethods {
|
||||
|
||||
ProxyServer proxyServer;
|
||||
Logger logger;
|
||||
|
||||
public PlatformMethodImpl(ProxyServer proxyServer, Logger logger) {
|
||||
this.proxyServer = proxyServer;
|
||||
this.logger = logger;
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendJoinQueueChannelMessages(QueueServer queueServer, QueuePlayer queuePlayer) {
|
||||
AdaptedPlayer player = queuePlayer.getPlayer();
|
||||
if(player == null) return;
|
||||
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendPluginMessage(AdaptedPlayer player, String channel, String... data) {
|
||||
|
||||
}
|
||||
}
|
||||
+34
@@ -0,0 +1,34 @@
|
||||
package us.ajg0702.queue.platforms.velocity;
|
||||
|
||||
import com.velocitypowered.api.proxy.ProxyServer;
|
||||
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||
import us.ajg0702.queue.api.ServerBuilder;
|
||||
import us.ajg0702.queue.api.queues.QueueServer;
|
||||
import us.ajg0702.queue.api.server.AdaptedServer;
|
||||
|
||||
import java.util.ArrayList;
|
||||
import java.util.Collection;
|
||||
import java.util.List;
|
||||
|
||||
public class ServerBuilderImpl implements ServerBuilder {
|
||||
|
||||
private final ProxyServer proxyServer;
|
||||
public ServerBuilderImpl(ProxyServer proxyServer) {
|
||||
this.proxyServer = proxyServer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<QueueServer> getServers() {
|
||||
List<QueueServer> result = new ArrayList<>();
|
||||
Collection<RegisteredServer> servers = proxyServer.getAllServers();
|
||||
|
||||
|
||||
|
||||
return result;
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueueServer buildGroup(String name, List<AdaptedServer> servers) {
|
||||
return null;
|
||||
}
|
||||
}
|
||||
+41
-1
@@ -1,8 +1,48 @@
|
||||
package us.ajg0702.queue.platforms.velocity;
|
||||
|
||||
import com.google.inject.Inject;
|
||||
import com.velocitypowered.api.event.Subscribe;
|
||||
import com.velocitypowered.api.event.proxy.ProxyInitializeEvent;
|
||||
import com.velocitypowered.api.plugin.Plugin;
|
||||
import com.velocitypowered.api.proxy.ProxyServer;
|
||||
import us.ajg0702.queue.common.QueueMain;
|
||||
|
||||
import java.io.File;
|
||||
import java.nio.file.Path;
|
||||
import java.util.logging.Logger;
|
||||
|
||||
@Plugin(
|
||||
id = "ajqueue",
|
||||
name = "ajQueue",
|
||||
version = "@VERSION@",
|
||||
url = "https://ajg0702.us",
|
||||
description = "Queue for servers",
|
||||
authors = {"ajgeiss0702"}
|
||||
)
|
||||
|
||||
@Plugin(id = "ajqueue", name = "ajQueue", version = "@VERSION@")
|
||||
public class VelocityQueue {
|
||||
ProxyServer proxyServer;
|
||||
Logger logger;
|
||||
|
||||
QueueMain main;
|
||||
|
||||
File dataFolder;
|
||||
|
||||
@Inject
|
||||
public VelocityQueue(ProxyServer proxyServer, Logger logger, Path dataFolder) {
|
||||
this.proxyServer = proxyServer;
|
||||
this.logger = logger;
|
||||
|
||||
this.dataFolder = dataFolder.toFile();
|
||||
}
|
||||
|
||||
@Subscribe
|
||||
public void onProxyInit(ProxyInitializeEvent e) {
|
||||
main = new QueueMain(
|
||||
logger,
|
||||
new ServerBuilderImpl(proxyServer),
|
||||
new PlatformMethodImpl(proxyServer, logger),
|
||||
dataFolder
|
||||
);
|
||||
}
|
||||
}
|
||||
|
||||
+68
@@ -0,0 +1,68 @@
|
||||
package us.ajg0702.queue.platforms.velocity.players;
|
||||
|
||||
import com.velocitypowered.api.proxy.Player;
|
||||
import com.velocitypowered.api.proxy.ServerConnection;
|
||||
import com.velocitypowered.api.proxy.server.RegisteredServer;
|
||||
import net.kyori.adventure.text.Component;
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
import us.ajg0702.queue.api.server.AdaptedServer;
|
||||
|
||||
import java.util.Optional;
|
||||
import java.util.UUID;
|
||||
|
||||
public class VelocityPlayer implements AdaptedPlayer {
|
||||
|
||||
Player handle;
|
||||
|
||||
public VelocityPlayer(Player player) {
|
||||
handle = player;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean isConnected() {
|
||||
return handle.isActive();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(Component message) {
|
||||
handle.sendMessage(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendActionBar(Component message) {
|
||||
handle.sendActionBar(message);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void sendMessage(String message) {
|
||||
handle.sendMessage(Component.text().content(message));
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean hasPermission(String permission) {
|
||||
return handle.hasPermission(permission);
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getServerName() {
|
||||
Optional<ServerConnection> serverConnection = handle.getCurrentServer();
|
||||
if(!serverConnection.isPresent()) return "none";
|
||||
ServerConnection connection = serverConnection.get();
|
||||
return connection.getServerInfo().getName();
|
||||
}
|
||||
|
||||
@Override
|
||||
public UUID getUniqueId() {
|
||||
return handle.getUniqueId();
|
||||
}
|
||||
|
||||
@Override
|
||||
public void connect(AdaptedServer server) {
|
||||
handle.createConnectionRequest((RegisteredServer) server.getHandle()).connect();
|
||||
}
|
||||
|
||||
@Override
|
||||
public Player getHandle() {
|
||||
return handle;
|
||||
}
|
||||
}
|
||||
@@ -1,5 +0,0 @@
|
||||
package us.ajg0702.queue.platforms.velocity;
|
||||
|
||||
public class test {
|
||||
public static int i = 0;
|
||||
}
|
||||
Reference in New Issue
Block a user