LimitedCreative/src/main/java/de/jaschastarke/minecraft/limitedcreative/ModRegions.java

114 lines
4.1 KiB
Java
Raw Normal View History

package de.jaschastarke.minecraft.limitedcreative;
2013-02-09 19:09:57 +00:00
import java.io.File;
import org.bukkit.entity.Player;
import de.jaschastarke.bukkit.lib.CoreModule;
2013-02-09 19:09:57 +00:00
import de.jaschastarke.bukkit.lib.commands.AliasHelpedCommand;
2013-02-10 21:12:31 +00:00
import de.jaschastarke.minecraft.limitedcreative.regions.BlockListener;
import de.jaschastarke.minecraft.limitedcreative.regions.IWorldGuardIntegration;
2013-02-09 19:09:57 +00:00
import de.jaschastarke.minecraft.limitedcreative.regions.PlayerData;
2013-02-10 21:12:31 +00:00
import de.jaschastarke.minecraft.limitedcreative.regions.PlayerListener;
2013-02-09 19:09:57 +00:00
import de.jaschastarke.minecraft.limitedcreative.regions.RegionConfig;
2013-02-10 21:12:31 +00:00
import de.jaschastarke.minecraft.limitedcreative.regions.RegionListener;
2013-02-09 19:09:57 +00:00
import de.jaschastarke.minecraft.limitedcreative.regions.RegionsCommand;
import de.jaschastarke.minecraft.limitedcreative.regions.WorldGuardIntegration;
2013-02-09 19:09:57 +00:00
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.CustomRegionManager;
2013-02-10 21:12:31 +00:00
import de.jaschastarke.minecraft.limitedcreative.regions.worldguard.PlayerRegionListener;
2013-02-09 19:09:57 +00:00
import de.jaschastarke.modularize.IModule;
import de.jaschastarke.modularize.ModuleEntry;
public class ModRegions extends CoreModule<LimitedCreative> {
2013-02-09 19:09:57 +00:00
private CustomRegionManager mgr;
private IWorldGuardIntegration wg;
2013-02-09 19:09:57 +00:00
private PlayerData pdata;
private FeatureBlockItemSpawn blockDrops = null;
private RegionConfig config;
private RegionsCommand command;
public ModRegions(LimitedCreative plugin) {
super(plugin);
}
@Override
public String getName() {
return "Regions";
}
2013-02-09 19:09:57 +00:00
@Override
public void initialize(ModuleEntry<IModule> pEntry) {
super.initialize(pEntry);
blockDrops = modules.linkSharedModule(FeatureBlockItemSpawn.class, plugin.getModules());
2013-02-09 19:09:57 +00:00
config = plugin.getPluginConfig().registerSection(new RegionConfig(this, entry));
if (!plugin.getServer().getPluginManager().isPluginEnabled("WorldGuard")) {
if (config.getEnabled())
getLog().warn(plugin.getLocale().trans("region.warning.worldguard_not_found", getName()));
entry.deactivateUsage();
return;
}
2013-02-09 19:09:57 +00:00
command = new RegionsCommand(this);
2013-02-10 21:12:31 +00:00
listeners.addListener(new PlayerListener(this));
listeners.addListener(new BlockListener(this));
listeners.addListener(new RegionListener(this));
listeners.addListener(new PlayerRegionListener(this)); // Fires Custom-Events listen by RegionListener
2013-02-09 19:09:57 +00:00
getWorldGuardIntegration().initFlagList();
}
public IWorldGuardIntegration getWorldGuardIntegration() {
if (wg == null) {
wg = new WorldGuardIntegration(this);
}
return wg;
2013-02-09 19:09:57 +00:00
}
@Override
public void onEnable() {
super.onEnable();
mgr = new CustomRegionManager(new File(plugin.getDataFolder(), "regions.yml"), this);
/*wg = (WorldGuardPlugin) plugin.getServer().getPluginManager().getPlugin("WorldGuard");
if (wg == null)
throw new IllegalAccessError("Missing Plugin WorldGuard");*/
plugin.getCommandHandler().registerCommand(command);
plugin.getMainCommand().registerCommand(new AliasHelpedCommand<RegionsCommand>(command, "region", new String[]{"r"}));
2013-02-09 19:09:57 +00:00
pdata = new PlayerData(this);
getLog().info(plugin.getLocale().trans("basic.loaded.module"));
}
@Override
public void onDisable() {
super.onDisable();
plugin.getCommandHandler().removeCommand(command);
plugin.getMainCommand().removeCommand(command);
}
2013-02-09 19:09:57 +00:00
public RegionConfig getConfig() {
return config;
}
/*public WorldGuardPlugin getWorldGuard() {
2013-02-09 19:09:57 +00:00
return wg;
}*/
2013-02-09 19:09:57 +00:00
public CustomRegionManager getRegionManager() {
return mgr;
}
public PlayerData getPlayerData() {
return pdata;
}
public PlayerData.Data getPlayerData(Player player) {
return pdata.getData(player);
}
public FeatureBlockItemSpawn getBlockSpawn() {
return blockDrops;
}
}