From 4d47b6c8c3140288dc050072825399fd9b68337d Mon Sep 17 00:00:00 2001 From: 502647092 Date: Mon, 14 Dec 2015 21:08:14 +0800 Subject: [PATCH] =?UTF-8?q?=E9=A6=96=E6=AC=A1=E6=8F=90=E4=BA=A4...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: 502647092 --- .classpath | 31 + .gitignore | 38 ++ .project | 23 + pom.xml | 85 +++ .../cn/citycraft/ResExtras/ResExtras.java | 627 ++++++++++++++++++ .../ResExtras/flags/animalkilling.java | 51 ++ .../cn/citycraft/ResExtras/flags/bat.java | 29 + .../cn/citycraft/ResExtras/flags/blaze.java | 30 + .../ResExtras/flags/blockdamage.java | 23 + .../citycraft/ResExtras/flags/cavespider.java | 31 + .../cn/citycraft/ResExtras/flags/chicken.java | 30 + .../citycraft/ResExtras/flags/commands.java | 28 + .../cn/citycraft/ResExtras/flags/cow.java | 29 + .../ResExtras/flags/creeperspawn.java | 29 + .../cn/citycraft/ResExtras/flags/drops.java | 30 + .../cn/citycraft/ResExtras/flags/eggs.java | 28 + .../citycraft/ResExtras/flags/enderman.java | 28 + .../citycraft/ResExtras/flags/enderpearl.java | 33 + .../citycraft/ResExtras/flags/falldamage.java | 29 + .../cn/citycraft/ResExtras/flags/fishing.java | 30 + .../cn/citycraft/ResExtras/flags/form.java | 28 + .../cn/citycraft/ResExtras/flags/ghast.java | 29 + .../cn/citycraft/ResExtras/flags/god.java | 41 ++ .../cn/citycraft/ResExtras/flags/grow.java | 50 ++ .../cn/citycraft/ResExtras/flags/hunger.java | 24 + .../citycraft/ResExtras/flags/irongolem.java | 29 + .../citycraft/ResExtras/flags/lightning.java | 24 + .../citycraft/ResExtras/flags/magmacube.java | 29 + .../cn/citycraft/ResExtras/flags/melt.java | 28 + .../citycraft/ResExtras/flags/mobkilling.java | 49 ++ .../citycraft/ResExtras/flags/mooshroom.java | 28 + .../cn/citycraft/ResExtras/flags/ocelot.java | 29 + .../cn/citycraft/ResExtras/flags/pickup.java | 30 + .../cn/citycraft/ResExtras/flags/pig.java | 29 + .../citycraft/ResExtras/flags/pigsaddle.java | 35 + .../cn/citycraft/ResExtras/flags/pigzap.java | 24 + .../cn/citycraft/ResExtras/flags/portal.java | 32 + .../cn/citycraft/ResExtras/flags/shear.java | 28 + .../cn/citycraft/ResExtras/flags/sheep.java | 28 + .../citycraft/ResExtras/flags/silverfish.java | 28 + .../citycraft/ResExtras/flags/skeleton.java | 29 + .../cn/citycraft/ResExtras/flags/slime.java | 28 + .../citycraft/ResExtras/flags/slimesplit.java | 23 + .../cn/citycraft/ResExtras/flags/sneak.java | 39 ++ .../citycraft/ResExtras/flags/snowgolem.java | 29 + .../cn/citycraft/ResExtras/flags/spider.java | 29 + .../cn/citycraft/ResExtras/flags/sprint.java | 39 ++ .../cn/citycraft/ResExtras/flags/squid.java | 28 + .../cn/citycraft/ResExtras/flags/time.java | 52 ++ .../cn/citycraft/ResExtras/flags/trade.java | 34 + .../ResExtras/flags/vehicleprotect.java | 60 ++ .../citycraft/ResExtras/flags/villager.java | 29 + .../ResExtras/flags/villagerkilling.java | 49 ++ .../cn/citycraft/ResExtras/flags/weather.java | 35 + .../cn/citycraft/ResExtras/flags/witch.java | 29 + .../ResExtras/flags/witherspawn.java | 28 + .../cn/citycraft/ResExtras/flags/wolf.java | 29 + .../cn/citycraft/ResExtras/flags/zombie.java | 29 + .../ResExtras/flags/zombiepigmen.java | 29 + src/main/resources/plugin.yml | 29 + 60 files changed, 2560 insertions(+) create mode 100644 .classpath create mode 100644 .gitignore create mode 100644 .project create mode 100644 pom.xml create mode 100644 src/main/java/cn/citycraft/ResExtras/ResExtras.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/animalkilling.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/bat.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/blaze.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/blockdamage.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/cavespider.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/chicken.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/commands.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/cow.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/creeperspawn.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/drops.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/eggs.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/enderman.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/enderpearl.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/falldamage.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/fishing.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/form.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/ghast.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/god.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/grow.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/hunger.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/irongolem.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/lightning.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/magmacube.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/melt.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/mobkilling.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/mooshroom.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/ocelot.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/pickup.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/pig.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/pigsaddle.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/pigzap.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/portal.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/shear.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/sheep.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/silverfish.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/skeleton.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/slime.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/slimesplit.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/sneak.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/snowgolem.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/spider.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/sprint.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/squid.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/time.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/trade.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/vehicleprotect.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/villager.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/villagerkilling.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/weather.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/witch.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/witherspawn.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/wolf.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/zombie.java create mode 100644 src/main/java/cn/citycraft/ResExtras/flags/zombiepigmen.java create mode 100644 src/main/resources/plugin.yml diff --git a/.classpath b/.classpath new file mode 100644 index 0000000..bea39b1 --- /dev/null +++ b/.classpath @@ -0,0 +1,31 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + + diff --git a/.gitignore b/.gitignore new file mode 100644 index 0000000..043fc2a --- /dev/null +++ b/.gitignore @@ -0,0 +1,38 @@ +# Eclipse stuff +/.settings + +# netbeans +/nbproject + +# we use maven! +/build.xml + +# maven +/target +/repo + +# vim +.*.sw[a-p] + +# various other potential build files +/build +/bin +/dist +/manifest.mf + +/world + +# Mac filesystem dust +*.DS_Store + +# intellij +*.iml +*.ipr +*.iws +.idea/ + +# Project Stuff +/src/main/resources/Soulbound + +# Atlassian Stuff +/atlassian-ide-plugin.xml \ No newline at end of file diff --git a/.project b/.project new file mode 100644 index 0000000..9a111be --- /dev/null +++ b/.project @@ -0,0 +1,23 @@ + + + ResExtras + + + + + + org.eclipse.jdt.core.javabuilder + + + + + org.eclipse.m2e.core.maven2Builder + + + + + + org.eclipse.m2e.core.maven2Nature + org.eclipse.jdt.core.javanature + + diff --git a/pom.xml b/pom.xml new file mode 100644 index 0000000..d725e2f --- /dev/null +++ b/pom.xml @@ -0,0 +1,85 @@ + + 4.0.0 + cn.citycraft + ResExtras + 1.0 + ResExtras + 领地扩展 + + ${project.name} + + + src/main/resources + true + + + + + maven-compiler-plugin + 3.1 + + 1.7 + 1.7 + + + + org.apache.maven.plugins + maven-shade-plugin + 2.3 + + false + true + + + cn.citycraft:PluginHelper + + + + + cn.citycraft.PluginHelper + ${project.groupId}.${project.artifactId} + + + + + + package + + shade + + + + + + + + http://ci.citycraft.cn:8080 + + UTF-8 + + + + spigot-repo + https://hub.spigotmc.org/nexus/content/groups/public/ + + + citycraft-repo + ${jenkins.url}/plugin/repository/everything/ + + + + + org.spigotmc + spigot-api + jar + 1.8.8-R0.1-SNAPSHOT + + + cn.citycraft + Residence + jar + 2.8.1.4 + + + \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/ResExtras.java b/src/main/java/cn/citycraft/ResExtras/ResExtras.java new file mode 100644 index 0000000..4028954 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/ResExtras.java @@ -0,0 +1,627 @@ +package cn.citycraft.ResExtras; + +import java.io.File; +import java.util.logging.Level; +import java.util.logging.Logger; + +import org.bukkit.ChatColor; +import org.bukkit.command.Command; +import org.bukkit.command.CommandExecutor; +import org.bukkit.command.CommandSender; +import org.bukkit.configuration.Configuration; +import org.bukkit.configuration.file.FileConfiguration; +import org.bukkit.configuration.file.YamlConfiguration; +import org.bukkit.entity.Player; +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.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.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.drops; +import cn.citycraft.ResExtras.flags.eggs; +import cn.citycraft.ResExtras.flags.enderman; +import cn.citycraft.ResExtras.flags.enderpearl; +import cn.citycraft.ResExtras.flags.falldamage; +import cn.citycraft.ResExtras.flags.fishing; +import cn.citycraft.ResExtras.flags.form; +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.pickup; +import cn.citycraft.ResExtras.flags.pig; +import cn.citycraft.ResExtras.flags.pigsaddle; +import cn.citycraft.ResExtras.flags.pigzap; +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 final String PLUGIN_NAME = "ResExtras"; + public static final String LOG_HEADER = "[" + PLUGIN_NAME + "] "; + + private Logger log; + public Configuration config; + + // very long config + // Going to make this shorter but I'm too lazy + // To be honest I just made it like that way since it was in my other plugin so I just copy and pasta'd I'm really lazy :3 + // and I like making little stories in my code...I'm insane o.o + /* + * I love ramen since its like the only thing I actually know how to make. I used to make + * pancakes but I forgot how to make them which kinda pisses me off. Oh by the way I'm + * only 17 :P. Its nice to know that someone has to read this (I think) since one of my friends + * is on the DevBukkit team so its nice to meet you :D. You can even message me on Bukkit(Tonkovich) + * just so I know you read this. Well thats all I really know what to type since I kinda just typed + * random stuff. I have a pokeball :3 + * + * Dafuq did you just read o.O + */ + public void loadDefaults() { + final FileConfiguration configG = getConfig(); + final File configFile = new File("plugins/ResExtras/config.yml"); + config = YamlConfiguration.loadConfiguration(configFile); + configG.options().header("This completely disables parts of ResExtras increasing efficiency."); + if (config.contains("Zombie")) { + } else { + getConfig().addDefault("Zombie", true); + } + if (config.contains("Skeleton")) { + } else { + getConfig().addDefault("Skeleton", true); + } + if (config.contains("Spider")) { + } else { + getConfig().addDefault("Spider", true); + } + if (config.contains("Creeperspawn")) { + } else { + getConfig().addDefault("Creeperspawn", true); + } + if (config.contains("Blaze")) { + } else { + getConfig().addDefault("Blaze", true); + } + if (config.contains("Cavespider")) { + } else { + getConfig().addDefault("Cavespider", true); + } + if (config.contains("Ghast")) { + } else { + getConfig().addDefault("Ghast", true); + } + if (config.contains("Slime")) { + } else { + getConfig().addDefault("Slime", true); + } + if (config.contains("Magmacube")) { + } else { + getConfig().addDefault("Magmacube", true); + } + if (config.contains("Silverfish")) { + } else { + getConfig().addDefault("Silverfish", true); + } + if (config.contains("Snowgolem")) { + } else { + getConfig().addDefault("Snowgolem", true); + } + if (config.contains("Irongolem")) { + } else { + getConfig().addDefault("Irongolem", true); + } + if (config.contains("Enderman")) { + } else { + getConfig().addDefault("Enderman", true); + } + if (config.contains("Zombiepigmen")) { + } else { + getConfig().addDefault("Zombiepigmen", true); + } + if (config.contains("Chicken")) { + } else { + getConfig().addDefault("Chicken", true); + } + if (config.contains("Cow")) { + } else { + getConfig().addDefault("Cow", true); + } + if (config.contains("Mooshroom")) { + } else { + getConfig().addDefault("Mooshroom", true); + } + if (config.contains("Ocelot")) { + } else { + getConfig().addDefault("Ocelot", true); + } + if (config.contains("Pig")) { + } else { + getConfig().addDefault("Pig", true); + } + if (config.contains("Sheep")) { + } else { + getConfig().addDefault("Sheep", true); + } + if (config.contains("Squid")) { + } else { + getConfig().addDefault("Squid", true); + } + if (config.contains("Villager")) { + } else { + getConfig().addDefault("Villager", true); + } + if (config.contains("Wolf")) { + } else { + getConfig().addDefault("Wolf", true); + } + if (config.contains("Bat")) { + } else { + getConfig().addDefault("Bat", true); + } + if (config.contains("Witherspawn")) { + } else { + getConfig().addDefault("Witherspawn", true); + } + if (config.contains("Witch")) { + } else { + getConfig().addDefault("Witch", true); + } + if (config.contains("Form")) { + } else { + getConfig().addDefault("Form", true); + } + if (config.contains("Melt")) { + } else { + getConfig().addDefault("Melt", true); + } + if (config.contains("Commands")) { + } else { + getConfig().addDefault("Commands", true); + } + if (config.contains("Falldamage")) { + } else { + getConfig().addDefault("Falldamage", true); + } + if (config.contains("Portal")) { + } else { + getConfig().addDefault("Portal", true); + } + if (config.contains("Enderpearl")) { + } else { + getConfig().addDefault("Enderpearl", true); + } + if (config.contains("Mobkilling")) { + } else { + getConfig().addDefault("Mobkilling", true); + } + if (config.contains("Animalkilling")) { + } else { + getConfig().addDefault("Animalkilling", true); + } + if (config.contains("Villagerkilling")) { + } else { + getConfig().addDefault("Villagerkilling", true); + } + if (config.contains("Drops")) { + } else { + getConfig().addDefault("Drops", true); + } + if (config.contains("Pickup")) { + } else { + getConfig().addDefault("Pickup", true); + } + if (config.contains("Vehicleprotect")) { + } else { + getConfig().addDefault("Vehicleprotect", true); + } + if (config.contains("Lightning")) { + } else { + getConfig().addDefault("Lightning", true); + } + if (config.contains("Grow")) { + } else { + getConfig().addDefault("Grow", true); + } + if (config.contains("Hunger")) { + } else { + getConfig().addDefault("Hunger", true); + } + if (config.contains("Sprint")) { + } else { + getConfig().addDefault("Sprint", true); + } + if (config.contains("Fishing")) { + } else { + getConfig().addDefault("Fishing", true); + } + if (config.contains("Eggs")) { + } else { + getConfig().addDefault("Eggs", true); + } + if (config.contains("Sneak")) { + } else { + getConfig().addDefault("Sneak", true); + } + if (config.contains("Pigzap")) { + } else { + getConfig().addDefault("Pigzap", true); + } + if (config.contains("Slimesplit")) { + } else { + getConfig().addDefault("Slimesplit", true); + } + if (config.contains("Shear")) { + } else { + getConfig().addDefault("Shear", true); + } + if (config.contains("Pigsaddle")) { + } else { + getConfig().addDefault("Pigsaddle", true); + } + if (config.contains("Trade")) { + } else { + getConfig().addDefault("Trade", true); + } + if (config.contains("God")) { + } else { + getConfig().addDefault("God", true); + } + if (config.contains("Time")) { + } else { + getConfig().addDefault("Time", true); + } + if (config.contains("Weather")) { + } else { + getConfig().addDefault("Weather", true); + } + if (config.contains("BlockDamage")) { + } else { + getConfig().addDefault("BlockDamage", true); + } + /* + * if(config.contains("CrystalProtect")){ + * } + * else { + * getConfig().addDefault("CrystalProtect", true); + * } + */ + configG.options().copyDefaults(true); + saveConfig(); + } + + public void logError(final String _message) { + log.log(Level.SEVERE, String.format("%s %s", LOG_HEADER, _message)); + } + + public void logInfo(final String _message) { + log.log(Level.INFO, String.format("%s %s", LOG_HEADER, _message)); + } + + @Override + public boolean onCommand(final CommandSender sender, final Command cmd, final String label, final String[] args) { + if (sender instanceof Player) { + if (args.length == 0) { + if (cmd.getName().equalsIgnoreCase("resextras")) { + if (sender.hasPermission("ResExtras.help")) { + sender.sendMessage(ChatColor.GOLD + "----------------" + ChatColor.BLUE + "[ResExtras] Help Menu" + ChatColor.GOLD + "----------------"); + sender.sendMessage(ChatColor.RED + "/ResExtras" + ChatColor.GREEN + " Displays help menu "); + sender.sendMessage(ChatColor.RED + "/ResExtras help" + ChatColor.GREEN + " Displays help menu "); + sender.sendMessage(ChatColor.RED + "/ResExtras version" + ChatColor.GREEN + " Displays version Number "); + sender.sendMessage(ChatColor.RED + "/ResExtras list" + ChatColor.GREEN + " Displays flag list "); + sender.sendMessage(ChatColor.GOLD + "---------------------------------------------------"); + } + } + } + if (args.length == 1) { + if (args[0].equalsIgnoreCase("version")) { + if (sender.hasPermission("ResExtras.version")) { + sender.sendMessage(ChatColor.BLUE + "[ResExtras]" + ChatColor.GREEN + " v2.0.5 "); + } + } + if (args[0].equalsIgnoreCase("list")) { + if (sender.hasPermission("ResExtras.list")) { + sender.sendMessage(ChatColor.BLUE + "[ResExtras]" + ChatColor.GREEN + " Flags"); + sender.sendMessage(ChatColor.WHITE + + " 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 "); + } + } + if (args[0].equalsIgnoreCase("help")) { + if (sender.hasPermission("ResExtras.help")) { + sender.sendMessage(ChatColor.GOLD + "----------------" + ChatColor.BLUE + "[ResExtras] Help Menu" + ChatColor.GOLD + "----------------"); + sender.sendMessage(ChatColor.RED + "/ResExtras" + ChatColor.GREEN + " Displays help menu "); + sender.sendMessage(ChatColor.RED + "/ResExtras help" + ChatColor.GREEN + " Displays help menu "); + sender.sendMessage(ChatColor.RED + "/ResExtras version" + ChatColor.GREEN + " Displays version Number "); + sender.sendMessage(ChatColor.RED + "/ResExtras list" + ChatColor.GREEN + " Displays flag list "); + sender.sendMessage(ChatColor.GOLD + "---------------------------------------------------"); + } + } + } + return true; + } + return true; + } + + @Override + public void onDisable() { + saveConfig(); + } + + // very long start up lolz + @Override + public void onEnable() { + + log = Logger.getLogger("Minecraft"); + loadDefaults(); + final PluginManager pm = getServer().getPluginManager(); + final Plugin p = pm.getPlugin("Residence"); + if (p != null) { + if (p.isEnabled()) { + logInfo("Enabled"); + 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"); + // FlagPermissions.addFlag("crystalprotect"); + if (getConfig().getBoolean("Zombie", true)) { + pm.registerEvents(new zombie(), this); + } + if (getConfig().getBoolean("Skeleton", true)) { + pm.registerEvents(new skeleton(), this); + } + if (getConfig().getBoolean("Creeperspawn", true)) { + pm.registerEvents(new creeperspawn(), this); + } + if (getConfig().getBoolean("Spider", true)) { + pm.registerEvents(new spider(), this); + } + if (getConfig().getBoolean("Cavespider", true)) { + pm.registerEvents(new cavespider(), this); + } + if (getConfig().getBoolean("Slime", true)) { + pm.registerEvents(new slime(), this); + } + if (getConfig().getBoolean("Ghast", true)) { + pm.registerEvents(new ghast(), this); + } + if (getConfig().getBoolean("Blaze", true)) { + pm.registerEvents(new blaze(), this); + } + if (getConfig().getBoolean("Magmacube", true)) { + pm.registerEvents(new magmacube(), this); + } + if (getConfig().getBoolean("Silverfish", true)) { + pm.registerEvents(new silverfish(), this); + } + if (getConfig().getBoolean("Snowgolem", true)) { + pm.registerEvents(new snowgolem(), this); + } + if (getConfig().getBoolean("Irongolem", true)) { + pm.registerEvents(new irongolem(), this); + } + if (getConfig().getBoolean("Enderman", true)) { + pm.registerEvents(new enderman(), this); + } + if (getConfig().getBoolean("Chicken", true)) { + pm.registerEvents(new chicken(), this); + } + if (getConfig().getBoolean("Cow", true)) { + pm.registerEvents(new cow(), this); + } + if (getConfig().getBoolean("Wolf", true)) { + pm.registerEvents(new wolf(), this); + } + if (getConfig().getBoolean("Mooshroom", true)) { + pm.registerEvents(new mooshroom(), this); + } + if (getConfig().getBoolean("Ocelot", true)) { + pm.registerEvents(new ocelot(), this); + } + if (getConfig().getBoolean("Zombiepigmen", true)) { + pm.registerEvents(new zombiepigmen(), this); + } + if (getConfig().getBoolean("Pig", true)) { + pm.registerEvents(new pig(), this); + } + if (getConfig().getBoolean("Sheep", true)) { + pm.registerEvents(new sheep(), this); + } + if (getConfig().getBoolean("Squid", true)) { + pm.registerEvents(new squid(), this); + } + if (getConfig().getBoolean("Villager", true)) { + pm.registerEvents(new villager(), this); + } + if (getConfig().getBoolean("Bat", true)) { + pm.registerEvents(new bat(), this); + } + if (getConfig().getBoolean("Witch", true)) { + pm.registerEvents(new witch(), this); + } + if (getConfig().getBoolean("Witherspawn", true)) { + pm.registerEvents(new witherspawn(), this); + } + if (getConfig().getBoolean("Melt", true)) { + pm.registerEvents(new melt(), this); + } + if (getConfig().getBoolean("Form", true)) { + pm.registerEvents(new form(), this); + } + if (getConfig().getBoolean("Animalkilling", true)) { + pm.registerEvents(new animalkilling(), this); + } + if (getConfig().getBoolean("Mobkilling", true)) { + pm.registerEvents(new mobkilling(), this); + } + if (getConfig().getBoolean("Drops", true)) { + pm.registerEvents(new drops(), this); + } + if (getConfig().getBoolean("Pickup", true)) { + pm.registerEvents(new pickup(), this); + } + if (getConfig().getBoolean("Commands", true)) { + pm.registerEvents(new commands(), this); + } + if (getConfig().getBoolean("Enderpearl", true)) { + pm.registerEvents(new enderpearl(), this); + } + if (getConfig().getBoolean("Falldamage", true)) { + pm.registerEvents(new falldamage(), this); + } + if (getConfig().getBoolean("Portal", true)) { + pm.registerEvents(new portal(), this); + } + if (getConfig().getBoolean("Villagerkilling", true)) { + pm.registerEvents(new villagerkilling(), this); + } + if (getConfig().getBoolean("Vehicleprotect", true)) { + pm.registerEvents(new vehicleprotect(), this); + } + if (getConfig().getBoolean("Lightning", true)) { + pm.registerEvents(new lightning(), this); + } + if (getConfig().getBoolean("Grow", true)) { + pm.registerEvents(new grow(), this); + } + if (getConfig().getBoolean("Hunger", true)) { + pm.registerEvents(new hunger(), this); + } + if (getConfig().getBoolean("Sprint", true)) { + pm.registerEvents(new sprint(), this); + } + if (getConfig().getBoolean("Fishing", true)) { + pm.registerEvents(new fishing(), this); + } + if (getConfig().getBoolean("Eggs", true)) { + pm.registerEvents(new eggs(), this); + } + if (getConfig().getBoolean("Sneak", true)) { + pm.registerEvents(new sneak(), this); + } + if (getConfig().getBoolean("Pigzap", true)) { + pm.registerEvents(new pigzap(), this); + } + if (getConfig().getBoolean("Slimesplit", true)) { + pm.registerEvents(new slimesplit(), this); + } + if (getConfig().getBoolean("Shear", true)) { + pm.registerEvents(new shear(), this); + } + if (getConfig().getBoolean("Pigsaddle", true)) { + pm.registerEvents(new pigsaddle(), this); + } + if (getConfig().getBoolean("Trade", true)) { + pm.registerEvents(new trade(), this); + } + if (getConfig().getBoolean("God", true)) { + pm.registerEvents(new god(), this); + } + if (getConfig().getBoolean("Weather", true)) { + pm.registerEvents(new weather(), this); + } + if (getConfig().getBoolean("Time", true)) { + pm.registerEvents(new time(), this); + } + if (getConfig().getBoolean("BlockDamage", true)) { + pm.registerEvents(new blockdamage(), this); + } + /* + * if(getConfig().getBoolean("CrystalProtect", true)){ + * pm.registerEvents(new crystalprotect(), this); + * } + */ + } + } else { + logInfo("Can't find plugin Residence!"); + this.setEnabled(false); + } + } +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/animalkilling.java b/src/main/java/cn/citycraft/ResExtras/flags/animalkilling.java new file mode 100644 index 0000000..a45e32a --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/animalkilling.java @@ -0,0 +1,51 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Animals; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.Entity; +import org.bukkit.entity.IronGolem; +import org.bukkit.entity.Player; +import org.bukkit.entity.Snowman; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByEntityEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class animalkilling implements Listener { + public Player cause; + + @EventHandler(priority = EventPriority.NORMAL) + public void AnimalKilling(final EntityDamageByEntityEvent event) { + if (event.isCancelled()) { + return; + } + final Entity damager = event.getDamager(); + if ((!(damager instanceof Arrow)) && (!(damager instanceof Player))) { + return; + } + if ((damager instanceof Arrow) && (!(((Arrow) damager).getShooter() instanceof Player))) { + return; + } else if (damager instanceof Player) { + cause = (Player) damager; + } else { + cause = (Player) ((Arrow) damager).getShooter(); + } + final boolean resadmin = Residence.isResAdminOn(cause); + if (resadmin) { + return; + } + final Entity entity = event.getEntity(); + final ClaimedResidence res = Residence.getResidenceManager().getByLoc(entity.getLocation()); + + if (res != null && !res.getPermissions().playerHas(cause.getName().toString(), "animalkilling", true)) { + if ((entity instanceof Animals) || (entity instanceof IronGolem) || (entity instanceof Snowman)) { + cause.sendMessage(ChatColor.RED + "You cannot kill animals here!"); + event.setCancelled(true); + } + } + } +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/bat.java b/src/main/java/cn/citycraft/ResExtras/flags/bat.java new file mode 100644 index 0000000..b7a32b2 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/bat.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Bat; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class bat implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Bat(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Bat) + { + if (FlagPermissions.has("bat", true)) + return; + event.setCancelled(true); + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/blaze.java b/src/main/java/cn/citycraft/ResExtras/flags/blaze.java new file mode 100644 index 0000000..3d895ad --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/blaze.java @@ -0,0 +1,30 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Blaze; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class blaze implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Blaze(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Blaze) + { + if (FlagPermissions.has("blaze", true)) + return; + event.setCancelled(true); + } +} +} + diff --git a/src/main/java/cn/citycraft/ResExtras/flags/blockdamage.java b/src/main/java/cn/citycraft/ResExtras/flags/blockdamage.java new file mode 100644 index 0000000..c87d72b --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/blockdamage.java @@ -0,0 +1,23 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityExplodeEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class blockdamage implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void BlockDamage(EntityExplodeEvent event) { + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getLocation()); + if(res!=null) { + if(!res.getPermissions().has("blockdamage", true)) { + event.setCancelled(true); + } + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/cavespider.java b/src/main/java/cn/citycraft/ResExtras/flags/cavespider.java new file mode 100644 index 0000000..ae93401 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/cavespider.java @@ -0,0 +1,31 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.CaveSpider; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class cavespider implements Listener { + + + @EventHandler(priority = EventPriority.NORMAL) + public void CaveSpider(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof CaveSpider) + { + if (FlagPermissions.has("cavespider", true)) + return; + event.setCancelled(true); + } +} +} + diff --git a/src/main/java/cn/citycraft/ResExtras/flags/chicken.java b/src/main/java/cn/citycraft/ResExtras/flags/chicken.java new file mode 100644 index 0000000..6370c0d --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/chicken.java @@ -0,0 +1,30 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Chicken; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class chicken implements Listener { + + + @EventHandler(priority = EventPriority.NORMAL) + public void Chicken(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Chicken) + { + if (FlagPermissions.has("chicken", true)) + return; + event.setCancelled(true); + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/commands.java b/src/main/java/cn/citycraft/ResExtras/flags/commands.java new file mode 100644 index 0000000..9df2fc8 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/commands.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerCommandPreprocessEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class commands implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Commands(PlayerCommandPreprocessEvent event){ + Player player = event.getPlayer(); + Location loc = event.getPlayer().getLocation(); + boolean resadmin = Residence.isResAdminOn(player); + ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc); + String playername = player.getName(); + if(res!=null && !res.getPermissions().playerHas(playername, "commands", true)&&!resadmin){ + event.setCancelled(true); + event.getPlayer().sendMessage(derpa + "You cannot use commands here!"); + } + } + ChatColor derpa = ChatColor.RED; +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/cow.java b/src/main/java/cn/citycraft/ResExtras/flags/cow.java new file mode 100644 index 0000000..ba802eb --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/cow.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Cow; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class cow implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Cow(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Cow) + { + if (FlagPermissions.has("cow", true)) + return; + event.setCancelled(true); + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/creeperspawn.java b/src/main/java/cn/citycraft/ResExtras/flags/creeperspawn.java new file mode 100644 index 0000000..9edfa3a --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/creeperspawn.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Creeper; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class creeperspawn implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void CreeperSpawn(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Creeper) + { + if (FlagPermissions.has("creeperspawn", true)) + return; + event.setCancelled(true); + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/drops.java b/src/main/java/cn/citycraft/ResExtras/flags/drops.java new file mode 100644 index 0000000..b388167 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/drops.java @@ -0,0 +1,30 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerDropItemEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class drops implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Drops(PlayerDropItemEvent event){ + if(event.isCancelled()) + return; + Player player = event.getPlayer(); + boolean resadmin = Residence.isResAdminOn(player); + ClaimedResidence res = Residence.getResidenceManager().getByLoc (event.getItemDrop().getLocation()); + String playername = player.getName(); + if(res!=null){ + if(!res.getPermissions().playerHas(playername, "drops", true)&&!resadmin){ + event.setCancelled(true); + event.getPlayer().sendMessage(derpa + "You cannot drop items here!"); + } + } + } + ChatColor derpa = ChatColor.RED; +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/eggs.java b/src/main/java/cn/citycraft/ResExtras/flags/eggs.java new file mode 100644 index 0000000..0a6abe7 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/eggs.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerEggThrowEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class eggs implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Eggs(PlayerEggThrowEvent event){ + Player player = event.getPlayer(); + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getPlayer().getLocation()); + boolean resadmin = Residence.isResAdminOn(player); + String playername = player.getName(); + if(res!=null) { + if(!res.getPermissions().playerHas(playername, "eggs", true) && !resadmin) { + event.setHatching(false); + event.getPlayer().sendMessage(derpa + "You cannot throw eggys!"); + } + } + } + ChatColor derpa = ChatColor.RED; +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/enderman.java b/src/main/java/cn/citycraft/ResExtras/flags/enderman.java new file mode 100644 index 0000000..9bb4eec --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/enderman.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Enderman; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class enderman implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Enderman(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Enderman) + { + if (FlagPermissions.has("enderman", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/enderpearl.java b/src/main/java/cn/citycraft/ResExtras/flags/enderpearl.java new file mode 100644 index 0000000..b4d25cd --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/enderpearl.java @@ -0,0 +1,33 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerTeleportEvent; +import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class enderpearl implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Enderpearl(PlayerTeleportEvent event){ + if(event.isCancelled()) + return; + Location loc = event.getTo(); + Player player = event.getPlayer(); + ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc); + boolean resadmin = Residence.isResAdminOn(player); + String playername = player.getName(); + if(res!=null){ + if(event.getCause()==TeleportCause.ENDER_PEARL && !res.getPermissions().playerHas(playername, "enderpearl", true)&&!resadmin){ + event.setCancelled(true); + event.getPlayer().sendMessage(derpa + "You cannot use ender pearls here!"); + } + } + } + ChatColor derpa = ChatColor.RED; +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/falldamage.java b/src/main/java/cn/citycraft/ResExtras/flags/falldamage.java new file mode 100644 index 0000000..21fb72f --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/falldamage.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageEvent; +import org.bukkit.event.entity.EntityDamageEvent.DamageCause; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class falldamage implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void FallDamage(EntityDamageEvent event){ + if(event.isCancelled()) + return; + Entity entity = event.getEntity(); + ClaimedResidence res = Residence.getResidenceManager().getByLoc(entity.getLocation()); + if(event.getCause() == DamageCause.FALL && event.getEntity() instanceof Player){ + if(res!=null){ + if(!res.getPermissions().has("falldamage", true)){ + event.setCancelled(true); + } + } + } + } +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/fishing.java b/src/main/java/cn/citycraft/ResExtras/flags/fishing.java new file mode 100644 index 0000000..6b1b3bc --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/fishing.java @@ -0,0 +1,30 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerFishEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class fishing implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Fishing(PlayerFishEvent event){ + if(event.isCancelled()) + return; + Player player = event.getPlayer(); + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getPlayer().getLocation()); + boolean resadmin = Residence.isResAdminOn(player); + String playername = player.getName(); + if(res!=null) { + if(!res.getPermissions().playerHas(playername, "fishing", true) && !resadmin) { + event.setCancelled(true); + event.getPlayer().sendMessage(derpa + "You cannot fish here!"); + } + } + } + ChatColor derpa = ChatColor.RED; +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/form.java b/src/main/java/cn/citycraft/ResExtras/flags/form.java new file mode 100644 index 0000000..c4efcab --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/form.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockFormEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class form implements Listener { + @EventHandler(priority = EventPriority.LOW) + public void Form(BlockFormEvent event) { + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getBlock().getLocation()); + if(res!=null) { + if(!res.getPermissions().has("form", true)) { + event.setCancelled(true); + } + } + else { + if (!Residence.getWorldFlags().getPerms(event.getBlock().getWorld().getName()).has("form", true)) { + event.setCancelled(true); + } + } + } +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/ghast.java b/src/main/java/cn/citycraft/ResExtras/flags/ghast.java new file mode 100644 index 0000000..767b734 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/ghast.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Ghast; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class ghast implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Ghast(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Ghast) + { + if (FlagPermissions.has("ghast", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/god.java b/src/main/java/cn/citycraft/ResExtras/flags/god.java new file mode 100644 index 0000000..3707412 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/god.java @@ -0,0 +1,41 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.Effect; +import org.bukkit.Location; +import org.bukkit.World; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageEvent; + + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class god implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void God(EntityDamageEvent event){ + if(event.isCancelled()) + return; + try { + Entity entity = event.getEntity(); + Player player = ((Player) event.getEntity()); + World world = player.getWorld(); + String playername = player.getName(); + Location location = player.getLocation(); + ClaimedResidence res = Residence.getResidenceManager().getByLoc(entity.getLocation()); + if(event.getEntity() instanceof Player){ + if(res!=null){ + if(res.getPermissions().playerHas(playername, "god", false)){ + event.setCancelled(true); + world.playEffect(location, Effect.MOBSPAWNER_FLAMES, 4); + } + } + } + } catch (Exception ex) { + + } + } + } diff --git a/src/main/java/cn/citycraft/ResExtras/flags/grow.java b/src/main/java/cn/citycraft/ResExtras/flags/grow.java new file mode 100644 index 0000000..f42f91a --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/grow.java @@ -0,0 +1,50 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockGrowEvent; +import org.bukkit.event.block.BlockSpreadEvent; +import org.bukkit.event.world.StructureGrowEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class grow implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void StructureGrow(StructureGrowEvent event){ + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getLocation()); + if(res!=null) { + if(!res.getPermissions().has("grow", true)) { + event.setCancelled(true); + return; + } + } + } +@EventHandler(priority = EventPriority.NORMAL) +public void BlockGrow(BlockGrowEvent event){ + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getBlock().getLocation()); + if(res!=null) { + if(!res.getPermissions().has("grow", true)) { + event.setCancelled(true); + return; + } + } +} +@EventHandler(priority = EventPriority.NORMAL) +public void BlockGrowSpread(BlockSpreadEvent event){ + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getBlock().getLocation()); + if(res!=null) { + if(!res.getPermissions().has("grow", true)) { + event.setCancelled(true); + return; + } + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/hunger.java b/src/main/java/cn/citycraft/ResExtras/flags/hunger.java new file mode 100644 index 0000000..0fd8f94 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/hunger.java @@ -0,0 +1,24 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.FoodLevelChangeEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class hunger implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Hunger(FoodLevelChangeEvent event){ + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getEntity().getLocation()); + if(res!=null) { + if(!res.getPermissions().has("hunger", true)) { + event.setCancelled(true); + return; + } + } + } +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/irongolem.java b/src/main/java/cn/citycraft/ResExtras/flags/irongolem.java new file mode 100644 index 0000000..0d94c75 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/irongolem.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.IronGolem; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class irongolem implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void IronGolem(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof IronGolem) + { + if (FlagPermissions.has("irongolem", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/lightning.java b/src/main/java/cn/citycraft/ResExtras/flags/lightning.java new file mode 100644 index 0000000..6424d30 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/lightning.java @@ -0,0 +1,24 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.weather.LightningStrikeEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class lightning implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Lightning(LightningStrikeEvent event){ + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getLightning().getLocation()); + if(res!=null) { + if(!res.getPermissions().has("lightning", true)) { + event.setCancelled(true); + return; + } + } + } +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/magmacube.java b/src/main/java/cn/citycraft/ResExtras/flags/magmacube.java new file mode 100644 index 0000000..471a57e --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/magmacube.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.MagmaCube; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class magmacube implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void MagmaCube(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof MagmaCube) + { + if (FlagPermissions.has("magmacube", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/melt.java b/src/main/java/cn/citycraft/ResExtras/flags/melt.java new file mode 100644 index 0000000..67b87f4 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/melt.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.block.BlockFadeEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class melt implements Listener { + @EventHandler(priority = EventPriority.LOW) + public void Melt(BlockFadeEvent event) { + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getBlock().getLocation()); + if(res!=null) { + if(!res.getPermissions().has("melt", true)) { + event.setCancelled(true); + } + } + else { + if (!Residence.getWorldFlags().getPerms(event.getBlock().getWorld().getName()).has("melt", true)) { + event.setCancelled(true); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/mobkilling.java b/src/main/java/cn/citycraft/ResExtras/flags/mobkilling.java new file mode 100644 index 0000000..62f3b7d --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/mobkilling.java @@ -0,0 +1,49 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Monster; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByEntityEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class mobkilling implements Listener { + public Player cause; + + @EventHandler(priority = EventPriority.NORMAL) + public void Mobkilling(final EntityDamageByEntityEvent event) { + if (event.isCancelled()) { + return; + } + final Entity damager = event.getDamager(); + if ((!(damager instanceof Arrow)) && (!(damager instanceof Player))) { + return; + } + if ((damager instanceof Arrow) && (!(((Arrow) damager).getShooter() instanceof Player))) { + return; + } else if (damager instanceof Player) { + cause = (Player) damager; + } else { + cause = (Player) ((Arrow) damager).getShooter(); + } + final boolean resadmin = Residence.isResAdminOn(cause); + if (resadmin) { + return; + } + final Entity entity = event.getEntity(); + final ClaimedResidence res = Residence.getResidenceManager().getByLoc(entity.getLocation()); + + if (res != null && !res.getPermissions().playerHas(cause.getName().toString(), "mobkilling", true)) { + if (entity instanceof Monster) { + cause.sendMessage(ChatColor.RED + "You cannot kill mobs here!"); + event.setCancelled(true); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/mooshroom.java b/src/main/java/cn/citycraft/ResExtras/flags/mooshroom.java new file mode 100644 index 0000000..00436b0 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/mooshroom.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.MushroomCow; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class mooshroom implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Mooshroom(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof MushroomCow) + { + if (FlagPermissions.has("mooshroom", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/ocelot.java b/src/main/java/cn/citycraft/ResExtras/flags/ocelot.java new file mode 100644 index 0000000..78452bc --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/ocelot.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.Ocelot; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class ocelot implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Ocelot(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Ocelot) + { + if (FlagPermissions.has("ocelot", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/pickup.java b/src/main/java/cn/citycraft/ResExtras/flags/pickup.java new file mode 100644 index 0000000..cfc3728 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/pickup.java @@ -0,0 +1,30 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerPickupItemEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class pickup implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void PickupItem(PlayerPickupItemEvent event){ + if(event.isCancelled()) + return; + Player player = event.getPlayer(); + boolean resadmin = Residence.isResAdminOn(player); + ClaimedResidence res = Residence.getResidenceManager().getByLoc (event.getItem().getLocation()); + String playername = player.getName(); + if(res!=null){ + if(!res.getPermissions().playerHas(playername, "pickup", true)&&!resadmin){ + event.setCancelled(true); + event.getPlayer().sendMessage(derpa + "You cannot pickup items here!"); + } + } + } + ChatColor derpa = ChatColor.RED; +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/pig.java b/src/main/java/cn/citycraft/ResExtras/flags/pig.java new file mode 100644 index 0000000..66de0ab --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/pig.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Pig; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class pig implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Pig(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Pig) + { + if (FlagPermissions.has("pig", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/pigsaddle.java b/src/main/java/cn/citycraft/ResExtras/flags/pigsaddle.java new file mode 100644 index 0000000..b412b7f --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/pigsaddle.java @@ -0,0 +1,35 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerInteractEntityEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class pigsaddle implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void PiggySaddle(PlayerInteractEntityEvent event){ + if(event.isCancelled()) + return; + Entity pig = event.getRightClicked(); + Player player = event.getPlayer(); + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getPlayer().getLocation()); + boolean resadmin = Residence.isResAdminOn(player); + String playername = player.getName(); + if(res!=null) { + if(!res.getPermissions().playerHas(playername, "pigsaddle", true)&&!resadmin) { + if(pig.getType() == EntityType.PIG){ + event.setCancelled(true); + event.getPlayer().sendMessage(derpa + "You cannot derp here!"); + } + } + } + } + ChatColor derpa = ChatColor.RED; +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/pigzap.java b/src/main/java/cn/citycraft/ResExtras/flags/pigzap.java new file mode 100644 index 0000000..b77a69a --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/pigzap.java @@ -0,0 +1,24 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.PigZapEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class pigzap implements Listener { + +@EventHandler(priority = EventPriority.NORMAL) +public void PiggyZap(PigZapEvent event){ + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getEntity().getLocation()); + if(res!=null) { + if(!res.getPermissions().has("pigzap", true)) { + event.setCancelled(true); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/portal.java b/src/main/java/cn/citycraft/ResExtras/flags/portal.java new file mode 100644 index 0000000..36e35ce --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/portal.java @@ -0,0 +1,32 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerPortalEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class portal implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Portal(PlayerPortalEvent event){ + Player player = event.getPlayer(); + Location loc = event.getPlayer().getLocation(); + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc); + boolean resadmin = Residence.isResAdminOn(player); + String playername = player.getName(); + if(res!=null){ + if(!res.getPermissions().playerHas(playername, "portal", true)&&!resadmin){ + event.setCancelled(true); + event.getPlayer().sendMessage(derpa + "You cannot use portals here!"); + } + } + } + ChatColor derpa = ChatColor.RED; +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/shear.java b/src/main/java/cn/citycraft/ResExtras/flags/shear.java new file mode 100644 index 0000000..afd8363 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/shear.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerShearEntityEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class shear implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Shear(PlayerShearEntityEvent event){ + if(event.isCancelled()) + return; + Player player = event.getPlayer(); + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getPlayer().getLocation()); + boolean resadmin = Residence.isResAdminOn(player); + String playername = player.getName(); + if(res!=null && !res.getPermissions().playerHas(playername, "shear", true)&&!resadmin){ + event.setCancelled(true); + event.getPlayer().sendMessage(derpa + "You cannot shear here!"); + } + } + ChatColor derpa = ChatColor.RED; +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/sheep.java b/src/main/java/cn/citycraft/ResExtras/flags/sheep.java new file mode 100644 index 0000000..7a11c91 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/sheep.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Sheep; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class sheep implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Sheep(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Sheep) + { + if (FlagPermissions.has("sheep", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/silverfish.java b/src/main/java/cn/citycraft/ResExtras/flags/silverfish.java new file mode 100644 index 0000000..ecd85b0 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/silverfish.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Silverfish; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class silverfish implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Silverfish(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Silverfish) + { + if (FlagPermissions.has("silverfish", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/skeleton.java b/src/main/java/cn/citycraft/ResExtras/flags/skeleton.java new file mode 100644 index 0000000..060b553 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/skeleton.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Skeleton; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class skeleton implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Skeleton(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Skeleton) + { + if (FlagPermissions.has("skeleton", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/slime.java b/src/main/java/cn/citycraft/ResExtras/flags/slime.java new file mode 100644 index 0000000..aca6d29 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/slime.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Slime; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class slime implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Slime(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Slime) + { + if (FlagPermissions.has("slime", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/slimesplit.java b/src/main/java/cn/citycraft/ResExtras/flags/slimesplit.java new file mode 100644 index 0000000..0819b2a --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/slimesplit.java @@ -0,0 +1,23 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.SlimeSplitEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class slimesplit implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void SlimeSplit(SlimeSplitEvent event){ + if(event.isCancelled()) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getEntity().getLocation()); + if(res!=null) { + if(!res.getPermissions().has("slimesplit", true)) { + event.setCancelled(true); + } + } + } +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/sneak.java b/src/main/java/cn/citycraft/ResExtras/flags/sneak.java new file mode 100644 index 0000000..ddc389f --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/sneak.java @@ -0,0 +1,39 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerMoveEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class sneak implements Listener { + @EventHandler(priority = EventPriority.MONITOR) + public void Sneak(PlayerMoveEvent event){ + if(event.isCancelled()) + return; + Player player = event.getPlayer(); + if(!player.isSprinting() && (!player.isSneaking())) + return; + boolean resadmin = Residence.isResAdminOn(player); + if (resadmin) { + return; + } + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getPlayer().getLocation()); + String playername = player.getName(); + if(res!=null) { + if(!res.getPermissions().playerHas(playername, "sneak", true) && player.isSneaking()) { + long currentTime = System.currentTimeMillis(); + if(currentTime%2000>=0 && currentTime%2000<=100){ + event.setCancelled(true); + player.sendMessage(derpa + "You cannot sneak here!"); + return; + } + } + } + } + ChatColor derpa = ChatColor.RED; +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/snowgolem.java b/src/main/java/cn/citycraft/ResExtras/flags/snowgolem.java new file mode 100644 index 0000000..7749f2a --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/snowgolem.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Snowman; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class snowgolem implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void SnowGolem(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Snowman) + { + if (FlagPermissions.has("snowgolem", true)) + return; + event.setCancelled(true); + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/spider.java b/src/main/java/cn/citycraft/ResExtras/flags/spider.java new file mode 100644 index 0000000..b4e38a6 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/spider.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Spider; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class spider implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Spider(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Spider) + { + if (FlagPermissions.has("spider", true)) + return; + event.setCancelled(true); + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/sprint.java b/src/main/java/cn/citycraft/ResExtras/flags/sprint.java new file mode 100644 index 0000000..32a6f23 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/sprint.java @@ -0,0 +1,39 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerMoveEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class sprint implements Listener { + @EventHandler(priority = EventPriority.MONITOR) + public void Sprint(PlayerMoveEvent event){ + if(event.isCancelled()) + return; + Player player = event.getPlayer(); + String playername = player.getName(); + boolean resadmin = Residence.isResAdminOn(player); + if (resadmin) { + return; + } + if(!player.isSprinting() && (!player.isSneaking())) + return; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getPlayer().getLocation()); + if(res!=null) { + if(!res.getPermissions().playerHas(playername, "sprint", true) && player.isSprinting()) { + event.setCancelled(true); + long currentTime = System.currentTimeMillis(); + if(currentTime%2000>=0 && currentTime%2000<=100){ + event.getPlayer().sendMessage(derpa + "You cannot sprint here!"); + return; + } + } + } + } + ChatColor derpa = ChatColor.RED; +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/squid.java b/src/main/java/cn/citycraft/ResExtras/flags/squid.java new file mode 100644 index 0000000..203ed94 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/squid.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Squid; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class squid implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void Squid(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Squid) + { + if (FlagPermissions.has("squid", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/time.java b/src/main/java/cn/citycraft/ResExtras/flags/time.java new file mode 100644 index 0000000..719a62f --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/time.java @@ -0,0 +1,52 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; + +import com.bekvon.bukkit.residence.event.ResidenceFlagChangeEvent; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; +import com.bekvon.bukkit.residence.protection.FlagPermissions.FlagState; + +public class time implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void onResidenceFlag(final ResidenceFlagChangeEvent event) { + final ClaimedResidence res = event.getResidence(); + if (event.getFlag().equalsIgnoreCase("day")) { + if (event.getNewState() == FlagState.TRUE) { + for (final Player player : res.getPlayersInResidence()) { + player.setPlayerTime(6000, false); + } + } + if (event.getNewState() == FlagState.FALSE) { + for (final Player player : res.getPlayersInResidence()) { + player.resetPlayerTime(); + } + } + if (event.getNewState() == FlagState.NEITHER) { + for (final Player player : res.getPlayersInResidence()) { + player.resetPlayerTime(); + } + } + } + if (event.getFlag().equalsIgnoreCase("night")) { + if (event.getNewState() == FlagState.TRUE) { + for (final Player player : res.getPlayersInResidence()) { + player.setPlayerTime(14000, false); + } + } + if (event.getNewState() == FlagState.FALSE) { + for (final Player player : res.getPlayersInResidence()) { + player.resetPlayerTime(); + } + } + if (event.getNewState() == FlagState.NEITHER) { + for (final Player player : res.getPlayersInResidence()) { + player.resetPlayerTime(); + } + } + } + } +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/trade.java b/src/main/java/cn/citycraft/ResExtras/flags/trade.java new file mode 100644 index 0000000..12cfc0f --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/trade.java @@ -0,0 +1,34 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Entity; +import org.bukkit.entity.EntityType; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.player.PlayerInteractEntityEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class trade implements Listener { + ChatColor derpa = ChatColor.RED; + + @EventHandler(priority = EventPriority.NORMAL) + public void Trade(final PlayerInteractEntityEvent event) { + final Entity uglyguy = event.getRightClicked(); + if (uglyguy.getType() == EntityType.VILLAGER) { + final Player player = event.getPlayer(); + final ClaimedResidence res = Residence.getResidenceManager().getByLoc(event.getPlayer().getLocation()); + final boolean resadmin = Residence.isResAdminOn(player); + final String playername = player.getName(); + if (res != null) { + if (!res.getPermissions().playerHas(playername, "trade", true) && !resadmin) { + event.setCancelled(true); + event.getPlayer().sendMessage(derpa + "You cannot trade here!"); + } + } + } + } +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/vehicleprotect.java b/src/main/java/cn/citycraft/ResExtras/flags/vehicleprotect.java new file mode 100644 index 0000000..73ee81c --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/vehicleprotect.java @@ -0,0 +1,60 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.Location; +import org.bukkit.entity.Boat; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Minecart; +import org.bukkit.entity.Monster; +import org.bukkit.entity.Player; +import org.bukkit.entity.Vehicle; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.vehicle.VehicleDestroyEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class vehicleprotect implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void onVehicleDestroy(VehicleDestroyEvent event){ + if(event.isCancelled()) + return; + try { + Location loc = event.getVehicle().getLocation(); + Entity attacker = event.getAttacker(); + Vehicle vehicle = event.getVehicle(); + Player player; + player = (Player)attacker; + ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc); + boolean resadmin = Residence.isResAdminOn(player); + String playername = player.getName(); + if(res!=null){ + if(res.getPermissions().playerHas(playername, "vehicleprotect", false) && !resadmin && (vehicle instanceof Minecart || vehicle instanceof Boat) && (attacker instanceof Player || attacker instanceof Monster)){ + event.setCancelled(true); + player.sendMessage(derpa + "You cannot destroy vehicles here!"); + return; + } + } + } catch (Exception ex) { + + } + } + @EventHandler(priority = EventPriority.NORMAL) + public void onVehicleDestroyEntity(VehicleDestroyEvent event){ + if(event.isCancelled()) + return; + Location loc = event.getVehicle().getLocation(); + Entity attacker = event.getAttacker(); + Vehicle vehicle = event.getVehicle(); + ClaimedResidence res = Residence.getResidenceManager().getByLoc(loc); + if(res!=null){ + if(res.getPermissions().has("vehicleprotect", false) && (vehicle instanceof Minecart || vehicle instanceof Boat) && attacker instanceof Monster){ + event.setCancelled(true); + return; + } + } + } + ChatColor derpa = ChatColor.RED; +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/villager.java b/src/main/java/cn/citycraft/ResExtras/flags/villager.java new file mode 100644 index 0000000..5513462 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/villager.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Villager; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class villager implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Villager(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Villager) + { + if (FlagPermissions.has("villager", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/villagerkilling.java b/src/main/java/cn/citycraft/ResExtras/flags/villagerkilling.java new file mode 100644 index 0000000..469b4ae --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/villagerkilling.java @@ -0,0 +1,49 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.ChatColor; +import org.bukkit.entity.Arrow; +import org.bukkit.entity.Entity; +import org.bukkit.entity.Player; +import org.bukkit.entity.Villager; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.EntityDamageByEntityEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; + +public class villagerkilling implements Listener { + public Player cause; + + @EventHandler(priority = EventPriority.NORMAL) + public void VillagerKilling(final EntityDamageByEntityEvent event) { + if (event.isCancelled()) { + return; + } + final Entity damager = event.getDamager(); + if ((!(damager instanceof Arrow)) && (!(damager instanceof Player))) { + return; + } + if ((damager instanceof Arrow) && (!(((Arrow) damager).getShooter() instanceof Player))) { + return; + } else if (damager instanceof Player) { + cause = (Player) damager; + } else { + cause = (Player) ((Arrow) damager).getShooter(); + } + final boolean resadmin = Residence.isResAdminOn(cause); + if (resadmin) { + return; + } + final Entity entity = event.getEntity(); + final ClaimedResidence res = Residence.getResidenceManager().getByLoc(entity.getLocation()); + + if (res != null && !res.getPermissions().playerHas(cause.getName().toString(), "villagerkilling", true)) { + if (entity instanceof Villager) { + cause.sendMessage(ChatColor.RED + "You cannot kill villagers here!"); + event.setCancelled(true); + } + } + } +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/weather.java b/src/main/java/cn/citycraft/ResExtras/flags/weather.java new file mode 100644 index 0000000..71acaa5 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/weather.java @@ -0,0 +1,35 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.WeatherType; +import org.bukkit.entity.Player; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; + +import com.bekvon.bukkit.residence.event.ResidenceFlagChangeEvent; +import com.bekvon.bukkit.residence.protection.ClaimedResidence; +import com.bekvon.bukkit.residence.protection.FlagPermissions.FlagState; + +public class weather implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void onResidenceFlag(final ResidenceFlagChangeEvent event) { + if (event.getFlag().equalsIgnoreCase("weather")) { + final ClaimedResidence res = event.getResidence(); + if (event.getNewState() == FlagState.TRUE) { + for (final Player player : res.getPlayersInResidence()) { + player.setPlayerWeather(WeatherType.DOWNFALL); + } + } + if (event.getNewState() == FlagState.FALSE) { + for (final Player player : res.getPlayersInResidence()) { + player.setPlayerWeather(WeatherType.CLEAR); + } + } + if (event.getNewState() == FlagState.NEITHER) { + for (final Player player : res.getPlayersInResidence()) { + player.resetPlayerWeather(); + } + } + } + } +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/witch.java b/src/main/java/cn/citycraft/ResExtras/flags/witch.java new file mode 100644 index 0000000..2127ca6 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/witch.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Witch; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class witch implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Witch(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Witch) + { + if (FlagPermissions.has("witch", true)) + return; + event.setCancelled(true); + } +} +} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/ResExtras/flags/witherspawn.java b/src/main/java/cn/citycraft/ResExtras/flags/witherspawn.java new file mode 100644 index 0000000..e97c33c --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/witherspawn.java @@ -0,0 +1,28 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Wither; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class witherspawn implements Listener { + @EventHandler(priority = EventPriority.NORMAL) + public void WitherSpawn(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Wither) + { + if (FlagPermissions.has("Witherspawn", true)) + return; + event.setCancelled(true); + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/wolf.java b/src/main/java/cn/citycraft/ResExtras/flags/wolf.java new file mode 100644 index 0000000..1a5a085 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/wolf.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Wolf; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class wolf implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Wolf(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Wolf) + { + if (FlagPermissions.has("wolf", true)) + return; + event.setCancelled(true); + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/zombie.java b/src/main/java/cn/citycraft/ResExtras/flags/zombie.java new file mode 100644 index 0000000..1b0b750 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/zombie.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.Zombie; +import org.bukkit.entity.LivingEntity; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class zombie implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void Zombie(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof Zombie) + { + if (FlagPermissions.has("zombie", true)) + return; + event.setCancelled(true); + } +} +} diff --git a/src/main/java/cn/citycraft/ResExtras/flags/zombiepigmen.java b/src/main/java/cn/citycraft/ResExtras/flags/zombiepigmen.java new file mode 100644 index 0000000..1f44325 --- /dev/null +++ b/src/main/java/cn/citycraft/ResExtras/flags/zombiepigmen.java @@ -0,0 +1,29 @@ +package cn.citycraft.ResExtras.flags; + +import org.bukkit.entity.LivingEntity; +import org.bukkit.entity.PigZombie; +import org.bukkit.event.EventHandler; +import org.bukkit.event.EventPriority; +import org.bukkit.event.Listener; +import org.bukkit.event.entity.CreatureSpawnEvent; + +import com.bekvon.bukkit.residence.Residence; +import com.bekvon.bukkit.residence.protection.FlagPermissions; + +public class zombiepigmen implements Listener { + + @EventHandler(priority = EventPriority.NORMAL) + public void ZombiePigmen(CreatureSpawnEvent event) + { + FlagPermissions FlagPermissions = Residence.getPermsByLoc(event.getLocation()); + LivingEntity Entity = event.getEntity(); + if (FlagPermissions == null) + return; + if (Entity instanceof PigZombie) + { + if (FlagPermissions.has("zombiepigmen", true)) + return; + event.setCancelled(true); + } +} +} diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml new file mode 100644 index 0000000..2197fba --- /dev/null +++ b/src/main/resources/plugin.yml @@ -0,0 +1,29 @@ +name: ${project.artifactId} +description: ${project.description} +main: ${project.groupId}.${project.artifactId}.${project.artifactId} +version: ${project.version}-Build#${env.BUILD_NUMBER} +author: [Tonkovich,喵♂呜] +website: ${jenkins.url}/job/${project.artifactId}/ +depend: [Residence] +permissions: + ResExtras.*: + description: Allows all permissions from ResExtras. + children: + ResExtras.version: true + ResExtras.list: true + ResExtras.help: true + ResExtras.version: + description: ResExtras Version permission. + default: true + ResExtras.list: + description: Lists all the ResExtras Flags. + default: true + ResExtras.help: + description: Displays help menu. + default: true +commands: + resextras: + aliases: + - re + description: 领地扩展主命令 + usage: / \ No newline at end of file