blob: c868c4bc8b943f109755df0a1d443561ae3fb94a (
plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
|
package com.redstoner.bungeeBans;
import com.mojang.api.profiles.Profile;
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;
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);
}
}
}
|