2014-11-12 14:13:16 +01:00
|
|
|
package mineplex.game.clans;
|
|
|
|
|
2015-11-26 01:08:13 +01:00
|
|
|
import mineplex.core.CustomTagFix;
|
2015-10-02 04:57:39 +02:00
|
|
|
import mineplex.core.FoodDupeFix;
|
2014-11-12 14:13:16 +01:00
|
|
|
import mineplex.core.account.CoreClientManager;
|
2015-08-29 05:58:58 +02:00
|
|
|
import mineplex.core.achievement.AchievementManager;
|
2014-11-12 14:13:16 +01:00
|
|
|
import mineplex.core.antihack.AntiHack;
|
|
|
|
import mineplex.core.blockrestore.BlockRestore;
|
2015-05-02 01:02:06 +02:00
|
|
|
import mineplex.core.chat.Chat;
|
2014-11-12 14:13:16 +01:00
|
|
|
import mineplex.core.command.CommandCenter;
|
2016-04-04 20:46:00 +02:00
|
|
|
import mineplex.core.common.MinecraftVersion;
|
|
|
|
import mineplex.core.common.Pair;
|
2016-01-07 20:36:52 +01:00
|
|
|
import mineplex.core.common.events.ServerShutdownEvent;
|
2015-12-18 12:13:38 +01:00
|
|
|
import mineplex.core.delayedtask.DelayedTask;
|
2014-11-12 14:13:16 +01:00
|
|
|
import mineplex.core.donation.DonationManager;
|
2016-04-28 05:12:38 +02:00
|
|
|
import mineplex.core.elo.EloManager;
|
2014-12-08 09:55:20 +01:00
|
|
|
import mineplex.core.explosion.Explosion;
|
2016-03-24 20:11:05 +01:00
|
|
|
import mineplex.core.fallingblock.FallingBlocks;
|
2014-11-12 14:13:16 +01:00
|
|
|
import mineplex.core.friend.FriendManager;
|
2015-07-14 08:57:53 +02:00
|
|
|
import mineplex.core.give.Give;
|
2015-10-02 04:57:39 +02:00
|
|
|
import mineplex.core.hologram.HologramManager;
|
2015-02-11 03:15:44 +01:00
|
|
|
import mineplex.core.ignore.IgnoreManager;
|
2016-03-09 02:53:01 +01:00
|
|
|
import mineplex.core.incognito.IncognitoManager;
|
2014-11-12 14:13:16 +01:00
|
|
|
import mineplex.core.inventory.InventoryManager;
|
|
|
|
import mineplex.core.itemstack.ItemStackFactory;
|
|
|
|
import mineplex.core.memory.MemoryFix;
|
|
|
|
import mineplex.core.message.MessageManager;
|
|
|
|
import mineplex.core.monitor.LagMeter;
|
2015-05-25 20:22:06 +02:00
|
|
|
import mineplex.core.packethandler.PacketHandler;
|
2014-11-12 14:13:16 +01:00
|
|
|
import mineplex.core.portal.Portal;
|
|
|
|
import mineplex.core.preferences.PreferencesManager;
|
|
|
|
import mineplex.core.punish.Punish;
|
|
|
|
import mineplex.core.recharge.Recharge;
|
2015-12-23 19:40:49 +01:00
|
|
|
import mineplex.core.resourcepack.ResourcePackManager;
|
2014-11-12 14:13:16 +01:00
|
|
|
import mineplex.core.serverConfig.ServerConfiguration;
|
|
|
|
import mineplex.core.spawn.Spawn;
|
2015-08-29 05:58:58 +02:00
|
|
|
import mineplex.core.stats.StatsManager;
|
2014-11-12 14:13:16 +01:00
|
|
|
import mineplex.core.status.ServerStatusManager;
|
|
|
|
import mineplex.core.teleport.Teleport;
|
|
|
|
import mineplex.core.updater.FileUpdater;
|
|
|
|
import mineplex.core.updater.Updater;
|
2015-06-24 00:05:47 +02:00
|
|
|
import mineplex.core.visibility.VisibilityManager;
|
2014-11-28 07:34:20 +01:00
|
|
|
import mineplex.game.clans.clans.ClansManager;
|
2016-04-29 04:53:20 +02:00
|
|
|
import mineplex.game.clans.clans.ban.ClansBanManager;
|
2015-10-26 13:21:33 +01:00
|
|
|
import mineplex.game.clans.items.GearManager;
|
2014-12-29 12:44:00 +01:00
|
|
|
import mineplex.game.clans.shop.building.BuildingShop;
|
2015-08-25 05:03:26 +02:00
|
|
|
import mineplex.game.clans.shop.farming.FarmingShop;
|
|
|
|
import mineplex.game.clans.shop.mining.MiningShop;
|
2014-12-29 12:44:00 +01:00
|
|
|
import mineplex.game.clans.shop.pvp.PvpShop;
|
2015-08-25 05:03:26 +02:00
|
|
|
import mineplex.game.clans.spawn.travel.TravelShop;
|
2015-11-27 14:23:18 +01:00
|
|
|
import mineplex.game.clans.world.WorldManager;
|
2015-11-13 01:18:42 +01:00
|
|
|
import net.minecraft.server.v1_8_R3.MinecraftServer;
|
2014-11-12 14:13:16 +01:00
|
|
|
|
2016-04-28 05:12:38 +02:00
|
|
|
import org.bukkit.Material;
|
|
|
|
import org.bukkit.World;
|
|
|
|
import org.bukkit.craftbukkit.v1_8_R3.CraftWorld;
|
|
|
|
import org.bukkit.plugin.java.JavaPlugin;
|
|
|
|
|
2014-11-12 14:13:16 +01:00
|
|
|
public class Clans extends JavaPlugin
|
2015-11-23 21:57:13 +01:00
|
|
|
{
|
2016-03-18 02:18:35 +01:00
|
|
|
public static final String VERSION = "Beta 1.0";
|
2014-11-12 14:13:16 +01:00
|
|
|
private String WEB_CONFIG = "webServer";
|
2015-11-25 22:45:04 +01:00
|
|
|
|
2015-11-25 17:46:53 +01:00
|
|
|
// Modules
|
2014-11-12 14:13:16 +01:00
|
|
|
private CoreClientManager _clientManager;
|
2015-06-23 03:34:13 +02:00
|
|
|
private DonationManager _donationManager;
|
|
|
|
private ClansManager _clansManager;
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2015-11-25 17:46:53 +01:00
|
|
|
@Override
|
|
|
|
public void onEnable()
|
2014-11-12 14:13:16 +01:00
|
|
|
{
|
2015-11-25 17:46:53 +01:00
|
|
|
// Configs
|
2014-11-12 14:13:16 +01:00
|
|
|
getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/");
|
|
|
|
getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG));
|
|
|
|
saveConfig();
|
|
|
|
|
|
|
|
String webServerAddress = getConfig().getString(WEB_CONFIG);
|
|
|
|
|
2015-11-25 17:46:53 +01:00
|
|
|
// Logger.initialize(this);
|
2014-11-12 14:13:16 +01:00
|
|
|
|
2015-11-25 17:46:53 +01:00
|
|
|
// Static Modules
|
|
|
|
CommandCenter.Initialize(this);
|
2014-11-12 14:13:16 +01:00
|
|
|
_clientManager = new CoreClientManager(this, webServerAddress);
|
|
|
|
CommandCenter.Instance.setClientManager(_clientManager);
|
|
|
|
|
2015-11-25 17:46:53 +01:00
|
|
|
ItemStackFactory.Initialize(this, false);
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2015-12-18 12:13:38 +01:00
|
|
|
DelayedTask.Initialize(this);
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2015-06-24 00:05:47 +02:00
|
|
|
Recharge.Initialize(this);
|
|
|
|
VisibilityManager.Initialize(this);
|
2015-11-25 17:46:53 +01:00
|
|
|
// new ProfileCacheManager(this);
|
2014-11-12 14:13:16 +01:00
|
|
|
|
2014-12-29 12:44:00 +01:00
|
|
|
_donationManager = new DonationManager(this, _clientManager, webServerAddress);
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2016-03-24 20:11:05 +01:00
|
|
|
new FallingBlocks(this);
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2015-03-02 21:33:04 +01:00
|
|
|
new ServerConfiguration(this, _clientManager);
|
2014-11-12 14:13:16 +01:00
|
|
|
|
2016-04-08 21:18:56 +02:00
|
|
|
PacketHandler packetHandler = new PacketHandler(this);
|
|
|
|
IncognitoManager incognito = new IncognitoManager(this, _clientManager, packetHandler);
|
|
|
|
PreferencesManager preferenceManager = new PreferencesManager(this, incognito, _clientManager, _donationManager);
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2016-04-08 21:18:56 +02:00
|
|
|
incognito.setPreferencesManager(preferenceManager);
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2014-12-14 08:30:39 +01:00
|
|
|
ServerStatusManager serverStatusManager = new ServerStatusManager(this, _clientManager, new LagMeter(this, _clientManager));
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2015-06-01 21:51:22 +02:00
|
|
|
// TODO: Add spawn locations to a configuration file of some sort?
|
2014-11-29 12:16:37 +01:00
|
|
|
new Spawn(this, serverStatusManager.getCurrentServerName());
|
2015-07-14 08:57:53 +02:00
|
|
|
Give.Initialize(this);
|
2015-11-25 22:45:04 +01:00
|
|
|
|
2015-11-27 11:53:57 +01:00
|
|
|
Teleport teleport = new Teleport(this, _clientManager);
|
2015-01-11 09:42:31 +01:00
|
|
|
Portal portal = new Portal(this, _clientManager, serverStatusManager.getCurrentServerName());
|
2015-01-23 08:18:38 +01:00
|
|
|
new FileUpdater(this, portal, serverStatusManager.getCurrentServerName(), serverStatusManager.getRegion());
|
2015-12-23 19:22:20 +01:00
|
|
|
|
2016-04-29 04:53:20 +02:00
|
|
|
ClansBanManager clansBans = new ClansBanManager(this, _clientManager, _donationManager);
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2014-11-12 14:13:16 +01:00
|
|
|
Punish punish = new Punish(this, webServerAddress, _clientManager);
|
|
|
|
AntiHack.Initialize(this, punish, portal, preferenceManager, _clientManager);
|
|
|
|
AntiHack.Instance.setKick(false);
|
2015-02-11 03:15:44 +01:00
|
|
|
|
2014-11-12 14:13:16 +01:00
|
|
|
BlockRestore blockRestore = new BlockRestore(this);
|
2015-11-25 22:45:04 +01:00
|
|
|
|
2015-02-11 03:15:44 +01:00
|
|
|
IgnoreManager ignoreManager = new IgnoreManager(this, _clientManager, preferenceManager, portal);
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2015-11-22 15:23:17 +01:00
|
|
|
StatsManager statsManager = new StatsManager(this, _clientManager);
|
2016-04-28 05:12:38 +02:00
|
|
|
EloManager eloManager = new EloManager(this, _clientManager);
|
|
|
|
AchievementManager achievementManager = new AchievementManager(statsManager, _clientManager, _donationManager, eloManager);
|
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, new FriendManager(this, _clientManager, preferenceManager, portal), chat);
|
2015-02-11 03:15:44 +01:00
|
|
|
|
2014-11-12 14:13:16 +01:00
|
|
|
new MemoryFix(this);
|
2015-10-02 04:57:39 +02:00
|
|
|
new FoodDupeFix(this);
|
2014-12-08 09:55:20 +01:00
|
|
|
new Explosion(this, blockRestore);
|
2014-12-03 22:06:50 +01:00
|
|
|
new InventoryManager(this, _clientManager);
|
2015-12-23 19:47:05 +01:00
|
|
|
ResourcePackManager resourcePackManager = new ResourcePackManager(this, portal);
|
2016-04-30 20:53:59 +02:00
|
|
|
resourcePackManager.setResourcePack(new Pair[]
|
2016-04-04 20:46:00 +02:00
|
|
|
{
|
2016-04-29 06:46:14 +02:00
|
|
|
Pair.create(MinecraftVersion.Version1_8, "file.mineplex.com/ResClans.zip"),
|
|
|
|
Pair.create(MinecraftVersion.Version1_9, "file.mineplex.com/ResClans19.zip")
|
2016-04-04 20:46:00 +02:00
|
|
|
}, true);
|
2015-12-23 19:40:49 +01:00
|
|
|
|
2015-06-30 05:32:40 +02:00
|
|
|
// Enable custom-gear related managers
|
2015-11-26 01:08:13 +01:00
|
|
|
new CustomTagFix(this, packetHandler);
|
2015-10-24 08:16:13 +02:00
|
|
|
GearManager customGear = new GearManager(this, packetHandler, _clientManager, _donationManager);
|
2015-11-25 22:45:04 +01:00
|
|
|
|
2015-11-27 09:22:17 +01:00
|
|
|
HologramManager hologram = new HologramManager(this, packetHandler);
|
2016-04-29 04:53:20 +02:00
|
|
|
_clansManager = new ClansManager(this, clansBans, serverStatusManager.getCurrentServerName(), incognito, packetHandler, punish, _clientManager, _donationManager, preferenceManager, blockRestore, statsManager, teleport, chat, customGear, hologram, webServerAddress);
|
2014-12-04 14:05:27 +01:00
|
|
|
new Recipes(this);
|
|
|
|
new Farming(this);
|
2015-06-23 03:34:13 +02:00
|
|
|
new BuildingShop(_clansManager, _clientManager, _donationManager);
|
|
|
|
new PvpShop(_clansManager, _clientManager, _donationManager);
|
2015-08-25 05:03:26 +02:00
|
|
|
new FarmingShop(_clansManager, _clientManager, _donationManager);
|
|
|
|
new TravelShop(_clansManager, _clientManager, _donationManager);
|
|
|
|
new MiningShop(_clansManager, _clientManager, _donationManager);
|
2015-11-27 14:23:18 +01:00
|
|
|
new WorldManager(this);
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2015-06-15 00:30:02 +02:00
|
|
|
// Disable spigot item merging
|
|
|
|
for (World world : getServer().getWorlds())
|
|
|
|
{
|
|
|
|
// Disable item merging
|
|
|
|
((CraftWorld) world).getHandle().spigotConfig.itemMerge = 0;
|
|
|
|
}
|
2014-11-28 07:34:20 +01:00
|
|
|
|
2014-11-12 14:13:16 +01:00
|
|
|
//Updates
|
2015-11-25 22:45:04 +01:00
|
|
|
new Updater(this);
|
2014-11-12 14:13:16 +01:00
|
|
|
|
|
|
|
MinecraftServer.getServer().getPropertyManager().setProperty("debug", true);
|
|
|
|
}
|
2015-11-25 22:45:04 +01:00
|
|
|
|
2015-06-22 22:20:20 +02:00
|
|
|
public static String prettifyName(Material material)
|
|
|
|
{
|
|
|
|
String name = "";
|
|
|
|
String[] words = material.toString().split("_");
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2015-06-22 22:20:20 +02:00
|
|
|
for (String word : words)
|
|
|
|
{
|
|
|
|
word = word.toLowerCase();
|
|
|
|
name += word.substring(0, 1).toUpperCase() + word.substring(1) + " ";
|
|
|
|
}
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2015-06-22 22:20:20 +02:00
|
|
|
return name;
|
|
|
|
}
|
2015-11-25 22:45:04 +01:00
|
|
|
|
2015-06-23 03:34:13 +02:00
|
|
|
@Override
|
|
|
|
public void onDisable()
|
|
|
|
{
|
2015-11-25 17:46:53 +01:00
|
|
|
// Need to notify WorldEventManager of server shutdown, this seemed like
|
|
|
|
// the only decent way to do it
|
2015-06-23 03:34:13 +02:00
|
|
|
_clansManager.onDisable();
|
2016-04-30 20:53:59 +02:00
|
|
|
|
2016-01-07 20:36:52 +01:00
|
|
|
getServer().getPluginManager().callEvent(new ServerShutdownEvent(this));
|
2014-11-12 14:13:16 +01:00
|
|
|
}
|
2016-02-04 17:10:08 +01:00
|
|
|
|
|
|
|
public static String version()
|
|
|
|
{
|
2016-02-05 00:29:48 +01:00
|
|
|
return VERSION;
|
2016-02-04 17:10:08 +01:00
|
|
|
}
|
2014-11-12 14:13:16 +01:00
|
|
|
}
|