-
Notifications
You must be signed in to change notification settings - Fork 5
Expand file tree
/
Copy pathTether.java
More file actions
66 lines (55 loc) · 2.7 KB
/
Tether.java
File metadata and controls
66 lines (55 loc) · 2.7 KB
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
package dev.naspo.tether;
import dev.naspo.tether.commands.Commands;
import dev.naspo.tether.commands.TabCompleter;
import dev.naspo.tether.listeners.EntityDeathListener;
import dev.naspo.tether.listeners.EntityDismountListener;
import dev.naspo.tether.listeners.EntityUnleashListener;
import dev.naspo.tether.listeners.PlayerInteractAtEntityListener;
import dev.naspo.tether.listeners.PlayerInteractListener;
import dev.naspo.tether.listeners.PlayerLeashEntityListener;
import dev.naspo.tether.services.IntegrationManager;
import dev.naspo.tether.services.LeashMobService;
import dev.naspo.tether.services.LeashPlayerService;
import org.bukkit.plugin.java.JavaPlugin;
public final class Tether extends JavaPlugin {
private IntegrationManager integrationManager;
private LeashMobService leashMobService;
private LeashPlayerService leashPlayerService;
// WorldGuard integration requires that custom flags are registered during onLoad(), i.e. before the plugin
// is enabled. (I'm also just enabling all integrations here are this point so it's cleaner).
@Override
public void onLoad() {
instantiateClasses();
integrationManager.enableIntegrations();
}
@Override
public void onEnable() {
this.saveDefaultConfig();
this.getConfig().options().copyDefaults(true);
this.saveConfig();
this.getLogger().info("Tether has been enabled!");
registerEvents();
registerCommands();
}
@Override
public void onDisable() {
this.getLogger().info("Tether has been disabled!");
}
private void instantiateClasses() {
integrationManager = new IntegrationManager(this);
leashMobService = new LeashMobService(this, integrationManager);
leashPlayerService = new LeashPlayerService(this, integrationManager);
}
private void registerEvents() {
this.getServer().getPluginManager().registerEvents(new PlayerInteractAtEntityListener(this, leashMobService, leashPlayerService), this);
this.getServer().getPluginManager().registerEvents(new PlayerInteractListener(leashMobService, integrationManager), this);
this.getServer().getPluginManager().registerEvents(new PlayerLeashEntityListener(), this);
this.getServer().getPluginManager().registerEvents(new EntityDeathListener(), this);
this.getServer().getPluginManager().registerEvents(new EntityDismountListener(this, leashPlayerService), this);
this.getServer().getPluginManager().registerEvents(new EntityUnleashListener(), this);
}
private void registerCommands() {
this.getCommand("tether").setExecutor(new Commands(this));
this.getCommand("tether").setTabCompleter(new TabCompleter());
}
}