ResExtras/src/main/java/cn/citycraft/ResExtras/ResExtras.java

359 lines
14 KiB
Java

package cn.citycraft.ResExtras;
import org.bukkit.Bukkit;
import org.bukkit.ChatColor;
import org.bukkit.command.Command;
import org.bukkit.command.CommandExecutor;
import org.bukkit.command.CommandSender;
import org.bukkit.plugin.Plugin;
import org.bukkit.plugin.PluginManager;
import org.bukkit.plugin.java.JavaPlugin;
import com.bekvon.bukkit.residence.protection.FlagPermissions;
import cn.citycraft.PluginHelper.config.FileConfig;
import cn.citycraft.PluginHelper.utils.VersionChecker;
import cn.citycraft.ResExtras.flags.Animalkilling;
import cn.citycraft.ResExtras.flags.Bat;
import cn.citycraft.ResExtras.flags.Blaze;
import cn.citycraft.ResExtras.flags.BlockDamage;
import cn.citycraft.ResExtras.flags.BlockForm;
import cn.citycraft.ResExtras.flags.CaveSpider;
import cn.citycraft.ResExtras.flags.Chicken;
import cn.citycraft.ResExtras.flags.Commands;
import cn.citycraft.ResExtras.flags.Cow;
import cn.citycraft.ResExtras.flags.CreeperSpawn;
import cn.citycraft.ResExtras.flags.DropItem;
import cn.citycraft.ResExtras.flags.Eggs;
import cn.citycraft.ResExtras.flags.EnderPearl;
import cn.citycraft.ResExtras.flags.Enderman;
import cn.citycraft.ResExtras.flags.FallDamage;
import cn.citycraft.ResExtras.flags.Fishing;
import cn.citycraft.ResExtras.flags.Ghast;
import cn.citycraft.ResExtras.flags.God;
import cn.citycraft.ResExtras.flags.Grow;
import cn.citycraft.ResExtras.flags.Hunger;
import cn.citycraft.ResExtras.flags.IronGolem;
import cn.citycraft.ResExtras.flags.Lightning;
import cn.citycraft.ResExtras.flags.MagmaCube;
import cn.citycraft.ResExtras.flags.Melt;
import cn.citycraft.ResExtras.flags.Mobkilling;
import cn.citycraft.ResExtras.flags.Mooshroom;
import cn.citycraft.ResExtras.flags.Ocelot;
import cn.citycraft.ResExtras.flags.PickupItem;
import cn.citycraft.ResExtras.flags.Pig;
import cn.citycraft.ResExtras.flags.PiggySaddle;
import cn.citycraft.ResExtras.flags.PiggyZap;
import cn.citycraft.ResExtras.flags.Portal;
import cn.citycraft.ResExtras.flags.Shear;
import cn.citycraft.ResExtras.flags.Sheep;
import cn.citycraft.ResExtras.flags.SilverFish;
import cn.citycraft.ResExtras.flags.Skeleton;
import cn.citycraft.ResExtras.flags.Slime;
import cn.citycraft.ResExtras.flags.SlimeSplit;
import cn.citycraft.ResExtras.flags.Sneak;
import cn.citycraft.ResExtras.flags.SnowGolem;
import cn.citycraft.ResExtras.flags.Spider;
import cn.citycraft.ResExtras.flags.Sprint;
import cn.citycraft.ResExtras.flags.Squid;
import cn.citycraft.ResExtras.flags.Time;
import cn.citycraft.ResExtras.flags.Trade;
import cn.citycraft.ResExtras.flags.VehicleProtect;
import cn.citycraft.ResExtras.flags.Villager;
import cn.citycraft.ResExtras.flags.VillagerKilling;
import cn.citycraft.ResExtras.flags.Weather;
import cn.citycraft.ResExtras.flags.Witch;
import cn.citycraft.ResExtras.flags.WitherSpawn;
import cn.citycraft.ResExtras.flags.Wolf;
import cn.citycraft.ResExtras.flags.Zombie;
import cn.citycraft.ResExtras.flags.ZombiePigmen;
public class ResExtras extends JavaPlugin implements CommandExecutor {
public static FileConfig config;
public static String pluginname;
public static void sendMessage(final CommandSender sender, final String path) {
sender.sendMessage(pluginname + ChatColor.RED + config.getMessage("Message." + path));
}
@Override
public boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) {
if (args.length == 1) {
switch (args[0].toLowerCase()) {
case "version":
if (sender.hasPermission("ResExtras.version")) {
sender.sendMessage(pluginname + " §av" + this.getDescription().getVersion() + " §6重制 §dBy §a喵♂呜");
}
return true;
case "list":
if (sender.hasPermission("ResExtras.list")) {
sender.sendMessage(pluginname + " §a 扩展Flags");
sender.sendMessage("Zombie, Skeleton, Spider, Creeperspawn, Blaze, Cavespider, Ghast, Slime, Magmacube, Silverfish, Snowgolem, Irongolem, Enderman, Zombiepigmen, "
+ "Chicken, Cow, Mooshroom, Ocelot, Pig, Sheep, Squid, Villager, Wolf, Bat, Witherspawn, Witch, Form, Melt, Commands, FallDamage, Portal, Enderperal, "
+ "Mobkilling, AnimalKilling, VillagerKilling, Drops, Pickup, VehicleProtect, Lightning, Grow, Hunger, Sprint, Fishing, Eggs, Sneak, PigZap, SlimeSplit, "
+ "Shear, PigSaddle, Trade, God, Weather, Time, BlockDamage ");
}
return true;
case "reload":
if (sender.hasPermission("ResExtras.reload")) {
final PluginManager pm = Bukkit.getPluginManager();
pm.disablePlugin(this);
onLoad();
pm.enablePlugin(this);
sender.sendMessage(pluginname + "§a配置文件已重载!");
}
return true;
}
}
sendHelp(sender);
return true;
}
@Override
public void onEnable() {
final PluginManager pm = getServer().getPluginManager();
final Plugin p = pm.getPlugin("Residence");
if (p != null) {
if (p.isEnabled()) {
pm.enablePlugin(p);
FlagPermissions.addResidenceOnlyFlag("zombie");
FlagPermissions.addResidenceOnlyFlag("skeleton");
FlagPermissions.addResidenceOnlyFlag("creeperspawn");
FlagPermissions.addResidenceOnlyFlag("spider");
FlagPermissions.addResidenceOnlyFlag("cavespider");
FlagPermissions.addResidenceOnlyFlag("slime");
FlagPermissions.addResidenceOnlyFlag("ghast");
FlagPermissions.addResidenceOnlyFlag("blaze");
FlagPermissions.addResidenceOnlyFlag("magmacube");
FlagPermissions.addResidenceOnlyFlag("silverfish");
FlagPermissions.addResidenceOnlyFlag("snowgolem");
FlagPermissions.addResidenceOnlyFlag("irongolem");
FlagPermissions.addResidenceOnlyFlag("enderman");
FlagPermissions.addResidenceOnlyFlag("wolf");
FlagPermissions.addResidenceOnlyFlag("zombiepigmen");
FlagPermissions.addResidenceOnlyFlag("chicken");
FlagPermissions.addResidenceOnlyFlag("cow");
FlagPermissions.addResidenceOnlyFlag("mooshroom");
FlagPermissions.addResidenceOnlyFlag("ocelot");
FlagPermissions.addResidenceOnlyFlag("pig");
FlagPermissions.addResidenceOnlyFlag("sheep");
FlagPermissions.addResidenceOnlyFlag("squid");
FlagPermissions.addResidenceOnlyFlag("villager");
FlagPermissions.addResidenceOnlyFlag("bat");
FlagPermissions.addResidenceOnlyFlag("witch");
FlagPermissions.addResidenceOnlyFlag("witherspawn");
FlagPermissions.addResidenceOnlyFlag("melt");
FlagPermissions.addResidenceOnlyFlag("form");
FlagPermissions.addFlag("drops");
FlagPermissions.addFlag("pickup");
FlagPermissions.addFlag("animalkilling");
FlagPermissions.addFlag("villagerkilling");
FlagPermissions.addFlag("mobkilling");
FlagPermissions.addFlag("falldamage");
FlagPermissions.addFlag("enderpearl");
FlagPermissions.addFlag("commands");
FlagPermissions.addFlag("portal");
FlagPermissions.addFlag("vehicleprotect");
FlagPermissions.addResidenceOnlyFlag("lightning");
FlagPermissions.addResidenceOnlyFlag("grow");
FlagPermissions.addFlag("hunger");
FlagPermissions.addFlag("sprint");
FlagPermissions.addFlag("fishing");
FlagPermissions.addFlag("eggs");
FlagPermissions.addFlag("sneak");
FlagPermissions.addResidenceOnlyFlag("pigzap");
FlagPermissions.addFlag("slimesplit");
FlagPermissions.addFlag("shear");
FlagPermissions.addFlag("pigsaddle");
FlagPermissions.addFlag("trade");
FlagPermissions.addFlag("god");
FlagPermissions.addResidenceOnlyFlag("weather");
FlagPermissions.addResidenceOnlyFlag("day");
FlagPermissions.addResidenceOnlyFlag("night");
FlagPermissions.addResidenceOnlyFlag("blockdamage");
if (config.getBoolean("Flags.Zombie", true)) {
pm.registerEvents(new Zombie(), this);
}
if (config.getBoolean("Flags.Skeleton", true)) {
pm.registerEvents(new Skeleton(), this);
}
if (config.getBoolean("Flags.Creeperspawn", true)) {
pm.registerEvents(new CreeperSpawn(), this);
}
if (config.getBoolean("Flags.Spider", true)) {
pm.registerEvents(new Spider(), this);
}
if (config.getBoolean("Flags.Cavespider", true)) {
pm.registerEvents(new CaveSpider(), this);
}
if (config.getBoolean("Flags.Slime", true)) {
pm.registerEvents(new Slime(), this);
}
if (config.getBoolean("Flags.Ghast", true)) {
pm.registerEvents(new Ghast(), this);
}
if (config.getBoolean("Flags.Blaze", true)) {
pm.registerEvents(new Blaze(), this);
}
if (config.getBoolean("Flags.Magmacube", true)) {
pm.registerEvents(new MagmaCube(), this);
}
if (config.getBoolean("Flags.Silverfish", true)) {
pm.registerEvents(new SilverFish(), this);
}
if (config.getBoolean("Flags.Snowgolem", true)) {
pm.registerEvents(new SnowGolem(), this);
}
if (config.getBoolean("Flags.Irongolem", true)) {
pm.registerEvents(new IronGolem(), this);
}
if (config.getBoolean("Flags.Enderman", true)) {
pm.registerEvents(new Enderman(), this);
}
if (config.getBoolean("Flags.Chicken", true)) {
pm.registerEvents(new Chicken(), this);
}
if (config.getBoolean("Flags.Cow", true)) {
pm.registerEvents(new Cow(), this);
}
if (config.getBoolean("Flags.Wolf", true)) {
pm.registerEvents(new Wolf(), this);
}
if (config.getBoolean("Flags.Mooshroom", true)) {
pm.registerEvents(new Mooshroom(), this);
}
if (config.getBoolean("Flags.Ocelot", true)) {
pm.registerEvents(new Ocelot(), this);
}
if (config.getBoolean("Flags.Zombiepigmen", true)) {
pm.registerEvents(new ZombiePigmen(), this);
}
if (config.getBoolean("Flags.Pig", true)) {
pm.registerEvents(new Pig(), this);
}
if (config.getBoolean("Flags.Sheep", true)) {
pm.registerEvents(new Sheep(), this);
}
if (config.getBoolean("Flags.Squid", true)) {
pm.registerEvents(new Squid(), this);
}
if (config.getBoolean("Flags.Villager", true)) {
pm.registerEvents(new Villager(), this);
}
if (config.getBoolean("Flags.Bat", true)) {
pm.registerEvents(new Bat(), this);
}
if (config.getBoolean("Flags.Witch", true)) {
pm.registerEvents(new Witch(), this);
}
if (config.getBoolean("Flags.Witherspawn", true)) {
pm.registerEvents(new WitherSpawn(), this);
}
if (config.getBoolean("Flags.Melt", true)) {
pm.registerEvents(new Melt(), this);
}
if (config.getBoolean("Flags.Form", true)) {
pm.registerEvents(new BlockForm(), this);
}
if (config.getBoolean("Flags.Animalkilling", true)) {
pm.registerEvents(new Animalkilling(), this);
}
if (config.getBoolean("Flags.Mobkilling", true)) {
pm.registerEvents(new Mobkilling(), this);
}
if (config.getBoolean("Flags.DropItem", true)) {
pm.registerEvents(new DropItem(), this);
}
if (config.getBoolean("Flags.Pickup", true)) {
pm.registerEvents(new PickupItem(), this);
}
if (config.getBoolean("Flags.Commands", true)) {
pm.registerEvents(new Commands(), this);
}
if (config.getBoolean("Flags.Enderpearl", true)) {
pm.registerEvents(new EnderPearl(), this);
}
if (config.getBoolean("Flags.Falldamage", true)) {
pm.registerEvents(new FallDamage(), this);
}
if (config.getBoolean("Flags.Portal", true)) {
pm.registerEvents(new Portal(), this);
}
if (config.getBoolean("Flags.Villagerkilling", true)) {
pm.registerEvents(new VillagerKilling(), this);
}
if (config.getBoolean("Flags.Vehicleprotect", true)) {
pm.registerEvents(new VehicleProtect(), this);
}
if (config.getBoolean("Flags.Lightning", true)) {
pm.registerEvents(new Lightning(), this);
}
if (config.getBoolean("Flags.Grow", true)) {
pm.registerEvents(new Grow(), this);
}
if (config.getBoolean("Flags.Hunger", true)) {
pm.registerEvents(new Hunger(), this);
}
if (config.getBoolean("Flags.Sprint", true)) {
pm.registerEvents(new Sprint(), this);
}
if (config.getBoolean("Flags.Fishing", true)) {
pm.registerEvents(new Fishing(), this);
}
if (config.getBoolean("Flags.Eggs", true)) {
pm.registerEvents(new Eggs(), this);
}
if (config.getBoolean("Flags.Sneak", true)) {
pm.registerEvents(new Sneak(), this);
}
if (config.getBoolean("Flags.Pigzap", true)) {
pm.registerEvents(new PiggyZap(), this);
}
if (config.getBoolean("Flags.Slimesplit", true)) {
pm.registerEvents(new SlimeSplit(), this);
}
if (config.getBoolean("Flags.Shear", true)) {
pm.registerEvents(new Shear(), this);
}
if (config.getBoolean("Flags.Pigsaddle", true)) {
pm.registerEvents(new PiggySaddle(), this);
}
if (config.getBoolean("Flags.Trade", true)) {
pm.registerEvents(new Trade(), this);
}
if (config.getBoolean("Flags.God", true)) {
pm.registerEvents(new God(), this);
}
if (config.getBoolean("Flags.Weather", true)) {
pm.registerEvents(new Weather(), this);
}
if (config.getBoolean("Flags.Time", true)) {
pm.registerEvents(new Time(), this);
}
if (config.getBoolean("Flags.BlockDamage", true)) {
pm.registerEvents(new BlockDamage(), this);
}
this.getLogger().info("领地扩展 版本 " + this.getDescription().getVersion() + " 已正确载入 重置 By 喵♂呜");
new VersionChecker(this);
}
} else {
this.getLogger().warning("未找到 Residence 插件!");
this.setEnabled(false);
}
}
@Override
public void onLoad() {
config = new FileConfig(this);
pluginname = config.getMessage("pluginname");
}
public void sendHelp(final CommandSender sender) {
sender.sendMessage("§6========= §6[§b领地扩展§6] §6插件帮助列表=========");
sender.sendMessage("§6/ResExtras version §6- §a显示插件版本");
sender.sendMessage("§6/ResExtras list §6- §a显示Flags列表");
sender.sendMessage("§6/ResExtras reload §6- §a重载插件");
sender.sendMessage("§6/ResExtras help §6- §a显示帮助页面");
}
}