summaryrefslogtreecommitdiff
path: root/src/main/java/com/redstoner/bungeeBans/listeners
diff options
context:
space:
mode:
Diffstat (limited to 'src/main/java/com/redstoner/bungeeBans/listeners')
-rw-r--r--src/main/java/com/redstoner/bungeeBans/listeners/BanJoinListener.java59
-rw-r--r--src/main/java/com/redstoner/bungeeBans/listeners/DisableJoinListener.java20
2 files changed, 79 insertions, 0 deletions
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<T extends Ban> implements Listener {
+ private BanManager<T> bm;
+
+ public BanJoinListener(BanManager<T> 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);
+ }
+ }
+}
diff --git a/src/main/java/com/redstoner/bungeeBans/listeners/DisableJoinListener.java b/src/main/java/com/redstoner/bungeeBans/listeners/DisableJoinListener.java
new file mode 100644
index 0000000..df4a325
--- /dev/null
+++ b/src/main/java/com/redstoner/bungeeBans/listeners/DisableJoinListener.java
@@ -0,0 +1,20 @@
+package com.redstoner.bungeeBans.listeners;
+
+import net.md_5.bungee.api.ChatColor;
+import net.md_5.bungee.api.chat.ComponentBuilder;
+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 DisableJoinListener implements Listener {
+ @EventHandler (priority = EventPriority.HIGHEST)
+ public void onJoin(PreLoginEvent event) {
+ event.setCancelled(true);
+
+ event.setCancelReason(
+ new ComponentBuilder(ChatColor.RED + "Joining is disabled because of a bungee error! Please notify an admin ASAP!")
+ .create()
+ );
+ }
+}