From 4609b8ba1ff2fb7ef99e9144ae7b59514488dd0f Mon Sep 17 00:00:00 2001 From: j502647092 Date: Sun, 1 Nov 2015 02:29:07 +0800 Subject: [PATCH] =?UTF-8?q?=E7=A7=BB=E9=99=A4=E5=A4=9A=E4=BD=99=E7=9A=84Fl?= =?UTF-8?q?ag=20=E4=BB=A5=E5=AD=90=E6=8F=92=E4=BB=B6=E7=9A=84=E5=BD=A2?= =?UTF-8?q?=E5=BC=8F=E4=BD=BF=E7=94=A8...?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Signed-off-by: j502647092 --- pom.xml | 2 +- .../listeners/flag/ResidenceFlyListener.java | 112 ------------------ .../flag/ResidenceInteractListener.java | 48 -------- .../Residence/manager/FlagManager.java | 4 - src/main/resources/plugin.yml | 2 +- 5 files changed, 2 insertions(+), 166 deletions(-) delete mode 100644 src/main/java/cn/citycraft/Residence/listeners/flag/ResidenceFlyListener.java delete mode 100644 src/main/java/cn/citycraft/Residence/listeners/flag/ResidenceInteractListener.java diff --git a/pom.xml b/pom.xml index 78f988e..a540722 100644 --- a/pom.xml +++ b/pom.xml @@ -55,7 +55,7 @@ http://ci.citycraft.cn:8080 - &e还原protection包路径 &a兼容部分老插件... + &e还原protection包路径 &a兼容部分老插件 &c移除冗余Flag... UTF-8 diff --git a/src/main/java/cn/citycraft/Residence/listeners/flag/ResidenceFlyListener.java b/src/main/java/cn/citycraft/Residence/listeners/flag/ResidenceFlyListener.java deleted file mode 100644 index cdcf1b4..0000000 --- a/src/main/java/cn/citycraft/Residence/listeners/flag/ResidenceFlyListener.java +++ /dev/null @@ -1,112 +0,0 @@ -package cn.citycraft.Residence.listeners.flag; - -import java.util.HashMap; - -import org.bukkit.ChatColor; -import org.bukkit.GameMode; -import org.bukkit.entity.Player; -import org.bukkit.event.EventHandler; -import org.bukkit.event.Listener; -import org.bukkit.event.entity.EntityDamageEvent; -import org.bukkit.event.entity.EntityDamageEvent.DamageCause; - -import com.bekvon.bukkit.residence.event.ResidenceChangedEvent; -import com.bekvon.bukkit.residence.event.ResidenceDeleteEvent; -import com.bekvon.bukkit.residence.event.ResidenceFlagChangeEvent; -import com.bekvon.bukkit.residence.protection.ClaimedResidence; -import com.bekvon.bukkit.residence.protection.FlagPermissions; -import com.bekvon.bukkit.residence.protection.ResidencePermissions; - -import cn.citycraft.Residence.ResidenceMain; - -public class ResidenceFlyListener implements Listener { - - HashMap fall = new HashMap(); - ResidenceMain plugin; - - public ResidenceFlyListener(final ResidenceMain plugin) { - this.plugin = plugin; - FlagPermissions.addFlag("fly"); - FlagPermissions.addResidenceOnlyFlag("fly"); - } - - @EventHandler(ignoreCancelled = true) - public void FlagChange(final ResidenceFlagChangeEvent e) { - final ClaimedResidence res = e.getResidence(); - for (final Player p : res.getPlayersInResidence()) { - if (!permCheck(p)) { - if (!resPermCheck(res, p)) { - ChangePlayerFly(p, false); - } else { - ChangePlayerFly(p, true); - } - } - } - } - - // ResidenceDeleteEvent.class - // ResidenceFlagChangeEvent.class - - public void onFallDamage(final EntityDamageEvent e) { - if (e.getEntity() instanceof Player) { - final Player p = (Player) e.getEntity(); - if (e.getCause() == DamageCause.FALL) { - if (p == fall.get(p)) { - fall.remove(p); - e.setCancelled(true); - } - } - } - } - - @EventHandler(ignoreCancelled = true) - public void resChange(final ResidenceChangedEvent event) { - final Player player = event.getPlayer(); - final ClaimedResidence resto = event.getTo(); - if (!permCheck(player)) { - if (!resPermCheck(resto, player)) { - ChangePlayerFly(player, false); - } else { - ChangePlayerFly(player, true); - } - } - } - - @EventHandler(ignoreCancelled = true) - public void ResDelete(final ResidenceDeleteEvent e) { - final ClaimedResidence res = e.getResidence(); - for (final Player p : res.getPlayersInResidence()) { - if (!permCheck(p)) { - ChangePlayerFly(p, false); - } - } - } - - void ChangePlayerFly(final Player p, final boolean fly) { - if (p.getAllowFlight() && !fly) { - if (p.isFlying()) { - fall.put(p, p); - } - p.setAllowFlight(false); - p.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("FlagDeny", "fly")); - } - if (!p.getAllowFlight() && fly) { - if (p == fall.get(p)) { - fall.remove(p); - } - p.setAllowFlight(true); - } - } - - boolean permCheck(final Player p) { - return p.hasPermission("resfly.ignore") || p.isOp() || p.getGameMode() == GameMode.CREATIVE; - } - - boolean resPermCheck(final ClaimedResidence res, final Player p) { - if (res == null) { - return false; - } - final ResidencePermissions perms = res.getPermissions(); - return perms.playerHas(p.getName(), "fly", false); - } -} \ No newline at end of file diff --git a/src/main/java/cn/citycraft/Residence/listeners/flag/ResidenceInteractListener.java b/src/main/java/cn/citycraft/Residence/listeners/flag/ResidenceInteractListener.java deleted file mode 100644 index 800a68f..0000000 --- a/src/main/java/cn/citycraft/Residence/listeners/flag/ResidenceInteractListener.java +++ /dev/null @@ -1,48 +0,0 @@ -package cn.citycraft.Residence.listeners.flag; - -import org.bukkit.Location; -import org.bukkit.Material; -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.PlayerInteractEvent; -import org.bukkit.inventory.ItemStack; - -import com.bekvon.bukkit.residence.protection.ClaimedResidence; -import com.bekvon.bukkit.residence.protection.FlagPermissions; - -import cn.citycraft.Residence.ResidenceMain; -import cn.citycraft.Residence.manager.EntityManager; - -public class ResidenceInteractListener implements Listener { - EntityManager entitymanager; - ResidenceMain plugin; - - public ResidenceInteractListener(final ResidenceMain plugin) { - this.plugin = plugin; - this.entitymanager = plugin.getEntityManager(); - FlagPermissions.addFlag("interact"); - FlagPermissions.addFlagToFlagGroup("trusted", "interact"); - } - - @EventHandler(priority = EventPriority.LOWEST) - public void onInteract(final PlayerInteractEvent e) { - final Player p = e.getPlayer(); - if (plugin.isResAdminOn(p)) { - return; - } - final ItemStack it = p.getItemInHand(); - if (it == null || it.getType() == Material.AIR) { - return; - } - final Location loc = e.getClickedBlock().getLocation(); - final ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc); - if (res == null) { - return; - } - final FlagPermissions hasPerm = plugin.getPermsByLocForPlayer(loc, p); - e.setCancelled(hasPerm.has("interact", true)); - } - -} diff --git a/src/main/java/cn/citycraft/Residence/manager/FlagManager.java b/src/main/java/cn/citycraft/Residence/manager/FlagManager.java index 312d057..b8a6696 100644 --- a/src/main/java/cn/citycraft/Residence/manager/FlagManager.java +++ b/src/main/java/cn/citycraft/Residence/manager/FlagManager.java @@ -9,8 +9,6 @@ import org.bukkit.plugin.PluginManager; import cn.citycraft.PluginHelper.config.FileConfig; import cn.citycraft.Residence.ResidenceMain; import cn.citycraft.Residence.listeners.flag.ResidenceAnimalKillingListener; -import cn.citycraft.Residence.listeners.flag.ResidenceFlyListener; -import cn.citycraft.Residence.listeners.flag.ResidenceInteractListener; public class FlagManager { FileConfig config; @@ -30,9 +28,7 @@ public class FlagManager { flagmap = new HashMap(); - flagmap.put(config.getBoolean("Flag.Fly", true), new ResidenceFlyListener(plugin)); flagmap.put(config.getBoolean("Flag.AnimalKilling", true), new ResidenceAnimalKillingListener(plugin)); - flagmap.put(config.getBoolean("Flag.Interact", false), new ResidenceInteractListener(plugin)); for (final Entry fm : flagmap.entrySet()) { if (fm.getKey()) { diff --git a/src/main/resources/plugin.yml b/src/main/resources/plugin.yml index 98d3524..4bcf451 100644 --- a/src/main/resources/plugin.yml +++ b/src/main/resources/plugin.yml @@ -1,7 +1,7 @@ name: ${project.artifactId} description: ${project.description} main: ${project.groupId}.${project.artifactId}.${project.artifactId}Main -version: ${project.version} +version: ${project.version}-Build#${env.BUILD_NUMBER} website: ${jenkins.url}/job/${project.artifactId}/ authors: [bekvon,nate302,t00thpick1,喵♂呜] contributors: [lemon42,smbarbour,inorixu,Shayana_fr]