blob: 3b847e4de9bc01312abeeab482daf1cd037831fa (
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
|
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 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;
public class Main extends Plugin {
private File bansFile = new File("banned-players.json");
private BanManager<PlayerBan> playerBanManager = new BanManager<>(bansFile, PlayerBan.class);
private boolean shouldSave = true;
@Override
public void onEnable() {
try {
getLogger().info("Loading bans...");
playerBanManager.loadBans();
getLogger().info("Loaded bans!");
} catch (FileNotFoundException e) {
getLogger().warning("Bans file does not exist! Creating!");
try {
if (bansFile.createNewFile()) {
getLogger().info("File created! Retrying load...");
onEnable();
return;
} else {
getLogger().severe("File could not be created! Disabling!");
}
} catch (IOException e2) {
getLogger().severe("File could not be created! Disabling!");
getLogger().severe(e2.getMessage());
e2.printStackTrace();
}
disable();
return;
} catch (Exception e) {
getLogger().severe("Failed to load bans: " + e.getMessage());
e.printStackTrace();
disable();
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("Disabling plugin!");
shouldSave = false;
this.onDisable();
PluginManager pm = getProxy().getPluginManager();
pm.unregisterListeners(this);
pm.unregisterCommands(this);
}
}
|