progress
This commit is contained in:
@@ -0,0 +1,50 @@
|
||||
plugins {
|
||||
`java-library`
|
||||
id("com.github.johnrengelman.shadow")
|
||||
`maven-publish`
|
||||
}
|
||||
|
||||
group = "us.ajg0702.queue"
|
||||
|
||||
repositories {
|
||||
mavenCentral()
|
||||
maven { url = uri("https://repo.ajg0702.us") }
|
||||
}
|
||||
|
||||
dependencies {
|
||||
implementation(project(":free"))
|
||||
|
||||
compileOnly(project(":api"))
|
||||
compileOnly(project(":common"))
|
||||
|
||||
compileOnly("com.google.guava:guava:30.1.1-jre")
|
||||
|
||||
compileOnly("us.ajg0702:ajUtils:1.1.6")
|
||||
|
||||
compileOnly("net.kyori:adventure-api:4.8.1")
|
||||
}
|
||||
|
||||
publishing {
|
||||
publications {
|
||||
create<MavenPublication>("mavenJava") {
|
||||
artifact(tasks["jar"])
|
||||
}
|
||||
}
|
||||
|
||||
repositories {
|
||||
|
||||
val mavenUrl = "https://repo.ajg0702.us/releases"
|
||||
|
||||
if(!System.getenv("REPO_TOKEN").isNullOrEmpty()) {
|
||||
maven {
|
||||
url = uri(mavenUrl)
|
||||
name = "ajRepo"
|
||||
|
||||
credentials {
|
||||
username = "plugins"
|
||||
password = System.getenv("REPO_TOKEN")
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,18 @@
|
||||
package us.ajg0702.queue.logic;
|
||||
|
||||
import us.ajg0702.queue.api.AliasManager;
|
||||
import us.ajg0702.queue.api.Logic;
|
||||
import us.ajg0702.queue.api.LogicGetter;
|
||||
import us.ajg0702.utils.common.Config;
|
||||
|
||||
public class LogicGetterImpl implements LogicGetter {
|
||||
@Override
|
||||
public Logic constructLogic() {
|
||||
return new PremiumLogic();
|
||||
}
|
||||
|
||||
@Override
|
||||
public AliasManager constructAliasManager(Config config) {
|
||||
return new PremiumAliasManager(config);
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,37 @@
|
||||
package us.ajg0702.queue.logic;
|
||||
|
||||
import us.ajg0702.queue.api.AliasManager;
|
||||
import us.ajg0702.utils.common.Config;
|
||||
|
||||
import java.util.List;
|
||||
|
||||
public class PremiumAliasManager implements AliasManager {
|
||||
|
||||
private final Config config;
|
||||
|
||||
protected PremiumAliasManager(Config config) {
|
||||
this.config = config;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getAlias(String server) {
|
||||
List<String> aliasesraw = config.getStringList("server-aliases");
|
||||
for(String aliasraw : aliasesraw) {
|
||||
String realname = aliasraw.split(":")[0];
|
||||
if(!realname.equalsIgnoreCase(server)) continue;
|
||||
return aliasraw.split(":")[1];
|
||||
}
|
||||
return server;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String getServer(String alias) {
|
||||
List<String> aliasesraw = config.getStringList("server-aliases");
|
||||
for(String aliasraw : aliasesraw) {
|
||||
String salias = aliasraw.split(":")[1];
|
||||
if(!alias.equalsIgnoreCase(salias)) continue;
|
||||
return aliasraw.split(":")[0];
|
||||
}
|
||||
return alias;
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,80 @@
|
||||
package us.ajg0702.queue.logic;
|
||||
|
||||
import com.google.common.collect.ImmutableList;
|
||||
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;
|
||||
import us.ajg0702.queue.api.util.QueueLogger;
|
||||
import us.ajg0702.queue.common.QueueMain;
|
||||
import us.ajg0702.queue.common.players.QueuePlayerImpl;
|
||||
import us.ajg0702.queue.logic.permissions.PermissionGetter;
|
||||
|
||||
public class PremiumLogic implements Logic {
|
||||
@Override
|
||||
public boolean isPremium() {
|
||||
return true;
|
||||
}
|
||||
|
||||
@Override
|
||||
public QueuePlayer priorityLogic(QueueServer server, AdaptedPlayer player) {
|
||||
int maxOfflineTime = PermissionGetter.getMaxOfflineTime(player);
|
||||
|
||||
QueueMain main = QueueMain.getInstance();
|
||||
|
||||
if(player.hasPermission("ajqueue.bypass") || player.hasPermission("ajqueue.serverbypass."+server.getName())) {
|
||||
QueuePlayer queuePlayer = new QueuePlayerImpl(player, server, Integer.MAX_VALUE, maxOfflineTime);
|
||||
server.addPlayer(queuePlayer, 0);
|
||||
main.getQueueManager().sendPlayers(server);
|
||||
return queuePlayer;
|
||||
}
|
||||
|
||||
int priority = PermissionGetter.getPriority(player);
|
||||
int serverPriority = PermissionGetter.getServerPriotity(server.getName(), player);
|
||||
|
||||
int highestPriority = Math.max(priority, serverPriority);
|
||||
|
||||
QueuePlayer queuePlayer = new QueuePlayerImpl(player, server, highestPriority, maxOfflineTime);
|
||||
|
||||
QueueLogger logger = main.getLogger();
|
||||
boolean debug = main.getConfig().getBoolean("priority-queue-debug");
|
||||
|
||||
if(debug) {
|
||||
logger.info("[priority] "+player.getName()+" highestPriority: "+highestPriority);
|
||||
logger.info("[priority] "+player.getName()+" priority: "+priority);
|
||||
logger.info("[priority] "+player.getName()+" serverPriority: "+serverPriority);
|
||||
}
|
||||
|
||||
if(highestPriority <= 0) {
|
||||
if(debug) {
|
||||
logger.info("[priority] "+player.getName()+" No priority" );
|
||||
}
|
||||
server.addPlayer(queuePlayer);
|
||||
return queuePlayer;
|
||||
}
|
||||
|
||||
ImmutableList<QueuePlayer> list = server.getQueue();
|
||||
|
||||
for(int i = 0; i < list.size(); i++) {
|
||||
QueuePlayer pl = list.get(i);
|
||||
if(pl.getPriority() < highestPriority) {
|
||||
if(debug) {
|
||||
logger.info("[priority] "+player.getName()+" Adding to: "+i);
|
||||
}
|
||||
server.addPlayer(queuePlayer, i);
|
||||
return queuePlayer;
|
||||
}
|
||||
}
|
||||
|
||||
if(debug) {
|
||||
logger.info("[priority] "+player.getName()+" Cant go infront of anyone" );
|
||||
}
|
||||
server.addPlayer(queuePlayer);
|
||||
return queuePlayer;
|
||||
}
|
||||
|
||||
@Override
|
||||
public boolean playerDisconnectedTooLong(QueuePlayer player) {
|
||||
return player.getTimeSinceOnline() > player.getMaxOfflineTime();
|
||||
}
|
||||
}
|
||||
@@ -0,0 +1,20 @@
|
||||
package us.ajg0702.queue.logic.permissions;
|
||||
|
||||
import us.ajg0702.queue.api.players.AdaptedPlayer;
|
||||
|
||||
public class PermissionGetter {
|
||||
|
||||
//TODO: all of this
|
||||
|
||||
public static int getMaxOfflineTime(AdaptedPlayer player) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static int getPriority(AdaptedPlayer player) {
|
||||
return -1;
|
||||
}
|
||||
|
||||
public static int getServerPriotity(String server, AdaptedPlayer player) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
Reference in New Issue
Block a user