Add /claimlistsextra command
This commit is contained in:
parent
f51701b756
commit
9a12797204
|
|
@ -24,6 +24,10 @@ import me.ryanhamshire.GriefPrevention.events.SaveTrappedPlayerEvent;
|
||||||
import me.ryanhamshire.GriefPrevention.events.TrustChangedEvent;
|
import me.ryanhamshire.GriefPrevention.events.TrustChangedEvent;
|
||||||
import me.ryanhamshire.GriefPrevention.alttd.listeners.AltitudeListener;
|
import me.ryanhamshire.GriefPrevention.alttd.listeners.AltitudeListener;
|
||||||
import me.ryanhamshire.GriefPrevention.metrics.MetricsHandler;
|
import me.ryanhamshire.GriefPrevention.metrics.MetricsHandler;
|
||||||
|
import net.md_5.bungee.api.chat.ClickEvent;
|
||||||
|
import net.md_5.bungee.api.chat.ComponentBuilder;
|
||||||
|
import net.md_5.bungee.api.chat.HoverEvent;
|
||||||
|
import net.md_5.bungee.api.chat.TextComponent;
|
||||||
import net.milkbowl.vault.economy.Economy;
|
import net.milkbowl.vault.economy.Economy;
|
||||||
import org.bukkit.BanList;
|
import org.bukkit.BanList;
|
||||||
import org.bukkit.BanList.Type;
|
import org.bukkit.BanList.Type;
|
||||||
|
|
@ -2212,6 +2216,68 @@ public class GriefPrevention extends JavaPlugin
|
||||||
return true;
|
return true;
|
||||||
}
|
}
|
||||||
|
|
||||||
|
//claimslist or claimslist <player>
|
||||||
|
else if (cmd.getName().equalsIgnoreCase("claimslistextra"))
|
||||||
|
{
|
||||||
|
//at most one parameter
|
||||||
|
if (args.length > 1) return false;
|
||||||
|
|
||||||
|
//player whose claims will be listed
|
||||||
|
OfflinePlayer otherPlayer;
|
||||||
|
|
||||||
|
//if another player isn't specified, assume current player
|
||||||
|
if (args.length < 1)
|
||||||
|
{
|
||||||
|
if (player != null)
|
||||||
|
otherPlayer = player;
|
||||||
|
else
|
||||||
|
return false;
|
||||||
|
}
|
||||||
|
|
||||||
|
//otherwise if no permission to delve into another player's claims data
|
||||||
|
else if (player != null && !player.hasPermission("griefprevention.claimslistother"))
|
||||||
|
{
|
||||||
|
GriefPrevention.sendMessage(player, TextMode.Err, Messages.ClaimsListNoPermission);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
|
//otherwise try to find the specified player
|
||||||
|
else
|
||||||
|
{
|
||||||
|
otherPlayer = this.resolvePlayerByName(args[0]);
|
||||||
|
if (otherPlayer == null)
|
||||||
|
{
|
||||||
|
GriefPrevention.sendMessage(player, TextMode.Err, Messages.PlayerNotFound2);
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
}
|
||||||
|
|
||||||
|
//load the target player's data
|
||||||
|
PlayerData playerData = this.dataStore.getPlayerData(otherPlayer.getUniqueId());
|
||||||
|
Vector<Claim> claims = playerData.getClaims();
|
||||||
|
GriefPrevention.sendMessage(player, TextMode.Instr, Messages.StartBlockMath,
|
||||||
|
String.valueOf(playerData.getAccruedClaimBlocks()),
|
||||||
|
String.valueOf((playerData.getBonusClaimBlocks() + this.dataStore.getGroupBonusBlocks(otherPlayer.getUniqueId()))),
|
||||||
|
String.valueOf((playerData.getAccruedClaimBlocks() + playerData.getBonusClaimBlocks() + this.dataStore.getGroupBonusBlocks(otherPlayer.getUniqueId()))));
|
||||||
|
if (claims.size() > 0)
|
||||||
|
{
|
||||||
|
GriefPrevention.sendMessage(player, TextMode.Instr, Messages.ClaimsListHeader);
|
||||||
|
claims.stream().forEach(claim -> {
|
||||||
|
TextComponent claimInfo = new TextComponent(getExtraLocationString(claim.getLesserBoundaryCorner(), claim.getGreaterBoundaryCorner()) + this.dataStore.getMessage(Messages.ContinueBlockMath, String.valueOf(claim.getArea())));
|
||||||
|
claimInfo.setHoverEvent(new HoverEvent(HoverEvent.Action.SHOW_TEXT, new ComponentBuilder( "Click here to visit this claim.").create()));
|
||||||
|
claimInfo.setClickEvent(new ClickEvent(ClickEvent.Action.RUN_COMMAND, "/tppos " + claim.getLesserBoundaryCorner().getBlockX() + " " + claim.getLesserBoundaryCorner().getBlockY() + " " + claim.getLesserBoundaryCorner().getBlockZ() + " "));
|
||||||
|
sender.sendMessage(claimInfo);
|
||||||
|
});
|
||||||
|
GriefPrevention.sendMessage(player, TextMode.Instr, Messages.EndBlockMath, String.valueOf(playerData.getRemainingClaimBlocks()));
|
||||||
|
}
|
||||||
|
|
||||||
|
//drop the data we just loaded, if the player isn't online
|
||||||
|
if (!otherPlayer.isOnline())
|
||||||
|
this.dataStore.clearCachedPlayerData(otherPlayer.getUniqueId());
|
||||||
|
|
||||||
|
return true;
|
||||||
|
}
|
||||||
|
|
||||||
//adminclaimslist
|
//adminclaimslist
|
||||||
else if (cmd.getName().equalsIgnoreCase("adminclaimslist"))
|
else if (cmd.getName().equalsIgnoreCase("adminclaimslist"))
|
||||||
{
|
{
|
||||||
|
|
@ -2878,6 +2944,11 @@ public class GriefPrevention extends JavaPlugin
|
||||||
return location.getWorld().getName() + ": x" + location.getBlockX() + ", z" + location.getBlockZ();
|
return location.getWorld().getName() + ": x" + location.getBlockX() + ", z" + location.getBlockZ();
|
||||||
}
|
}
|
||||||
|
|
||||||
|
public static String getExtraLocationString(Location location, Location location2)
|
||||||
|
{
|
||||||
|
return location.getWorld().getName() + ": x" + location.getBlockX() + ", z" + location.getBlockZ() + " to x" + location2.getBlockX() + ", z" + location2.getBlockZ();
|
||||||
|
}
|
||||||
|
|
||||||
private boolean abandonClaimHandler(Player player, boolean deleteTopLevelClaim)
|
private boolean abandonClaimHandler(Player player, boolean deleteTopLevelClaim)
|
||||||
{
|
{
|
||||||
PlayerData playerData = this.dataStore.getPlayerData(player.getUniqueId());
|
PlayerData playerData = this.dataStore.getPlayerData(player.getUniqueId());
|
||||||
|
|
|
||||||
|
|
@ -171,6 +171,11 @@ commands:
|
||||||
usage: /ClaimsList or /ClaimsList <player>
|
usage: /ClaimsList or /ClaimsList <player>
|
||||||
aliases: [claimlist, listclaims]
|
aliases: [claimlist, listclaims]
|
||||||
permission: griefprevention.claims
|
permission: griefprevention.claims
|
||||||
|
claimslistextra:
|
||||||
|
description: Lists information about a player's claim blocks and claims.
|
||||||
|
usage: /ClaimsList or /ClaimsList <player>
|
||||||
|
aliases: [ claimlistall ]
|
||||||
|
permission: griefprevention.claimslistother
|
||||||
claimexplosions:
|
claimexplosions:
|
||||||
description: Toggles whether explosives may be used in a specific land claim.
|
description: Toggles whether explosives may be used in a specific land claim.
|
||||||
usage: /ClaimExplosions
|
usage: /ClaimExplosions
|
||||||
|
|
|
||||||
Loading…
Reference in New Issue
Block a user