Adding antivpn alerts command and more to the command API

This commit is contained in:
Dawson Hessler
2021-08-27 12:45:16 -04:00
parent 9786a93ca8
commit 729381a4e5
10 changed files with 160 additions and 10 deletions
@@ -2,6 +2,7 @@ package dev.brighten.antivpn.api;
import lombok.Getter;
import lombok.RequiredArgsConstructor;
import lombok.Setter;
import java.net.InetAddress;
import java.util.UUID;
@@ -12,6 +13,8 @@ public abstract class APIPlayer {
private final UUID uuid;
private final String name;
private final InetAddress ip;
@Setter
private boolean alertsEnabled;
public abstract void sendMessage(String message);
@@ -10,6 +10,10 @@ public interface VPNConfig {
String getKickString();
String alertMessage();
boolean alertToStaff();
boolean runCommands();
List<String> commands();
@@ -1,8 +1,15 @@
package dev.brighten.antivpn.command;
import dev.brighten.antivpn.api.APIPlayer;
import dev.brighten.antivpn.api.PlayerExecutor;
import java.util.Optional;
public interface CommandExecutor {
void sendMessage(String message);
boolean hasPermission(String permission);
Optional<APIPlayer> getPlayer();
boolean isPlayer();
}
@@ -0,0 +1,67 @@
package dev.brighten.antivpn.command.impl;
import dev.brighten.antivpn.api.APIPlayer;
import dev.brighten.antivpn.command.Command;
import dev.brighten.antivpn.command.CommandExecutor;
import java.util.Collections;
import java.util.List;
import java.util.Optional;
public class AlertsCommand extends Command {
@Override
public String permission() {
return "antivpn.command.alerts";
}
@Override
public String name() {
return "alerts";
}
@Override
public String[] aliases() {
return new String[] {"valerts", "vpnalerts"};
}
@Override
public String description() {
return "toggle VPN use alerts";
}
@Override
public String usage() {
return "";
}
@Override
public String parent() {
return "antivpn";
}
@Override
public Command[] children() {
return new Command[0];
}
@Override
public String execute(CommandExecutor executor, String[] args) {
Optional<APIPlayer> pgetter = executor.getPlayer();
if(!pgetter.isPresent()) return "&cYou must be a player to execute this command!";
APIPlayer player = pgetter.get();
if(player.isAlertsEnabled()) {
player.setAlertsEnabled(false);
return "&7You have set your AntiVPN alerts to: &coff";
} else {
player.setAlertsEnabled(true);
return "&7You have set your AntiVPN alerts to: &aon";
}
}
@Override
public List<String> tabComplete(CommandExecutor executor, String alias, String[] args) {
return Collections.emptyList();
}
}
@@ -41,7 +41,7 @@ public class AntiVPNCommand extends Command {
@Override
public Command[] children() {
return new Command[] {new LookupCommand(), new AllowlistCommand()};
return new Command[] {new LookupCommand(), new AllowlistCommand(), new AlertsCommand()};
}
@Override