mirror of
https://github.com/plexusorg/Plex.git
synced 2024-06-02 11:41:47 +00:00
33 lines
1.3 KiB
Java
33 lines
1.3 KiB
Java
|
package dev.plex.listener.impl;
|
||
|
|
||
|
import dev.plex.banning.Ban;
|
||
|
import dev.plex.cache.DataUtils;
|
||
|
import dev.plex.listener.PlexListener;
|
||
|
import dev.plex.player.PlexPlayer;
|
||
|
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;
|
||
|
|
||
|
public class BanListener extends PlexListener
|
||
|
{
|
||
|
private final String banUrl = plugin.config.getString("banning.ban_url");
|
||
|
private final DateTimeFormatter DATE_FORMAT = DateTimeFormatter.ofPattern("MM/dd/yyyy 'at' hh:mm:ss a");
|
||
|
|
||
|
@EventHandler
|
||
|
public void onPreLogin(AsyncPlayerPreLoginEvent event)
|
||
|
{
|
||
|
if (plugin.getBanManager().isBanned(event.getUniqueId()))
|
||
|
{
|
||
|
for (Ban ban : plugin.getBanManager().getActiveBans())
|
||
|
{
|
||
|
PlexPlayer player = DataUtils.getPlayer(ban.getBanner());
|
||
|
String banMessage = PlexUtils.tl("banMessage", banUrl, ban.getReason(),
|
||
|
DATE_FORMAT.format(ban.getEndDate()), ban.getBanner() == null ? "CONSOLE" : player.getName());
|
||
|
event.disallow(AsyncPlayerPreLoginEvent.Result.KICK_BANNED,
|
||
|
LegacyComponentSerializer.legacyAmpersand().deserialize(banMessage));
|
||
|
}
|
||
|
}
|
||
|
}
|
||
|
}
|