mirror of
https://github.com/plexusorg/Plex.git
synced 2025-07-12 08:18:35 +00:00
Merge pull request #3 from PlexDevelopment/punishment-rework
Rework punishment system
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