mirror of
https://github.com/plexusorg/Plex.git
synced 2025-07-12 08:08:34 +00:00
Rework punishment system by deleting the Ban and BanManager and moving everything into Punishment Manager. TODO cache punishments maybe? who knows! add an active field to punishments and fix the ban service to actually unban players
This commit is contained in:
@ -1,13 +1,17 @@
|
||||
package dev.plex.listener.impl;
|
||||
|
||||
import dev.plex.banning.Ban;
|
||||
import dev.plex.cache.PlayerCache;
|
||||
import dev.plex.listener.PlexListener;
|
||||
import dev.plex.player.PunishedPlayer;
|
||||
import dev.plex.punishment.PunishmentType;
|
||||
import dev.plex.util.MojangUtils;
|
||||
import dev.plex.util.PlexUtils;
|
||||
import java.time.format.DateTimeFormatter;
|
||||
import net.kyori.adventure.text.serializer.legacy.LegacyComponentSerializer;
|
||||
import org.bukkit.event.EventHandler;
|
||||
import org.bukkit.event.player.AsyncPlayerPreLoginEvent;
|
||||
|
||||
import java.time.format.DateTimeFormatter;
|
||||
|
||||
public class BanListener extends PlexListener
|
||||
{
|
||||
private final String banUrl = plugin.config.getString("banning.ban_url");
|
||||
@ -16,15 +20,16 @@ public class BanListener extends PlexListener
|
||||
@EventHandler
|
||||
public void onPreLogin(AsyncPlayerPreLoginEvent event)
|
||||
{
|
||||
if (plugin.getBanManager().isBanned(event.getUniqueId()))
|
||||
if (plugin.getPunishmentManager().isBanned(event.getUniqueId()))
|
||||
{
|
||||
for (Ban ban : plugin.getBanManager().getActiveBans())
|
||||
PunishedPlayer player = PlayerCache.getPunishedPlayer(event.getUniqueId());
|
||||
player.getPunishments().stream().filter(punishment -> punishment.getType() == PunishmentType.BAN && punishment.isActive()).findFirst().ifPresent(punishment ->
|
||||
{
|
||||
String banMessage = PlexUtils.tl("banMessage", banUrl, ban.getReason(),
|
||||
DATE_FORMAT.format(ban.getEndDate()), ban.getBanner() == null ? "CONSOLE" : ban.getBanner());
|
||||
String banMessage = PlexUtils.tl("banMessage", banUrl, punishment.getReason(),
|
||||
DATE_FORMAT.format(punishment.getEndDate()), punishment.getPunisher() == null ? "CONSOLE" : MojangUtils.getInfo(punishment.getPunisher().toString()).getUsername());
|
||||
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_BANNED,
|
||||
LegacyComponentSerializer.legacyAmpersand().deserialize(banMessage));
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
}
|
@ -56,11 +56,16 @@ public class PlayerListener extends PlexListener
|
||||
plexPlayer = DataUtils.getPlayer(player.getUniqueId());
|
||||
}
|
||||
|
||||
PunishedPlayer punishedPlayer;
|
||||
PlayerCache.getPlexPlayerMap().put(player.getUniqueId(), plexPlayer); //put them into the cache
|
||||
if (!PlayerCache.getPunishedPlayerMap().containsKey(player.getUniqueId()))
|
||||
{
|
||||
PlayerCache.getPunishedPlayerMap().put(player.getUniqueId(), new PunishedPlayer(player.getUniqueId()));
|
||||
punishedPlayer = new PunishedPlayer(player.getUniqueId());
|
||||
PlayerCache.getPunishedPlayerMap().put(player.getUniqueId(), punishedPlayer);
|
||||
} else {
|
||||
punishedPlayer = PlayerCache.getPunishedPlayer(player.getUniqueId());
|
||||
}
|
||||
punishedPlayer.convertPunishments();
|
||||
|
||||
assert plexPlayer != null;
|
||||
|
||||
|
Reference in New Issue
Block a user