diff --git a/src/main/java/com/massivecraft/factions/cmd/CmdReload.java b/src/main/java/com/massivecraft/factions/cmd/CmdReload.java index 9e6c4f3c..a6e9bfa6 100644 --- a/src/main/java/com/massivecraft/factions/cmd/CmdReload.java +++ b/src/main/java/com/massivecraft/factions/cmd/CmdReload.java @@ -2,6 +2,7 @@ package com.massivecraft.factions.cmd; import com.massivecraft.factions.Conf; import com.massivecraft.factions.FactionsPlugin; +import com.massivecraft.factions.listeners.FactionsPlayerListener; import com.massivecraft.factions.shop.ShopConfig; import com.massivecraft.factions.struct.Permission; import com.massivecraft.factions.zcore.util.TL; @@ -30,6 +31,10 @@ public class CmdReload extends FCommand { } long timeReload = (System.currentTimeMillis() - timeInitStart); + if (!FactionsPlugin.getInstance().mc17) { + FactionsPlayerListener.loadCorners(); + } + context.msg(TL.COMMAND_RELOAD_TIME, timeReload); } diff --git a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java index 075cde0f..c79451c3 100644 --- a/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java +++ b/src/main/java/com/massivecraft/factions/listeners/FactionsPlayerListener.java @@ -47,7 +47,7 @@ import java.util.logging.Level; public class FactionsPlayerListener implements Listener { HashMap fallMap = new HashMap<>(); - private Set corners; + public static Set corners; // Holds the next time a player can have a map shown. private HashMap showTimes = new HashMap<>(); // for handling people who repeatedly spam attempts to open a door (or similar) in another faction's territory @@ -58,16 +58,20 @@ public class FactionsPlayerListener implements Listener { initPlayer(player); } if (!FactionsPlugin.getInstance().mc17) { - this.corners = new HashSet<>(); - for (World world : FactionsPlugin.getInstance().getServer().getWorlds()) { - WorldBorder border = world.getWorldBorder(); - if (border != null) { - int cornerCoord = (int) ((border.getSize() - 1.0) / 2.0); - this.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(cornerCoord), FLocation.blockToChunk(cornerCoord))); - this.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(cornerCoord), FLocation.blockToChunk(-cornerCoord))); - this.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(-cornerCoord), FLocation.blockToChunk(cornerCoord))); - this.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(-cornerCoord), FLocation.blockToChunk(-cornerCoord))); - } + loadCorners(); + } + } + + public static void loadCorners() { + FactionsPlayerListener.corners = new HashSet<>(); + for (World world : FactionsPlugin.getInstance().getServer().getWorlds()) { + WorldBorder border = world.getWorldBorder(); + if (border != null) { + int cornerCoord = (int) ((border.getSize() - 1.0) / 2.0); + FactionsPlayerListener.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(cornerCoord), FLocation.blockToChunk(cornerCoord))); + FactionsPlayerListener.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(cornerCoord), FLocation.blockToChunk(-cornerCoord))); + FactionsPlayerListener.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(-cornerCoord), FLocation.blockToChunk(cornerCoord))); + FactionsPlayerListener.corners.add(new FLocation(world.getName(), FLocation.blockToChunk(-cornerCoord), FLocation.blockToChunk(-cornerCoord))); } } } diff --git a/src/main/java/com/massivecraft/factions/util/CornerTask.java b/src/main/java/com/massivecraft/factions/util/CornerTask.java index 874bd158..e6122e0f 100644 --- a/src/main/java/com/massivecraft/factions/util/CornerTask.java +++ b/src/main/java/com/massivecraft/factions/util/CornerTask.java @@ -28,6 +28,9 @@ public class CornerTask extends BukkitRunnable { FLocation fLocation = surrounding.remove(0); if (fPlayer.attemptClaim(fPlayer.getFaction(), fLocation, true)) { ++amount; + } else { + fPlayer.sendMessage(TL.COMMAND_CORNER_FAIL_WITH_FEEDBACK.toString().replace("&", "ยง") + amount); + cancel(); } } } diff --git a/src/main/java/com/massivecraft/factions/zcore/util/TL.java b/src/main/java/com/massivecraft/factions/zcore/util/TL.java index 3ca7a322..5aa8666b 100644 --- a/src/main/java/com/massivecraft/factions/zcore/util/TL.java +++ b/src/main/java/com/massivecraft/factions/zcore/util/TL.java @@ -123,6 +123,7 @@ public enum TL { COMMAND_CORNER_CANT_CLAIM("&c&l[!] &cYou may not claim this corner!"), COMMAND_CORNER_CLAIMED("\n&2&l[!] &aYou have claimed the corner successfully, totalling in &b%1$d &achunks!\n"), COMMAND_CORNER_ATTEMPTING_CLAIM("&c&l[!] &7Attempting to claim corner..."), + COMMAND_CORNER_FAIL_WITH_FEEDBACK("&c&l[!] &cOne or more claims in this corner could not be claimed! Total chunks claimed:&b "), COMMAND_CORNER_NOT_CORNER("&c&l[!] &7You must be in a corner to use this command!"), COMMAND_CORNER_DESCRIPTION("claim a corner at world border"), COMMAND_CORNERLIST_DESCRIPTION("list of all corners"), @@ -967,7 +968,7 @@ public enum TL { CLAIM_MEMBERS("Factions must have at least %s members to claim land."), CLAIM_SAFEZONE("You can not claim a Safe Zone."), CLAIM_WARZONE("You can not claim a War Zone."), - CLAIM_POWER("You can't claim more land!You need more power!"), + CLAIM_POWER("You can't claim more land! You need more power!"), CLAIM_LIMIT("Limit reached. You can't claim more land!"), CLAIM_ALLY("You can't claim the land of your allies."), CLAIM_CONTIGIOUS("You can only claim additional land which is connected to your first claim or controlled by another faction!"),