· 8 years ago · Mar 04, 2018, 11:06 PM
1package pl.kopara.guild;
2
3import magiccase.command.CaseCommand;
4import magiccase.listeners.*;
5import net.milkbowl.vault.chat.Chat;
6import org.bukkit.Bukkit;
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.java.JavaPlugin;
14
15import pl.kopara.guild.commands.Command;
16import pl.kopara.guild.commands.CommandManager;
17import pl.kopara.guild.commands.cmd.*;
18import pl.kopara.guild.commands.cmd.ItemCommand;
19import pl.kopara.guild.commands.cmd.KickCommand;
20import pl.kopara.guild.commands.guild.*;
21import pl.kopara.guild.listeners.*;
22import pl.kopara.guild.listeners.InventoryClickListener;
23import pl.kopara.guild.listeners.action.BlockBreakListener;
24import pl.kopara.guild.listeners.action.BlockPlaceListener;
25import pl.kopara.guild.listeners.action.PlayerBucketEmptyListener;
26import pl.kopara.guild.listeners.action.PlayerBucketFillListener;
27import pl.kopara.guild.managers.*;
28import pl.kopara.guild.mysql.store.Store;
29import pl.kopara.guild.mysql.store.modes.StoreMode;
30import pl.kopara.guild.mysql.store.modes.StoreMySQL;
31import pl.kopara.guild.mysql.store.modes.StoreSQLITE;
32import pl.kopara.guild.tasks.AutoMsgTask;
33import pl.kopara.guild.tasks.CheckValidityTask;
34import pl.kopara.guild.tasks.CombatTask;
35import pl.kopara.guild.tasks.LimitTask;
36import pl.kopara.guild.tasks.TabUpdate;
37import pl.kopara.guild.tasks.TabZmienne;
38import pl.kopara.guild.utils.CraftingUtil;
39import pl.kopara.guild.utils.Logger;
40import pl.kopara.guild.utils.Ticking;
41import pl.kopara.guild.utils.ActionBarUtil;
42import pl.sunnytm.api.Config;
43import pl.sunnytm.api.Lang;
44
45public class GuildPlugin extends JavaPlugin {
46 private static GuildPlugin plugin;
47 private static Store store;
48 private static Chat chat;
49 private static PluginManager pluginManager;
50
51 public void onLoad() {
52 GuildPlugin.plugin = this;
53 }
54
55 static {
56 GuildPlugin.chat = null;
57 }
58
59 public void onEnable() {
60 for (Player p : Bukkit.getOnlinePlayers()) {
61 final Combat c = CombatManager.getCombat(p);
62 if (c == null) {
63 CombatManager.createCombat(p);
64 }
65 }
66 new Ticking().start();
67 Config.reloadConfig();
68 Lang.reloadLang();
69 this.registerDatabase();
70 registerManager();
71 registerListener();
72 registerTasks();
73 registerCommand();
74 CraftingUtil.registerRecipe();
75 }
76
77 public void onDisable() {
78 Bukkit.getScheduler().cancelTasks((Plugin)this);
79 for (final Player p : Bukkit.getOnlinePlayers()) {
80 CombatManager.removeCombat(p);
81 }
82 Bukkit.savePlayers();
83 for (final World w : Bukkit.getWorlds()) {
84 w.save();
85 }
86 try {
87 Thread.sleep(2000L);
88 } catch (InterruptedException e) {
89 e.printStackTrace();
90 }
91 if (GuildPlugin.store != null && GuildPlugin.store.isConnected()) {
92 GuildPlugin.store.disconnect();
93 }
94 GuildPlugin.plugin = null;
95 }
96
97 public static GuildPlugin getPlugin() {
98 return GuildPlugin.plugin;
99
100 }
101
102 protected boolean registerDatabase() {
103 switch (StoreMode.getByName(Config.DATABASE_MODE)) {
104 case MYSQL: {
105 GuildPlugin.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);
106 break;
107 }
108 case SQLITE: {
109 GuildPlugin.store = new StoreSQLITE(Config.DATABASE_SQLITE_NAME, Config.DATABASE_TABLEPREFIX);
110 break;
111 }
112 default: {
113 Logger.warning("Value of databse mode is not valid! Using SQLITE as database!");
114 GuildPlugin.store = new StoreSQLITE(Config.DATABASE_SQLITE_NAME, Config.DATABASE_TABLEPREFIX);
115 break;
116 }
117 }
118 final boolean conn = GuildPlugin.store.connect();
119 if (conn) {
120 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, `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, `zdrapkaopen` int(11) 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);");
121 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, `cuboidX` int(11) NOT NULL, `cuboidZ` int(11) NOT NULL, `cuboidSize` int(11) NOT NULL, `life` int(11) NOT NULL, " + "`lifeLastAttack` bigint(22) NOT NULL, `prolong` bigint(22) NOT NULL, `pvp` int(2) NOT NULL, `createTime` bigint(22) NOT NULL, `homeX` double NOT NULL, `homeY` double NOT NULL, `homeZ` double 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);");
122 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);");
123 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);");
124 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);");
125 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);");
126 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);");
127 store.update(true, "CREATE TABLE IF NOT EXISTS `{P}deathbans` (" + (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,`mode` int(1) NOT NULL, `time` bigint(11) NOT NULL NOT NULL);");
128 return conn;
129 }
130 return conn;
131 }
132
133 public static void registerCommand(final Command command) {
134 CommandManager.register(command);
135 }
136
137 public static void registerListener(final Plugin plugin, final Listener... listeners) {
138 if (GuildPlugin.pluginManager == null) {
139 GuildPlugin.pluginManager = Bukkit.getPluginManager();
140 }
141 for (final Listener listener : listeners) {
142 GuildPlugin.pluginManager.registerEvents(listener, plugin);
143 }
144 }
145
146 private boolean setupChat() {
147 if (this.getServer().getPluginManager().getPlugin("Vault") == null) {
148 return false;
149 }
150 final RegisteredServiceProvider<Chat> rsp = (RegisteredServiceProvider<Chat>)this.getServer().getServicesManager().getRegistration((Class)Chat.class);
151 GuildPlugin.chat = (Chat)rsp.getProvider();
152 return GuildPlugin.chat != null;
153 }
154
155 public static Chat getChat() {
156 return GuildPlugin.chat;
157 }
158
159 public static Store getStore() {
160 return GuildPlugin.store;
161 }
162
163 public static void registerCommand() {
164 GuildPlugin.registerCommand((Command) new ListCommand());
165 GuildPlugin.registerCommand((Command) new GodCommand());
166 GuildPlugin.registerCommand((Command) new BanCommand());
167 GuildPlugin.registerCommand((Command) new UnBanCommand());
168 GuildPlugin.registerCommand((Command) new UnBanIpCommand());
169 GuildPlugin.registerCommand((Command) new ChatCommand());
170 GuildPlugin.registerCommand((Command) new GamemodeCommand());
171 GuildPlugin.registerCommand((Command) new FlyCommand());
172 GuildPlugin.registerCommand((Command) new SpawnCommand());
173 GuildPlugin.registerCommand((Command) new SetSpawnCommand());
174 GuildPlugin.registerCommand((Command) new KitCommand());
175 GuildPlugin.registerCommand((Command) new TpacceptCommand());
176 GuildPlugin.registerCommand((Command) new TpdenyCommmand());
177 GuildPlugin.registerCommand((Command) new TpaCommand());
178 GuildPlugin.registerCommand((Command) new ClearCommand());
179 GuildPlugin.registerCommand((Command) new EnchantCommand());
180 GuildPlugin.registerCommand((Command) new GcCommand());
181 GuildPlugin.registerCommand((Command) new ItemCommand());
182 GuildPlugin.registerCommand((Command) new GiveCommand());
183 GuildPlugin.registerCommand((Command) new HeadCommand());
184 GuildPlugin.registerCommand((Command) new HealCommand());
185 GuildPlugin.registerCommand((Command) new HelpOpCommand());
186 GuildPlugin.registerCommand((Command) new HomeCommand());
187 GuildPlugin.registerCommand((Command) new KickAllCommand());
188 GuildPlugin.registerCommand((Command) new KickCommand());
189 GuildPlugin.registerCommand((Command) new ListCommand());
190 GuildPlugin.registerCommand((Command) new SetHomeCommand());
191 GuildPlugin.registerCommand((Command) new RepairCommand());
192 GuildPlugin.registerCommand((Command) new TellCommand());
193 GuildPlugin.registerCommand((Command) new ReplyCommand());
194 GuildPlugin.registerCommand((Command) new SlotCommand());
195 GuildPlugin.registerCommand((Command) new SlowmodeCommand());
196 GuildPlugin.registerCommand((Command) new StpCommand());
197 GuildPlugin.registerCommand((Command) new CraftCommand());
198 GuildPlugin.registerCommand((Command) new BroadcastCommand());
199 GuildPlugin.registerCommand((Command) new TpaCommand());
200 GuildPlugin.registerCommand((Command) new WhiteListCommand());
201 GuildPlugin.registerCommand((Command) new WhoIsCommand());
202 GuildPlugin.registerCommand((Command) new StoneCommand());
203 GuildPlugin.registerCommand((Command) new TeleportCommand());
204 GuildPlugin.registerCommand((Command) new DiamondTimeCommand());
205 GuildPlugin.registerCommand((Command) new PandoraCommand());
206 GuildPlugin.registerCommand((Command) new PandoraTimeCommand());
207 GuildPlugin.registerCommand((Command) new BackupCommand());
208 GuildPlugin.registerCommand((Command) new BanIPCommand());
209 GuildPlugin.registerCommand((Command) new RenameCommand());
210 GuildPlugin.registerCommand((Command) new IsCommand());
211 GuildPlugin.registerCommand((Command) new CobblexCommand());
212 GuildPlugin.registerCommand((Command) new WorkBenchCommand());
213 GuildPlugin.registerCommand((Command) new EnderchestCommand());
214 GuildPlugin.registerCommand((Command) new SpeedCommand());
215 GuildPlugin.registerCommand((Command) new LevelCommand());
216 GuildPlugin.registerCommand((Command) new TurboCommand());
217 GuildPlugin.registerCommand((Command) new CaseCommand());
218 GuildPlugin.registerCommand((Command) new CobblexCommand());
219 GuildPlugin.registerCommand((Command) new EfektCommand());
220 GuildPlugin.registerCommand((Command) new HcCommand());
221 GuildPlugin.registerCommand((Command) new DayCommand());
222 GuildPlugin.registerCommand((Command) new NightCommand());;
223 GuildPlugin.registerCommand((Command) new NetherCommand());
224 GuildPlugin.registerCommand((Command) new EnableCommand());
225 GuildPlugin.registerCommand((Command) new ConfigCommand());
226 GuildPlugin.registerCommand((Command) new ClearEnderchestCommand());
227
228 GuildPlugin.registerCommand((Command) new GaCommand());
229 GuildPlugin.registerCommand((Command) new AllyCommand());
230 GuildPlugin.registerCommand((Command) new CreateCommand());
231 GuildPlugin.registerCommand((Command) new DeleteCommand());
232 GuildPlugin.registerCommand((Command) new EnlargeCommand());
233 GuildPlugin.registerCommand((Command) new GuildSetHomeCommand());
234 GuildPlugin.registerCommand((Command) new GuildHomeCommand());
235 GuildPlugin.registerCommand((Command) new InfoCommand());
236 GuildPlugin.registerCommand((Command) new InviteCommand());
237 GuildPlugin.registerCommand((Command) new pl.kopara.guild.commands.guild.ItemCommand());
238 GuildPlugin.registerCommand((Command) new JoinCommand());
239 GuildPlugin.registerCommand((Command) new pl.kopara.guild.commands.guild.KickCommand());
240 GuildPlugin.registerCommand((Command) new KickCommand());
241 GuildPlugin.registerCommand((Command) new LeaderCommand());
242 GuildPlugin.registerCommand((Command) new OwnerCommand());
243 GuildPlugin.registerCommand((Command) new ProlongCommand());
244 GuildPlugin.registerCommand((Command) new PvpCommand());
245 GuildPlugin.registerCommand((Command) new AutoMsgCommand());
246 GuildPlugin.registerCommand((Command) new LeaveCommand());
247 GuildPlugin.registerCommand((Command) new GuildHelpCommand());
248
249
250
251 }
252
253 public void registerTasks() {
254 new CheckValidityTask().runTaskTimer((Plugin)this, 2400L, 2400L);
255 new CombatTask().runTaskTimerAsynchronously((Plugin)this, 40L, 20L);
256 new LimitTask().runTaskTimer((Plugin)this, 300L, 300L);
257 new TabZmienne().runTaskTimerAsynchronously((Plugin)this, 250L, 250L);
258 new TabUpdate().runTaskTimerAsynchronously((Plugin)this, 20L, 20L);
259 new AutoMsgTask().runTaskTimerAsynchronously(this, 1200L, 1200L);
260 }
261
262 public void registerManager() {
263 NameTagManager.enable();
264 DropFile.saveDefaultConfig();
265 DropManager.setup();
266 UserManager.loadUsers();
267 GuildManager.loadGuilds();
268 DeathBanManager.loadDeathsBans();
269 BanManager.loadBans();
270 BanIPManager.loadBans();
271 }
272
273
274 public void registerListener() {
275 GuildPlugin.registerListener((Plugin) this, new InventoryClickListener(),
276 new PlayerQuitJoinListener(),
277 new PlayerJoinListener(),
278 new TimerManager(),
279 new AsyncPlayerChatListener(),
280 new ChatGuildsListener(),
281 new PlayerMoveListener(),
282 new BlockBreakListener(),
283 new BlockPlaceListener(),
284 new PlayerBucketEmptyListener(),
285 new PlayerBucketFillListener(),
286 new BorderMapListener(),
287 new GuildExplodeListener(),
288 new EntityDamageByEntityListener(),
289 new EntityDamageListener(),
290 new PlayerDeathListener(),
291 new InCommbatInGuildListener(),
292 new TakeCrystalListener(),
293 new PandoraListener(),
294 new BlockedCommandListener(),
295 new BlockCraftingListener(),
296 new InventoryListener(),
297 new InventoryClickListener(),
298 new CheckLoginListener(),
299 new EfektListener(),
300 new BoyListener(),
301 new PlayerInteractListener(),
302 new PunchPotyListener(),
303 new DropBlockBreakListener(),
304 new EntityDeathListener(),
305
306
307 new InventoryClickListener(),
308 new OpenInventoryListener(),
309 new SignChangeListener(),
310 new CaseDropListener(),
311 new CasePlaceListener(),
312 new CaseKickQuitListener(),
313 new magiccase.listeners.InventoryClickListener(),
314
315 new CobblexListener());
316
317 }
318
319}