blob: 68344db540eca48e7241e736a8fe15436687d52c (
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
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
|
package com.redstoner.bungeeBans;
import com.redstoner.bungeeBans.commands.BanCommand;
import com.redstoner.bungeeBans.commands.GetBanCommand;
import com.redstoner.bungeeBans.commands.UnbanCommand;
import com.redstoner.bungeeBans.json.PlayerBan;
import com.redstoner.bungeeBans.listeners.BanJoinListener;
import com.redstoner.bungeeBans.listeners.DisableJoinListener;
import net.md_5.bungee.api.plugin.Plugin;
import net.md_5.bungee.api.plugin.PluginManager;
import java.io.File;
import java.io.FileNotFoundException;
import java.io.IOException;
import java.nio.file.NoSuchFileException;
public class Main extends Plugin {
private File playerBanFile = new File("banned-players.json");
private BanManager<PlayerBan> playerBanManager = new BanManager<>(playerBanFile, PlayerBan.class);
private boolean shouldSave = true;
@Override
public void onEnable() {
if (
loadBans("player", playerBanManager, playerBanFile)
) {
return;
}
PluginManager pm = getProxy().getPluginManager();
pm.registerCommand(this, new BanCommand(playerBanManager, this));
pm.registerCommand(this, new UnbanCommand(playerBanManager));
pm.registerCommand(this, new GetBanCommand(playerBanManager));
pm.registerListener(this, new BanJoinListener<>(playerBanManager));
}
@Override
public void onDisable() {
if (shouldSave) {
try {
playerBanManager.saveBans();
getLogger().info("Saved bans to file!");
} catch (IOException e) {
getLogger().severe("Failed to save bans: " + e.getMessage());
e.printStackTrace();
}
}
}
private void disable() {
getLogger().severe("Players will not be able to join because of a severe error!!! Check the log output above!");
shouldSave = false;
getProxy().getPluginManager().registerListener(this, new DisableJoinListener());
}
private boolean loadBans(String name, BanManager banManager, File banFile) {
try {
getLogger().info("Loading " + name + " bans...");
banManager.loadBans();
getLogger().info("Loaded " + name + " bans!");
return false;
} catch (FileNotFoundException | NoSuchFileException e) {
getLogger().warning("Ban file (" + name + ") does not exist! Creating!");
try {
if (banFile.createNewFile()) {
getLogger().info("Ban file (" + name + ") created! Retrying load...");
onEnable();
return false;
}
} catch (IOException e2) {
getLogger().severe(e2.getMessage());
e2.printStackTrace();
}
getLogger().severe("Ban file (" + name + ") could not be created!");
disable();
return true;
} catch (Exception e) {
getLogger().severe("Failed to load " + name + " bans: " + e.getMessage());
e.printStackTrace();
disable();
return true;
}
}
}
|