Skip to content

Commit 273535b

Browse files
committed
Admin Command for Bungee
1 parent 387083f commit 273535b

5 files changed

Lines changed: 105 additions & 11 deletions

File tree

bukkit/src/main/java/com/xinecraft/minetrax/bukkit/commands/MinetraxAdminCommand.java

Lines changed: 6 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -30,6 +30,12 @@ public boolean onCommand(@NotNull CommandSender commandSender, @NotNull Command
3030
return false;
3131
}
3232

33+
34+
if (!MinetraxBukkit.getPlugin().getIsBanWardenEnabled()) {
35+
commandSender.sendMessage(ChatColor.RED + "[BanWarden] BanWarden is not enabled, cannot sync bans.");
36+
return false;
37+
}
38+
3339
String secondArg = strings.length > 1 ? strings[1].toLowerCase() : "all";
3440
commandSender.sendMessage(ChatColor.GREEN + "[BanWarden] Syncing " + secondArg + " punishments to web, plz check server logs for progress...");
3541
banwardenSyncBans(secondArg);
@@ -48,11 +54,6 @@ private void usage(CommandSender sender) {
4854
}
4955

5056
private void banwardenSyncBans(String typeString) {
51-
if (!MinetraxBukkit.getPlugin().getIsBanWardenEnabled()) {
52-
MinetraxBukkit.getPlugin().getLogger().warning("BanWarden is not enabled, cannot sync bans.");
53-
return;
54-
}
55-
5657
BanWardenSyncType syncType = switch (typeString) {
5758
case "active" -> BanWardenSyncType.ACTIVE;
5859
case "inactive" -> BanWardenSyncType.INACTIVE;

bungee/src/main/java/com/xinecraft/minetrax/bungee/MinetraxBungee.java

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -2,6 +2,7 @@
22

33
import com.google.gson.Gson;
44
import com.google.gson.GsonBuilder;
5+
import com.xinecraft.minetrax.bungee.commands.MinetraxAdminCommand;
56
import com.xinecraft.minetrax.bungee.hooks.skinsrestorer.SkinsRestorerHook;
67
import com.xinecraft.minetrax.bungee.listeners.ServerConnectedListener;
78
import com.xinecraft.minetrax.bungee.logging.BungeeLogger;
@@ -114,6 +115,9 @@ public void onEnable() {
114115
// Register Listeners
115116
getProxy().getPluginManager().registerListener(this, new ServerConnectedListener());
116117

118+
// Register Commands
119+
getProxy().getPluginManager().registerCommand(this, new MinetraxAdminCommand(this));
120+
117121
// Register Tasks
118122
if (isServerIntelEnabled) {
119123
getProxy().getScheduler().schedule(this, new ServerIntelReportTask(), 60, 60, java.util.concurrent.TimeUnit.SECONDS);
Lines changed: 89 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,89 @@
1+
package com.xinecraft.minetrax.bungee.commands;
2+
3+
import com.xinecraft.minetrax.bungee.MinetraxBungee;
4+
import com.xinecraft.minetrax.common.MinetraxCommon;
5+
import com.xinecraft.minetrax.common.enums.BanWardenSyncType;
6+
import net.md_5.bungee.api.ChatColor;
7+
import net.md_5.bungee.api.CommandSender;
8+
import net.md_5.bungee.api.chat.ComponentBuilder;
9+
import net.md_5.bungee.api.chat.TextComponent;
10+
import net.md_5.bungee.api.connection.ProxiedPlayer;
11+
import net.md_5.bungee.api.plugin.Command;
12+
13+
public class MinetraxAdminCommand extends Command {
14+
private final MinetraxBungee plugin;
15+
16+
public MinetraxAdminCommand(MinetraxBungee plugin) {
17+
super("minetraxb", "minetrax.admin", "mtxb", "mtxp");
18+
this.plugin = plugin;
19+
}
20+
21+
@Override
22+
public void execute(CommandSender sender, String[] args) {
23+
if (args.length == 0) {
24+
usage(sender);
25+
return;
26+
}
27+
28+
String firstArg = args[0];
29+
if (firstArg.equalsIgnoreCase("help") || firstArg.equalsIgnoreCase("?")) {
30+
usage(sender);
31+
return;
32+
}
33+
34+
if (firstArg.equalsIgnoreCase("banwarden:sync")) {
35+
if (sender instanceof ProxiedPlayer) {
36+
sender.sendMessage(new ComponentBuilder("This command can only be run from console.")
37+
.color(ChatColor.RED)
38+
.create());
39+
return;
40+
}
41+
42+
if (!plugin.getIsBanWardenEnabled()) {
43+
sender.sendMessage(new ComponentBuilder("BanWarden is not enabled, cannot sync bans.")
44+
.color(ChatColor.RED)
45+
.create());
46+
return;
47+
}
48+
49+
String secondArg = args.length > 1 ? args[1].toLowerCase() : "all";
50+
sender.sendMessage(new ComponentBuilder("[BanWarden] Syncing " + secondArg + " punishments to web, plz check server logs for progress...")
51+
.color(ChatColor.GREEN)
52+
.create());
53+
banwardenSyncBans(secondArg);
54+
return;
55+
}
56+
}
57+
58+
private void usage(CommandSender sender) {
59+
// Header
60+
sender.sendMessage(new ComponentBuilder("Minetrax Admin Commands:")
61+
.color(ChatColor.AQUA)
62+
.create());
63+
64+
// BanWarden Sync Command
65+
sender.sendMessage(new ComponentBuilder("/minetrax banwarden:sync")
66+
.color(ChatColor.GREEN)
67+
.create());
68+
sender.sendMessage(new ComponentBuilder(" Sync bans from ban plugin to minetrax website.")
69+
.color(ChatColor.GRAY)
70+
.create());
71+
72+
// Help Command
73+
sender.sendMessage(new ComponentBuilder("/minetrax help")
74+
.color(ChatColor.GREEN)
75+
.create());
76+
sender.sendMessage(new ComponentBuilder(" Shows help message.")
77+
.color(ChatColor.GRAY)
78+
.create());
79+
}
80+
81+
private void banwardenSyncBans(String typeString) {
82+
BanWardenSyncType syncType = switch (typeString) {
83+
case "active" -> BanWardenSyncType.ACTIVE;
84+
case "inactive" -> BanWardenSyncType.INACTIVE;
85+
default -> BanWardenSyncType.ALL;
86+
};
87+
MinetraxCommon.getInstance().getBanWarden().sync(syncType);
88+
}
89+
}

velocity/src/main/java/com/xinecraft/minetrax/velocity/MinetraxVelocity.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -137,7 +137,7 @@ public void onProxyInitialization(ProxyInitializeEvent event) {
137137
proxyServer.getEventManager().register(this, new ServerConnectedListener());
138138

139139
// Register Commands
140-
proxyServer.getCommandManager().register("minetraxv", new MinetraxAdminCommand(this), "mtxv");
140+
proxyServer.getCommandManager().register("minetraxv", new MinetraxAdminCommand(this), "mtxv", "mtxp");
141141

142142
// Register Tasks
143143
if (isServerIntelEnabled) {

velocity/src/main/java/com/xinecraft/minetrax/velocity/commands/MinetraxAdminCommand.java

Lines changed: 5 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -38,6 +38,11 @@ public void execute(Invocation invocation) {
3838
return;
3939
}
4040

41+
if (!plugin.getIsBanWardenEnabled()) {
42+
source.sendMessage(Component.text("[BanWarden] BanWarden is not enabled, cannot sync bans.", NamedTextColor.RED));
43+
return;
44+
}
45+
4146
String secondArg = args.length > 1 ? args[1].toLowerCase() : "all";
4247
source.sendMessage(Component.text("[BanWarden] Syncing " + secondArg + " punishments to web, plz check server logs for progress...", NamedTextColor.GREEN));
4348
banwardenSyncBans(secondArg);
@@ -54,11 +59,6 @@ private void usage(CommandSource source) {
5459
}
5560

5661
private void banwardenSyncBans(String typeString) {
57-
if (!plugin.getIsBanWardenEnabled()) {
58-
plugin.getLogger().warn("BanWarden is not enabled, cannot sync bans.");
59-
return;
60-
}
61-
6262
BanWardenSyncType syncType = switch (typeString) {
6363
case "active" -> BanWardenSyncType.ACTIVE;
6464
case "inactive" -> BanWardenSyncType.INACTIVE;

0 commit comments

Comments
 (0)