2013-08-27 17:14:08 +02:00
|
|
|
package nautilus.game.arcade;
|
|
|
|
|
|
|
|
import java.io.File;
|
|
|
|
import java.util.ArrayList;
|
2014-08-23 09:55:28 +02:00
|
|
|
import java.util.HashMap;
|
2014-05-03 03:23:10 +02:00
|
|
|
import java.util.HashSet;
|
2014-09-16 05:31:53 +02:00
|
|
|
import java.util.Map;
|
|
|
|
import java.util.UUID;
|
2013-08-27 17:14:08 +02:00
|
|
|
|
2013-09-07 02:43:45 +02:00
|
|
|
import org.bukkit.Bukkit;
|
2013-08-27 17:14:08 +02:00
|
|
|
import org.bukkit.ChatColor;
|
2014-10-25 02:03:45 +02:00
|
|
|
import org.bukkit.Color;
|
|
|
|
import org.bukkit.FireworkEffect;
|
2013-08-27 17:14:08 +02:00
|
|
|
import org.bukkit.GameMode;
|
|
|
|
import org.bukkit.Material;
|
2014-07-26 19:40:49 +02:00
|
|
|
import org.bukkit.OfflinePlayer;
|
2014-10-25 02:03:45 +02:00
|
|
|
import org.bukkit.FireworkEffect.Type;
|
2014-08-14 01:57:37 +02:00
|
|
|
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftEntity;
|
|
|
|
import org.bukkit.craftbukkit.v1_7_R4.entity.CraftPlayer;
|
2013-08-27 17:14:08 +02:00
|
|
|
import org.bukkit.entity.Player;
|
|
|
|
import org.bukkit.event.EventHandler;
|
2014-08-09 15:25:13 +02:00
|
|
|
import org.bukkit.event.EventPriority;
|
2013-11-22 08:40:38 +01:00
|
|
|
import org.bukkit.event.block.BlockBurnEvent;
|
|
|
|
import org.bukkit.event.block.BlockFadeEvent;
|
|
|
|
import org.bukkit.event.block.BlockSpreadEvent;
|
|
|
|
import org.bukkit.event.block.LeavesDecayEvent;
|
|
|
|
import org.bukkit.event.entity.CreatureSpawnEvent;
|
2014-08-10 02:50:31 +02:00
|
|
|
import org.bukkit.event.inventory.InventoryType;
|
2014-04-21 04:55:24 +02:00
|
|
|
import org.bukkit.event.player.PlayerCommandPreprocessEvent;
|
2013-08-27 17:14:08 +02:00
|
|
|
import org.bukkit.event.player.PlayerJoinEvent;
|
2013-09-07 02:43:45 +02:00
|
|
|
import org.bukkit.event.player.PlayerLoginEvent;
|
2013-08-27 17:14:08 +02:00
|
|
|
import org.bukkit.event.player.PlayerQuitEvent;
|
|
|
|
import org.bukkit.event.server.ServerListPingEvent;
|
|
|
|
|
|
|
|
import mineplex.core.MiniPlugin;
|
|
|
|
import mineplex.core.account.CoreClientManager;
|
2014-08-08 05:46:35 +02:00
|
|
|
import mineplex.core.achievement.AchievementManager;
|
2013-09-13 04:24:33 +02:00
|
|
|
import mineplex.core.antistack.AntiStack;
|
2013-08-27 17:14:08 +02:00
|
|
|
import mineplex.core.blockrestore.BlockRestore;
|
2014-03-09 09:50:13 +01:00
|
|
|
import mineplex.core.blood.Blood;
|
2013-09-04 20:35:59 +02:00
|
|
|
import mineplex.core.chat.Chat;
|
2013-09-07 02:43:45 +02:00
|
|
|
import mineplex.core.common.Rank;
|
2014-09-16 05:31:53 +02:00
|
|
|
import mineplex.core.common.util.C;
|
|
|
|
import mineplex.core.common.util.F;
|
2014-10-25 02:03:45 +02:00
|
|
|
import mineplex.core.common.util.UtilFirework;
|
2014-09-16 05:31:53 +02:00
|
|
|
import mineplex.core.common.util.UtilGear;
|
|
|
|
import mineplex.core.common.util.UtilInv;
|
|
|
|
import mineplex.core.common.util.UtilPlayer;
|
2014-09-18 07:44:48 +02:00
|
|
|
import mineplex.core.common.util.UtilServer;
|
2014-08-09 11:55:05 +02:00
|
|
|
import mineplex.core.cosmetic.CosmeticManager;
|
2013-08-27 17:14:08 +02:00
|
|
|
import mineplex.core.creature.Creature;
|
|
|
|
import mineplex.core.disguise.DisguiseManager;
|
|
|
|
import mineplex.core.donation.DonationManager;
|
2014-05-05 07:40:44 +02:00
|
|
|
import mineplex.core.elo.EloManager;
|
2014-03-05 09:34:20 +01:00
|
|
|
import mineplex.core.energy.Energy;
|
2013-08-27 17:14:08 +02:00
|
|
|
import mineplex.core.explosion.Explosion;
|
2014-09-16 05:31:53 +02:00
|
|
|
import mineplex.core.inventory.InventoryManager;
|
|
|
|
import mineplex.core.itemstack.ItemStackFactory;
|
|
|
|
import mineplex.core.movement.Movement;
|
2014-09-12 22:03:33 +02:00
|
|
|
import mineplex.core.packethandler.PacketHandler;
|
2014-09-19 04:03:46 +02:00
|
|
|
import mineplex.core.pet.PetManager;
|
2013-08-27 17:14:08 +02:00
|
|
|
import mineplex.core.portal.Portal;
|
2014-06-10 02:27:25 +02:00
|
|
|
import mineplex.core.preferences.PreferencesManager;
|
2013-08-27 17:14:08 +02:00
|
|
|
import mineplex.core.projectile.ProjectileManager;
|
2013-12-14 06:00:56 +01:00
|
|
|
import mineplex.core.stats.StatsManager;
|
2014-03-14 01:56:05 +01:00
|
|
|
import mineplex.core.status.ServerStatusManager;
|
2014-08-23 07:04:43 +02:00
|
|
|
import mineplex.core.task.TaskManager;
|
2014-03-09 09:50:13 +01:00
|
|
|
import mineplex.core.teleport.Teleport;
|
2014-06-25 21:06:24 +02:00
|
|
|
import mineplex.core.timing.TimingManager;
|
2014-10-25 02:03:45 +02:00
|
|
|
import mineplex.core.updater.UpdateType;
|
|
|
|
import mineplex.core.updater.event.UpdateEvent;
|
2014-09-16 05:31:53 +02:00
|
|
|
import mineplex.minecraft.game.classcombat.Class.ClassManager;
|
|
|
|
import mineplex.minecraft.game.classcombat.Condition.SkillConditionManager;
|
|
|
|
import mineplex.minecraft.game.classcombat.Skill.SkillFactory;
|
|
|
|
import mineplex.minecraft.game.classcombat.Skill.event.SkillTriggerEvent;
|
|
|
|
import mineplex.minecraft.game.classcombat.item.ItemFactory;
|
|
|
|
import mineplex.minecraft.game.classcombat.item.event.ItemTriggerEvent;
|
|
|
|
import mineplex.minecraft.game.classcombat.shop.ClassCombatShop;
|
|
|
|
import mineplex.minecraft.game.classcombat.shop.ClassShopManager;
|
|
|
|
import mineplex.minecraft.game.core.IRelation;
|
|
|
|
import mineplex.minecraft.game.core.condition.ConditionManager;
|
|
|
|
import mineplex.minecraft.game.core.damage.DamageManager;
|
|
|
|
import mineplex.minecraft.game.core.fire.Fire;
|
|
|
|
import nautilus.game.arcade.addons.CompassAddon;
|
|
|
|
import nautilus.game.arcade.addons.SoupAddon;
|
|
|
|
import nautilus.game.arcade.addons.TeamArmorAddon;
|
|
|
|
import nautilus.game.arcade.command.GameCommand;
|
|
|
|
import nautilus.game.arcade.command.WriteCommand;
|
2014-10-24 10:05:57 +02:00
|
|
|
import nautilus.game.arcade.command.YoutubeCommand;
|
2014-09-16 05:31:53 +02:00
|
|
|
import nautilus.game.arcade.events.GameStateChangeEvent;
|
|
|
|
import nautilus.game.arcade.game.Game;
|
|
|
|
import nautilus.game.arcade.game.Game.GameState;
|
|
|
|
import nautilus.game.arcade.game.GameServerConfig;
|
|
|
|
import nautilus.game.arcade.game.GameTeam;
|
|
|
|
import nautilus.game.arcade.game.games.uhc.UHC;
|
|
|
|
import nautilus.game.arcade.managers.GameAchievementManager;
|
|
|
|
import nautilus.game.arcade.managers.GameChatManager;
|
|
|
|
import nautilus.game.arcade.managers.GameCreationManager;
|
|
|
|
import nautilus.game.arcade.managers.GameFlagManager;
|
|
|
|
import nautilus.game.arcade.managers.GameGemManager;
|
|
|
|
import nautilus.game.arcade.managers.GameLobbyManager;
|
2014-09-19 04:03:46 +02:00
|
|
|
import nautilus.game.arcade.managers.GameLootManager;
|
2014-09-16 05:31:53 +02:00
|
|
|
import nautilus.game.arcade.managers.GameManager;
|
|
|
|
import nautilus.game.arcade.managers.GamePlayerManager;
|
2014-09-21 01:28:12 +02:00
|
|
|
import nautilus.game.arcade.managers.GameStatManager;
|
2014-09-24 07:46:55 +02:00
|
|
|
import nautilus.game.arcade.managers.GameTournamentManager;
|
2014-09-16 05:31:53 +02:00
|
|
|
import nautilus.game.arcade.managers.GameWorldManager;
|
2014-10-23 05:05:35 +02:00
|
|
|
import nautilus.game.arcade.managers.HalloweenManager;
|
2014-09-16 05:31:53 +02:00
|
|
|
import nautilus.game.arcade.managers.IdleManager;
|
|
|
|
import nautilus.game.arcade.managers.MiscManager;
|
|
|
|
import nautilus.game.arcade.shop.ArcadeShop;
|
2013-08-27 17:14:08 +02:00
|
|
|
|
2013-09-04 20:35:59 +02:00
|
|
|
public class ArcadeManager extends MiniPlugin implements IRelation
|
2013-08-27 17:14:08 +02:00
|
|
|
{
|
2014-07-26 19:40:49 +02:00
|
|
|
// Modules
|
2013-09-13 04:24:33 +02:00
|
|
|
private AntiStack _antistack;
|
2013-08-27 17:14:08 +02:00
|
|
|
private BlockRestore _blockRestore;
|
2013-08-31 05:15:16 +02:00
|
|
|
private Blood _blood;
|
2014-07-26 19:40:49 +02:00
|
|
|
private Chat _chat;
|
2013-08-27 17:14:08 +02:00
|
|
|
private CoreClientManager _clientManager;
|
|
|
|
private DisguiseManager _disguiseManager;
|
|
|
|
private DonationManager _donationManager;
|
|
|
|
private ConditionManager _conditionManager;
|
|
|
|
private Creature _creature;
|
|
|
|
private DamageManager _damageManager;
|
|
|
|
private Explosion _explosionManager;
|
|
|
|
private Fire _fire;
|
|
|
|
private ProjectileManager _projectileManager;
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
private Portal _portal;
|
2014-09-16 05:31:53 +02:00
|
|
|
private ArcadeShop _arcadeShop;
|
2014-10-25 04:40:34 +02:00
|
|
|
|
2014-08-15 01:49:00 +02:00
|
|
|
// Managers
|
2013-08-27 17:14:08 +02:00
|
|
|
private GameFactory _gameFactory;
|
|
|
|
private GameCreationManager _gameCreationManager;
|
|
|
|
private GameGemManager _gameGemManager;
|
2014-09-16 05:31:53 +02:00
|
|
|
private GameManager _gameManager;
|
2013-08-27 17:14:08 +02:00
|
|
|
private GameLobbyManager _gameLobbyManager;
|
2014-08-23 09:55:28 +02:00
|
|
|
private GamePlayerManager _gamePlayerManager;
|
2014-09-24 07:46:55 +02:00
|
|
|
private GameTournamentManager _gameTournamentManager;
|
2014-09-16 05:31:53 +02:00
|
|
|
private GameWorldManager _gameWorldManager;
|
2014-07-03 01:59:31 +02:00
|
|
|
private ServerStatusManager _serverStatusManager;
|
2014-08-09 05:10:02 +02:00
|
|
|
private InventoryManager _inventoryManager;
|
2014-08-09 11:55:05 +02:00
|
|
|
private CosmeticManager _cosmeticManager;
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-08-08 05:46:35 +02:00
|
|
|
private AchievementManager _achievementManager;
|
2013-12-14 06:00:56 +01:00
|
|
|
private StatsManager _statsManager;
|
2013-10-31 07:35:24 +01:00
|
|
|
private ClassManager _classManager;
|
|
|
|
private SkillFactory _skillFactory;
|
|
|
|
private ClassShopManager _classShopManager;
|
2014-03-28 03:17:31 +01:00
|
|
|
private ClassCombatShop _classShop;
|
2014-08-23 07:04:43 +02:00
|
|
|
private TaskManager _taskManager;
|
2014-09-16 05:31:53 +02:00
|
|
|
private ArcadeRepository _arcadeRepository;
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-05-05 07:40:44 +02:00
|
|
|
private EloManager _eloManager;
|
2014-07-26 19:40:49 +02:00
|
|
|
|
|
|
|
// Observers
|
2014-05-03 03:23:10 +02:00
|
|
|
private HashSet<Player> _specList = new HashSet<Player>();
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
// Server Games
|
2013-08-27 17:14:08 +02:00
|
|
|
private GameServerConfig _serverConfig;
|
2014-07-26 19:40:49 +02:00
|
|
|
|
|
|
|
// Games
|
2013-08-27 17:14:08 +02:00
|
|
|
private Game _game;
|
2014-10-24 10:05:57 +02:00
|
|
|
|
|
|
|
//Youtuber Kits
|
|
|
|
private HashSet<Player> _youtube = new HashSet<Player>();
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
public ArcadeManager(Arcade plugin, ServerStatusManager serverStatusManager, GameServerConfig serverConfig,
|
2014-09-16 05:31:53 +02:00
|
|
|
CoreClientManager clientManager, DonationManager donationManager, DamageManager damageManager,
|
|
|
|
DisguiseManager disguiseManager, Creature creature, Teleport teleport, Blood blood, AntiStack antistack,
|
|
|
|
Portal portal, PreferencesManager preferences, InventoryManager inventoryManager, PacketHandler packetHandler,
|
2014-09-19 04:03:46 +02:00
|
|
|
CosmeticManager cosmeticManager, ProjectileManager projectileManager, PetManager petManager, String webAddress)
|
2013-08-27 17:14:08 +02:00
|
|
|
{
|
|
|
|
super("Game Manager", plugin);
|
|
|
|
|
|
|
|
_serverConfig = serverConfig;
|
2014-07-26 19:40:49 +02:00
|
|
|
|
|
|
|
// Modules
|
|
|
|
_antistack = antistack;
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
_blockRestore = new BlockRestore(plugin);
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-31 05:15:16 +02:00
|
|
|
_blood = blood;
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
_explosionManager = new Explosion(plugin, _blockRestore);
|
|
|
|
_explosionManager.SetDebris(false);
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
if (serverConfig.GameList.contains(GameType.ChampionsDominate)
|
|
|
|
|| serverConfig.GameList.contains(GameType.ChampionsTDM)
|
|
|
|
|| serverConfig.GameList.contains(GameType.ChampionsMOBA))
|
2014-04-15 09:53:24 +02:00
|
|
|
{
|
|
|
|
_conditionManager = new SkillConditionManager(plugin);
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
_conditionManager = new ConditionManager(plugin);
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
_clientManager = clientManager;
|
2014-07-03 01:59:31 +02:00
|
|
|
_serverStatusManager = serverStatusManager;
|
|
|
|
_chat = new Chat(plugin, _clientManager, preferences, _serverStatusManager.getCurrentServerName());
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
_creature = creature;
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
_damageManager = damageManager;
|
2013-09-09 10:06:44 +02:00
|
|
|
_damageManager.UseSimpleWeaponDamage = true;
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-31 05:15:16 +02:00
|
|
|
_disguiseManager = disguiseManager;
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
_donationManager = donationManager;
|
|
|
|
|
2014-04-15 09:53:24 +02:00
|
|
|
_fire = new Fire(plugin, _conditionManager, damageManager);
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-08-22 20:30:41 +02:00
|
|
|
_projectileManager = projectileManager;
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
if (serverConfig.GameList.contains(GameType.ChampionsDominate)
|
|
|
|
|| serverConfig.GameList.contains(GameType.ChampionsTDM)
|
|
|
|
|| serverConfig.GameList.contains(GameType.ChampionsMOBA))
|
2014-03-05 09:34:20 +01:00
|
|
|
{
|
2014-04-20 05:53:55 +02:00
|
|
|
Energy energy = new Energy(plugin);
|
2014-07-26 19:40:49 +02:00
|
|
|
ItemFactory itemFactory = new ItemFactory(_plugin, _blockRestore, _conditionManager, damageManager, energy,
|
|
|
|
_fire, _projectileManager, webAddress);
|
|
|
|
_skillFactory = new SkillFactory(plugin, damageManager, this, _damageManager.GetCombatManager(),
|
|
|
|
_conditionManager, _projectileManager, _blockRestore, _fire, new Movement(plugin), teleport,
|
|
|
|
energy, webAddress);
|
|
|
|
_classManager = new ClassManager(plugin, clientManager, donationManager, _skillFactory, itemFactory,
|
|
|
|
webAddress);
|
|
|
|
|
2014-05-07 07:38:27 +02:00
|
|
|
_classShopManager = new ClassShopManager(_plugin, _classManager, _skillFactory, itemFactory);
|
2014-03-28 03:17:31 +01:00
|
|
|
_classShop = new ClassCombatShop(_classShopManager, clientManager, donationManager, webAddress);
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-05-05 07:40:44 +02:00
|
|
|
_eloManager = new EloManager(_plugin);
|
2014-03-05 09:34:20 +01:00
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-08-08 05:46:35 +02:00
|
|
|
_statsManager = new StatsManager(plugin);
|
2014-09-16 05:31:53 +02:00
|
|
|
_taskManager = new TaskManager(plugin, webAddress);
|
2014-08-24 23:08:19 +02:00
|
|
|
_achievementManager = new AchievementManager(_statsManager, clientManager, donationManager);
|
2014-08-09 05:10:02 +02:00
|
|
|
_inventoryManager = inventoryManager;
|
2014-08-09 11:55:05 +02:00
|
|
|
_cosmeticManager = cosmeticManager;
|
2013-11-07 00:18:36 +01:00
|
|
|
_portal = portal;
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
// Shop
|
2013-08-27 17:14:08 +02:00
|
|
|
_arcadeShop = new ArcadeShop(this, clientManager, donationManager);
|
|
|
|
|
2014-09-06 03:31:55 +02:00
|
|
|
// Game Factory
|
2013-08-27 17:14:08 +02:00
|
|
|
_gameFactory = new GameFactory(this);
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
// Managers
|
2013-09-04 20:35:59 +02:00
|
|
|
new GameChatManager(this);
|
2013-08-27 17:14:08 +02:00
|
|
|
_gameCreationManager = new GameCreationManager(this);
|
|
|
|
_gameGemManager = new GameGemManager(this);
|
|
|
|
_gameManager = new GameManager(this);
|
2014-09-12 22:03:33 +02:00
|
|
|
_gameLobbyManager = new GameLobbyManager(this, packetHandler);
|
2013-08-27 17:14:08 +02:00
|
|
|
new GameFlagManager(this);
|
2014-08-23 09:55:28 +02:00
|
|
|
_gamePlayerManager = new GamePlayerManager(this);
|
2014-08-08 09:05:11 +02:00
|
|
|
new GameAchievementManager(this);
|
2014-09-24 07:46:55 +02:00
|
|
|
_gameTournamentManager = new GameTournamentManager(this);
|
2014-09-21 01:28:12 +02:00
|
|
|
new GameStatManager(this);
|
2014-09-19 04:03:46 +02:00
|
|
|
new GameLootManager(this, petManager);
|
2013-08-27 17:14:08 +02:00
|
|
|
_gameWorldManager = new GameWorldManager(this);
|
2014-08-09 11:55:05 +02:00
|
|
|
new MiscManager(this);
|
2013-09-02 10:45:12 +02:00
|
|
|
new IdleManager(this);
|
2014-10-23 05:05:35 +02:00
|
|
|
new HalloweenManager(this);
|
|
|
|
|
2014-09-16 05:31:53 +02:00
|
|
|
_arcadeRepository = new ArcadeRepository(plugin);
|
2014-07-26 19:40:49 +02:00
|
|
|
// Game Addons
|
2013-08-27 17:14:08 +02:00
|
|
|
new CompassAddon(plugin, this);
|
|
|
|
new SoupAddon(plugin, this);
|
2014-05-03 03:23:10 +02:00
|
|
|
new TeamArmorAddon(plugin, this);
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2014-07-26 19:40:49 +02:00
|
|
|
public void AddCommands()
|
2013-08-27 17:14:08 +02:00
|
|
|
{
|
|
|
|
AddCommand(new GameCommand(this));
|
|
|
|
AddCommand(new WriteCommand(this));
|
2014-10-24 10:05:57 +02:00
|
|
|
AddCommand(new YoutubeCommand(this));
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public GameServerConfig GetServerConfig()
|
|
|
|
{
|
|
|
|
return _serverConfig;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ArrayList<GameType> GetGameList()
|
|
|
|
{
|
|
|
|
return GetServerConfig().GameList;
|
|
|
|
}
|
2014-08-10 02:50:31 +02:00
|
|
|
|
2014-08-08 05:46:35 +02:00
|
|
|
public AchievementManager GetAchievement()
|
|
|
|
{
|
|
|
|
return _achievementManager;
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-09-13 04:24:33 +02:00
|
|
|
public AntiStack GetAntiStack()
|
|
|
|
{
|
|
|
|
return _antistack;
|
|
|
|
}
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2013-08-31 05:15:16 +02:00
|
|
|
public Blood GetBlood()
|
|
|
|
{
|
|
|
|
return _blood;
|
|
|
|
}
|
2013-08-27 17:14:08 +02:00
|
|
|
|
|
|
|
public Chat GetChat()
|
|
|
|
{
|
|
|
|
return _chat;
|
|
|
|
}
|
|
|
|
|
|
|
|
public BlockRestore GetBlockRestore()
|
|
|
|
{
|
|
|
|
return _blockRestore;
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public CoreClientManager GetClients()
|
|
|
|
{
|
|
|
|
return _clientManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
public ConditionManager GetCondition()
|
|
|
|
{
|
|
|
|
return _conditionManager;
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public Creature GetCreature()
|
|
|
|
{
|
|
|
|
return _creature;
|
|
|
|
}
|
|
|
|
|
2014-08-09 11:55:05 +02:00
|
|
|
public CosmeticManager getCosmeticManager()
|
|
|
|
{
|
|
|
|
return _cosmeticManager;
|
|
|
|
}
|
2014-08-10 02:50:31 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public DisguiseManager GetDisguise()
|
|
|
|
{
|
|
|
|
return _disguiseManager;
|
2014-05-06 18:06:39 +02:00
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public DamageManager GetDamage()
|
|
|
|
{
|
|
|
|
return _damageManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
public DonationManager GetDonation()
|
|
|
|
{
|
|
|
|
return _donationManager;
|
|
|
|
}
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2014-05-05 07:40:44 +02:00
|
|
|
public EloManager getEloManager()
|
|
|
|
{
|
|
|
|
return _eloManager;
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2013-09-06 07:58:58 +02:00
|
|
|
public Explosion GetExplosion()
|
|
|
|
{
|
|
|
|
return _explosionManager;
|
|
|
|
}
|
2013-08-27 17:14:08 +02:00
|
|
|
|
|
|
|
public Fire GetFire()
|
|
|
|
{
|
|
|
|
return _fire;
|
|
|
|
}
|
2014-10-25 02:03:45 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public ProjectileManager GetProjectile()
|
|
|
|
{
|
|
|
|
return _projectileManager;
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-09-02 10:45:12 +02:00
|
|
|
public Portal GetPortal()
|
|
|
|
{
|
|
|
|
return _portal;
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public GameLobbyManager GetLobby()
|
|
|
|
{
|
|
|
|
return _gameLobbyManager;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-23 07:04:43 +02:00
|
|
|
public TaskManager GetTaskManager()
|
|
|
|
{
|
|
|
|
return _taskManager;
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public ArcadeShop GetShop()
|
|
|
|
{
|
|
|
|
return _arcadeShop;
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public GameCreationManager GetGameCreationManager()
|
|
|
|
{
|
2014-07-26 19:40:49 +02:00
|
|
|
return _gameCreationManager;
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public GameFactory GetGameFactory()
|
|
|
|
{
|
|
|
|
return _gameFactory;
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public GameManager GetGameManager()
|
|
|
|
{
|
|
|
|
return _gameManager;
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public GameGemManager GetGameGemManager()
|
|
|
|
{
|
|
|
|
return _gameGemManager;
|
|
|
|
}
|
2014-09-24 07:46:55 +02:00
|
|
|
|
|
|
|
public GamePlayerManager GetGamePlayerManager()
|
|
|
|
{
|
|
|
|
return _gamePlayerManager;
|
|
|
|
}
|
|
|
|
|
|
|
|
public GameTournamentManager GetGameTournamentManager()
|
|
|
|
{
|
|
|
|
return _gameTournamentManager;
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public GameWorldManager GetGameWorldManager()
|
|
|
|
{
|
|
|
|
return _gameWorldManager;
|
|
|
|
}
|
|
|
|
|
2013-12-14 06:00:56 +01:00
|
|
|
public StatsManager GetStatsManager()
|
|
|
|
{
|
|
|
|
return _statsManager;
|
|
|
|
}
|
2014-08-10 02:50:31 +02:00
|
|
|
|
2014-08-01 06:05:53 +02:00
|
|
|
public ServerStatusManager GetServerStatusManager()
|
|
|
|
{
|
|
|
|
return _serverStatusManager;
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public ChatColor GetColor(Player player)
|
|
|
|
{
|
|
|
|
if (_game == null)
|
|
|
|
return ChatColor.GRAY;
|
|
|
|
|
|
|
|
GameTeam team = _game.GetTeam(player);
|
|
|
|
if (team == null)
|
|
|
|
return ChatColor.GRAY;
|
|
|
|
|
|
|
|
return team.GetColor();
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2014-07-26 19:40:49 +02:00
|
|
|
public boolean CanHurt(String a, String b)
|
2013-08-27 17:14:08 +02:00
|
|
|
{
|
|
|
|
return CanHurt(UtilPlayer.searchExact(a), UtilPlayer.searchExact(b));
|
|
|
|
}
|
|
|
|
|
|
|
|
public boolean CanHurt(Player pA, Player pB)
|
|
|
|
{
|
|
|
|
if (pA == null || pB == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (!_game.Damage)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (!_game.DamagePvP)
|
|
|
|
return false;
|
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
// Self Damage
|
2013-08-27 17:14:08 +02:00
|
|
|
if (pA.equals(pB))
|
|
|
|
return _game.DamageSelf;
|
|
|
|
|
|
|
|
GameTeam tA = _game.GetTeam(pA);
|
|
|
|
if (tA == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
GameTeam tB = _game.GetTeam(pB);
|
|
|
|
if (tB == null)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (tA.equals(tB) && !_game.DamageTeamSelf)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
if (!tA.equals(tB) && !_game.DamageTeamOther)
|
|
|
|
return false;
|
|
|
|
|
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
@Override
|
2014-04-04 21:57:56 +02:00
|
|
|
public boolean IsSafe(Player player)
|
2013-08-27 17:14:08 +02:00
|
|
|
{
|
|
|
|
if (_game == null)
|
|
|
|
return true;
|
|
|
|
|
|
|
|
if (_game.IsPlaying(player))
|
|
|
|
return false;
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
return true;
|
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void MessageMOTD(ServerListPingEvent event)
|
2014-07-26 19:40:49 +02:00
|
|
|
{
|
|
|
|
String extrainformation = "|" + _serverConfig.ServerType + "|" + (_game == null ? "Unknown" : _game.GetName())
|
|
|
|
+ "|" + ((_game == null || _game.WorldData == null) ? "Unknown" : _game.WorldData.MapName);
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-09-12 10:06:51 +02:00
|
|
|
//Always Joinable
|
2014-09-24 07:46:55 +02:00
|
|
|
if (_game != null && _game.JoinInProgress)
|
2014-09-12 03:47:39 +02:00
|
|
|
{
|
|
|
|
event.setMotd(ChatColor.GREEN + "Recruiting" + extrainformation);
|
|
|
|
}
|
2014-09-12 10:06:51 +02:00
|
|
|
//UHC Timed
|
|
|
|
else if (_game != null && _game.GetType() == GameType.UHC)
|
|
|
|
{
|
2014-09-16 05:31:53 +02:00
|
|
|
event.setMotd(((UHC) _game).getMotdStatus() + extrainformation);
|
2014-09-12 10:06:51 +02:00
|
|
|
}
|
|
|
|
//Recruiting
|
|
|
|
else if (_game == null || _game.GetState() == GameState.Recruit)
|
2013-08-27 17:14:08 +02:00
|
|
|
{
|
|
|
|
if (_game != null && _game.GetCountdown() != -1)
|
|
|
|
{
|
2013-09-09 10:28:35 +02:00
|
|
|
event.setMotd(ChatColor.GREEN + "Starting in " + _game.GetCountdown() + " Seconds" + extrainformation);
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
2013-09-09 10:28:35 +02:00
|
|
|
event.setMotd(ChatColor.GREEN + "Recruiting" + extrainformation);
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|
|
|
|
}
|
2014-09-12 10:06:51 +02:00
|
|
|
//In Progress
|
2013-08-27 17:14:08 +02:00
|
|
|
else
|
|
|
|
{
|
2013-09-09 10:28:35 +02:00
|
|
|
event.setMotd(ChatColor.YELLOW + "In Progress" + extrainformation);
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
@EventHandler
|
|
|
|
public void MessageJoin(PlayerJoinEvent event)
|
|
|
|
{
|
2013-09-09 10:06:44 +02:00
|
|
|
if (_game == null || _game.AnnounceJoinQuit)
|
|
|
|
event.setJoinMessage(F.sys("Join", event.getPlayer().getName()));
|
|
|
|
else
|
|
|
|
event.setJoinMessage(null);
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void MessageQuit(PlayerQuitEvent event)
|
|
|
|
{
|
2013-09-09 10:06:44 +02:00
|
|
|
if (_game == null || _game.AnnounceJoinQuit)
|
|
|
|
event.setQuitMessage(F.sys("Quit", GetColor(event.getPlayer()) + event.getPlayer().getName()));
|
|
|
|
else
|
|
|
|
event.setQuitMessage(null);
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
public Game GetGame()
|
2013-08-27 17:14:08 +02:00
|
|
|
{
|
|
|
|
return _game;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void SetGame(Game game)
|
|
|
|
{
|
|
|
|
_game = game;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int GetPlayerMin()
|
|
|
|
{
|
|
|
|
return GetServerConfig().MinPlayers;
|
|
|
|
}
|
|
|
|
|
|
|
|
public int GetPlayerFull()
|
|
|
|
{
|
|
|
|
return GetServerConfig().MaxPlayers;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void HubClock(Player player)
|
|
|
|
{
|
2014-08-30 08:33:56 +02:00
|
|
|
if (!IsHotbarHubClock())
|
|
|
|
return;
|
2014-09-16 05:31:53 +02:00
|
|
|
|
|
|
|
if (_game != null && !_game.GiveClock)
|
2014-04-20 05:50:15 +02:00
|
|
|
return;
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-09-16 05:31:53 +02:00
|
|
|
if (player.getOpenInventory().getType() != InventoryType.CRAFTING &&
|
2014-08-10 02:50:31 +02:00
|
|
|
player.getOpenInventory().getType() != InventoryType.CREATIVE)
|
|
|
|
return;
|
|
|
|
|
|
|
|
if (!UtilGear.isMat(player.getInventory().getItem(8), Material.WATCH))
|
|
|
|
{
|
|
|
|
player.getInventory().setItem(
|
|
|
|
8,
|
|
|
|
ItemStackFactory.Instance.CreateStack(Material.WATCH, (byte) 0, 1, (short) 0, C.cGreen
|
2014-09-16 05:31:53 +02:00
|
|
|
+ "Return to Hub", new String[]{"", ChatColor.RESET + "Click while holding this",
|
|
|
|
ChatColor.RESET + "to return to the Hub."}));
|
2014-08-10 02:50:31 +02:00
|
|
|
|
|
|
|
UtilInv.Update(player);
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
}
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2014-07-03 01:59:31 +02:00
|
|
|
@EventHandler
|
|
|
|
public void Login(PlayerLoginEvent event)
|
|
|
|
{
|
2014-07-26 08:38:21 +02:00
|
|
|
if (Bukkit.getServer().hasWhitelist())
|
|
|
|
{
|
2014-07-26 19:40:49 +02:00
|
|
|
if (_clientManager.Get(event.getPlayer().getName()).GetRank().Has(event.getPlayer(), Rank.MODERATOR, false))
|
|
|
|
{
|
2014-07-26 08:38:21 +02:00
|
|
|
event.allow();
|
|
|
|
event.setResult(PlayerLoginEvent.Result.ALLOWED);
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-07-26 08:38:21 +02:00
|
|
|
if (_serverConfig.Tournament)
|
|
|
|
{
|
|
|
|
event.getPlayer().setOp(true);
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
for (OfflinePlayer player : Bukkit.getWhitelistedPlayers())
|
|
|
|
{
|
|
|
|
if (player.getName().equalsIgnoreCase(event.getPlayer().getName()))
|
|
|
|
{
|
|
|
|
event.allow();
|
|
|
|
event.setResult(PlayerLoginEvent.Result.ALLOWED);
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
}
|
2014-08-10 02:50:31 +02:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server Whitelisted!");
|
|
|
|
}
|
|
|
|
|
|
|
|
return;
|
2014-07-26 08:38:21 +02:00
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-07-03 01:59:31 +02:00
|
|
|
// Reserved Slot Check
|
2014-08-20 04:24:49 +02:00
|
|
|
if (Bukkit.getOnlinePlayers().size() >= Bukkit.getServer().getMaxPlayers())
|
2014-07-03 01:59:31 +02:00
|
|
|
{
|
2014-10-18 06:29:24 +02:00
|
|
|
if (_clientManager.Get(event.getPlayer().getName()).GetRank().Has(event.getPlayer(), Rank.HELPER, false))
|
2014-07-03 01:59:31 +02:00
|
|
|
{
|
2014-10-18 06:29:24 +02:00
|
|
|
event.allow();
|
|
|
|
event.setResult(PlayerLoginEvent.Result.ALLOWED);
|
|
|
|
return;
|
2014-07-03 01:59:31 +02:00
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
else if (_clientManager.Get(event.getPlayer().getName()).GetRank()
|
|
|
|
.Has(event.getPlayer(), Rank.ULTRA, false)
|
|
|
|
|| _donationManager.Get(event.getPlayer().getName()).OwnsUnknownPackage(
|
2014-09-16 05:31:53 +02:00
|
|
|
_serverConfig.ServerType + " ULTRA"))
|
2014-07-03 01:59:31 +02:00
|
|
|
{
|
2014-10-11 14:56:47 +02:00
|
|
|
|
2014-10-18 06:29:24 +02:00
|
|
|
if (GetGame() != null && (GetGame().GetType() == GameType.UHC || GetGame().GetType() == GameType.Halloween || GetGame().GetType() == GameType.ChampionsDominate || GetGame().GetType() == GameType.ChampionsTDM || GetGame().GetType() == GameType.MineStrike))
|
2014-10-11 14:56:47 +02:00
|
|
|
{
|
|
|
|
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, C.Bold + "Server has reached max capacity for gameplay purposes.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
else if (Bukkit.getServer().getOnlinePlayers().size() / Bukkit.getMaxPlayers() > 1.5)
|
|
|
|
{
|
|
|
|
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, C.Bold + "Server has reached max capacity for gameplay purposes.");
|
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
2014-07-03 01:59:31 +02:00
|
|
|
event.allow();
|
|
|
|
event.setResult(PlayerLoginEvent.Result.ALLOWED);
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-07-03 01:59:31 +02:00
|
|
|
return;
|
|
|
|
}
|
|
|
|
|
|
|
|
event.disallow(PlayerLoginEvent.Result.KICK_OTHER, "Server Full > Purchase Ultra at www.mineplex.com/shop");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
public boolean IsAlive(Player player)
|
2013-08-27 17:14:08 +02:00
|
|
|
{
|
2014-07-26 19:40:49 +02:00
|
|
|
if (_game == null)
|
2013-08-27 17:14:08 +02:00
|
|
|
return false;
|
|
|
|
|
|
|
|
return _game.IsAlive(player);
|
|
|
|
}
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
public void Clear(Player player)
|
|
|
|
{
|
|
|
|
player.setGameMode(GameMode.SURVIVAL);
|
|
|
|
player.setAllowFlight(false);
|
|
|
|
UtilInv.Clear(player);
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
((CraftEntity) player).getHandle().getDataWatcher().watch(0, Byte.valueOf((byte) 0));
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2014-03-13 06:32:48 +01:00
|
|
|
player.setSprinting(false);
|
2014-08-27 06:22:35 +02:00
|
|
|
player.setSneaking(false);
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
player.setFoodLevel(20);
|
2014-07-26 19:40:49 +02:00
|
|
|
player.setSaturation(3f);
|
2013-09-13 04:24:33 +02:00
|
|
|
player.setExhaustion(0f);
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2014-04-12 10:22:53 +02:00
|
|
|
player.setMaxHealth(20);
|
2014-07-26 19:40:49 +02:00
|
|
|
player.setHealth(player.getMaxHealth());
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
player.setFireTicks(0);
|
|
|
|
player.setFallDistance(0);
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
player.setLevel(0);
|
|
|
|
player.setExp(0f);
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
((CraftPlayer) player).getHandle().spectating = false;
|
|
|
|
((CraftPlayer) player).getHandle().k = true;
|
|
|
|
|
2014-04-09 11:03:19 +02:00
|
|
|
// Arrows go bye bye.
|
2014-07-26 19:40:49 +02:00
|
|
|
((CraftPlayer) player).getHandle().p(0);
|
2013-08-27 17:14:08 +02:00
|
|
|
|
2014-09-01 13:37:39 +02:00
|
|
|
//Remove all conditions
|
|
|
|
GetCondition().EndCondition(player, null, null);
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
HubClock(player);
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-09-02 01:38:32 +02:00
|
|
|
GetDisguise().undisguise(player);
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|
|
|
|
|
2014-04-11 12:09:21 +02:00
|
|
|
public ArrayList<String> LoadFiles(String gameName)
|
2013-08-27 17:14:08 +02:00
|
|
|
{
|
2014-06-25 21:06:24 +02:00
|
|
|
TimingManager.start("ArcadeManager LoadFiles");
|
2014-07-26 19:40:49 +02:00
|
|
|
File folder = new File(".." + File.separatorChar + ".." + File.separatorChar + "update" + File.separatorChar
|
|
|
|
+ "maps" + File.separatorChar + gameName);
|
|
|
|
if (!folder.exists())
|
|
|
|
folder.mkdirs();
|
2013-08-27 17:14:08 +02:00
|
|
|
|
|
|
|
ArrayList<String> maps = new ArrayList<String>();
|
|
|
|
|
|
|
|
System.out.println("Searching Maps in: " + folder);
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
for (File file : folder.listFiles())
|
|
|
|
{
|
|
|
|
if (!file.isFile())
|
|
|
|
continue;
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
String name = file.getName();
|
|
|
|
|
|
|
|
if (name.length() < 5)
|
|
|
|
continue;
|
2013-09-04 23:44:53 +02:00
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
name = name.substring(name.length() - 4, name.length());
|
2013-08-27 17:14:08 +02:00
|
|
|
|
|
|
|
if (file.getName().equals(".zip"))
|
|
|
|
continue;
|
|
|
|
|
2014-07-26 19:40:49 +02:00
|
|
|
maps.add(file.getName().substring(0, file.getName().length() - 4));
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|
|
|
|
|
|
|
|
for (String map : maps)
|
|
|
|
System.out.println("Found Map: " + map);
|
|
|
|
|
2014-06-25 21:06:24 +02:00
|
|
|
TimingManager.stop("ArcadeManager LoadFiles");
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2013-08-27 17:14:08 +02:00
|
|
|
return maps;
|
|
|
|
}
|
2013-10-31 07:35:24 +01:00
|
|
|
|
|
|
|
public ClassManager getClassManager()
|
|
|
|
{
|
|
|
|
return _classManager;
|
|
|
|
}
|
2013-11-22 08:40:38 +01:00
|
|
|
|
2014-03-28 03:17:31 +01:00
|
|
|
public ClassCombatShop getClassShop()
|
2013-10-31 07:35:24 +01:00
|
|
|
{
|
2014-03-28 03:17:31 +01:00
|
|
|
return _classShop;
|
2013-10-31 07:35:24 +01:00
|
|
|
}
|
|
|
|
|
2014-03-11 11:29:11 +01:00
|
|
|
public void openClassShop(Player player)
|
2013-10-31 07:35:24 +01:00
|
|
|
{
|
2014-09-16 05:31:53 +02:00
|
|
|
_classShop.attemptShopOpen(player);
|
2013-10-31 07:35:24 +01:00
|
|
|
}
|
2013-11-22 08:40:38 +01:00
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void BlockBurn(BlockBurnEvent event)
|
|
|
|
{
|
|
|
|
if (_game == null)
|
|
|
|
event.setCancelled(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void BlockSpread(BlockSpreadEvent event)
|
|
|
|
{
|
|
|
|
if (_game == null)
|
|
|
|
event.setCancelled(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void BlockFade(BlockFadeEvent event)
|
|
|
|
{
|
|
|
|
if (_game == null)
|
|
|
|
event.setCancelled(true);
|
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void BlockDecay(LeavesDecayEvent event)
|
|
|
|
{
|
|
|
|
if (_game == null)
|
|
|
|
event.setCancelled(true);
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-03-01 00:35:06 +01:00
|
|
|
@EventHandler
|
2013-11-22 08:40:38 +01:00
|
|
|
public void MobSpawn(CreatureSpawnEvent event)
|
|
|
|
{
|
|
|
|
if (_game == null)
|
|
|
|
event.setCancelled(true);
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-04-15 09:53:24 +02:00
|
|
|
@EventHandler
|
|
|
|
public void SkillTrigger(SkillTriggerEvent event)
|
|
|
|
{
|
|
|
|
if (_game == null || !_game.IsLive())
|
|
|
|
{
|
|
|
|
event.SetCancelled(true);
|
|
|
|
}
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-04-21 02:48:04 +02:00
|
|
|
@EventHandler
|
|
|
|
public void ItemTrigger(ItemTriggerEvent event)
|
|
|
|
{
|
|
|
|
if (_game == null || !_game.IsLive())
|
|
|
|
{
|
|
|
|
event.SetCancelled(true);
|
|
|
|
}
|
|
|
|
}
|
2014-05-02 06:35:41 +02:00
|
|
|
|
2014-05-03 03:23:10 +02:00
|
|
|
@EventHandler
|
|
|
|
public void Observer(PlayerCommandPreprocessEvent event)
|
|
|
|
{
|
|
|
|
if (event.getMessage().equalsIgnoreCase("/spec"))
|
|
|
|
{
|
2014-05-03 05:06:15 +02:00
|
|
|
event.setCancelled(true);
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-05-03 05:06:15 +02:00
|
|
|
if (_game != null && _game.InProgress())
|
|
|
|
{
|
|
|
|
UtilPlayer.message(event.getPlayer(), F.main("Game", "You cannot toggle Spectator during games."));
|
|
|
|
return;
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-05-03 03:23:10 +02:00
|
|
|
if (!_specList.remove(event.getPlayer()))
|
|
|
|
{
|
|
|
|
_specList.add(event.getPlayer());
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-05-03 03:23:10 +02:00
|
|
|
UtilPlayer.message(event.getPlayer(), F.main("Game", "You are now a Spectator!"));
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
UtilPlayer.message(event.getPlayer(), F.main("Game", "You are no longer a Spectator!"));
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
|
|
|
// Clean
|
2014-05-03 03:23:10 +02:00
|
|
|
if (_game != null)
|
|
|
|
{
|
2014-07-26 19:40:49 +02:00
|
|
|
// Remove Data
|
2014-05-03 03:23:10 +02:00
|
|
|
_game.RemoveTeamPreference(event.getPlayer());
|
|
|
|
_game.GetPlayerKits().remove(event.getPlayer());
|
|
|
|
_game.GetPlayerGems().remove(event.getPlayer());
|
2014-07-26 19:40:49 +02:00
|
|
|
|
|
|
|
// Leave Team
|
2014-05-03 03:23:10 +02:00
|
|
|
GameTeam team = _game.GetTeam(event.getPlayer());
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-05-03 03:23:10 +02:00
|
|
|
if (team != null)
|
|
|
|
{
|
|
|
|
team.RemovePlayer(event.getPlayer());
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-05-03 03:23:10 +02:00
|
|
|
@EventHandler
|
|
|
|
public void ObserverQuit(PlayerQuitEvent event)
|
|
|
|
{
|
|
|
|
_specList.remove(event.getPlayer());
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-05-03 03:23:10 +02:00
|
|
|
public boolean IsObserver(Player player)
|
|
|
|
{
|
|
|
|
return _specList.contains(player);
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-05-02 06:35:41 +02:00
|
|
|
public boolean IsTournamentServer()
|
|
|
|
{
|
|
|
|
return _serverConfig.Tournament;
|
|
|
|
}
|
2014-09-24 07:46:55 +02:00
|
|
|
|
|
|
|
public boolean IsTournamentPoints()
|
|
|
|
{
|
|
|
|
return _serverConfig.TournamentPoints;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsTeamRejoin()
|
|
|
|
{
|
|
|
|
return _serverConfig.TeamRejoin;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsTeamAutoJoin()
|
|
|
|
{
|
|
|
|
return _serverConfig.TeamAutoJoin;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsGameAutoStart()
|
|
|
|
{
|
|
|
|
return _serverConfig.GameAutoStart;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsGameTimeout()
|
|
|
|
{
|
|
|
|
return _serverConfig.GameTimeout;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsTeamBalance()
|
|
|
|
{
|
|
|
|
return _serverConfig.TeamForceBalance;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsRewardGems()
|
|
|
|
{
|
|
|
|
return _serverConfig.RewardGems;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsRewardItems()
|
|
|
|
{
|
|
|
|
return _serverConfig.RewardItems;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsRewardStats()
|
|
|
|
{
|
|
|
|
return _serverConfig.RewardStats;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsRewardAchievements()
|
|
|
|
{
|
|
|
|
return _serverConfig.RewardAchievements;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsHotbarInventory()
|
|
|
|
{
|
|
|
|
return _serverConfig.HotbarInventory;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsHotbarHubClock()
|
|
|
|
{
|
|
|
|
return _serverConfig.HotbarHubClock;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-30 08:33:56 +02:00
|
|
|
public boolean IsPlayerKickIdle()
|
|
|
|
{
|
|
|
|
return _serverConfig.PlayerKickIdle;
|
|
|
|
}
|
2014-09-16 05:31:53 +02:00
|
|
|
|
2014-08-26 06:42:17 +02:00
|
|
|
public int GetDesiredPlayerAmount()
|
|
|
|
{
|
|
|
|
return _serverConfig.MaxPlayers;
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-05-06 07:55:14 +02:00
|
|
|
@EventHandler
|
|
|
|
public void ObserverQuit(GameStateChangeEvent event)
|
|
|
|
{
|
|
|
|
if (_skillFactory != null)
|
|
|
|
{
|
|
|
|
_skillFactory.ResetAll();
|
|
|
|
}
|
|
|
|
}
|
2014-07-26 19:40:49 +02:00
|
|
|
|
2014-08-09 05:10:02 +02:00
|
|
|
public InventoryManager getInventoryManager()
|
|
|
|
{
|
|
|
|
return _inventoryManager;
|
|
|
|
}
|
2014-08-10 02:50:31 +02:00
|
|
|
|
2014-08-09 15:25:13 +02:00
|
|
|
@EventHandler(priority = EventPriority.LOWEST)
|
2014-08-09 11:55:05 +02:00
|
|
|
public void cosmeticState(GameStateChangeEvent event)
|
|
|
|
{
|
|
|
|
//Disable
|
|
|
|
if (event.GetState() == GameState.Recruit)
|
|
|
|
{
|
2014-08-11 07:33:45 +02:00
|
|
|
getCosmeticManager().setActive(true);
|
2014-08-09 11:55:05 +02:00
|
|
|
}
|
2014-08-09 16:21:45 +02:00
|
|
|
else if (event.GetState() == GameState.Prepare || event.GetState() == GameState.Loading || event.GetState() == GameState.Dead)
|
2014-08-09 11:55:05 +02:00
|
|
|
{
|
2014-08-11 03:55:00 +02:00
|
|
|
if (getCosmeticManager().isShowingInterface())
|
|
|
|
{
|
2014-08-11 07:33:45 +02:00
|
|
|
getCosmeticManager().setActive(false);
|
2014-09-16 05:31:53 +02:00
|
|
|
getCosmeticManager().disableItemsForGame();
|
2014-08-11 03:55:00 +02:00
|
|
|
}
|
2014-08-09 11:55:05 +02:00
|
|
|
}
|
|
|
|
}
|
2014-09-24 07:46:55 +02:00
|
|
|
|
2014-09-16 05:31:53 +02:00
|
|
|
public ArcadeRepository getArcadeRepository()
|
|
|
|
{
|
|
|
|
return _arcadeRepository;
|
|
|
|
}
|
|
|
|
|
|
|
|
public void saveBasicStats(final Game game)
|
2014-09-05 10:00:51 +02:00
|
|
|
{
|
2014-09-20 08:28:45 +02:00
|
|
|
if (!IsTournamentServer())
|
|
|
|
return;
|
|
|
|
|
2014-09-16 05:31:53 +02:00
|
|
|
final Map<UUID, Boolean> data = new HashMap<>();
|
|
|
|
|
|
|
|
for (Player loser : game.getLosers())
|
|
|
|
data.put(loser.getUniqueId(), false);
|
|
|
|
|
|
|
|
for (Player winner : game.getWinners())
|
|
|
|
data.put(winner.getUniqueId(), true);
|
|
|
|
|
|
|
|
Bukkit.getScheduler().runTaskAsynchronously(GetPlugin(), new Runnable()
|
|
|
|
{
|
|
|
|
@Override
|
|
|
|
public void run()
|
|
|
|
{
|
|
|
|
getArcadeRepository().saveBasicStats(game.GetType(), IsTournamentServer(), (int) (System.currentTimeMillis() - game.getGameLiveTime()), data);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
|
|
|
|
|
|
|
public void saveLeaderboardStats(Game game)
|
|
|
|
{
|
|
|
|
final TournamentType type = TournamentType.getTournamentType(game.GetType());
|
|
|
|
|
|
|
|
if (type != null)
|
|
|
|
{
|
|
|
|
final Map<UUID, Boolean> data = new HashMap<>();
|
|
|
|
|
|
|
|
for (Player loser : game.getLosers())
|
|
|
|
data.put(loser.getUniqueId(), false);
|
|
|
|
|
|
|
|
for (Player winner : game.getWinners())
|
|
|
|
data.put(winner.getUniqueId(), true);
|
|
|
|
|
|
|
|
Bukkit.getScheduler().runTaskAsynchronously(GetPlugin(), new Runnable()
|
|
|
|
{
|
|
|
|
@Override
|
|
|
|
public void run()
|
|
|
|
{
|
|
|
|
getArcadeRepository().saveLeaderboardStats(0, type.ordinal(), data);
|
|
|
|
}
|
|
|
|
});
|
|
|
|
}
|
2014-09-05 10:00:51 +02:00
|
|
|
}
|
2014-10-24 10:05:57 +02:00
|
|
|
|
|
|
|
public boolean isYoutuber(Player player)
|
|
|
|
{
|
|
|
|
return _youtube.contains(player);
|
|
|
|
}
|
|
|
|
|
|
|
|
public void setYoutuber(Player caller)
|
|
|
|
{
|
|
|
|
if (_youtube.remove(caller))
|
|
|
|
{
|
|
|
|
UtilPlayer.message(caller, C.cRed + C.Bold + "YouTube Mode Disabled: " + ChatColor.RESET + "Kits Locked");
|
|
|
|
}
|
|
|
|
else
|
|
|
|
{
|
|
|
|
_youtube.add(caller);
|
|
|
|
UtilPlayer.message(caller, C.cGreen + C.Bold + "YouTube Mode Enabled: " + ChatColor.RESET + "All Kits Unlocked");
|
|
|
|
}
|
|
|
|
}
|
|
|
|
|
|
|
|
@EventHandler
|
|
|
|
public void quitYoutuber(PlayerQuitEvent event)
|
|
|
|
{
|
|
|
|
_youtube.remove(event.getPlayer());
|
|
|
|
}
|
2013-08-27 17:14:08 +02:00
|
|
|
}
|