package tv.mineinthebox.essentials.events; import org.bukkit.Bukkit; import org.bukkit.event.HandlerList; import org.bukkit.event.Listener; import tv.mineinthebox.essentials.xEssentials; import tv.mineinthebox.essentials.events.backpack.BackpackDespawningEvent; import tv.mineinthebox.essentials.events.backpack.OpenBackPackEvent; import tv.mineinthebox.essentials.events.ban.FloodSpamEvent; import tv.mineinthebox.essentials.events.ban.HumanSpamCommandEvent; import tv.mineinthebox.essentials.events.ban.HumanSpamEvent; import tv.mineinthebox.essentials.events.ban.PwnAgeProtectionEvent; import tv.mineinthebox.essentials.events.ban.ShowAlternateAccountsEvent; import tv.mineinthebox.essentials.events.blocks.BedrockBreakEvent; import tv.mineinthebox.essentials.events.blocks.BedrockPlaceEvent; import tv.mineinthebox.essentials.events.blocks.BlockBlackListEvent; import tv.mineinthebox.essentials.events.blocks.ItemBlackListEvent; import tv.mineinthebox.essentials.events.blocks.NotifyAdminOnBlockBreakEvent; import tv.mineinthebox.essentials.events.blocks.NotifyItemUseEvent; import tv.mineinthebox.essentials.events.books.BookInteractEvent; import tv.mineinthebox.essentials.events.bridges.BridgeBreakEvent; import tv.mineinthebox.essentials.events.bridges.BridgeCreateEvent; import tv.mineinthebox.essentials.events.bridges.BridgeGriefPreventionEvent; import tv.mineinthebox.essentials.events.bridges.BridgeInteractEvent; import tv.mineinthebox.essentials.events.bridges.RemoveBridgeEvent; import tv.mineinthebox.essentials.events.chairs.ChairDisableMonsterEvent; import tv.mineinthebox.essentials.events.chairs.ChairEvent; import tv.mineinthebox.essentials.events.chat.AntiAddvertiseEvent; import tv.mineinthebox.essentials.events.chat.AntiSwearEvent; import tv.mineinthebox.essentials.events.chat.BroadcastSiteNewsEvent; import tv.mineinthebox.essentials.events.chat.ChatFormatEvent; import tv.mineinthebox.essentials.events.chat.ChatHighLightEvent; import tv.mineinthebox.essentials.events.chat.ChatSmilleyEvent; import tv.mineinthebox.essentials.events.chat.ChatSmilleyParticleEvent; import tv.mineinthebox.essentials.events.chat.DrunkChatEvent; import tv.mineinthebox.essentials.events.chat.MuteEvent; import tv.mineinthebox.essentials.events.chat.PlayerIgnorePlayerChatEvent; import tv.mineinthebox.essentials.events.chat.SilenceChatEvent; import tv.mineinthebox.essentials.events.elevators.ElevatorCreateEvent; import tv.mineinthebox.essentials.events.elevators.ElevatorInteractEvent; import tv.mineinthebox.essentials.events.entity.ChunkProtectionEvent; import tv.mineinthebox.essentials.events.entity.CleanupUnloadedChunkEvent; import tv.mineinthebox.essentials.events.entity.CustomZombieAggroRangeEvent; import tv.mineinthebox.essentials.events.entity.DisableEndDragonGriefEvent; import tv.mineinthebox.essentials.events.entity.DisableEndermanGriefEvent; import tv.mineinthebox.essentials.events.entity.DisableExplosionEvent; import tv.mineinthebox.essentials.events.entity.DisableFireSpreadEvent; import tv.mineinthebox.essentials.events.entity.DisableFireworkEvent; import tv.mineinthebox.essentials.events.entity.DisableWeatherEvent; import tv.mineinthebox.essentials.events.entity.DisableWitherGriefEvent; import tv.mineinthebox.essentials.events.entity.EntityBleedEvent; import tv.mineinthebox.essentials.events.entity.EntityPressurePlateInteractEvent; import tv.mineinthebox.essentials.events.entity.EntitySpawnEventManagerEvent; import tv.mineinthebox.essentials.events.entity.ExplosionRegenEvent; import tv.mineinthebox.essentials.events.entity.RealisticGlassEvent; import tv.mineinthebox.essentials.events.entity.RealisticTreeEvent; import tv.mineinthebox.essentials.events.entity.RealisticWaterEvent; import tv.mineinthebox.essentials.events.entity.SpawnEggLogEvent; import tv.mineinthebox.essentials.events.entity.StopLeavesDecayEvent; import tv.mineinthebox.essentials.events.gates.GateBreakEvent; import tv.mineinthebox.essentials.events.gates.GateCreateEvent; import tv.mineinthebox.essentials.events.gates.GateGriefPreventionEvent; import tv.mineinthebox.essentials.events.gates.GateInteractEvent; import tv.mineinthebox.essentials.events.gates.GateRedstoneEvent; import tv.mineinthebox.essentials.events.gates.RemoveGateEvent; import tv.mineinthebox.essentials.events.motd.MotdVanishEvent; import tv.mineinthebox.essentials.events.motd.NormalMotdEvent; import tv.mineinthebox.essentials.events.motd.RandomMotdEvent; import tv.mineinthebox.essentials.events.players.AchievementEvent; import tv.mineinthebox.essentials.events.players.AfkCheckEvent; import tv.mineinthebox.essentials.events.players.AntiKnockBackEvent; import tv.mineinthebox.essentials.events.players.AnvilResetEvent; import tv.mineinthebox.essentials.events.players.CommandRestrictEvent; import tv.mineinthebox.essentials.events.players.CompassEvent; import tv.mineinthebox.essentials.events.players.DisablePortalCreationEvent; import tv.mineinthebox.essentials.events.players.DoubleJumpEvent; import tv.mineinthebox.essentials.events.players.EntityUseHeadOnPlayerDeathEvent; import tv.mineinthebox.essentials.events.players.FakeNukeEvent; import tv.mineinthebox.essentials.events.players.FireflyEvent; import tv.mineinthebox.essentials.events.players.FirstJoinTeleportEvent; import tv.mineinthebox.essentials.events.players.FlyEvent; import tv.mineinthebox.essentials.events.players.FreezePlayerEvent; import tv.mineinthebox.essentials.events.players.GameModeInvChangeEvent; import tv.mineinthebox.essentials.events.players.HungerEvent; import tv.mineinthebox.essentials.events.players.InventoryMenuEvent; import tv.mineinthebox.essentials.events.players.LoadMemoryEvent; import tv.mineinthebox.essentials.events.players.MobProcEvent; import tv.mineinthebox.essentials.events.players.ModreqJoinEvent; import tv.mineinthebox.essentials.events.players.OpKitEvent; import tv.mineinthebox.essentials.events.players.PlayerBorderEvent; import tv.mineinthebox.essentials.events.players.PlayerCheckNameEvent; import tv.mineinthebox.essentials.events.players.PlayerDeathBackEvent; import tv.mineinthebox.essentials.events.players.PlayerFixPortalSoundEvent; import tv.mineinthebox.essentials.events.players.PlayerFloorEvent; import tv.mineinthebox.essentials.events.players.PlayerForceRespawnEvent; import tv.mineinthebox.essentials.events.players.PlayerHoldItemsEvent; import tv.mineinthebox.essentials.events.players.PlayerJoinMessageEvent; import tv.mineinthebox.essentials.events.players.PlayerQuitMessageEvent; import tv.mineinthebox.essentials.events.players.PlayerRespawnTeleportEvent; import tv.mineinthebox.essentials.events.players.PlayerSendPooledMessageEvent; import tv.mineinthebox.essentials.events.players.PlayerShootbowSoundEvent; import tv.mineinthebox.essentials.events.players.PlayerTaskLoginEvent; import tv.mineinthebox.essentials.events.players.PlayerWallEvent; import tv.mineinthebox.essentials.events.players.PlayerZoneEvent; import tv.mineinthebox.essentials.events.players.PortalSizeEvent; import tv.mineinthebox.essentials.events.players.PotatoMoveEvent; import tv.mineinthebox.essentials.events.players.PowerToolEvent; import tv.mineinthebox.essentials.events.players.RemoveMemoryEvent; import tv.mineinthebox.essentials.events.players.SaveLastInventoryEvent; import tv.mineinthebox.essentials.events.players.SaveLastLocationEvent; import tv.mineinthebox.essentials.events.players.SignEditEvent; import tv.mineinthebox.essentials.events.players.StaffSafeTeleportEvent; import tv.mineinthebox.essentials.events.players.TeleportBackEvent; import tv.mineinthebox.essentials.events.players.TorchEvent; import tv.mineinthebox.essentials.events.players.TrollModeEvent; import tv.mineinthebox.essentials.events.players.VanishArchievementEvent; import tv.mineinthebox.essentials.events.players.VanishEvent; import tv.mineinthebox.essentials.events.players.WorldGuardMonsterEvent; import tv.mineinthebox.essentials.events.portals.PortalActivateEvent; import tv.mineinthebox.essentials.events.portals.PortalEvent; import tv.mineinthebox.essentials.events.portals.PortalSelectedCreateEvent; import tv.mineinthebox.essentials.events.protection.BlockProtectedEvent; import tv.mineinthebox.essentials.events.protection.ChestProtectedEvent; import tv.mineinthebox.essentials.events.protection.DispenserProtectionEvent; import tv.mineinthebox.essentials.events.protection.FurnaceProtectedEvent; import tv.mineinthebox.essentials.events.protection.JukeboxProtectedEvent; import tv.mineinthebox.essentials.events.protection.ModifyProtectionEvent; import tv.mineinthebox.essentials.events.protection.RegisterProtectionEvent; import tv.mineinthebox.essentials.events.protection.SignProtectedEvent; import tv.mineinthebox.essentials.events.protection.UnregisterProtectionEvent; import tv.mineinthebox.essentials.events.pvp.ClientSideGraveYardEvent; import tv.mineinthebox.essentials.events.pvp.FakePvpEvent; import tv.mineinthebox.essentials.events.pvp.KillBountyEvent; import tv.mineinthebox.essentials.events.pvp.NpcReplacePlayerEvent; import tv.mineinthebox.essentials.events.pvp.PvpEvent; import tv.mineinthebox.essentials.events.shops.AdminShopInventoryEvent; import tv.mineinthebox.essentials.events.shops.CreateShopEvent; import tv.mineinthebox.essentials.events.shops.RemoveShopEvent; import tv.mineinthebox.essentials.events.shops.ShopInteractEvent; import tv.mineinthebox.essentials.events.signs.ColorSignEvent; import tv.mineinthebox.essentials.events.signs.DispenseSignEvent; import tv.mineinthebox.essentials.events.signs.FireworkSignEvent; import tv.mineinthebox.essentials.events.signs.FreeSignEvent; import tv.mineinthebox.essentials.events.signs.GetYourHeadSignEvent; import tv.mineinthebox.essentials.events.signs.SignBoomEvent; import tv.mineinthebox.essentials.events.signs.WarpSignEvent; import tv.mineinthebox.essentials.events.signs.WildSignEvent; import tv.mineinthebox.essentials.events.vote.VoteCrateEvent; import tv.mineinthebox.essentials.events.vote.VoteMoneyEvent; import tv.mineinthebox.essentials.hook.Hooks; import tv.mineinthebox.essentials.minigames.internal.MemorySafetyEvent; public class Handler { private final xEssentials pl; public Handler(xEssentials pl) { this.pl = pl; } /** * @author xize * @param starts all events! * @return void */ public void start() { //memory system setListener(new LoadMemoryEvent(pl)); if(Hooks.isWorldGuardEnabled()) {setListener(new PlayerZoneEvent(pl));} setListener(new VanishEvent(pl)); setListener(new VanishArchievementEvent(pl)); if(pl.getConfiguration().getPlayerConfig().isSeperatedInventorysEnabled()) { setListener(new GameModeInvChangeEvent(pl)); } if(pl.getConfiguration().getPlayerConfig().isWorldBorderEnabled()) { setListener(new PlayerBorderEvent(pl)); } if(pl.getConfiguration().getChatConfig().isRssBroadcastEnabled()) { setListener(new BroadcastSiteNewsEvent(pl)); } setListener(new SaveLastLocationEvent(pl)); setListener(new TorchEvent(pl)); setListener(new FireflyEvent(pl)); setListener(new FlyEvent(pl)); setListener(new PlayerJoinMessageEvent(pl)); setListener(new PlayerQuitMessageEvent(pl)); setListener(new ModreqJoinEvent(pl)); if(pl.getConfiguration().getMotdConfig().isRandomMotdEnabled()) { setListener(new RandomMotdEvent(pl)); } else if(pl.getConfiguration().getMotdConfig().isNormalMotdEnabled()) { setListener(new NormalMotdEvent(pl)); } setListener(new MotdVanishEvent(pl)); //entity yml setListener(new EntitySpawnEventManagerEvent(pl)); if(pl.getConfiguration().getEntityConfig().isRealisticWaterEnabled()) {setListener(new RealisticWaterEvent());} if(pl.getConfiguration().getEntityConfig().isStonePressurePlatesDisabledForMobs()) {setListener(new EntityPressurePlateInteractEvent());} if(pl.getConfiguration().getEntityConfig().isCleanUpOnChunkUnloadEnabled()) {setListener(new CleanupUnloadedChunkEvent());} if(pl.getConfiguration().getEntityConfig().isProjectileRemovalEnabled()) {setListener(new ChunkProtectionEvent(pl));} if(pl.getConfiguration().getEntityConfig().isWeatherDisabled()) {setListener(new DisableWeatherEvent());} if(pl.getConfiguration().getEntityConfig().isFireSpreadDisabled()) {setListener(new DisableFireSpreadEvent());} if(pl.getConfiguration().getEntityConfig().isExplosionsDisabled()) {setListener(new DisableExplosionEvent());} if(pl.getConfiguration().getEntityConfig().isFireworksDisabled()) {setListener(new DisableFireworkEvent());} if(pl.getConfiguration().getEntityConfig().isWitherGriefDisabled()) {setListener(new DisableWitherGriefEvent());} if(pl.getConfiguration().getEntityConfig().isEnderManGriefDisabled()) {setListener(new DisableEndermanGriefEvent());} if(pl.getConfiguration().getEntityConfig().isEnderDragonGriefDisabled()) {setListener(new DisableEndDragonGriefEvent());} if(pl.getConfiguration().getEntityConfig().isCustomZombieAggroRangeEnabled()) {setListener(new CustomZombieAggroRangeEvent(pl));} if(pl.getConfiguration().getEntityConfig().isLoggingSpawnEggsEnabled()) {setListener(new SpawnEggLogEvent(pl));} if(pl.getConfiguration().getEntityConfig().isExplosionRegenEnabled()) {setListener(new ExplosionRegenEvent(pl));} if(pl.getConfiguration().getEntityConfig().isBloodEnabled()) {setListener(new EntityBleedEvent(pl));} //chat.yml if(pl.getConfiguration().getChatConfig().isSwearFilterEnabled()) { setListener(new AntiSwearEvent(pl)); } setListener(new ChatFormatEvent(pl)); setListener(new DrunkChatEvent(pl)); setListener(new SilenceChatEvent(pl)); setListener(new PlayerIgnorePlayerChatEvent(pl)); if(pl.getConfiguration().getChatConfig().isChatHighLightEnabled()) {setListener(new ChatHighLightEvent(pl));} if(pl.getConfiguration().getChatConfig().isSmilleysEnabled()) { setListener(new ChatSmilleyEvent()); if(pl.getConfiguration().getChatConfig().isSmilleyParticlesEnabled()) { setListener(new ChatSmilleyParticleEvent()); } } if(pl.getConfiguration().getChatConfig().isAntiAdvertiseEnabled()) {setListener(new AntiAddvertiseEvent(pl));} setListener(new MuteEvent(pl)); //player.yml if(Hooks.isWorldGuardEnabled()) { setListener(new WorldGuardMonsterEvent(pl)); } if(pl.getConfiguration().getPlayerConfig().isAutoRespawnEnabled()) {setListener(new PlayerForceRespawnEvent(pl));} setListener(new PlayerSendPooledMessageEvent(pl)); setListener(new OpKitEvent(pl)); setListener(new PlayerShootbowSoundEvent()); setListener(new SignEditEvent(pl)); setListener(new SaveLastInventoryEvent(pl)); setListener(new AntiKnockBackEvent(pl)); setListener(new FirstJoinTeleportEvent(pl)); setListener(new MobProcEvent(pl)); setListener(new CommandRestrictEvent(pl)); setListener(new TrollModeEvent(pl)); setListener(new FreezePlayerEvent(pl)); setListener(new InventoryMenuEvent(pl)); setListener(new CompassEvent(pl)); setListener(new FakeNukeEvent()); setListener(new PowerToolEvent(pl)); setListener(new PlayerTaskLoginEvent(pl)); setListener(new StaffSafeTeleportEvent(pl)); setListener(new PlayerDeathBackEvent(pl)); setListener(new TeleportBackEvent(pl)); setListener(new PlayerRespawnTeleportEvent(pl)); setListener(new PotatoMoveEvent(pl)); setListener(new AfkCheckEvent(pl)); setListener(new PlayerCheckNameEvent(pl)); setListener(new PlayerFloorEvent(pl)); setListener(new PlayerWallEvent(pl)); setListener(new DoubleJumpEvent(pl)); setListener(new PlayerFixPortalSoundEvent(pl)); if(pl.getConfiguration().getPlayerConfig().isCustomPortalSizeDisabled()) {setListener(new PortalSizeEvent());} if(pl.getConfiguration().getPlayerConfig().isPortalsDisabled()) {setListener(new DisablePortalCreationEvent(pl));} if(pl.getConfiguration().getPlayerConfig().isHungerCancelled()) {setListener(new HungerEvent());} if(pl.getConfiguration().getPlayerConfig().isKeepInventoryOnDeathEnabled()) {setListener(new PlayerHoldItemsEvent(pl));} if(pl.getConfiguration().getPlayerConfig().isCanEntityStealHatOnPlayersDeath()) {setListener(new EntityUseHeadOnPlayerDeathEvent());} if(!pl.getConfiguration().getPlayerConfig().isBroadcastAchievementsEnabled()) {setListener(new AchievementEvent());} if(pl.getConfiguration().getEntityConfig().isLeaveDecayDisabled()) {setListener(new StopLeavesDecayEvent());} if(pl.getConfiguration().getEntityConfig().isRealisticGlassEnabled()) { RealisticGlassEvent glass = new RealisticGlassEvent(pl); setListener(glass); glass.startRegen(); } if(pl.getConfiguration().getPlayerConfig().isAutoAnvilEnabled()) {setListener(new AnvilResetEvent(pl));} if(pl.getConfiguration().getEntityConfig().isRealisticTreesEnabled()) {setListener(new RealisticTreeEvent(pl));} //pvp.yml if(pl.getConfiguration().getPvpConfig().isFakePvpEnabled()) {setListener(new FakePvpEvent(pl));} if(pl.getConfiguration().getPvpConfig().isPvpDisabled()) {setListener(new PvpEvent(pl));} if(pl.getConfiguration().getPvpConfig().isClientGravesEnabled()) { setListener(new ClientSideGraveYardEvent(pl)); } if(pl.getConfiguration().getPvpConfig().isKillBountyEnabled()) {setListener(new KillBountyEvent(pl));} if(pl.getConfiguration().getPvpConfig().isReplaceNpcEnabled()) { setListener(new NpcReplacePlayerEvent(pl)); } //ban.yml if(pl.getConfiguration().getBanConfig().isPwnAgeEnabled()) {setListener(new PwnAgeProtectionEvent(pl));} if(pl.getConfiguration().getBanConfig().isFloodSpamEnabled()) {setListener(new FloodSpamEvent(pl));} if(pl.getConfiguration().getBanConfig().isHumanSpamEnabled()) { setListener(new HumanSpamEvent(pl)); setListener(new HumanSpamCommandEvent(pl)); } if(pl.getConfiguration().getBanConfig().isAlternateAccountsEnabled()) {setListener(new ShowAlternateAccountsEvent(pl));} //signs if(pl.getConfiguration().getSignConfig().isColorSignEnabled()) { setListener(new ColorSignEvent()); } if(pl.getConfiguration().getSignConfig().isFreeSignEnabled()) { setListener(new FreeSignEvent(pl)); } if(pl.getConfiguration().getSignConfig().isFireworkSignEnabled()) { setListener(new FireworkSignEvent(pl)); } if(pl.getConfiguration().getSignConfig().isBoomSignEnabled()) { setListener(new SignBoomEvent(pl)); } if(pl.getConfiguration().getSignConfig().isGetYourHeadSignEnabled()) { setListener(new GetYourHeadSignEvent(pl)); } if(pl.getConfiguration().getSignConfig().isWarpSignEnabled()) { setListener(new WarpSignEvent(pl)); } if(pl.getConfiguration().getSignConfig().isWildSignEnabled()) { setListener(new WildSignEvent(pl)); } if(pl.getConfiguration().getSignConfig().isDispenserEnabled()) { setListener(new DispenseSignEvent(pl)); } if(pl.getConfiguration().getShopConfig().isShopEnabled()) { //TO-DO:recreate shops. setListener(new CreateShopEvent(pl)); setListener(new ShopInteractEvent(pl)); setListener(new RemoveShopEvent(pl)); setListener(new AdminShopInventoryEvent(pl)); } //block events if(pl.getConfiguration().getBlockConfig().isNotifyOnBreakEnabled()) {setListener(new NotifyAdminOnBlockBreakEvent(pl));} if(pl.getConfiguration().getBlockConfig().isBedrockBreakDisabled()) {setListener(new BedrockBreakEvent(pl));} if(pl.getConfiguration().getBlockConfig().isBedrockPlaceDisabled()) {setListener(new BedrockPlaceEvent(pl));} if(pl.getConfiguration().getBlockConfig().isNotifyOnConsumeEnabled()) {setListener(new NotifyItemUseEvent(pl));} if(pl.getConfiguration().getBlockConfig().isBlockBlacklistEnabled()) {setListener(new BlockBlackListEvent(pl));} if(pl.getConfiguration().getBlockConfig().isItemBlacklistEnabled()) {setListener(new ItemBlackListEvent(pl));} //protection events if(pl.getConfiguration().getProtectionConfig().isProtectionEnabled()) { setListener(new UnregisterProtectionEvent(pl)); setListener(new RegisterProtectionEvent(pl)); setListener(new ModifyProtectionEvent(pl)); //setListener(new HopperEvent()); setListener(new BlockProtectedEvent(pl)); if(pl.getConfiguration().getProtectionConfig().isSignProtectionEnabled()) {setListener(new SignProtectedEvent(pl));} if(pl.getConfiguration().getProtectionConfig().isChestProtectionEnabled()) {setListener(new ChestProtectedEvent(pl));} if(pl.getConfiguration().getProtectionConfig().isFurnaceProtectionEnabled()) {setListener(new FurnaceProtectedEvent(pl));} if(pl.getConfiguration().getProtectionConfig().isJukeboxProtectionEnabled()) {setListener(new JukeboxProtectedEvent(pl));} if(pl.getConfiguration().getProtectionConfig().isDispenserEnabled()) {setListener(new DispenserProtectionEvent(pl));} } //portal events if(pl.getConfiguration().getPortalConfig().isPortalEnabled()) { setListener(new PortalSelectedCreateEvent(pl)); setListener(new PortalEvent(pl)); setListener(new PortalActivateEvent(pl)); } //backpack events setListener(new BackpackDespawningEvent(pl)); setListener(new OpenBackPackEvent(pl)); //gate events if(pl.getConfiguration().getMiscConfig().isGatesEnabled()) { setListener(new GateCreateEvent(pl)); setListener(new GateInteractEvent(pl)); setListener(new GateBreakEvent(pl)); setListener(new RemoveGateEvent(pl)); setListener(new GateGriefPreventionEvent(pl)); if(pl.getConfiguration().getMiscConfig().isGateRedstoneEnabled()) { setListener(new GateRedstoneEvent(pl)); } } //bridge events if(pl.getConfiguration().getMiscConfig().isBridgesEnabled()) { setListener(new BridgeCreateEvent(pl)); setListener(new BridgeInteractEvent(pl)); setListener(new BridgeBreakEvent(pl)); setListener(new BridgeGriefPreventionEvent(pl)); setListener(new RemoveBridgeEvent(pl)); } //elevator events if(pl.getConfiguration().getMiscConfig().isElevatorsEnabled()) { setListener(new ElevatorCreateEvent(pl)); setListener(new ElevatorInteractEvent(pl)); } //chair events if(pl.getConfiguration().getMiscConfig().isChairsEnabled()) { setListener(new ChairEvent(pl)); if(pl.getConfiguration().getMiscConfig().isChairMonsterOff()) { setListener(new ChairDisableMonsterEvent(pl)); } } if(pl.getConfiguration().getMiscConfig().isBooksEnabled()) { setListener(new BookInteractEvent(pl)); } //vote if(pl.getConfiguration().getVoteConfig().isVoteEnabled() && Hooks.isVotifierEnabled()) { if(pl.getConfiguration().getVoteConfig().isMoneyRewardEnabled() && Hooks.isVaultEcoEnabled()) {setListener(new VoteMoneyEvent(pl));} if(pl.getConfiguration().getVoteConfig().isRewardCrateEnabled() && Hooks.isManCoEnabled()) {setListener(new VoteCrateEvent(pl));} } //minigames setListener(new MemorySafetyEvent(pl)); setListener(new RemoveMemoryEvent(pl)); } /** * @author xize * @param automatic stops all events * @return void */ public void stop() { HandlerList.unregisterAll(pl); } private void setListener(Listener listener) { Bukkit.getPluginManager().registerEvents(listener, pl); } }