-
Notifications
You must be signed in to change notification settings - Fork 8
/
Copy pathBetterShardsPlugin.java
132 lines (109 loc) · 3.84 KB
/
BetterShardsPlugin.java
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
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
package vg.civcraft.mc.bettershards;
import org.bukkit.Bukkit;
import vg.civcraft.mc.bettershards.command.BetterCommandHandler;
import vg.civcraft.mc.bettershards.database.DatabaseManager;
import vg.civcraft.mc.bettershards.external.CombatTagManager;
import vg.civcraft.mc.bettershards.external.MercuryManager;
import vg.civcraft.mc.bettershards.listeners.BetterShardsListener;
import vg.civcraft.mc.bettershards.listeners.MercuryListener;
import vg.civcraft.mc.bettershards.manager.BedManager;
import vg.civcraft.mc.bettershards.manager.ConnectionManager;
import vg.civcraft.mc.bettershards.manager.PortalsManager;
import vg.civcraft.mc.bettershards.manager.RandomSpawnManager;
import vg.civcraft.mc.bettershards.manager.TransitManager;
import vg.civcraft.mc.bettershards.misc.CustomWorldNBTStorage;
import vg.civcraft.mc.civmodcore.ACivMod;
import vg.civcraft.mc.mercury.config.MercuryConfigManager;
public class BetterShardsPlugin extends ACivMod{
private static BetterShardsPlugin instance;
private PortalsManager pm;
private DatabaseManager db;
private String servName;
private CombatTagManager combatManager;
private RandomSpawnManager randomSpawn;
private ConnectionManager connectionManager;
private BedManager bedManager;
private TransitManager transitManager;
private boolean isNameLayerEnabled;
@Override
public void onEnable(){
super.onEnable();
instance = this;
servName = MercuryConfigManager.getServerName();
MercuryManager.initializeChannelsAndPing();
db = new DatabaseManager();
pm = new PortalsManager();
pm.loadPortalsManager();
Bukkit.getScheduler().runTask(this, new Runnable() {
@Override
public void run() {
// Delay load so that other plugins can register with this plugin.
pm.loadPortalsFromServer();
}
});
CustomWorldNBTStorage.setWorldNBTStorage();
combatManager = new CombatTagManager(getServer());
randomSpawn = new RandomSpawnManager();
registerListeners();
CustomWorldNBTStorage.uploadExistingPlayers();
new BetterShardsAPI();
handle = new BetterCommandHandler();
handle.registerCommands();
transitManager = new TransitManager();
connectionManager = new ConnectionManager();
bedManager = new BedManager();
isNameLayerEnabled = Bukkit.getPluginManager().isPluginEnabled("NameLayer");
}
@Override
public void onDisable(){
if (db != null){
db.cleanup(); // releases all locks.
}
}
@Override
protected String getPluginName() {
return "BetterShardsPlugin";
}
/**
* @return Returns the instance of the JavaPlugin.
*/
public static BetterShardsPlugin getInstance(){
return instance;
}
private void registerListeners(){
// Register bukkit channel
getServer().getMessenger().registerOutgoingPluginChannel(this, "BungeeCord");
// Register Bukkit Event Listener.
BetterShardsListener l = new BetterShardsListener();
getServer().getPluginManager().registerEvents(l, this);
getServer().getPluginManager().registerEvents(new MercuryListener(), this);
// CombatTag listener is registered in CombatTagManager depending on whether CombatTagPlus is installed
}
public static String getCurrentServerName(){
return getInstance().servName;
}
public static PortalsManager getPortalManager(){
return getInstance().pm;
}
public static DatabaseManager getDatabaseManager() {
return getInstance().db;
}
public static RandomSpawnManager getRandomSpawn() {
return getInstance().randomSpawn;
}
public static CombatTagManager getCombatTagManager() {
return getInstance().combatManager;
}
public static ConnectionManager getConnectionManager() {
return getInstance().connectionManager;
}
public static BedManager getBedManager() {
return getInstance().bedManager;
}
public static TransitManager getTransitManager() {
return getInstance().transitManager;
}
public static boolean isNameLayerEnabled() {
return getInstance().isNameLayerEnabled;
}
}