From 0418d124148fce1fc352a92806eedc2414b8a005 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?David=20Pani=C4=87?= Date: Sun, 7 Apr 2019 20:44:13 +0200 Subject: Made Main file more generic + disabled joining on severe load error --- .../bungeeBans/listeners/BanJoinListener.java | 59 ++++++++++++++++++++++ 1 file changed, 59 insertions(+) create mode 100644 src/main/java/com/redstoner/bungeeBans/listeners/BanJoinListener.java (limited to 'src/main/java/com/redstoner/bungeeBans/listeners/BanJoinListener.java') diff --git a/src/main/java/com/redstoner/bungeeBans/listeners/BanJoinListener.java b/src/main/java/com/redstoner/bungeeBans/listeners/BanJoinListener.java new file mode 100644 index 0000000..22dd212 --- /dev/null +++ b/src/main/java/com/redstoner/bungeeBans/listeners/BanJoinListener.java @@ -0,0 +1,59 @@ +package com.redstoner.bungeeBans.listeners; + +import com.mojang.api.profiles.Profile; +import com.redstoner.bungeeBans.BanManager; +import com.redstoner.bungeeBans.Util; +import com.redstoner.bungeeBans.json.Ban; +import net.md_5.bungee.api.ChatColor; +import net.md_5.bungee.api.chat.ComponentBuilder; +import net.md_5.bungee.api.connection.PendingConnection; +import net.md_5.bungee.api.event.PreLoginEvent; +import net.md_5.bungee.api.plugin.Listener; +import net.md_5.bungee.event.EventHandler; +import net.md_5.bungee.event.EventPriority; + +public class BanJoinListener implements Listener { + private BanManager bm; + + public BanJoinListener(BanManager bm) { + this.bm = bm; + } + + @EventHandler (priority = EventPriority.HIGHEST) + public void onJoin(PreLoginEvent event) { + event.setCancelled(true); + + PendingConnection conn = event.getConnection(); + String name = conn.getName(); + + Profile[] profiles = Util.findProfilesByNames(name); + + if (profiles.length != 1) { + event.setCancelReason( + new ComponentBuilder(ChatColor.RED + "Server error occured while joining: ") + .append(ChatColor.AQUA + "The mojang API does not know your UUID!") + .create() + ); + + return; + } + + T ban = bm.getBan(Util.dashUUID(profiles[0].getId())); + + if (ban != null) { + event.setCancelReason( + new ComponentBuilder(ChatColor.RED + "You were banned by ") + .append(ChatColor.AQUA + ban.getSource()) + .append(ChatColor.RED + " for ") + .append(ChatColor.AQUA + ban.getReason()) + .append(ChatColor.RED + " on ") + .append(ChatColor.AQUA + ban.getCreated()) + .append(ChatColor.RED + " until ") + .append(ChatColor.AQUA + ban.getExpires()) + .create() + ); + } else { + event.setCancelled(false); + } + } +} -- cgit v1.2.3