Skip to content

Commit 04711f7

Browse files
committed
BanWarden Commander
1 parent 273535b commit 04711f7

19 files changed

Lines changed: 133 additions & 23 deletions

File tree

bukkit/src/main/java/com/xinecraft/minetrax/bukkit/MinetraxBukkit.java

Lines changed: 4 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,7 @@
33
import com.google.gson.Gson;
44
import com.google.gson.GsonBuilder;
55
import com.xinecraft.minetrax.bukkit.adapters.ItemStackGsonAdapter;
6+
import com.xinecraft.minetrax.bukkit.commander.BukkitCommander;
67
import com.xinecraft.minetrax.bukkit.commands.AccountLinkCommand;
78
import com.xinecraft.minetrax.bukkit.commands.MinetraxAdminCommand;
89
import com.xinecraft.minetrax.bukkit.commands.PlayerWhoisCommand;
@@ -154,6 +155,7 @@ public void onEnable() {
154155
common.setPlatformType(PlatformType.BUKKIT);
155156
common.setGson(gson);
156157
common.setLogger(new BukkitLogger(this));
158+
common.setCommander(new BukkitCommander());
157159
common.setScheduler(new BukkitScheduler(this));
158160
common.setWebQuery(new BukkitWebQuery(this));
159161
initBanWarden(common);
@@ -344,8 +346,8 @@ private void initVariables() {
344346
whitelistedCommandsFromWeb = this.getConfig().getStringList("whitelisted-commands-from-web");
345347
isSendInventoryDataToPlayerIntel = this.getConfig().getBoolean("send-inventory-data-to-player-intel");
346348
isDisablePlayerMovementTracking = this.getConfig().getBoolean("disable-player-movement-tracking");
347-
isSkinsRestorerHookEnabled = this.getConfig().getBoolean("enable-skinsrestorer-hook");
348-
isBanWardenEnabled = this.getConfig().getBoolean("enable-banwarden");
349+
isSkinsRestorerHookEnabled = this.getConfig().getBoolean("enable-skinsrestorer-hook", true);
350+
isBanWardenEnabled = this.getConfig().getBoolean("enable-banwarden", true);
349351
serverSessionId = UUID.randomUUID().toString();
350352
}
351353

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.xinecraft.minetrax.bukkit.commander;
2+
3+
import com.xinecraft.minetrax.common.interfaces.commander.CommonCommander;
4+
import org.bukkit.Bukkit;
5+
6+
public class BukkitCommander implements CommonCommander {
7+
@Override
8+
public void dispatchCommand(String command) {
9+
Bukkit.dispatchCommand(Bukkit.getConsoleSender(), command);
10+
}
11+
}

bukkit/src/main/java/com/xinecraft/minetrax/bukkit/webquery/BukkitWebQuery.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -6,6 +6,7 @@
66
import com.xinecraft.minetrax.bukkit.utils.PlayerUtil;
77
import com.xinecraft.minetrax.bukkit.utils.SkinUtil;
88
import com.xinecraft.minetrax.common.data.PlayerData;
9+
import com.xinecraft.minetrax.common.enums.BanWardenPunishmentType;
910
import com.xinecraft.minetrax.common.interfaces.webquery.CommonWebQuery;
1011
import com.xinecraft.minetrax.common.utils.LoggingUtil;
1112
import net.skinsrestorer.api.PropertyUtils;
@@ -166,4 +167,10 @@ public String handleCheckPlayerOnline(String playerUuid) throws Exception {
166167
return "false";
167168
}
168169
}
170+
171+
@Override
172+
public String handleBanwardenPardon(BanWardenPunishmentType type, String victim, String reason) throws Exception {
173+
boolean status = this.plugin.getCommon().getBanWarden().pardon(type, victim, reason);
174+
return status ? "true" : "false";
175+
}
169176
}

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

Lines changed: 4 additions & 2 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.commander.BungeeCommander;
56
import com.xinecraft.minetrax.bungee.commands.MinetraxAdminCommand;
67
import com.xinecraft.minetrax.bungee.hooks.skinsrestorer.SkinsRestorerHook;
78
import com.xinecraft.minetrax.bungee.listeners.ServerConnectedListener;
@@ -94,6 +95,7 @@ public void onEnable() {
9495
common.setPlatformType(PlatformType.BUNGEE);
9596
common.setGson(gson);
9697
common.setLogger(new BungeeLogger(this));
98+
common.setCommander(new BungeeCommander());
9799
common.setScheduler(new BungeeScheduler(this));
98100
common.setWebQuery(new BungeeWebQuery(this));
99101
initBanWarden(common);
@@ -174,8 +176,8 @@ private void initVariables() {
174176
isConsoleLogEnabled = config.getBoolean("enable-consolelog", true);
175177
isAllowOnlyWhitelistedCommandsFromWeb = config.getBoolean("allow-only-whitelisted-commands-from-web", false);
176178
whitelistedCommandsFromWeb = config.getStringList("whitelisted-commands-from-web");
177-
isSkinsRestorerHookEnabled = config.getBoolean("enable-skinsrestorer-hook", false);
178-
isBanWardenEnabled = config.getBoolean("enable-banwarden", false);
179+
isSkinsRestorerHookEnabled = config.getBoolean("enable-skinsrestorer-hook", true);
180+
isBanWardenEnabled = config.getBoolean("enable-banwarden", true);
179181
serverSessionId = UUID.randomUUID().toString();
180182
}
181183

Lines changed: 11 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,11 @@
1+
package com.xinecraft.minetrax.bungee.commander;
2+
3+
import com.xinecraft.minetrax.common.interfaces.commander.CommonCommander;
4+
import net.md_5.bungee.api.ProxyServer;
5+
6+
public class BungeeCommander implements CommonCommander {
7+
@Override
8+
public void dispatchCommand(String command) {
9+
ProxyServer.getInstance().getPluginManager().dispatchCommand(ProxyServer.getInstance().getConsole(), command);
10+
}
11+
}

bungee/src/main/java/com/xinecraft/minetrax/bungee/webquery/BungeeWebQuery.java

Lines changed: 7 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -4,6 +4,7 @@
44
import com.google.gson.JsonObject;
55
import com.xinecraft.minetrax.bungee.MinetraxBungee;
66
import com.xinecraft.minetrax.bungee.utils.SkinUtil;
7+
import com.xinecraft.minetrax.common.enums.BanWardenPunishmentType;
78
import com.xinecraft.minetrax.common.interfaces.webquery.CommonWebQuery;
89
import com.xinecraft.minetrax.common.utils.LoggingUtil;
910
import net.md_5.bungee.api.ProxyServer;
@@ -146,4 +147,10 @@ public String handleCheckPlayerOnline(String playerUuid) throws Exception {
146147
ProxiedPlayer player = this.plugin.getProxy().getPlayer(UUID.fromString(playerUuid));
147148
return player != null ? "true" : "false";
148149
}
150+
151+
@Override
152+
public String handleBanwardenPardon(BanWardenPunishmentType type, String victim, String reason) throws Exception {
153+
boolean status = this.plugin.getCommon().getBanWarden().pardon(type, victim, reason);
154+
return status ? "true" : "false";
155+
}
149156
}

common/src/main/java/com/xinecraft/minetrax/common/MinetraxCommon.java

Lines changed: 2 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -10,6 +10,7 @@
1010
import com.xinecraft.minetrax.common.enums.PlatformType;
1111
import com.xinecraft.minetrax.common.interfaces.MinetraxPlugin;
1212
import com.xinecraft.minetrax.common.interfaces.banwarden.BanWardenHook;
13+
import com.xinecraft.minetrax.common.interfaces.commander.CommonCommander;
1314
import com.xinecraft.minetrax.common.interfaces.logging.CommonLogger;
1415
import com.xinecraft.minetrax.common.interfaces.schedulers.CommonScheduler;
1516
import com.xinecraft.minetrax.common.interfaces.webquery.CommonWebQuery;
@@ -26,6 +27,7 @@ public class MinetraxCommon {
2627
private CommonLogger logger;
2728
private CommonScheduler scheduler;
2829
private CommonWebQuery webQuery;
30+
private CommonCommander commander;
2931
private PlatformType platformType;
3032
private Gson gson;
3133
private MinetraxPlugin plugin;

common/src/main/java/com/xinecraft/minetrax/common/banwarden/BanWarden.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,6 @@
11
package com.xinecraft.minetrax.common.banwarden;
22

3+
import com.xinecraft.minetrax.common.enums.BanWardenPunishmentType;
34
import com.xinecraft.minetrax.common.enums.BanWardenSyncType;
45
import com.xinecraft.minetrax.common.interfaces.banwarden.BanWardenHook;
56

@@ -13,4 +14,8 @@ public BanWarden(BanWardenHook hook) {
1314
public void sync(BanWardenSyncType type) {
1415
hook.sync(type);
1516
}
17+
18+
public boolean pardon(BanWardenPunishmentType type, String victim, String reason) {
19+
return hook.pardon(type, victim, reason);
20+
}
1621
}

common/src/main/java/com/xinecraft/minetrax/common/banwarden/hooks/AdvancedbanHook.java

Lines changed: 6 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -1,18 +1,20 @@
11
package com.xinecraft.minetrax.common.banwarden.hooks;
22

33
import com.xinecraft.minetrax.common.data.PunishmentData;
4+
import com.xinecraft.minetrax.common.enums.BanWardenPunishmentType;
45
import com.xinecraft.minetrax.common.enums.BanWardenSyncType;
56
import com.xinecraft.minetrax.common.interfaces.banwarden.BanWardenHook;
67

78
public class AdvancedbanHook implements BanWardenHook {
8-
@Override
9-
public void upsert(PunishmentData punishmentData) {
109

10+
@Override
11+
public String punish(BanWardenPunishmentType type, String punishmentString) {
12+
return "";
1113
}
1214

1315
@Override
14-
public void remove(String punishmentId) {
15-
16+
public boolean pardon(BanWardenPunishmentType type, String victim, String reason) {
17+
return false;
1618
}
1719

1820
@Override

common/src/main/java/com/xinecraft/minetrax/common/banwarden/hooks/LibertybansHook.java

Lines changed: 10 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -41,12 +41,19 @@ public LibertybansHook() {
4141
}
4242

4343
@Override
44-
public void upsert(PunishmentData punishmentData) {
44+
public String punish(BanWardenPunishmentType type, String punishmentString) {
45+
return "";
4546
}
4647

4748
@Override
48-
public void remove(String punishmentId) {
49-
49+
public boolean pardon(BanWardenPunishmentType type, String victim, String reason) {
50+
switch (type) {
51+
case BAN -> common.getCommander().dispatchCommand("libertybans:unban " + victim);
52+
case MUTE -> common.getCommander().dispatchCommand("libertybans:unmute " + victim);
53+
case WARN -> common.getCommander().dispatchCommand("libertybans:unwarn " + victim);
54+
default -> LoggingUtil.error("[LitebansHook] Pardon -> Unknown punishment type: " + type);
55+
}
56+
return true;
5057
}
5158

5259
@Override

0 commit comments

Comments
 (0)