From 947ee780627bbf1f24215e09a404848a2398efac Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Sat, 30 Oct 2021 17:18:53 -0700 Subject: [PATCH 1/6] unique fulljoinandbypassserver --- .../ajg0702/queue/api/premium/PermissionGetter.java | 2 ++ .../ajg0702/queue/common/queues/QueueServerImpl.java | 4 +++- .../java/us/ajg0702/queue/logic/PremiumLogic.java | 3 ++- .../logic/permissions/PermissionGetterImpl.java | 12 ++++++++++++ 4 files changed, 19 insertions(+), 2 deletions(-) diff --git a/api/src/main/java/us/ajg0702/queue/api/premium/PermissionGetter.java b/api/src/main/java/us/ajg0702/queue/api/premium/PermissionGetter.java index 8960206..8fa62b9 100644 --- a/api/src/main/java/us/ajg0702/queue/api/premium/PermissionGetter.java +++ b/api/src/main/java/us/ajg0702/queue/api/premium/PermissionGetter.java @@ -13,4 +13,6 @@ public interface PermissionGetter { int getServerPriotity(String server, AdaptedPlayer player); boolean hasContextBypass(AdaptedPlayer player, String server); + + boolean hasUniqueFullBypass(AdaptedPlayer player, String server); } diff --git a/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java b/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java index 2cca6e6..337a3c2 100644 --- a/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java @@ -451,7 +451,9 @@ public class QueueServerImpl implements QueueServer { player.hasPermission("ajqueue.joinfull") || player.hasPermission("ajqueue.joinfullserver."+name) || player.hasPermission("ajqueue.joinfullandbypassserver."+name) || - player.hasPermission("ajqueue.joinfullandbypass"); + player.hasPermission("ajqueue.joinfullandbypass") || + (main.isPremium() && main.getLogic().getPermissionGetter().hasUniqueFullBypass(player, name)) + ; } @Override diff --git a/premium/src/main/java/us/ajg0702/queue/logic/PremiumLogic.java b/premium/src/main/java/us/ajg0702/queue/logic/PremiumLogic.java index 4e34411..14dd359 100644 --- a/premium/src/main/java/us/ajg0702/queue/logic/PremiumLogic.java +++ b/premium/src/main/java/us/ajg0702/queue/logic/PremiumLogic.java @@ -41,7 +41,8 @@ public class PremiumLogic implements Logic { player.hasPermission("ajqueue.serverbypass."+server.getName()) || player.hasPermission("ajqueue.joinfullandbypassserver."+server.getName()) || player.hasPermission("ajqueue.joinfullandbypass") || - permissionGetter.hasContextBypass(player, server.getName()) + permissionGetter.hasContextBypass(player, server.getName()) || + (main.isPremium() && main.getLogic().getPermissionGetter().hasUniqueFullBypass(player, server.getName())) ) { if(debug) { logger.info("[priority] "+player.getName()+" bypass"); diff --git a/premium/src/main/java/us/ajg0702/queue/logic/permissions/PermissionGetterImpl.java b/premium/src/main/java/us/ajg0702/queue/logic/permissions/PermissionGetterImpl.java index c2b02d2..9cff1a4 100644 --- a/premium/src/main/java/us/ajg0702/queue/logic/permissions/PermissionGetterImpl.java +++ b/premium/src/main/java/us/ajg0702/queue/logic/permissions/PermissionGetterImpl.java @@ -69,6 +69,18 @@ public class PermissionGetterImpl implements PermissionGetter { return perms.contains("ajqueue.serverbypass."+server); } + @Override + public boolean hasUniqueFullBypass(AdaptedPlayer player, String server) { + if(player.hasPermission("ajqueue.joinfullandbypassserver."+server)) return true; + + if(getSelected() == null) { + return false; + } + List perms = getSelected().getPermissions(player); + perms.removeIf(s -> !s.startsWith("ajqueue.joinfullandbypassserver."+server)); + return perms.size() > 0; + } + private int getHighestPermission(AdaptedPlayer player, String prefix) { if(getSelected() == null) { return -1; From be71f48298f6af5005814a688b14b09e2941d8bc Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Sat, 30 Oct 2021 19:28:45 -0700 Subject: [PATCH 2/6] add /ajq kick --- .../us/ajg0702/queue/api/QueueManager.java | 7 ++ .../ajg0702/queue/api/queues/QueueServer.java | 6 ++ .../queue/commands/commands/manage/Kick.java | 95 +++++++++++++++++++ .../commands/manage/ManageCommand.java | 1 + .../us/ajg0702/queue/common/QueueMain.java | 4 + .../queue/common/QueueManagerImpl.java | 13 ++- .../queue/common/queues/QueueServerImpl.java | 9 ++ 7 files changed, 134 insertions(+), 1 deletion(-) create mode 100644 common/src/main/java/us/ajg0702/queue/commands/commands/manage/Kick.java diff --git a/api/src/main/java/us/ajg0702/queue/api/QueueManager.java b/api/src/main/java/us/ajg0702/queue/api/QueueManager.java index 9044e7e..c4fbc9a 100644 --- a/api/src/main/java/us/ajg0702/queue/api/QueueManager.java +++ b/api/src/main/java/us/ajg0702/queue/api/QueueManager.java @@ -117,6 +117,13 @@ public interface QueueManager { */ ImmutableList findPlayerInQueues(AdaptedPlayer p); + /** + * Finds QueuePlayers that have this username + * @param name The username to look up + * @return A list of QueuePlayers that have this username + */ + ImmutableList findPlayerInQueuesByName(String name); + /** * Gets all of the queues the player is currently queued for * @param p The player diff --git a/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java b/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java index c17b1d8..d80eb89 100644 --- a/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java +++ b/api/src/main/java/us/ajg0702/queue/api/queues/QueueServer.java @@ -192,6 +192,12 @@ public interface QueueServer { */ boolean isGroup(); + /** + * Finds the player in this queue and returns the representative QueuePlayer + * @return The QueuePlayer representing the player, null if not found + */ + QueuePlayer findPlayer(String player); + /** * Finds the player in this queue and returns the representative QueuePlayer * @return The QueuePlayer representing the player, null if not found diff --git a/common/src/main/java/us/ajg0702/queue/commands/commands/manage/Kick.java b/common/src/main/java/us/ajg0702/queue/commands/commands/manage/Kick.java new file mode 100644 index 0000000..ceec116 --- /dev/null +++ b/common/src/main/java/us/ajg0702/queue/commands/commands/manage/Kick.java @@ -0,0 +1,95 @@ +package us.ajg0702.queue.commands.commands.manage; + +import com.google.common.collect.ImmutableList; +import net.kyori.adventure.text.Component; +import net.kyori.adventure.text.format.NamedTextColor; +import org.spongepowered.configurate.ConfigurateException; +import us.ajg0702.queue.api.commands.ICommandSender; +import us.ajg0702.queue.api.players.QueuePlayer; +import us.ajg0702.queue.api.queues.QueueServer; +import us.ajg0702.queue.commands.SubCommand; +import us.ajg0702.queue.common.QueueMain; +import us.ajg0702.utils.common.Messages; + +import java.util.ArrayList; +import java.util.Collections; +import java.util.List; + +public class Kick extends SubCommand { + + final QueueMain main; + public Kick(QueueMain main) { + this.main = main; + } + + @Override + public String getName() { + return "kick"; + } + + @Override + public ImmutableList getAliases() { + return ImmutableList.of(); + } + + @Override + public String getPermission() { + return "ajqueue.manage.kick"; + } + + @Override + public Messages getMessages() { + return main.getMessages(); + } + + @Override + public void execute(ICommandSender sender, String[] args) { + if(!checkPermission(sender)) return; + + if(args.length < 1) { + sender.sendMessage(getMessages().getComponent("commands.kick.usage")); + return; + } + + List kickPlayers; + + if(args.length == 1) { + kickPlayers = main.getQueueManager().findPlayerInQueuesByName(args[0]); + } else { + QueueServer queue = main.getQueueManager().findServer(args[1]); + if(queue == null) { + sender.sendMessage(getMessages().getComponent("commands.kick.unknown-server", "QUEUE:"+args[1])); + return; + } + kickPlayers = Collections.singletonList(queue.findPlayer(args[0])); + } + + if(kickPlayers.size() == 0) { + sender.sendMessage(getMessages().getComponent("commands.kick.no-player", "PLAYER:"+args[0])); + return; + } + + for(QueuePlayer player : kickPlayers) { + player.getQueueServer().removePlayer(player); + } + + sender.sendMessage(getMessages().getComponent( + "commands.kick.success", + "PLAYER:"+args[0], + "NUM:"+kickPlayers.size(), + "s:"+ (kickPlayers.size() == 1 ? "" : "s") + )); + } + + @Override + public List autoComplete(ICommandSender sender, String[] args) { + if(args.length == 1) { + return main.getPlatformMethods().getPlayerNames(false); + } + if(args.length == 2) { + return main.getQueueManager().getServerNames(); + } + return new ArrayList<>(); + } +} + diff --git a/common/src/main/java/us/ajg0702/queue/commands/commands/manage/ManageCommand.java b/common/src/main/java/us/ajg0702/queue/commands/commands/manage/ManageCommand.java index 0432b97..632c000 100644 --- a/common/src/main/java/us/ajg0702/queue/commands/commands/manage/ManageCommand.java +++ b/common/src/main/java/us/ajg0702/queue/commands/commands/manage/ManageCommand.java @@ -31,6 +31,7 @@ public class ManageCommand extends BaseCommand { addSubCommand(new PermissionList(main)); addSubCommand(new Whitelist(main)); addSubCommand(new Update(main)); + addSubCommand(new Kick(main)); } diff --git a/common/src/main/java/us/ajg0702/queue/common/QueueMain.java b/common/src/main/java/us/ajg0702/queue/common/QueueMain.java index d73b691..9837fc9 100644 --- a/common/src/main/java/us/ajg0702/queue/common/QueueMain.java +++ b/common/src/main/java/us/ajg0702/queue/common/QueueMain.java @@ -210,6 +210,10 @@ public class QueueMain extends AjQueueAPI { 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 "); + d.put("commands.kick.usage", "Usage: /ajqueue kick [queue]"); + d.put("commands.kick.no-player", "&cCould not find {PLAYER}! Make sure they are in a queue!"); + d.put("commands.kick.unknown-server", "&cCould not find queue {QUEUE}. Make sure you spelled it correctly!"); + d.put("commands.kick.success", "Kicked {PLAYER} from {NUM} queue{s}!"); d.put("noperm", "&cYou do not have permission to do this!"); diff --git a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java index e892b37..12881d4 100644 --- a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java @@ -523,7 +523,6 @@ public class QueueManagerImpl implements QueueManager { } for(QueueServer server : sendingServers) { - Debugger.debug("Sending players for "+server.getName()); for(QueuePlayer queuePlayer : server.getQueue()) { if(queuePlayer.getPlayer() != null) continue; if(main.getLogic().playerDisconnectedTooLong(queuePlayer)) { @@ -635,6 +634,18 @@ public class QueueManagerImpl implements QueueManager { return ImmutableList.copyOf(srs); } + @Override + public ImmutableList findPlayerInQueuesByName(String name) { + List srs = new ArrayList<>(); + for(QueueServer s : servers) { + QueuePlayer player = s.findPlayer(name); + if(player != null) { + srs.add(player); + } + } + return ImmutableList.copyOf(srs); + } + @Override public ImmutableList getPlayerQueues(AdaptedPlayer p) { List srs = new ArrayList<>(); diff --git a/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java b/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java index 337a3c2..08f8a36 100644 --- a/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java @@ -404,6 +404,15 @@ public class QueueServerImpl implements QueueServer { return servers.size() > 1; } + @Override + public QueuePlayer findPlayer(String player) { + for(QueuePlayer queuePlayer : queue) { + if(queuePlayer.getName().equalsIgnoreCase(player)) { + return queuePlayer; + } + } + return null; + } @Override public QueuePlayer findPlayer(AdaptedPlayer player) { return findPlayer(player.getUniqueId()); From 1cf96df33425416f84db47297777ae4441120332 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Sat, 30 Oct 2021 19:30:35 -0700 Subject: [PATCH 3/6] shush --- .../java/us/ajg0702/queue/common/queues/QueueServerImpl.java | 4 +--- 1 file changed, 1 insertion(+), 3 deletions(-) diff --git a/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java b/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java index 08f8a36..c4d4934 100644 --- a/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/queues/QueueServerImpl.java @@ -1,7 +1,6 @@ package us.ajg0702.queue.common.queues; import com.google.common.collect.ImmutableList; -import jdk.nashorn.internal.runtime.Debug; import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.players.QueuePlayer; import us.ajg0702.queue.api.queues.Balancer; @@ -13,7 +12,6 @@ import us.ajg0702.queue.common.players.QueuePlayerImpl; import us.ajg0702.queue.common.queues.balancers.DefaultBalancer; import us.ajg0702.queue.common.queues.balancers.MinigameBalancer; import us.ajg0702.queue.common.utils.Debugger; -import us.ajg0702.utils.common.GenUtils; import us.ajg0702.utils.common.Messages; import java.util.*; @@ -43,7 +41,7 @@ public class QueueServerImpl implements QueueServer { String balancerType = type.substring(colon+1); if(groupName.equals(name)) { - boolean valid = true; + //noinspection SwitchStatementWithTooFewBranches switch(balancerType.toLowerCase(Locale.ROOT)) { case "minigame": balancer = new MinigameBalancer(this, main); From d1515d5245292f7e18e30535f1952428905c5f20 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Fri, 5 Nov 2021 11:18:40 -0700 Subject: [PATCH 4/6] added unjoinable priorities --- .../us/ajg0702/queue/api/premium/Logic.java | 32 +++++++++++++++++++ .../queue/common/QueueManagerImpl.java | 2 ++ common/src/main/resources/config.yml | 21 ++++++++++-- .../us/ajg0702/queue/logic/PremiumLogic.java | 8 +++-- 4 files changed, 58 insertions(+), 5 deletions(-) diff --git a/api/src/main/java/us/ajg0702/queue/api/premium/Logic.java b/api/src/main/java/us/ajg0702/queue/api/premium/Logic.java index b7aa8e4..063a612 100644 --- a/api/src/main/java/us/ajg0702/queue/api/premium/Logic.java +++ b/api/src/main/java/us/ajg0702/queue/api/premium/Logic.java @@ -1,8 +1,10 @@ package us.ajg0702.queue.api.premium; +import us.ajg0702.queue.api.AjQueueAPI; import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.players.QueuePlayer; import us.ajg0702.queue.api.queues.QueueServer; +import us.ajg0702.utils.common.Config; @SuppressWarnings({"SameReturnValue", "unused"}) @@ -32,4 +34,34 @@ public interface Logic { * @return the permission getter */ PermissionGetter getPermissionGetter(); + + static int getUnJoinablePriorities(QueueServer server, AdaptedPlayer player) { + Config config = AjQueueAPI.getInstance().getConfig(); + int highest = 0; + + int whitelitedPriority = config.getInt("give-whitelisted-players-priority"); + int bypassPausedPriotity = config.getInt("give-whitelisted-players-priority"); + int fulljoinPriority = config.getInt("give-whitelisted-players-priority"); + + if(whitelitedPriority > 0) { + if(server.isWhitelisted() && server.getWhitelistedPlayers().contains(player.getUniqueId())) { + highest = whitelitedPriority; + } + } + + if(bypassPausedPriotity > 0) { + if(server.isPaused() && (player.hasPermission("ajqueue.bypasspaused"))) { + highest = Math.max(highest, bypassPausedPriotity); + } + } + + if(fulljoinPriority > 0) { + if(server.isFull() && server.canJoinFull(player)) { + highest = Math.max(highest, fulljoinPriority); + } + } + + + return highest; + } } diff --git a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java index 12881d4..c7cba56 100644 --- a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java @@ -6,6 +6,7 @@ import net.kyori.adventure.title.Title; import us.ajg0702.queue.api.QueueManager; import us.ajg0702.queue.api.players.AdaptedPlayer; import us.ajg0702.queue.api.players.QueuePlayer; +import us.ajg0702.queue.api.premium.Logic; import us.ajg0702.queue.api.queues.QueueServer; import us.ajg0702.queue.api.server.AdaptedServer; import us.ajg0702.queue.common.players.QueuePlayerImpl; @@ -151,6 +152,7 @@ public class QueueManagerImpl implements QueueManager { } else { int priority = player.hasPermission("ajqueue.priority") || player.hasPermission("ajqueue.serverpriority."+server.getName()) ? 1 : 0; + priority = Math.max(priority, Logic.getUnJoinablePriorities(server, player) > 0 ? 1 : 0); int maxOfflineTime = player.hasPermission("ajqueue.stayqueued") ? 60 : 0; queuePlayer = new QueuePlayerImpl(player, server, priority, maxOfflineTime); if( diff --git a/common/src/main/resources/config.yml b/common/src/main/resources/config.yml index 420910b..ddc7b1b 100644 --- a/common/src/main/resources/config.yml +++ b/common/src/main/resources/config.yml @@ -1,5 +1,5 @@ # Dont touch this number please -config-version: 30 +config-version: 31 # This is the main config for ajQueue. @@ -278,6 +278,23 @@ slash-servers: [] balancer-types: - "bedwars:minigame" +# What priority should we give whitelisted players priority when the server is whitelisted? +# This will have no effect if the server isnt whitelisted +# If you set to 0, this will be disabled +# If you have the free version, set it to 1 to enable +give-whitelisted-players-priority: 0 -# Should we print some extra stuff to the console that might help diagnose some issues? +# What priority should we give players that are able to bypass paused priority when the server is paused? +# This will have no effect if the server isnt paused +# If you set to 0, this will be disabled +# If you have the free version, set it to 1 to enable +give-pausedbypass-players-priority: 0 + +# What priority should we give players that are able to bypass full servers priority when the server is full? +# This will have no effect if the server isnt full +# If you set to 0, this will be disabled +# If you have the free version, set it to 1 to enable +give-fulljoin-players-priority: 0 + +# Should we print some extra stuff to the console that might help aj diagnose some issues? debug: false \ No newline at end of file diff --git a/premium/src/main/java/us/ajg0702/queue/logic/PremiumLogic.java b/premium/src/main/java/us/ajg0702/queue/logic/PremiumLogic.java index 14dd359..d85d6ce 100644 --- a/premium/src/main/java/us/ajg0702/queue/logic/PremiumLogic.java +++ b/premium/src/main/java/us/ajg0702/queue/logic/PremiumLogic.java @@ -61,6 +61,7 @@ public class PremiumLogic implements Logic { } int highestPriority = Math.max(priority, serverPriority); + highestPriority = Math.max(highestPriority, Logic.getUnJoinablePriorities(server, player)); QueuePlayer queuePlayer = new QueuePlayerImpl(player, server, highestPriority, maxOfflineTime); @@ -82,15 +83,16 @@ public class PremiumLogic implements Logic { 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); + 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" ); } From 67ea8b9599de0f5e738088b69cddabdd75d6dc8e Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Fri, 5 Nov 2021 11:28:41 -0700 Subject: [PATCH 5/6] added toggle for forcing in queue-servers --- .../queue/common/QueueManagerImpl.java | 30 ++++++++++--------- common/src/main/resources/config.yml | 6 ++++ 2 files changed, 22 insertions(+), 14 deletions(-) diff --git a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java index c7cba56..7095fe5 100644 --- a/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java +++ b/common/src/main/java/us/ajg0702/queue/common/QueueManagerImpl.java @@ -409,20 +409,22 @@ public class QueueManagerImpl implements QueueManager { @Override public void sendQueueEvents() { - List svs = main.getConfig().getStringList("queue-servers"); - for(String s : svs) { - if(!s.contains(":")) continue; - String[] parts = s.split(":"); - String fromName = parts[0]; - String toName = parts[1]; - AdaptedServer from = main.getPlatformMethods().getServer(fromName); - QueueServer to = findServer(toName); - if(from == null || to == null) continue; - from.getPlayers().forEach(player -> { - if(!getPlayerQueues(player).contains(to)) { - addToQueue(player, to); - } - }); + if(main.getConfig().getBoolean("force-queue-server-target")) { + List svs = main.getConfig().getStringList("queue-servers"); + for(String s : svs) { + if(!s.contains(":")) continue; + String[] parts = s.split(":"); + String fromName = parts[0]; + String toName = parts[1]; + AdaptedServer from = main.getPlatformMethods().getServer(fromName); + QueueServer to = findServer(toName); + if(from == null || to == null) continue; + from.getPlayers().forEach(player -> { + if(!getPlayerQueues(player).contains(to)) { + addToQueue(player, to); + } + }); + } } for (QueueServer s : servers) { for (QueuePlayer queuePlayer : s.getQueue()) { diff --git a/common/src/main/resources/config.yml b/common/src/main/resources/config.yml index ddc7b1b..5ad6b70 100644 --- a/common/src/main/resources/config.yml +++ b/common/src/main/resources/config.yml @@ -296,5 +296,11 @@ give-pausedbypass-players-priority: 0 # If you have the free version, set it to 1 to enable give-fulljoin-players-priority: 0 + +# Should we force players to be queued every few seconds for queue-servers? +# This will check every few seconds, and if a player in a queue-server is +# not in the queue for the target server, it will add them. +force-queue-server-target: true + # Should we print some extra stuff to the console that might help aj diagnose some issues? debug: false \ No newline at end of file From 45f58582cecd0337b5acf3ac99e04ddc70958ae9 Mon Sep 17 00:00:00 2001 From: ajgeiss0702 Date: Fri, 5 Nov 2021 11:40:24 -0700 Subject: [PATCH 6/6] 2.2.0 --- build.gradle.kts | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/build.gradle.kts b/build.gradle.kts index 20ab697..ea14c17 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -12,7 +12,7 @@ repositories { } allprojects { - version = "2.1.1" + version = "2.2.0" group = "us.ajg0702" plugins.apply("java")