Mineplex2018-withcommit/Plugins/Nautilus.Game.Arcade/src/nautilus/game/arcade/Arcade.java

289 lines
11 KiB
Java
Raw Normal View History

2013-08-27 17:14:08 +02:00
package nautilus.game.arcade;
2013-08-27 17:14:08 +02:00
import java.io.File;
import org.bukkit.Bukkit;
2014-09-19 04:03:46 +02:00
import org.bukkit.entity.Player;
import org.bukkit.plugin.java.JavaPlugin;
2015-09-29 02:42:14 +02:00
import mineplex.core.CustomTagFix;
2015-09-29 02:42:14 +02:00
import mineplex.core.FoodDupeFix;
import mineplex.core.PacketsInteractionFix;
2013-08-27 17:14:08 +02:00
import mineplex.core.account.CoreClientManager;
import mineplex.core.achievement.AchievementManager;
2013-10-16 03:23:23 +02:00
import mineplex.core.antihack.AntiHack;
import mineplex.core.blockrestore.BlockRestore;
import mineplex.core.blood.Blood;
import mineplex.core.chat.Chat;
2013-08-27 17:14:08 +02:00
import mineplex.core.command.CommandCenter;
import mineplex.core.common.events.ServerShutdownEvent;
2014-09-19 04:03:46 +02:00
import mineplex.core.common.util.FileUtil;
import mineplex.core.common.util.UtilServer;
import mineplex.core.cosmetic.CosmeticManager;
2013-08-27 17:14:08 +02:00
import mineplex.core.creature.Creature;
2016-04-30 20:53:59 +02:00
import mineplex.core.customdata.CustomDataManager;
2013-08-31 05:15:16 +02:00
import mineplex.core.disguise.DisguiseManager;
2013-08-27 17:14:08 +02:00
import mineplex.core.donation.DonationManager;
import mineplex.core.elo.EloManager;
2014-10-03 10:50:23 +02:00
import mineplex.core.friend.FriendManager;
import mineplex.core.gadget.GadgetManager;
2015-03-16 03:39:33 +01:00
import mineplex.core.give.Give;
import mineplex.core.globalpacket.GlobalPacketManager;
import mineplex.core.hologram.HologramManager;
import mineplex.core.ignore.IgnoreManager;
import mineplex.core.incognito.IncognitoManager;
import mineplex.core.inventory.InventoryManager;
2013-08-27 17:14:08 +02:00
import mineplex.core.itemstack.ItemStackFactory;
import mineplex.core.leaderboard.LeaderboardManager;
import mineplex.core.memory.MemoryFix;
2013-08-27 17:14:08 +02:00
import mineplex.core.message.MessageManager;
2013-09-04 08:31:29 +02:00
import mineplex.core.monitor.LagMeter;
import mineplex.core.mount.MountManager;
2013-08-27 17:14:08 +02:00
import mineplex.core.npc.NpcManager;
import mineplex.core.packethandler.PacketHandler;
import mineplex.core.pet.PetManager;
2015-08-12 08:37:54 +02:00
import mineplex.core.poll.PollManager;
import mineplex.core.portal.Portal;
2014-06-10 04:51:47 +02:00
import mineplex.core.preferences.PreferencesManager;
import mineplex.core.profileCache.ProfileCacheManager;
2014-08-22 20:30:41 +02:00
import mineplex.core.projectile.ProjectileManager;
2013-08-27 17:14:08 +02:00
import mineplex.core.punish.Punish;
import mineplex.core.recharge.Recharge;
import mineplex.core.serverConfig.ServerConfiguration;
import mineplex.core.stats.StatsManager;
import mineplex.core.status.ServerStatusManager;
2013-08-27 17:14:08 +02:00
import mineplex.core.teleport.Teleport;
import mineplex.core.updater.FileUpdater;
2013-08-27 17:14:08 +02:00
import mineplex.core.updater.Updater;
2015-08-02 11:24:34 +02:00
import mineplex.core.velocity.VelocityFix;
2015-03-13 01:34:45 +01:00
import mineplex.core.visibility.VisibilityManager;
2013-08-27 17:14:08 +02:00
import mineplex.minecraft.game.core.combat.CombatManager;
import mineplex.minecraft.game.core.damage.DamageManager;
2015-12-19 03:33:40 +01:00
import nautilus.game.arcade.broadcast.BroadcastManager;
2013-08-27 17:14:08 +02:00
import nautilus.game.arcade.game.GameServerConfig;
2016-04-30 20:53:59 +02:00
import net.minecraft.server.v1_8_R3.BiomeBase;
import net.minecraft.server.v1_8_R3.MinecraftServer;
public class Arcade extends JavaPlugin
2014-05-02 06:35:41 +02:00
{
2014-04-28 06:59:18 +02:00
private String WEB_CONFIG = "webServer";
2014-04-03 06:48:58 +02:00
//Modules
private CoreClientManager _clientManager;
2014-04-04 04:26:00 +02:00
private DonationManager _donationManager;
2013-08-27 17:14:08 +02:00
private DamageManager _damageManager;
2013-08-27 17:14:08 +02:00
private ArcadeManager _gameManager;
private ServerConfiguration _serverConfiguration;
2014-04-02 12:22:21 +02:00
@Override
public void onEnable()
{
Bukkit.setSpawnRadius(0);
2014-08-16 06:17:15 +02:00
//Delete Old Games Folders
DeleteFolders();
2014-11-22 03:20:34 +01:00
2014-08-16 06:17:15 +02:00
//Configs
getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/");
2013-08-27 17:14:08 +02:00
getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG));
saveConfig();
String webServerAddress = getConfig().getString(WEB_CONFIG);
2015-01-23 08:18:38 +01:00
//Logger.initialize(this);
2014-08-16 06:17:15 +02:00
//Static Modules
CommandCenter.Initialize(this);
_clientManager = new CoreClientManager(this, webServerAddress);
CommandCenter.Instance.setClientManager(_clientManager);
2015-08-02 11:24:34 +02:00
2014-04-04 04:26:00 +02:00
ItemStackFactory.Initialize(this, false);
2014-05-03 05:06:15 +02:00
Recharge.Initialize(this);
2015-03-13 01:34:45 +01:00
VisibilityManager.Initialize(this);
2015-03-16 03:39:33 +01:00
Give.Initialize(this);
2015-08-02 11:24:34 +02:00
//Velocity Fix
new VelocityFix(this);
_donationManager = new DonationManager(this, _clientManager, webServerAddress);
_serverConfiguration = new ServerConfiguration(this, _clientManager);
PacketHandler packetHandler = new PacketHandler(this);
2016-04-30 20:53:59 +02:00
IncognitoManager incognito = new IncognitoManager(this, _clientManager, packetHandler);
PreferencesManager preferenceManager = new PreferencesManager(this, incognito, _clientManager, _donationManager);
incognito.setPreferencesManager(preferenceManager);
2016-04-30 20:53:59 +02:00
Creature creature = new Creature(this);
ServerStatusManager serverStatusManager = new ServerStatusManager(this, _clientManager, new LagMeter(this, _clientManager));
LeaderboardManager leaderboardManager = new LeaderboardManager(this, _clientManager);
2015-11-27 11:53:57 +01:00
Teleport teleport = new Teleport(this, _clientManager);
Portal portal = new Portal(this, _clientManager, serverStatusManager.getCurrentServerName());
2015-01-23 08:18:38 +01:00
new FileUpdater(this, portal, serverStatusManager.getCurrentServerName(), serverStatusManager.getRegion());
DisguiseManager disguiseManager = new DisguiseManager(this, packetHandler);
2015-08-12 08:37:54 +02:00
NpcManager npcmanager = new NpcManager(this, creature);
_damageManager = new DamageManager(this, new CombatManager(this), npcmanager, disguiseManager, null);
Punish punish = new Punish(this, webServerAddress, _clientManager);
AntiHack.Initialize(this, punish, portal, preferenceManager, _clientManager);
2014-10-12 05:19:35 +02:00
AntiHack.Instance.setKick(false);
2016-04-30 20:53:59 +02:00
IgnoreManager ignoreManager = new IgnoreManager(this, _clientManager, preferenceManager, portal);
StatsManager statsManager = new StatsManager(this, _clientManager);
EloManager eloManager = new EloManager(this, _clientManager);
AchievementManager achievementManager = new AchievementManager(statsManager, _clientManager, _donationManager, eloManager);
FriendManager friendManager = new FriendManager(this, _clientManager, preferenceManager, portal);
2016-04-05 01:38:27 +02:00
Chat chat = new Chat(this, incognito, _clientManager, preferenceManager, achievementManager, serverStatusManager.getCurrentServerName());
new MessageManager(this, incognito, _clientManager, preferenceManager, ignoreManager, punish, friendManager, chat);
2016-04-30 20:53:59 +02:00
BlockRestore blockRestore = new BlockRestore(this);
2014-08-22 20:30:41 +02:00
ProjectileManager projectileManager = new ProjectileManager(this);
HologramManager hologramManager = new HologramManager(this, packetHandler);
2014-08-22 20:30:41 +02:00
//Inventory
InventoryManager inventoryManager = new InventoryManager(this, _clientManager);
PetManager petManager = new PetManager(this, _clientManager, _donationManager, inventoryManager, disguiseManager, creature, blockRestore, webServerAddress);
2014-08-22 20:30:41 +02:00
MountManager mountManager = new MountManager(this, _clientManager, _donationManager, blockRestore, disguiseManager);
GadgetManager gadgetManager = new GadgetManager(this, _clientManager, _donationManager, inventoryManager, mountManager, petManager, preferenceManager, disguiseManager, blockRestore, projectileManager, achievementManager, packetHandler);
CosmeticManager cosmeticManager = new CosmeticManager(this, _clientManager, _donationManager, inventoryManager, gadgetManager, mountManager, petManager, null);
2014-08-10 02:50:31 +02:00
cosmeticManager.setInterfaceSlot(7);
cosmeticManager.disableTeamArmor();
2015-10-23 21:07:53 +02:00
2015-12-16 23:01:51 +01:00
CustomDataManager customDataManager = new CustomDataManager(this, _clientManager);
new GlobalPacketManager(this, _clientManager, serverStatusManager, inventoryManager, _donationManager, petManager, statsManager);
//Arcade Manager
2015-08-12 08:37:54 +02:00
PollManager pollManager = new PollManager(this, _clientManager, _donationManager);
_gameManager = new ArcadeManager(this, serverStatusManager, ReadServerConfig(), _clientManager, _donationManager, _damageManager, statsManager, incognito, achievementManager, disguiseManager, creature, teleport, new Blood(this), chat, portal, preferenceManager, inventoryManager, packetHandler, cosmeticManager, projectileManager, petManager, hologramManager, webServerAddress, pollManager, npcmanager, customDataManager, punish, eloManager);
2016-04-30 20:53:59 +02:00
//new BroadcastManager(this, _gameManager);
2013-10-14 06:51:38 +02:00
new MemoryFix(this);
2014-10-19 04:15:53 +02:00
new CustomTagFix(this, packetHandler);
new PacketsInteractionFix(this, packetHandler);
2015-09-29 02:42:14 +02:00
new FoodDupeFix(this);
2014-10-03 10:50:23 +02:00
new ProfileCacheManager(this);
2013-08-27 17:14:08 +02:00
//Updates
getServer().getScheduler().scheduleSyncRepeatingTask(this, new Updater(this), 1, 1);
2014-08-23 08:49:48 +02:00
MinecraftServer.getServer().getPropertyManager().setProperty("debug", true);
// Remove nasty biomes from natural terrain generation, used for UHC
BiomeBase.getBiomes()[BiomeBase.OCEAN.id] = BiomeBase.PLAINS;
BiomeBase.getBiomes()[BiomeBase.DEEP_OCEAN.id] = BiomeBase.PLAINS;
BiomeBase.getBiomes()[BiomeBase.SWAMPLAND.id] = BiomeBase.PLAINS;
BiomeBase.getBiomes()[BiomeBase.RIVER.id] = BiomeBase.PLAINS;
2013-08-27 17:14:08 +02:00
}
@Override
2013-10-30 23:45:11 +01:00
public void onDisable()
2013-08-27 17:14:08 +02:00
{
for (Player player : UtilServer.getPlayers())
player.kickPlayer("Server Shutdown");
if (_gameManager.GetGame() != null)
if (_gameManager.GetGame().WorldData != null)
_gameManager.GetGame().WorldData.Uninitialize();
2016-04-30 20:53:59 +02:00
getServer().getPluginManager().callEvent(new ServerShutdownEvent(this));
2013-08-27 17:14:08 +02:00
}
2014-05-03 05:06:15 +02:00
public GameServerConfig ReadServerConfig()
2013-08-27 17:14:08 +02:00
{
GameServerConfig config = new GameServerConfig();
try
2013-08-27 17:14:08 +02:00
{
config.HostName = _serverConfiguration.getServerGroup().getHost();
config.ServerType = _serverConfiguration.getServerGroup().getServerType();
config.MinPlayers = _serverConfiguration.getServerGroup().getMinPlayers();
config.MaxPlayers = _serverConfiguration.getServerGroup().getMaxPlayers();
config.Tournament = _serverConfiguration.getServerGroup().getTournament();
config.TournamentPoints = _serverConfiguration.getServerGroup().getTournamentPoints();
config.TeamRejoin = _serverConfiguration.getServerGroup().getTeamRejoin();
config.TeamAutoJoin = _serverConfiguration.getServerGroup().getTeamAutoJoin();
config.TeamForceBalance = _serverConfiguration.getServerGroup().getTeamForceBalance();
config.GameAutoStart = _serverConfiguration.getServerGroup().getGameAutoStart();
config.GameTimeout = _serverConfiguration.getServerGroup().getGameTimeout();
config.RewardGems = _serverConfiguration.getServerGroup().getRewardGems();
config.RewardItems = _serverConfiguration.getServerGroup().getRewardItems();
config.RewardStats = _serverConfiguration.getServerGroup().getRewardStats();
config.RewardAchievements = _serverConfiguration.getServerGroup().getRewardAchievements();
config.HotbarInventory = _serverConfiguration.getServerGroup().getHotbarInventory();
config.HotbarHubClock = _serverConfiguration.getServerGroup().getHotbarHubClock();
config.PlayerKickIdle = _serverConfiguration.getServerGroup().getPlayerKickIdle();
for (String gameName : _serverConfiguration.getServerGroup().getGames().split(","))
{
try
2016-03-03 01:48:22 +01:00
{System.out.println(gameName);
GameType type = GameType.valueOf(gameName);
config.GameList.add(type);
}
catch (Exception e)
{
}
}
2013-08-27 17:14:08 +02:00
}
catch (Exception ex)
{
System.out.println("Error reading ServerConfiguration values : " + ex.getMessage());
}
2013-08-27 17:14:08 +02:00
if (!config.IsValid())
config = GetDefaultConfig();
2013-08-27 17:14:08 +02:00
return config;
}
public GameServerConfig GetDefaultConfig()
{
GameServerConfig config = new GameServerConfig();
config.ServerType = "Minigames";
config.MinPlayers = 8;
config.MaxPlayers = 16;
2014-05-02 06:35:41 +02:00
config.Tournament = false;
2013-08-27 17:14:08 +02:00
return config;
}
2016-04-30 20:53:59 +02:00
public ArcadeManager getArcadeManager()
{
return _gameManager;
}
2013-08-27 17:14:08 +02:00
private void DeleteFolders()
{
File curDir = new File(".");
File[] filesList = curDir.listFiles();
for(File file : filesList)
{
if (!file.isDirectory())
continue;
if (file.getName().length() < 4)
continue;
if (!file.getName().substring(0, 4).equalsIgnoreCase("Game"))
continue;
FileUtil.DeleteFolder(file);
System.out.println("Deleted Old Game: " + file.getName());
}
}
}