From b59189ec48902fd75b4d48828338491a328fbbc4 Mon Sep 17 00:00:00 2001 From: yoyosource Date: Thu, 31 Mar 2022 12:38:22 +0200 Subject: [PATCH] Add NoFightServer Punishment type --- src/de/steamwar/bungeecore/BungeeCore.java | 1 + .../steamwar/bungeecore/commands/ArenaCommand.java | 7 +++++++ .../steamwar/bungeecore/commands/BauCommand.java | 1 + .../bungeecore/commands/ChallengeCommand.java | 7 +++++++ .../steamwar/bungeecore/commands/FightCommand.java | 13 +++++++++++++ .../bungeecore/commands/HistoricCommand.java | 8 ++++++++ .../bungeecore/commands/ReplayCommand.java | 6 ++++++ src/de/steamwar/bungeecore/commands/TpCommand.java | 14 ++++++++++---- src/de/steamwar/bungeecore/sql/Punishment.java | 4 +++- src/de/steamwar/messages/BungeeCore.properties | 6 ++++++ 10 files changed, 62 insertions(+), 5 deletions(-) diff --git a/src/de/steamwar/bungeecore/BungeeCore.java b/src/de/steamwar/bungeecore/BungeeCore.java index 7b9d428a..a43ead86 100644 --- a/src/de/steamwar/bungeecore/BungeeCore.java +++ b/src/de/steamwar/bungeecore/BungeeCore.java @@ -132,6 +132,7 @@ public class BungeeCore extends Plugin { new PunishmentCommand("noschemsharing", Punishment.PunishmentType.NoSchemSharing); new PunishmentCommand("noschemsubmitting", Punishment.PunishmentType.NoSchemSubmitting); new PunishmentCommand("nodev", Punishment.PunishmentType.NoDevServer); + new PunishmentCommand("nofight", Punishment.PunishmentType.NoFightServer); if(!EVENT_MODE){ new BauCommand(); diff --git a/src/de/steamwar/bungeecore/commands/ArenaCommand.java b/src/de/steamwar/bungeecore/commands/ArenaCommand.java index d88950f7..66caf9fe 100644 --- a/src/de/steamwar/bungeecore/commands/ArenaCommand.java +++ b/src/de/steamwar/bungeecore/commands/ArenaCommand.java @@ -23,6 +23,8 @@ import de.steamwar.bungeecore.Message; import de.steamwar.bungeecore.Servertype; import de.steamwar.bungeecore.Subserver; import de.steamwar.bungeecore.SubserverSystem; +import de.steamwar.bungeecore.sql.Punishment; +import de.steamwar.bungeecore.sql.SteamwarUser; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.config.ServerInfo; @@ -40,6 +42,11 @@ public class ArenaCommand extends BasicCommand { return; ProxiedPlayer player = (ProxiedPlayer) sender; + SteamwarUser steamwarUser = SteamwarUser.get(player); + if (steamwarUser.isPunishedWithMessage(player, Punishment.PunishmentType.NoFightServer)) { + return; + } + ServerInfo server = ProxyServer.getInstance().getServerInfo(String.join(" ", args)); if(server == null) { Message.send("ARENA_NOT_FOUND", player); diff --git a/src/de/steamwar/bungeecore/commands/BauCommand.java b/src/de/steamwar/bungeecore/commands/BauCommand.java index 93c48666..20d973d2 100644 --- a/src/de/steamwar/bungeecore/commands/BauCommand.java +++ b/src/de/steamwar/bungeecore/commands/BauCommand.java @@ -24,6 +24,7 @@ import de.steamwar.bungeecore.comms.packets.BaumemberUpdatePacket; import de.steamwar.bungeecore.inventory.SWInventory; import de.steamwar.bungeecore.inventory.SWItem; import de.steamwar.bungeecore.sql.BauweltMember; +import de.steamwar.bungeecore.sql.Punishment; import de.steamwar.bungeecore.sql.SteamwarUser; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; diff --git a/src/de/steamwar/bungeecore/commands/ChallengeCommand.java b/src/de/steamwar/bungeecore/commands/ChallengeCommand.java index 7f480c1b..155d81e8 100644 --- a/src/de/steamwar/bungeecore/commands/ChallengeCommand.java +++ b/src/de/steamwar/bungeecore/commands/ChallengeCommand.java @@ -22,6 +22,8 @@ package de.steamwar.bungeecore.commands; import de.steamwar.bungeecore.*; import de.steamwar.bungeecore.listeners.mods.ModLoaderBlocker; import de.steamwar.bungeecore.sql.IgnoreSystem; +import de.steamwar.bungeecore.sql.Punishment; +import de.steamwar.bungeecore.sql.SteamwarUser; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.chat.ClickEvent; @@ -48,6 +50,11 @@ public class ChallengeCommand extends BasicCommand { if (!(sender instanceof ProxiedPlayer)) return; + SteamwarUser steamwarUser = SteamwarUser.get((ProxiedPlayer) sender); + if (steamwarUser.isPunishedWithMessage((ProxiedPlayer) sender, Punishment.PunishmentType.NoFightServer)) { + return; + } + if(ModLoaderBlocker.isFabric((ProxiedPlayer) sender)) { Message.send("MODLOADER_DENIED", sender); return; diff --git a/src/de/steamwar/bungeecore/commands/FightCommand.java b/src/de/steamwar/bungeecore/commands/FightCommand.java index 736d78dc..183a43bf 100644 --- a/src/de/steamwar/bungeecore/commands/FightCommand.java +++ b/src/de/steamwar/bungeecore/commands/FightCommand.java @@ -21,6 +21,8 @@ package de.steamwar.bungeecore.commands; import de.steamwar.bungeecore.*; import de.steamwar.bungeecore.listeners.mods.ModLoaderBlocker; +import de.steamwar.bungeecore.sql.Punishment; +import de.steamwar.bungeecore.sql.SteamwarUser; import net.md_5.bungee.api.ChatColor; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.chat.ClickEvent; @@ -128,6 +130,12 @@ public class FightCommand extends BasicCommand { return; ProxiedPlayer player = (ProxiedPlayer) sender; + + SteamwarUser steamwarUser = SteamwarUser.get(player); + if (steamwarUser.isPunishedWithMessage(player, Punishment.PunishmentType.NoFightServer)) { + return; + } + if(alreadyInArena(player)) return; @@ -163,6 +171,11 @@ public class FightCommand extends BasicCommand { @Override public void execute(CommandSender sender, String[] args) { + SteamwarUser steamwarUser = SteamwarUser.get((ProxiedPlayer) sender); + if (steamwarUser.isPunishedWithMessage((ProxiedPlayer) sender, Punishment.PunishmentType.NoFightServer)) { + return; + } + createArena(sender, "/fight ", args, 0, false, (player, mode, map) -> { Subserver arena = new ServerStarter().arena(mode, map).blueLeader(player).start(); Message.broadcast("FIGHT_BROADCAST", "FIGHT_BROADCAST_HOVER" diff --git a/src/de/steamwar/bungeecore/commands/HistoricCommand.java b/src/de/steamwar/bungeecore/commands/HistoricCommand.java index f07a6a3e..b65ecf66 100644 --- a/src/de/steamwar/bungeecore/commands/HistoricCommand.java +++ b/src/de/steamwar/bungeecore/commands/HistoricCommand.java @@ -20,8 +20,11 @@ package de.steamwar.bungeecore.commands; import de.steamwar.bungeecore.*; +import de.steamwar.bungeecore.sql.Punishment; +import de.steamwar.bungeecore.sql.SteamwarUser; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.chat.ClickEvent; +import net.md_5.bungee.api.connection.ProxiedPlayer; import java.util.LinkedList; @@ -32,6 +35,11 @@ public class HistoricCommand extends BasicCommand { @Override public void execute(CommandSender sender, String[] args) { + SteamwarUser steamwarUser = SteamwarUser.get((ProxiedPlayer) sender); + if (steamwarUser.isPunishedWithMessage((ProxiedPlayer) sender, Punishment.PunishmentType.NoFightServer)) { + return; + } + FightCommand.createArena(sender, "/historic ", args, 0, true, (player, mode, map) -> { Subserver arena = new ServerStarter().arena(mode, map).blueLeader(player).start(); Message.broadcast("HISTORIC_BROADCAST", "HISTORIC_BROADCAST_HOVER" diff --git a/src/de/steamwar/bungeecore/commands/ReplayCommand.java b/src/de/steamwar/bungeecore/commands/ReplayCommand.java index 9ff3876f..feb033ad 100644 --- a/src/de/steamwar/bungeecore/commands/ReplayCommand.java +++ b/src/de/steamwar/bungeecore/commands/ReplayCommand.java @@ -24,6 +24,7 @@ import de.steamwar.bungeecore.inventory.SWItem; import de.steamwar.bungeecore.inventory.SWListInv; import de.steamwar.bungeecore.inventory.SWStreamInv; import de.steamwar.bungeecore.sql.Fight; +import de.steamwar.bungeecore.sql.Punishment; import de.steamwar.bungeecore.sql.SchematicType; import de.steamwar.bungeecore.sql.SteamwarUser; import net.md_5.bungee.api.CommandSender; @@ -45,6 +46,11 @@ public class ReplayCommand extends BasicCommand { return; ProxiedPlayer player = (ProxiedPlayer) sender; + SteamwarUser steamwarUser = SteamwarUser.get(player); + if (steamwarUser.isPunishedWithMessage(player, Punishment.PunishmentType.NoFightServer)) { + return; + } + new SWStreamInv<>(player, Message.parse("REPLAY_TITLE", player), (click, fight) -> { SteamwarUser user = SteamwarUser.get(player.getUniqueId()); ArenaMode mode = fight.getGameMode(); diff --git a/src/de/steamwar/bungeecore/commands/TpCommand.java b/src/de/steamwar/bungeecore/commands/TpCommand.java index c3a81b25..1bf3ac0d 100644 --- a/src/de/steamwar/bungeecore/commands/TpCommand.java +++ b/src/de/steamwar/bungeecore/commands/TpCommand.java @@ -20,10 +20,7 @@ package de.steamwar.bungeecore.commands; import de.steamwar.bungeecore.*; -import de.steamwar.bungeecore.sql.BauweltMember; -import de.steamwar.bungeecore.sql.Event; -import de.steamwar.bungeecore.sql.SteamwarUser; -import de.steamwar.bungeecore.sql.Team; +import de.steamwar.bungeecore.sql.*; import net.md_5.bungee.api.CommandSender; import net.md_5.bungee.api.ProxyServer; import net.md_5.bungee.api.config.ServerInfo; @@ -50,6 +47,7 @@ public class TpCommand extends BasicCommand { public void execute(CommandSender sender, String[] args) { if(!(sender instanceof ProxiedPlayer)) return; + if(!onTp((ProxiedPlayer) sender, args)) Message.send("TP_NOT_FOUND", sender); } @@ -77,6 +75,14 @@ public class TpCommand extends BasicCommand { //Get target player server ServerInfo server = getTargetPlayer(args[0]); + // Check if player is allowed to join fights + if (Subserver.getSubserver(server).getType() == Servertype.ARENA) { + SteamwarUser steamwarUser = SteamwarUser.get(player); + if (steamwarUser.isPunishedWithMessage(player, Punishment.PunishmentType.NoFightServer)) { + return true; + } + } + //Get target team event arena if(server == null){ Team team = Team.get(args[0]); diff --git a/src/de/steamwar/bungeecore/sql/Punishment.java b/src/de/steamwar/bungeecore/sql/Punishment.java index 7f9a24e5..c2344a6c 100644 --- a/src/de/steamwar/bungeecore/sql/Punishment.java +++ b/src/de/steamwar/bungeecore/sql/Punishment.java @@ -134,7 +134,9 @@ public class Punishment { NoSchemReceiving(false, "NOSCHEMRECEIVING_TEAM", "NOSCHEMRECEIVING_PERMA", "NOSCHEMRECEIVING_UNTIL", "UNNOSCHEMRECEIVING_ERROR", "UNNOSCHEMRECEIVING"), NoSchemSharing(false, "NOSCHEMSHARING_TEAM", "NOSCHEMSHARING_PERMA", "NOSCHEMSHARING_UNTIL", "UNNOSCHEMSHARING_ERROR", "UNNOSCHEMSHARING"), NoSchemSubmitting(true, "NOSCHEMSUBMITTING_TEAM", "NOSCHEMSUBMITTING_PERMA", "NOSCHEMSUBMITTING_UNTIL", "UNNOSCHEMSUBMITTING_ERROR", "UNNOSCHEMSUBMITTING"), - NoDevServer(true, "NODEVSERVER_TEAM", "NODEVSERVER_PERMA", "NODEVSERVER_UNTIL", "UNNODEVSERVER_ERROR", "UNNODEVSERVER"); + NoDevServer(true, "NODEVSERVER_TEAM", "NODEVSERVER_PERMA", "NODEVSERVER_UNTIL", "UNNODEVSERVER_ERROR", "UNNODEVSERVER"), + NoFightServer(false, "NOFIGHTSERVER_TEAM", "NOFIGHTSERVER_PERMA", "NOFIGHTSERVER_UNTIL", "UNNOFIGHTSERVER_ERROR", "UNNOFIGHTSERVER"), + ; private final boolean needsAdmin; private final String teamMessage; diff --git a/src/de/steamwar/messages/BungeeCore.properties b/src/de/steamwar/messages/BungeeCore.properties index d8b87bfe..6321e59b 100644 --- a/src/de/steamwar/messages/BungeeCore.properties +++ b/src/de/steamwar/messages/BungeeCore.properties @@ -154,6 +154,12 @@ NODEVSERVER_UNTIL=§7Du bist §ebis zum {0} §7vom §e§lDevserver §7ausgeschlo UNNODEVSERVER_ERROR=§cDer Spieler ist nicht vom Devserver ausgeschlossen. UNNODEVSERVER=§e{0} §7darf nun wieder dem §e§lDevserver beitreten§8. +NOFIGHTSERVER_TEAM={0} §e{1} §7wurde von §e{2} {3} §7vom §e§lFighten ausgeschlossen§8. §7Grund§8: §f{4} +NOFIGHTSERVER_PERMA=§7Du bist §epermanent §7vom §e§lFighten §7ausgeschlossen§8. §7Grund§8: §e{0} +NOFIGHTSERVER_UNTIL=§7Du bist §ebis zum {0} §7vom §e§lFighten §7ausgeschlossen§8. §7Grund§8: §e{1} +UNNOFIGHTSERVER_ERROR=§cDer Spieler ist nicht vom Fighten ausgeschlossen. +UNNOFIGHTSERVER=§e{0} §7darf nun wieder §e§lFights beitreten§8. + #BugCommand BUG_MESSAGE=§7Dein Bugreport wurde gespeichert.