Mineplex2018-withcommit/Plugins/Mineplex.Game.Clans/src/mineplex/game/clans/Clans.java

295 lines
10 KiB
Java
Raw Normal View History

package mineplex.game.clans;
import mineplex.core.Managers;
import mineplex.core.antihack.AntiHackGuardian;
import mineplex.core.creature.Creature;
import mineplex.core.disguise.DisguiseManager;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.Material;
import org.bukkit.World;
import org.bukkit.craftbukkit.v1_8_R3.CraftWorld;
import org.bukkit.plugin.java.JavaPlugin;
2015-11-26 01:08:13 +01:00
import mineplex.core.CustomTagFix;
2015-10-02 04:57:39 +02:00
import mineplex.core.FoodDupeFix;
import mineplex.core.account.CoreClientManager;
import mineplex.core.achievement.AchievementManager;
import mineplex.core.antihack.AntiHack;
import mineplex.core.blockrestore.BlockRestore;
import mineplex.core.chat.Chat;
import mineplex.core.chatsnap.SnapshotManager;
import mineplex.core.chatsnap.SnapshotPlugin;
2016-06-23 01:38:24 +02:00
import mineplex.core.chatsnap.SnapshotRepository;
import mineplex.core.command.CommandCenter;
import mineplex.core.common.MinecraftVersion;
import mineplex.core.common.Pair;
import mineplex.core.common.events.ServerShutdownEvent;
import mineplex.core.delayedtask.DelayedTask;
import mineplex.core.donation.DonationManager;
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;
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;
import mineplex.core.incognito.IncognitoManager;
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;
import mineplex.core.packethandler.PacketHandler;
import mineplex.core.portal.Portal;
import mineplex.core.preferences.PreferencesManager;
import mineplex.core.punish.Punish;
import mineplex.core.recharge.Recharge;
import mineplex.core.resourcepack.ResourcePackManager;
import mineplex.core.serverConfig.ServerConfiguration;
import mineplex.core.spawn.Spawn;
import mineplex.core.stats.StatsManager;
import mineplex.core.status.ServerStatusManager;
import mineplex.core.teleport.Teleport;
import mineplex.core.updater.FileUpdater;
import mineplex.core.updater.Updater;
import mineplex.core.visibility.VisibilityManager;
2014-11-28 07:34:20 +01:00
import mineplex.game.clans.clans.ClansManager;
import mineplex.game.clans.clans.ban.ClansBanManager;
import mineplex.game.clans.items.GearManager;
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;
import mineplex.game.clans.shop.pvp.PvpShop;
2015-08-25 05:03:26 +02:00
import mineplex.game.clans.spawn.travel.TravelShop;
import mineplex.game.clans.world.WorldManager;
2015-11-13 01:18:42 +01:00
import net.minecraft.server.v1_8_R3.MinecraftServer;
import static mineplex.core.Managers.require;
public class Clans extends JavaPlugin
2015-11-23 21:57:13 +01:00
{
public static final String MAP = "Map 1";
private String WEB_CONFIG = "webServer";
2015-11-25 22:45:04 +01:00
// Modules
private CoreClientManager _clientManager;
private DonationManager _donationManager;
private ClansManager _clansManager;
@Override
public void onEnable()
{
// Configs
getConfig().addDefault(WEB_CONFIG, "http://accounts.mineplex.com/");
getConfig().set(WEB_CONFIG, getConfig().getString(WEB_CONFIG));
saveConfig();
String webServerAddress = getConfig().getString(WEB_CONFIG);
// Logger.initialize(this);
// Static Modules
CommandCenter.Initialize(this);
_clientManager = new CoreClientManager(this, webServerAddress);
CommandCenter.Instance.setClientManager(_clientManager);
ItemStackFactory.Initialize(this, false);
DelayedTask.Initialize(this);
Recharge.Initialize(this);
VisibilityManager.Initialize(this);
// new ProfileCacheManager(this);
_donationManager = new DonationManager(this, _clientManager, webServerAddress);
2016-03-24 20:11:05 +01:00
new FallingBlocks(this);
new ServerConfiguration(this, _clientManager);
PacketHandler packetHandler = require(PacketHandler.class);
IncognitoManager incognito = new IncognitoManager(this, _clientManager, packetHandler);
PreferencesManager preferenceManager = new PreferencesManager(this, incognito, _clientManager, _donationManager);
incognito.setPreferencesManager(preferenceManager);
ServerStatusManager serverStatusManager = new ServerStatusManager(this, _clientManager, new LagMeter(this, _clientManager));
// TODO: Add spawn locations to a configuration file of some sort?
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);
Portal portal = new Portal(this, _clientManager, serverStatusManager.getCurrentServerName());
2015-01-23 08:18:38 +01:00
new FileUpdater(this, portal, serverStatusManager.getCurrentServerName(), serverStatusManager.getRegion());
ClansBanManager clansBans = new ClansBanManager(this, _clientManager, _donationManager);
Punish punish = new Punish(this, webServerAddress, _clientManager);
DisguiseManager disguiseManager = require(DisguiseManager.class);
Creature creature = new Creature(this);
AntiHack antiHack = require(AntiHack.class);
antiHack.setKick(false);
antiHack.enableNewAnticheat();
{
// West Shop
int maxX = -385;
int minX = -462;
int maxY = 100;
int minY = 90;
int maxZ = 46;
int minZ = -30;
Location spawn = new Location(Bukkit.getWorld("world"), -422, 95, 8);
for (int i = 0; i < 10; i++)
{
antiHack.registerGuardian(new AntiHackGuardian(spawn.clone(), maxX, minX, maxY, minY, maxZ, minZ));
}
}
{
// East Shop
int maxX = 385;
int minX = -463;
int maxY = 100;
int minY = 90;
int maxZ = 31;
int minZ = -46;
Location spawn = new Location(Bukkit.getWorld("world"), 424, 95, -8);
for (int i = 0; i < 10; i++)
{
antiHack.registerGuardian(new AntiHackGuardian(spawn.clone(), maxX, minX, maxY, minY, maxZ, minZ));
}
}
{
// North Spawn
int maxX = 25;
int minX = -8;
int maxY = 215;
int minY = 205;
int maxZ = -376;
int minZ = -410;
Location spawn = new Location(Bukkit.getWorld("world"), 9, 210, -393);
for (int i = 0; i < 10; i++)
{
antiHack.registerGuardian(new AntiHackGuardian(spawn.clone(), maxX, minX, maxY, minY, maxZ, minZ));
}
}
{
// South Spawn
int maxX = 25;
int minX = -8;
int maxY = 215;
int minY = 205;
int maxZ = 407;
int minZ = 373;
Location spawn = new Location(Bukkit.getWorld("world"), 8, 210, 390);
for (int i = 0; i < 10; i++)
{
antiHack.registerGuardian(new AntiHackGuardian(spawn.clone(), maxX, minX, maxY, minY, maxZ, minZ));
}
}
{
// Fields
int maxX = 50;
int minX = -60;
int maxY = 110;
int minY = 100;
int maxZ = 70;
int minZ = -70;
Location spawn = new Location(Bukkit.getWorld("world"), 0, 100, 0);
for (int i = 0; i < 40; i++)
{
antiHack.registerGuardian(new AntiHackGuardian(spawn.clone(), maxX, minX, maxY, minY, maxZ, minZ));
}
}
2015-02-11 03:15:44 +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);
StatsManager statsManager = new StatsManager(this, _clientManager);
EloManager eloManager = new EloManager(this, _clientManager);
AchievementManager achievementManager = new AchievementManager(statsManager, _clientManager, _donationManager, incognito, 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
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);
InventoryManager inventory = new InventoryManager(this, _clientManager);
ResourcePackManager resourcePackManager = new ResourcePackManager(this, portal);
resourcePackManager.setResourcePack(new Pair[]
{
Pair.create(MinecraftVersion.Version1_8, "http://file.mineplex.com/ResClans.zip"),
Pair.create(MinecraftVersion.Version1_9, "http://file.mineplex.com/ResClans19.zip")
}, true);
SnapshotManager snapshotManager = new SnapshotManager(new SnapshotRepository(serverStatusManager.getCurrentServerName()));
2016-06-23 02:18:16 +02:00
new SnapshotPlugin(this, snapshotManager, _clientManager);
new ReportPlugin(this, new ReportManager(this, snapshotManager, _clientManager, incognito, serverStatusManager.getCurrentServerName(), 1));
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);
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);
_clansManager = new ClansManager(this, clansBans, serverStatusManager.getCurrentServerName(), incognito, packetHandler, punish, _clientManager, _donationManager, preferenceManager, blockRestore, statsManager, teleport, chat, customGear, hologram, inventory, webServerAddress);
new Recipes(this);
new Farming(this);
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);
new WorldManager(this);
// Disable spigot item merging
for (World world : getServer().getWorlds())
{
// Disable item merging
((CraftWorld) world).getHandle().spigotConfig.itemMerge = 0;
}
//Updates
2015-11-25 22:45:04 +01:00
new Updater(this);
MinecraftServer.getServer().getPropertyManager().setProperty("debug", true);
}
2015-11-25 22:45:04 +01:00
public static String prettifyName(Material material)
{
String name = "";
String[] words = material.toString().split("_");
for (String word : words)
{
word = word.toLowerCase();
name += word.substring(0, 1).toUpperCase() + word.substring(1) + " ";
}
return name;
}
2015-11-25 22:45:04 +01:00
@Override
public void onDisable()
{
// Need to notify WorldEventManager of server shutdown, this seemed like
// the only decent way to do it
_clansManager.onDisable();
getServer().getPluginManager().callEvent(new ServerShutdownEvent(this));
}
public static String getMap()
{
return MAP;
}
}