· 8 years ago · Feb 19, 2018, 06:22 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, `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);");
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 StreamerCommand());
198 GuildPlugin.registerCommand((Command) new VipCommand());
199 GuildPlugin.registerCommand((Command) new YouTubeCommand());
200 GuildPlugin.registerCommand((Command) new CraftCommand());
201 GuildPlugin.registerCommand((Command) new BroadcastCommand());
202 GuildPlugin.registerCommand((Command) new TpaCommand());
203 GuildPlugin.registerCommand((Command) new WhiteListCommand());
204 GuildPlugin.registerCommand((Command) new WhoIsCommand());
205 GuildPlugin.registerCommand((Command) new StoneCommand());
206 GuildPlugin.registerCommand((Command) new TeleportCommand());
207 GuildPlugin.registerCommand((Command) new DiamondTimeCommand());
208 GuildPlugin.registerCommand((Command) new PandoraCommand());
209 GuildPlugin.registerCommand((Command) new PandoraTimeCommand());
210 GuildPlugin.registerCommand((Command) new BackupCommand());
211 GuildPlugin.registerCommand((Command) new SvipCommand());
212 GuildPlugin.registerCommand((Command) new BanIPCommand());
213 GuildPlugin.registerCommand((Command) new RenameCommand());
214 GuildPlugin.registerCommand((Command) new IsCommand());
215 GuildPlugin.registerCommand((Command) new CobblexCommand());
216 GuildPlugin.registerCommand((Command) new WorkBenchCommand());
217 GuildPlugin.registerCommand((Command) new EnderchestCommand());
218 GuildPlugin.registerCommand((Command) new SpeedCommand());
219 GuildPlugin.registerCommand((Command) new LevelCommand());
220 GuildPlugin.registerCommand((Command) new TurboCommand());
221 GuildPlugin.registerCommand((Command) new StatsCommand());
222 GuildPlugin.registerCommand((Command) new CaseCommand());
223 GuildPlugin.registerCommand((Command) new CobblexCommand());
224 GuildPlugin.registerCommand((Command) new EfektCommand());
225 GuildPlugin.registerCommand((Command) new HcCommand());
226 GuildPlugin.registerCommand((Command) new DayCommand());
227 GuildPlugin.registerCommand((Command) new NightCommand());;
228 GuildPlugin.registerCommand((Command) new NetherCommand());
229 GuildPlugin.registerCommand((Command) new EnableCommand());
230 GuildPlugin.registerCommand((Command) new ConfigCommand());
231 GuildPlugin.registerCommand((Command) new ClearEnderchestCommand());
232
233 GuildPlugin.registerCommand((Command) new GaCommand());
234 GuildPlugin.registerCommand((Command) new AllyCommand());
235 GuildPlugin.registerCommand((Command) new CreateCommand());
236 GuildPlugin.registerCommand((Command) new DeleteCommand());
237 GuildPlugin.registerCommand((Command) new EnlargeCommand());
238 GuildPlugin.registerCommand((Command) new GuildSetHomeCommand());
239 GuildPlugin.registerCommand((Command) new GuildHomeCommand());
240 GuildPlugin.registerCommand((Command) new InfoCommand());
241 GuildPlugin.registerCommand((Command) new InviteCommand());
242 GuildPlugin.registerCommand((Command) new pl.kopara.guild.commands.guild.ItemCommand());
243 GuildPlugin.registerCommand((Command) new JoinCommand());
244 GuildPlugin.registerCommand((Command) new pl.kopara.guild.commands.guild.KickCommand());
245 GuildPlugin.registerCommand((Command) new KickCommand());
246 GuildPlugin.registerCommand((Command) new LeaderCommand());
247 GuildPlugin.registerCommand((Command) new OwnerCommand());
248 GuildPlugin.registerCommand((Command) new ProlongCommand());
249 GuildPlugin.registerCommand((Command) new PvpCommand());
250 GuildPlugin.registerCommand((Command) new AutoMsgCommand());
251 GuildPlugin.registerCommand((Command) new LeaveCommand());
252 GuildPlugin.registerCommand((Command) new HelpCommand());
253 GuildPlugin.registerCommand((Command) new GuildHelpCommand());
254
255
256
257 }
258
259 public void registerTasks() {
260 new CheckValidityTask().runTaskTimer((Plugin)this, 2400L, 2400L);
261 new CombatTask().runTaskTimerAsynchronously((Plugin)this, 40L, 20L);
262 new LimitTask().runTaskTimer((Plugin)this, 300L, 300L);
263 new TabZmienne().runTaskTimerAsynchronously((Plugin)this, 250L, 250L);
264 new TabUpdate().runTaskTimerAsynchronously((Plugin)this, 20L, 20L);
265 new AutoMsgTask().runTaskTimerAsynchronously(this, 1200L, 1200L);
266 }
267
268 public void registerManager() {
269 NameTagManager.enable();
270 DropFile.saveDefaultConfig();
271 DropManager.setup();
272 UserManager.loadUsers();
273 GuildManager.loadGuilds();
274 DeathBanManager.loadDeathsBans();
275 BanManager.loadBans();
276 BanIPManager.loadBans();
277 }
278
279
280 public void registerListener() {
281 GuildPlugin.registerListener((Plugin) this, new InventoryClickListener(),
282 new PlayerQuitJoinListener(),
283 new PlayerJoinListener(),
284 new TimerManager(),
285 new AsyncPlayerChatListener(),
286 new ChatGuildsListener(),
287 new PlayerMoveListener(),
288 new BlockBreakListener(),
289 new BlockPlaceListener(),
290 new PlayerBucketEmptyListener(),
291 new PlayerBucketFillListener(),
292 new BorderMapListener(),
293 new GuildExplodeListener(),
294 new EntityDamageByEntityListener(),
295 new EntityDamageListener(),
296 new PlayerDeathListener(),
297 new InCommbatInGuildListener(),
298 new TakeCrystalListener(),
299 new PandoraListener(),
300 new BlockedCommandListener(),
301 new BlockCraftingListener(),
302 new InventoryListener(),
303 new InventoryClickListener(),
304 new CheckLoginListener(),
305 new EfektListener(),
306 new BoyListener(),
307 new PlayerInteractListener(),
308 new PunchPotyListener(),
309 new DropBlockBreakListener(),
310 new EntityDeathListener(),
311
312
313 new InventoryClickListener(),
314 new OpenInventoryListener(),
315 new SignChangeListener(),
316 new CaseDropListener(),
317 new CasePlaceListener(),
318 new CaseKickQuitListener(),
319 new magiccase.listeners.InventoryClickListener(),
320
321 new CobblexListener());
322
323 }
324
325}