/
Logic.java
70 lines (57 loc) · 2.44 KB
/
Logic.java
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
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.queue.api.server.AdaptedServer;
import us.ajg0702.utils.common.Config;
@SuppressWarnings({"SameReturnValue", "unused"})
public interface Logic {
/**
* Returns if the plugin is premium or not
* @return True if premium, false if not
*/
boolean isPremium();
/**
* The priority logic that is executed if the plugin is premium.
*
* @param queueServer The server/group name that is being queued for
* @param player The player that is being queued
* @param server The server/group name that is being queued for
*/
QueuePlayer priorityLogic(QueueServer queueServer, AdaptedPlayer player, AdaptedServer server);
/**
* The logic for checking if a player has been disconnected for too long
* @param player The player to check
* @return true if the player has been disconnected for too long and should be removed from the queue
*/
boolean playerDisconnectedTooLong(QueuePlayer player);
/**
* Gets the permissionGetter. Only available on ajQueuePlus
* @return the permission getter
*/
PermissionGetter getPermissionGetter();
static int getUnJoinablePriorities(QueueServer queueServer, AdaptedServer 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(queueServer.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;
}
}