diff --git a/pom.xml b/pom.xml
index 92824d7..67ee9a6 100644
--- a/pom.xml
+++ b/pom.xml
@@ -3,7 +3,7 @@
4.0.0
cn.citycraft
Residence
- 2.8.1.3
+ 2.8.1.4
Residence
重制版本的领地插件 - 喵♂呜
@@ -38,7 +38,7 @@
cn.citycraft.PluginHelper
- com.bekvon.bukkit.residence
+ ${project.groupId}.${project.artifactId}
@@ -55,7 +55,8 @@
http://ci.citycraft.cn:8080
- &d修复补丁导致的刷物品BUG...
+ &c修复领地管理无法TP的问题...
+ Debug
UTF-8
diff --git a/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener.java b/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener.java
index 8b925e0..d72bd30 100644
--- a/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener.java
+++ b/src/main/java/cn/citycraft/Residence/listeners/ResidencePlayerListener.java
@@ -34,7 +34,6 @@ import org.bukkit.event.player.PlayerMoveEvent;
import org.bukkit.event.player.PlayerQuitEvent;
import org.bukkit.event.player.PlayerRespawnEvent;
import org.bukkit.event.player.PlayerTeleportEvent;
-import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause;
import org.bukkit.plugin.Plugin;
import com.bekvon.bukkit.residence.event.ResidenceChangedEvent;
@@ -105,8 +104,6 @@ public class ResidencePlayerListener implements Listener {
lastOutsideLoc.put(pname, loc);
if (ResOld != null) {
final String leave = ResOld.getLeaveMessage();
-
- // New ResidenceChangeEvent
final ResidenceChangedEvent chgEvent = new ResidenceChangedEvent(ResOld, null, player);
plugin.getServer().getPluginManager().callEvent(chgEvent);
@@ -114,7 +111,7 @@ public class ResidencePlayerListener implements Listener {
if (plugin.getConfigManager().useActionBar()) {
ActionBar.send(player, ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave));
} else {
- player.sendMessage(ChatColor.YELLOW + this.insertMessages(player, ResOld.getName(), ResOld, leave));
+ player.sendMessage(ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave));
}
}
currentRes.remove(pname);
@@ -122,17 +119,16 @@ public class ResidencePlayerListener implements Listener {
}
return;
}
- if (move) {
- if (!res.getPermissions().playerHas(pname, "move", true) && !plugin.isResAdminOn(player) && !player.hasPermission("residence.admin.move")) {
- final Location lastLoc = lastOutsideLoc.get(pname);
- if (lastLoc != null) {
- player.teleport(lastLoc);
- } else {
- player.teleport(res.getOutsideFreeLoc(loc));
- }
- player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMoveDeny", res.getName().split("\\.")[res.getName().split("\\.").length - 1]));
- return;
+ if (move && !res.getPermissions().playerHas(pname, "move", true) && !plugin.isResAdminOn(player) && !player.hasPermission("residence.admin.move")
+ && !player.hasPermission("residence.admin.tp")) {
+ final Location lastLoc = lastOutsideLoc.get(pname);
+ if (lastLoc != null) {
+ player.teleport(lastLoc);
+ } else {
+ player.teleport(res.getOutsideFreeLoc(loc));
}
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMoveDeny", res.getName().split("\\.")[res.getName().split("\\.").length - 1]));
+ return;
}
lastOutsideLoc.put(pname, loc);
if (!currentRes.containsKey(pname) || ResOld != res) {
@@ -140,8 +136,6 @@ public class ResidencePlayerListener implements Listener {
if (subzone == null) {
chatchange = true;
}
-
- // "from" residence for ResidenceChangedEvent
ClaimedResidence chgFrom = null;
if (ResOld != res && ResOld != null) {
final String leave = ResOld.getLeaveMessage();
@@ -151,13 +145,11 @@ public class ResidencePlayerListener implements Listener {
if (plugin.getConfigManager().useActionBar()) {
ActionBar.send(player, ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave));
} else {
- player.sendMessage(ChatColor.YELLOW + this.insertMessages(player, ResOld.getName(), ResOld, leave));
+ player.sendMessage(ChatColor.YELLOW + insertMessages(player, ResOld.getName(), ResOld, leave));
}
}
}
final String enterMessage = res.getEnterMessage();
-
- // New ResidenceChangedEvent
final ResidenceChangedEvent chgEvent = new ResidenceChangedEvent(chgFrom, res, player);
plugin.getServer().getPluginManager().callEvent(chgEvent);
@@ -165,7 +157,7 @@ public class ResidencePlayerListener implements Listener {
if (plugin.getConfigManager().useActionBar()) {
ActionBar.send(player, ChatColor.YELLOW + insertMessages(player, areaname, res, enterMessage));
} else {
- player.sendMessage(ChatColor.YELLOW + this.insertMessages(player, areaname, res, enterMessage));
+ player.sendMessage(ChatColor.YELLOW + insertMessages(player, areaname, res, enterMessage));
}
}
}
@@ -510,34 +502,15 @@ public class ResidencePlayerListener implements Listener {
public void onPlayerTeleport(final PlayerTeleportEvent event) {
final Location loc = event.getTo();
final Player player = event.getPlayer();
-
- if (plugin.isResAdminOn(player)) {
- handleNewLocation(player, loc, false);
- return;
- }
-
final ClaimedResidence res = plugin.getResidenceManager().getByLoc(loc);
- if (event.getCause() == TeleportCause.ENDER_PEARL || event.getCause() == TeleportCause.COMMAND || event.getCause() == TeleportCause.NETHER_PORTAL) {
- if (res != null) {
- final String areaname = plugin.getResidenceManager().getNameByLoc(loc);
- if (!res.getPermissions().playerHas(player.getName(), "move", true)) {
- event.setCancelled(true);
- player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("ResidenceMoveDeny", areaname));
- return;
- }
+ if (res != null) {
+ final String areaname = res.getName();
+ if (!plugin.isResAdminOn(player) && !res.getPermissions().playerHas(player.getName(), "tp", true) && !player.hasPermission("residence.admin.tp")) {
+ event.setCancelled(true);
+ player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportDeny", areaname));
+ return;
}
}
- if (event.getCause() == TeleportCause.PLUGIN) {
- if (res != null) {
- final String areaname = plugin.getResidenceManager().getNameByLoc(loc);
- if (!res.getPermissions().playerHas(player.getName(), "tp", true) && !player.hasPermission("residence.admin.tp")) {
- event.setCancelled(true);
- player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportDeny", areaname));
- return;
- }
- }
- }
- handleNewLocation(player, loc, false);
}
public void tooglePlayerResidenceChat(final Player player) {
diff --git a/src/main/java/com/bekvon/bukkit/residence/protection/ClaimedResidence.java b/src/main/java/com/bekvon/bukkit/residence/protection/ClaimedResidence.java
index d1142d2..092e4c0 100644
--- a/src/main/java/com/bekvon/bukkit/residence/protection/ClaimedResidence.java
+++ b/src/main/java/com/bekvon/bukkit/residence/protection/ClaimedResidence.java
@@ -21,8 +21,8 @@ import com.bekvon.bukkit.residence.event.ResidenceTPEvent;
import cn.citycraft.Residence.ResidenceMain;
import cn.citycraft.Residence.economy.ResidenceBank;
import cn.citycraft.Residence.economy.TransactionManager;
-import cn.citycraft.Residence.itemlist.ResidenceItemList;
import cn.citycraft.Residence.itemlist.ItemList.ListType;
+import cn.citycraft.Residence.itemlist.ResidenceItemList;
import cn.citycraft.Residence.permissions.PermissionGroup;
import cn.citycraft.Residence.text.help.InformationPager;
@@ -128,7 +128,7 @@ public class ClaimedResidence {
}
return false;
}
- if (!resadmin && plugin.getConfigManager().getEnforceAreaInsideArea() && this.getParent() == null) {
+ if (!resadmin && plugin.getConfigManager().getEnforceAreaInsideArea() && getParent() == null) {
boolean inside = false;
for (final CuboidArea are : areas.values()) {
if (are.isAreaWithinArea(area)) {
@@ -234,7 +234,7 @@ public class ClaimedResidence {
}
return false;
}
- if (!(this.containsLoc(loc1) && this.containsLoc(loc2))) {
+ if (!(containsLoc(loc1) && containsLoc(loc2))) {
if (player != null) {
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneSelectInside"));
}
@@ -254,7 +254,7 @@ public class ClaimedResidence {
}
}
final PermissionGroup group = plugin.getPermissionManager().getGroup(player);
- if (this.getZoneDepth() >= group.getMaxSubzoneDepth()) {
+ if (getZoneDepth() >= group.getMaxSubzoneDepth()) {
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("SubzoneMaxDepth"));
return false;
}
@@ -404,7 +404,7 @@ public class ClaimedResidence {
@SuppressWarnings("deprecation")
public Location getOutsideFreeLoc(final Location insideLoc) {
final int maxIt = 100;
- final CuboidArea area = this.getAreaByLoc(insideLoc);
+ final CuboidArea area = getAreaByLoc(insideLoc);
if (area == null) {
return insideLoc;
}
@@ -453,7 +453,7 @@ public class ClaimedResidence {
public ArrayList getPlayersInResidence() {
final ArrayList within = new ArrayList();
for (final Player player : Bukkit.getServer().getOnlinePlayers()) {
- if (this.containsLoc(player.getLocation())) {
+ if (containsLoc(player.getLocation())) {
within.add(player);
}
}
@@ -627,7 +627,7 @@ public class ClaimedResidence {
public void removeArea(final Player player, final String id, final boolean resadmin) {
- if (this.getPermissions().hasResidencePermission(player, true) || resadmin) {
+ if (getPermissions().hasResidencePermission(player, true) || resadmin) {
if (!areas.containsKey(id)) {
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("AreaNonExist"));
return;
@@ -893,9 +893,9 @@ public class ClaimedResidence {
return;
}
if (enter) {
- this.setEnterMessage(message);
+ setEnterMessage(message);
} else {
- this.setLeaveMessage(message);
+ setLeaveMessage(message);
}
player.sendMessage(ChatColor.GREEN + plugin.getLanguage().getPhrase("MessageChange"));
}
@@ -913,7 +913,7 @@ public class ClaimedResidence {
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NoPermission"));
return;
}
- if (!this.containsLoc(player.getLocation())) {
+ if (!containsLoc(player.getLocation())) {
player.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("NotInResidence"));
return;
}
@@ -922,7 +922,7 @@ public class ClaimedResidence {
}
public void tpToResidence(final Player reqPlayer, final Player targetPlayer, final boolean resadmin) {
- if (!resadmin) {
+ if (!resadmin && !reqPlayer.hasPermission("residence.admin.tp")) {
final PermissionGroup group = plugin.getPermissionManager().getGroup(reqPlayer);
if (!group.hasTpAccess()) {
reqPlayer.sendMessage(ChatColor.RED + plugin.getLanguage().getPhrase("TeleportDeny"));
@@ -947,10 +947,10 @@ public class ClaimedResidence {
} else {
final CuboidArea area = areas.values().iterator().next();
if (area == null) {
- reqPlayer.sendMessage(ChatColor.RED + "Could not find area to teleport to...");
+ reqPlayer.sendMessage(ChatColor.RED + "未找到可传送的区域...");
return;
}
- final Location targloc = this.getOutsideFreeLoc(area.getHighLoc());
+ final Location targloc = getOutsideFreeLoc(area.getHighLoc());
final ResidenceTPEvent tpevent = new ResidenceTPEvent(this, targloc, targetPlayer, reqPlayer);
Bukkit.getServer().getPluginManager().callEvent(tpevent);
if (!tpevent.isCancelled()) {