/
Pause.java
87 lines (74 loc) · 2.71 KB
/
Pause.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
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
package us.ajg0702.queue.commands.commands.manage;
import com.google.common.collect.ImmutableList;
import us.ajg0702.queue.api.commands.ICommandSender;
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.Arrays;
import java.util.Collections;
import java.util.List;
public class Pause extends SubCommand {
final QueueMain main;
public Pause(QueueMain main) {
this.main = main;
}
@Override
public String getName() {
return "pause";
}
@Override
public ImmutableList<String> getAliases() {
return ImmutableList.of();
}
@Override
public String getPermission() {
return "ajqueue.manage.pause";
}
@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.pause.more-args"));
return;
}
List<QueueServer> servers;
QueueServer queueServer = main.getQueueManager().findServer(args[0]);
if(queueServer == null && !args[0].equalsIgnoreCase("all")) {
sender.sendMessage(getMessages().getComponent("commands.pause.no-server", "SERVER:"+args[0]));
return;
} else if(queueServer == null && args[0].equalsIgnoreCase("all")) {
servers = main.getQueueManager().getServers();
} else {
servers = Collections.singletonList(queueServer);
}
for(QueueServer server : servers) {
if(args.length == 1) {
server.setPaused(!server.isPaused());
} else {
server.setPaused(args[1].equalsIgnoreCase("on") || args[1].equalsIgnoreCase("true"));
}
sender.sendMessage(getMessages().getComponent("commands.pause.success",
"SERVER:"+server.getName(),
"PAUSED:"+getMessages().getString("commands.pause.paused."+server.isPaused())
));
}
}
@Override
public List<String> autoComplete(ICommandSender sender, String[] args) {
if(args.length == 1) {
List<String> servers = new ArrayList<>(main.getQueueManager().getServerNames());
servers.add("all");
return filterCompletion(servers, args[0]);
}
if(args.length == 2) {
return filterCompletion(Arrays.asList("on", "off", "true", "false"), args[1]);
}
return Collections.emptyList();
}
}