· 8 years ago · Dec 09, 2017, 02:22 PM
1package pl.proxen.pvpcore;
2
3import codecrafter47.bungeetablistplus.api.bukkit.BungeeTabListPlusBukkitAPI;
4import net.milkbowl.vault.chat.Chat;
5import org.bukkit.Bukkit;
6import org.bukkit.Server;
7import org.bukkit.World;
8import org.bukkit.entity.Player;
9import org.bukkit.event.Listener;
10import org.bukkit.plugin.Plugin;
11import org.bukkit.plugin.PluginManager;
12import org.bukkit.plugin.RegisteredServiceProvider;
13import org.bukkit.plugin.ServicesManager;
14import org.bukkit.plugin.java.JavaPlugin;
15import org.bukkit.scheduler.BukkitScheduler;
16import pl.SunnyTM.api.Config;
17import pl.proxen.pvpcore.commands.Command;
18import pl.proxen.pvpcore.commands.CommandManager;
19import pl.proxen.pvpcore.commands.cmd.AutoMsgCommand;
20import pl.proxen.pvpcore.commands.cmd.BanCommand;
21import pl.proxen.pvpcore.commands.cmd.BanIPCommand;
22import pl.proxen.pvpcore.commands.cmd.BroadcastCommand;
23import pl.proxen.pvpcore.commands.cmd.ChatCommand;
24import pl.proxen.pvpcore.commands.cmd.ClearCommand;
25import pl.proxen.pvpcore.commands.cmd.ClearEnderchestCommand;
26import pl.proxen.pvpcore.commands.cmd.CoinsAddCommand;
27import pl.proxen.pvpcore.commands.cmd.ConfigCommand;
28import pl.proxen.pvpcore.commands.cmd.DayCommand;
29import pl.proxen.pvpcore.commands.cmd.EnableCommand;
30import pl.proxen.pvpcore.commands.cmd.EnchantCommand;
31import pl.proxen.pvpcore.commands.cmd.EnderchestCommand;
32import pl.proxen.pvpcore.commands.cmd.FlyCommand;
33import pl.proxen.pvpcore.commands.cmd.GamemodeCommand;
34import pl.proxen.pvpcore.commands.cmd.GcCommand;
35import pl.proxen.pvpcore.commands.cmd.GiveCommand;
36import pl.proxen.pvpcore.commands.cmd.GodCommand;
37import pl.proxen.pvpcore.commands.cmd.HeadCommand;
38import pl.proxen.pvpcore.commands.cmd.HealCommand;
39import pl.proxen.pvpcore.commands.cmd.HelpCommand;
40import pl.proxen.pvpcore.commands.cmd.HelpOpCommand;
41import pl.proxen.pvpcore.commands.cmd.IsCommand;
42import pl.proxen.pvpcore.commands.cmd.ItemCommand;
43import pl.proxen.pvpcore.commands.cmd.KickAllCommand;
44import pl.proxen.pvpcore.commands.cmd.ListCommand;
45import pl.proxen.pvpcore.commands.cmd.MoreCommand;
46import pl.proxen.pvpcore.commands.cmd.NightCommand;
47import pl.proxen.pvpcore.commands.cmd.RankingCommand;
48import pl.proxen.pvpcore.commands.cmd.RenameCommand;
49import pl.proxen.pvpcore.commands.cmd.RepairCommand;
50import pl.proxen.pvpcore.commands.cmd.ReplyCommand;
51import pl.proxen.pvpcore.commands.cmd.SetSpawnCommand;
52import pl.proxen.pvpcore.commands.cmd.ShopCommand;
53import pl.proxen.pvpcore.commands.cmd.SlotCommand;
54import pl.proxen.pvpcore.commands.cmd.SlowmodeCommand;
55import pl.proxen.pvpcore.commands.cmd.SpawnCommand;
56import pl.proxen.pvpcore.commands.cmd.SpeedCommand;
57import pl.proxen.pvpcore.commands.cmd.StatsCommand;
58import pl.proxen.pvpcore.commands.cmd.StpCommand;
59import pl.proxen.pvpcore.commands.cmd.StreamerCommand;
60import pl.proxen.pvpcore.commands.cmd.TeleportCommand;
61import pl.proxen.pvpcore.commands.cmd.TellCommand;
62import pl.proxen.pvpcore.commands.cmd.UnBanCommand;
63import pl.proxen.pvpcore.commands.cmd.UnBanIpCommand;
64import pl.proxen.pvpcore.commands.cmd.VipCommand;
65import pl.proxen.pvpcore.commands.cmd.WhiteListCommand;
66import pl.proxen.pvpcore.commands.cmd.WhoIsCommand;
67import pl.proxen.pvpcore.commands.cmd.WorkBenchCommand;
68import pl.proxen.pvpcore.commands.cmd.YouTubeCommand;
69import pl.proxen.pvpcore.commands.guild.AllyCommand;
70import pl.proxen.pvpcore.commands.guild.CreateCommand;
71import pl.proxen.pvpcore.commands.guild.DeleteCommand;
72import pl.proxen.pvpcore.commands.guild.GaCommand;
73import pl.proxen.pvpcore.commands.guild.GuildHelpCommand;
74import pl.proxen.pvpcore.commands.guild.InfoCommand;
75import pl.proxen.pvpcore.commands.guild.InviteCommand;
76import pl.proxen.pvpcore.commands.guild.JoinCommand;
77import pl.proxen.pvpcore.commands.guild.LeaderCommand;
78import pl.proxen.pvpcore.commands.guild.LeaveCommand;
79import pl.proxen.pvpcore.commands.guild.OwnerCommand;
80import pl.proxen.pvpcore.commands.guild.PvpCommand;
81import pl.proxen.pvpcore.listeners.AsyncPlayerChatListener;
82import pl.proxen.pvpcore.listeners.ChatGuildsListener;
83import pl.proxen.pvpcore.listeners.CheckLoginListener;
84import pl.proxen.pvpcore.listeners.EntityDamageByEntityListener;
85import pl.proxen.pvpcore.listeners.EntityDamageListener;
86import pl.proxen.pvpcore.listeners.EntityDeathListener;
87import pl.proxen.pvpcore.listeners.InCommbatInGuildListener;
88import pl.proxen.pvpcore.listeners.InventoryClickListener;
89import pl.proxen.pvpcore.listeners.OpenInventoryListener;
90import pl.proxen.pvpcore.listeners.PlayerDeathListener;
91import pl.proxen.pvpcore.listeners.PlayerInteractListener;
92import pl.proxen.pvpcore.listeners.PlayerJoinListener;
93import pl.proxen.pvpcore.listeners.PlayerMoveListener;
94import pl.proxen.pvpcore.listeners.PlayerQuitJoinListener;
95import pl.proxen.pvpcore.listeners.ProtectPluginsListener;
96import pl.proxen.pvpcore.listeners.PunchPotyListener;
97import pl.proxen.pvpcore.listeners.SignChangeListener;
98import pl.proxen.pvpcore.managers.BanIPManager;
99import pl.proxen.pvpcore.managers.BanManager;
100import pl.proxen.pvpcore.managers.CombatManager;
101import pl.proxen.pvpcore.managers.GuildManager;
102import pl.proxen.pvpcore.managers.NameTagManager;
103import pl.proxen.pvpcore.managers.TimerManager;
104import pl.proxen.pvpcore.managers.UserManager;
105import pl.proxen.pvpcore.mysql.store.Store;
106import pl.proxen.pvpcore.mysql.store.modes.StoreMode;
107import pl.proxen.pvpcore.mysql.store.modes.StoreMySQL;
108import pl.proxen.pvpcore.mysql.store.modes.StoreSQLITE;
109import pl.proxen.pvpcore.rank.TabThread;
110import pl.proxen.pvpcore.rank.variable.AssistTopVariable;
111import pl.proxen.pvpcore.rank.variable.AsystsVariable;
112import pl.proxen.pvpcore.rank.variable.CoinsTopVariable;
113import pl.proxen.pvpcore.rank.variable.CoinsVariable;
114import pl.proxen.pvpcore.rank.variable.DeathsTopVariable;
115import pl.proxen.pvpcore.rank.variable.DeathsVariable;
116import pl.proxen.pvpcore.rank.variable.GuildDeathsVariable;
117import pl.proxen.pvpcore.rank.variable.GuildKillsVariable;
118import pl.proxen.pvpcore.rank.variable.GuildLimitVariable;
119import pl.proxen.pvpcore.rank.variable.GuildPointsVariable;
120import pl.proxen.pvpcore.rank.variable.GuildVariable;
121import pl.proxen.pvpcore.rank.variable.KillsTopVariable;
122import pl.proxen.pvpcore.rank.variable.KillsVariable;
123import pl.proxen.pvpcore.rank.variable.LvlTopVariable;
124import pl.proxen.pvpcore.rank.variable.LvlVariable;
125import pl.proxen.pvpcore.rank.variable.PointsVariable;
126import pl.proxen.pvpcore.rank.variable.TopGuildVariable;
127import pl.proxen.pvpcore.rank.variable.TopVariable;
128import pl.proxen.pvpcore.tasks.AutoMsgTask;
129import pl.proxen.pvpcore.tasks.CombatTask;
130import pl.proxen.pvpcore.tasks.TabFreshRunnable;
131import pl.proxen.pvpcore.utils.Logger;
132import pl.proxen.pvpcore.utils.Ticking;
133
134public class GuildPlugin
135 extends JavaPlugin
136{
137 private static GuildPlugin plugin;
138 private static Store store;
139 private static Chat chat = null;
140 private static PluginManager pluginManager;
141
142 public void onLoad()
143 {
144 plugin = this;
145 }
146
147 public void onEnable()
148 {
149 initTab();
150 for (Player p : Bukkit.getOnlinePlayers())
151 {
152 Combat c = CombatManager.getCombat(p);
153 if (c == null) {
154 CombatManager.createCombat(p);
155 }
156 }
157 new Ticking().start();
158 new TabThread();
159 registerDatabase();
160 registerManager();
161 registerListener();
162 registerTasks();
163 registerCommand();
164 }
165
166 public void onDisable()
167 {
168 unTab();
169 Bukkit.getScheduler().cancelTasks(this);
170 for (Player p : Bukkit.getOnlinePlayers()) {
171 CombatManager.removeCombat(p);
172 }
173 Bukkit.savePlayers();
174 for (World w : Bukkit.getWorlds()) {
175 w.save();
176 }
177 try
178 {
179 Thread.sleep(2000L);
180 }
181 catch (InterruptedException e)
182 {
183 e.printStackTrace();
184 }
185 if ((store != null) && (store.isConnected())) {
186 store.disconnect();
187 }
188 plugin = null;
189 }
190
191 public static GuildPlugin getPlugin()
192 {
193 return plugin;
194 }
195
196 protected boolean registerDatabase()
197 {
198 switch (StoreMode.getByName(Config.DATABASE_MODE))
199 {
200 case SQLITE:
201 store = new StoreMySQL(Config.DATABASE_MYSQL_HOST, Config.DATABASE_MYSQL_PORT, Config.DATABASE_MYSQL_USER, Config.DATABASE_MYSQL_PASS, Config.DATABASE_MYSQL_NAME, Config.DATABASE_TABLEPREFIX);
202 break;
203 case MYSQL:
204 store = new StoreSQLITE(Config.DATABASE_SQLITE_NAME, Config.DATABASE_TABLEPREFIX);
205 break;
206 default:
207 Logger.warning(new String[] {"Value of databse mode is not valid! Using SQLITE as database!" });
208 store = new StoreSQLITE(Config.DATABASE_SQLITE_NAME, Config.DATABASE_TABLEPREFIX);
209 }
210 boolean conn = store.connect();
211 if (conn)
212 {
213 store.update(true, "CREATE TABLE IF NOT EXISTS `{P}users` (" + (store.getStoreMode() == StoreMode.MYSQL ? "`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT," : "`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,") + "`name` varchar(32) NOT NULL,`points` int(11) NOT NULL, `kills` int(11) NOT NULL, `deaths` int(11) NOT NULL, `asyst` int(11) NOT NULL, `coins` int(11) NOT NULL, `logout` int(11) NOT NULL, " + "`firstIP` varchar(64) NOT NULL, `lastIP` varchar(64) NOT NULL, `firstJoin` bigint(22) NOT NULL, `kit_start` bigint(64) NOT NULL, `kit_yt` bigint(22) NOT NULL, `kit_tw` bigint(22) NOT NULL, " + "`kit_vip` bigint(22) NOT NULL, `kit_svip` bigint(22) NOT NULL, `turboDrop` bigint(22) NOT NULL, `turboExp` bigint(22) NOT NULL,`home` varchar(255) NOT NULL, `lastKill` varchar(32) NOT NULL, `lastKillTime` bigint(22) NOT NULL, `god` int(1) NOT NULL, `lvl` int(11) NOT NULL, `exp` int(11) NOT NULL);");
214 store.update(true, "CREATE TABLE IF NOT EXISTS `{P}guilds` (" + (store.getStoreMode() == StoreMode.MYSQL ? "`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT," : "`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,") + "`tag` varchar(5) NOT NULL, `name` varchar(32) NOT NULL, `owner` varchar(64) NOT NULL, `leader` varchar(64) NOT NULL, `prolong` bigint(22) NOT NULL, `pvp` int(2) NOT NULL, `createTime` bigint(22) NOT NULL, `ally` varchar(255) NOT NULL, `points` int(11) NOT NULL, `kills` int(11) NOT NULL, `deaths` int(11) NOT NULL, `pvpAlly` int(1) NOT NULL);");
215 store.update(true, "CREATE TABLE IF NOT EXISTS `{P}members` (" + (store.getStoreMode() == StoreMode.MYSQL ? "`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT," : "`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,") + "`name` varchar(32) NOT NULL,`tag` varchar(5) NOT NULL);");
216 store.update(true, "CREATE TABLE IF NOT EXISTS `{P}bans` (" + (store.getStoreMode() == StoreMode.MYSQL ? "`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT," : "`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,") + "`name` varchar(32) NOT NULL,`time` bigint(22) NOT NULL, `reason` text NOT NULL, `admin` varchar(32) NOT NULL, `start` BIGINT(22) NOT NULL);");
217 store.update(true, "CREATE TABLE IF NOT EXISTS `{P}bansip` (" + (store.getStoreMode() == StoreMode.MYSQL ? "`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT," : "`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,") + "`ip` varchar(32) NOT NULL,`time` bigint(22) NOT NULL, `reason` text NOT NULL, `admin` varchar(32) NOT NULL, `start` BIGINT(22) NOT NULL);");
218 store.update(true, "CREATE TABLE IF NOT EXISTS `{P}backups` (" + (store.getStoreMode() == StoreMode.MYSQL ? "`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT," : "`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,") + "`name` varchar(32) NOT NULL,`time` bigint(22) NOT NULL, `killer` varchar(32) NOT NULL, `ping` int(11) NOT NULL, `inventory` text NOT NULL, `armor` text NOT NULL, `enderchest` text NOT NULL);");
219 store.update(true, "CREATE TABLE IF NOT EXISTS `{P}warp` (" + (store.getStoreMode() == StoreMode.MYSQL ? "`id` int(11) NOT NULL PRIMARY KEY AUTO_INCREMENT," : "`id` INTEGER NOT NULL PRIMARY KEY AUTOINCREMENT,") + "`name` varchar(32) NOT NULL,`location` text NOT NULL, `group` varchar(32) NOT NULL NOT NULL);");
220 return conn;
221 }
222 return conn;
223 }
224
225 public static void registerCommand(Command command)
226 {
227 CommandManager.register(command);
228 }
229
230 public static void registerListener(Plugin plugin, Listener... listeners)
231 {
232 if (pluginManager == null) {
233 pluginManager = Bukkit.getPluginManager();
234 }
235 Listener[] arrayOfListener;
236 int j = (arrayOfListener = listeners).length;
237 for (int i = 0; i < j; i++)
238 {
239 Listener listener = arrayOfListener[i];
240 pluginManager.registerEvents(listener, plugin);
241 }
242 }
243
244 private boolean setupChat()
245 {
246 if (getServer().getPluginManager().getPlugin("Vault") == null) {
247 return false;
248 }
249 RegisteredServiceProvider<Chat> rsp = getServer().getServicesManager().getRegistration(Chat.class);
250 chat = (Chat)rsp.getProvider();
251 return chat != null;
252 }
253
254 public static Chat getChat()
255 {
256 return chat;
257 }
258
259 public static Store getStore()
260 {
261 return store;
262 }
263
264 public static void registerCommand()
265 {
266 registerCommand(new ShopCommand());
267 registerCommand(new ListCommand());
268 registerCommand(new RankingCommand());
269 registerCommand(new GodCommand());
270 registerCommand(new BanCommand());
271 registerCommand(new UnBanCommand());
272 registerCommand(new UnBanIpCommand());
273 registerCommand(new ChatCommand());
274 registerCommand(new GamemodeCommand());
275 registerCommand(new FlyCommand());
276 registerCommand(new SpawnCommand());
277 registerCommand(new SetSpawnCommand());
278 registerCommand(new CoinsAddCommand());
279 registerCommand(new ClearCommand());
280 registerCommand(new EnchantCommand());
281 registerCommand(new GcCommand());
282 registerCommand(new ItemCommand());
283 registerCommand(new GiveCommand());
284 registerCommand(new HeadCommand());
285 registerCommand(new HealCommand());
286 registerCommand(new HelpOpCommand());
287 registerCommand(new KickAllCommand());
288 registerCommand(new pl.proxen.pvpcore.commands.cmd.KickCommand());
289 registerCommand(new ListCommand());
290 registerCommand(new RepairCommand());
291 registerCommand(new TellCommand());
292 registerCommand(new ReplyCommand());
293 registerCommand(new SlotCommand());
294 registerCommand(new SlowmodeCommand());
295 registerCommand(new StpCommand());
296 registerCommand(new StreamerCommand());
297 registerCommand(new VipCommand());
298 registerCommand(new YouTubeCommand());
299 registerCommand(new BroadcastCommand());
300 registerCommand(new MoreCommand());
301 registerCommand(new WhiteListCommand());
302 registerCommand(new WhoIsCommand());
303 registerCommand(new TeleportCommand());
304 registerCommand(new BanIPCommand());
305 registerCommand(new RenameCommand());
306 registerCommand(new IsCommand());
307 registerCommand(new WorkBenchCommand());
308 registerCommand(new EnderchestCommand());
309 registerCommand(new SpeedCommand());
310 registerCommand(new StatsCommand());
311 registerCommand(new DayCommand());
312 registerCommand(new NightCommand());
313 registerCommand(new EnableCommand());
314 registerCommand(new ConfigCommand());
315 registerCommand(new ClearEnderchestCommand());
316 registerCommand(new GaCommand());
317 registerCommand(new AllyCommand());
318 registerCommand(new CreateCommand());
319 registerCommand(new DeleteCommand());
320 registerCommand(new InfoCommand());
321 registerCommand(new InviteCommand());
322 registerCommand(new JoinCommand());
323 registerCommand(new pl.proxen.pvpcore.commands.guild.KickCommand());
324 registerCommand(new pl.proxen.pvpcore.commands.cmd.KickCommand());
325 registerCommand(new LeaderCommand());
326 registerCommand(new OwnerCommand());
327 registerCommand(new PvpCommand());
328 registerCommand(new AutoMsgCommand());
329 registerCommand(new LeaveCommand());
330 registerCommand(new HelpCommand());
331 registerCommand(new GuildHelpCommand());
332 }
333
334 public void registerTasks()
335 {
336 new CombatTask().runTaskTimerAsynchronously(this, 40L, 20L);
337 new AutoMsgTask().runTaskTimerAsynchronously(this, 1200L, 1200L);
338 new TabFreshRunnable().runTaskTimerAsynchronously(this, 600L, 600L);
339 }
340
341 public void registerManager()
342 {
343 NameTagManager.enable();
344 UserManager.loadUsers();
345 GuildManager.loadGuilds();
346 BanManager.loadBans();
347 BanIPManager.loadBans();
348 }
349
350 private void initTab()
351 {
352 BungeeTabListPlusBukkitAPI.registerVariable(this, new PointsVariable("points"));
353 BungeeTabListPlusBukkitAPI.registerVariable(this, new LvlVariable("lvl"));
354 BungeeTabListPlusBukkitAPI.registerVariable(this, new AsystsVariable("asist"));
355 BungeeTabListPlusBukkitAPI.registerVariable(this, new KillsVariable("kills"));
356 BungeeTabListPlusBukkitAPI.registerVariable(this, new CoinsVariable("coins"));
357 BungeeTabListPlusBukkitAPI.registerVariable(this, new DeathsVariable("deaths"));
358 BungeeTabListPlusBukkitAPI.registerVariable(this, new GuildVariable("guild"));
359 BungeeTabListPlusBukkitAPI.registerVariable(this, new GuildPointsVariable("gpoints"));
360 BungeeTabListPlusBukkitAPI.registerVariable(this, new GuildKillsVariable("gkills"));
361 BungeeTabListPlusBukkitAPI.registerVariable(this, new GuildDeathsVariable("gdeaths"));
362
363 BungeeTabListPlusBukkitAPI.registerVariable(this, new GuildLimitVariable("gonline"));
364 for (int i = 1; i < 16; i++) {
365 BungeeTabListPlusBukkitAPI.registerVariable(this, new TopVariable("top" + i, i));
366 }
367 for (int i = 1; i < 9; i++) {
368 BungeeTabListPlusBukkitAPI.registerVariable(this, new CoinsTopVariable("ctop" + i, i));
369 }
370 for (int i = 1; i < 16; i++) {
371 BungeeTabListPlusBukkitAPI.registerVariable(this, new AssistTopVariable("atop" + i, i));
372 }
373 for (int i = 1; i < 16; i++) {
374 BungeeTabListPlusBukkitAPI.registerVariable(this, new DeathsTopVariable("dtop" + i, i));
375 }
376 for (int i = 1; i < 16; i++) {
377 BungeeTabListPlusBukkitAPI.registerVariable(this, new KillsTopVariable("ktop" + i, i));
378 }
379 for (int i = 1; i < 16; i++) {
380 BungeeTabListPlusBukkitAPI.registerVariable(this, new LvlTopVariable("ltop" + i, i));
381 }
382 for (int i = 1; i < 16; i++) {
383 BungeeTabListPlusBukkitAPI.registerVariable(this, new TopGuildVariable("gtop" + i, i));
384 }
385 }
386
387 private void unTab()
388 {
389 BungeeTabListPlusBukkitAPI.unregisterVariable(new PointsVariable("points"));
390 BungeeTabListPlusBukkitAPI.unregisterVariable(new KillsVariable("kills"));
391 BungeeTabListPlusBukkitAPI.unregisterVariable(new CoinsVariable("coins"));
392 BungeeTabListPlusBukkitAPI.registerVariable(this, new AsystsVariable("asist"));
393 BungeeTabListPlusBukkitAPI.registerVariable(this, new LvlVariable("lvl"));
394 BungeeTabListPlusBukkitAPI.unregisterVariable(new DeathsVariable("deaths"));
395 BungeeTabListPlusBukkitAPI.unregisterVariable(new GuildVariable("guild"));
396 BungeeTabListPlusBukkitAPI.unregisterVariable(new GuildPointsVariable("gpoints"));
397 BungeeTabListPlusBukkitAPI.unregisterVariable(new GuildKillsVariable("gkills"));
398 BungeeTabListPlusBukkitAPI.unregisterVariable(new GuildDeathsVariable("gdeaths"));
399 BungeeTabListPlusBukkitAPI.unregisterVariable(new GuildLimitVariable("gonline"));
400 for (int i = 1; i < 16; i++) {
401 BungeeTabListPlusBukkitAPI.unregisterVariable(new TopVariable("top" + i, i));
402 }
403 for (int i = 1; i < 16; i++) {
404 BungeeTabListPlusBukkitAPI.unregisterVariable(new TopGuildVariable("gtop" + i, i));
405 }
406 }
407
408 public void registerListener()
409 {
410 registerListener(this, new Listener[] { new InventoryClickListener(), new PlayerQuitJoinListener(), new PlayerJoinListener(), new ProtectPluginsListener(), new TimerManager(), new AsyncPlayerChatListener(), new ChatGuildsListener(), new PlayerMoveListener(), new EntityDamageByEntityListener(), new EntityDamageListener(), new PlayerDeathListener(), new InCommbatInGuildListener(), new InventoryClickListener(), new CheckLoginListener(), new PlayerInteractListener(), new PunchPotyListener(), new EntityDeathListener(), new OpenInventoryListener(), new SignChangeListener() });
411 }
412}