359 lines
14 KiB
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显示帮助页面");
|
|
}
|
|
}
|