Fix group trust.

* Fix claim type messages not being formatted properly.
This commit is contained in:
bloodshot 2019-07-28 09:35:10 -04:00
parent e69449f40e
commit 347419a7fd
19 changed files with 112 additions and 88 deletions

View File

@ -49,7 +49,6 @@ import me.lucko.luckperms.api.context.MutableContextSet;
import net.kyori.text.Component;
import org.bukkit.Bukkit;
import org.bukkit.Location;
import org.bukkit.OfflinePlayer;
import org.bukkit.World;
import org.bukkit.entity.Player;
import org.bukkit.scheduler.BukkitTask;
@ -196,7 +195,7 @@ public class GDPlayerData implements PlayerData {
for (int i = 0; i < this.visualBlocks.size(); i++) {
BlockSnapshot snapshot = this.visualBlocks.get(i).getOriginal();
// If original block does not exist, do not send to player
if (NMSUtil.getInstance().getBlockData(snapshot.getLocation().getBlock()) != snapshot.getState()) {
if (!snapshot.matchesWorldState()) {
if (claim != null) {
claim.markVisualDirty = true;
}

View File

@ -355,27 +355,27 @@ public class GDClaim implements Claim {
public Component getFriendlyNameType(boolean upper) {
if (this.type == ClaimTypes.ADMIN) {
if (upper) {
return TextComponent.of(this.type.getName(), TextColor.RED);
return TextComponent.of(this.type.getName().toUpperCase(), TextColor.RED);
}
return TextComponent.of("Admin", TextColor.RED);
}
if (this.type == ClaimTypes.BASIC) {
if (upper) {
return TextComponent.of(this.type.getName(), TextColor.YELLOW);
return TextComponent.of(this.type.getName().toUpperCase(), TextColor.YELLOW);
}
return TextComponent.of("Basic", TextColor.YELLOW);
}
if (this.type == ClaimTypes.SUBDIVISION) {
if (upper) {
return TextComponent.of(this.type.getName(), TextColor.AQUA);
return TextComponent.of(this.type.getName().toUpperCase(), TextColor.AQUA);
}
return TextComponent.of("Subdivision", TextColor.AQUA);
}
if (upper) {
return TextComponent.of(this.type.getName(), TextColor.GREEN);
return TextComponent.of(this.type.getName().toUpperCase(), TextColor.GREEN);
}
return TextComponent.of("Town", TextColor.GREEN);
}
@ -2419,7 +2419,19 @@ public class GDClaim implements Claim {
}
public List<String> getGroupTrustList(TrustType type) {
return this.getGroupTrustList(type, false);
if (type == TrustTypes.NONE) {
return new ArrayList<>();
}
if (type == TrustTypes.ACCESSOR) {
return this.claimData.getAccessorGroups();
}
if (type == TrustTypes.CONTAINER) {
return this.claimData.getContainerGroups();
}
if (type == TrustTypes.BUILDER) {
return this.claimData.getBuilderGroups();
}
return this.claimData.getManagerGroups();
}
public List<String> getGroupTrustList(TrustType type, boolean includeParents) {

View File

@ -285,16 +285,16 @@ public class CommandClaimInfo extends BaseCommand {
}
// groups
for (String group : gpClaim.getInternalClaimData().getAccessorGroups()) {
for (String group : gpClaim.getGroupTrustList(TrustTypes.ACCESSOR, true)) {
accessorGroups += group + " ";
}
for (String group : gpClaim.getInternalClaimData().getBuilderGroups()) {
for (String group : gpClaim.getGroupTrustList(TrustTypes.BUILDER, true)) {
builderGroups += group + " ";
}
for (String group : gpClaim.getInternalClaimData().getContainerGroups()) {
for (String group : gpClaim.getGroupTrustList(TrustTypes.CONTAINER, true)) {
containerGroups += group + " ";
}
for (String group : gpClaim.getInternalClaimData().getManagerGroups()) {
for (String group : gpClaim.getGroupTrustList(TrustTypes.MANAGER, true)) {
managerGroups += group + " ";
}

View File

@ -126,10 +126,18 @@ public class CommandTrustGroup extends BaseCommand {
final List<String> groupTrustList = claim.getGroupTrustList(trustType);
if (!groupTrustList.contains(group.getName())) {
groupTrustList.add(group.getName());
} else {
final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.TRUST_ALREADY_HAS,
ImmutableMap.of(
"target", group.getName(),
"type", trustType.getName()));
GriefDefenderPlugin.sendMessage(player, message);
return;
}
final GDPermissionHolder holder = PermissionHolderCache.getInstance().getOrCreateGroup(group);
PermissionUtil.getInstance().setPermissionValue(claim, holder, permission, Tristate.TRUE, contexts);
claim.getInternalClaimData().setRequiresSave(true);
claim.getInternalClaimData().save();
final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.TRUST_GRANT, ImmutableMap.of(
"target", group.getName(),

View File

@ -117,14 +117,15 @@ public class CommandTrustGroupAll extends BaseCommand {
}
private void addAllGroupTrust(Claim claim, GDPermissionGroup holder, TrustType trustType) {
GDClaim gpClaim = (GDClaim) claim;
List<String> trustList = gpClaim.getGroupTrustList(trustType);
GDClaim gdClaim = (GDClaim) claim;
List<String> trustList = gdClaim.getGroupTrustList(trustType);
if (!trustList.contains(holder.getFriendlyName())) {
trustList.add(holder.getFriendlyName());
}
gpClaim.getInternalClaimData().setRequiresSave(true);
for (Claim child : gpClaim.children) {
gdClaim.getInternalClaimData().setRequiresSave(true);
gdClaim.getInternalClaimData().save();
for (Claim child : gdClaim.children) {
this.addAllGroupTrust(child, holder, trustType);
}
}

View File

@ -136,14 +136,15 @@ public class CommandTrustPlayerAll extends BaseCommand {
}
private void addAllUserTrust(Claim claim, GDPermissionUser user, TrustType trustType) {
GDClaim gpClaim = (GDClaim) claim;
List<UUID> trustList = gpClaim.getUserTrustList(trustType);
GDClaim gdClaim = (GDClaim) claim;
List<UUID> trustList = gdClaim.getUserTrustList(trustType);
if (!trustList.contains(user.getUniqueId())) {
trustList.add(user.getUniqueId());
}
gpClaim.getInternalClaimData().setRequiresSave(true);
for (Claim child : gpClaim.children) {
gdClaim.getInternalClaimData().setRequiresSave(true);
gdClaim.getInternalClaimData().save();
for (Claim child : gdClaim.children) {
this.addAllUserTrust(child, user, trustType);
}
}

View File

@ -101,6 +101,7 @@ public class CommandUntrustGroup extends BaseCommand {
claim.removeAllTrustsFromGroup(group.getName());
claim.getInternalClaimData().setRequiresSave(true);
claim.getInternalClaimData().save();
final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.UNTRUST_INDIVIDUAL_SINGLE_CLAIM,
ImmutableMap.of(

View File

@ -110,6 +110,7 @@ public class CommandUntrustGroupAll extends BaseCommand {
GDClaim gdClaim = (GDClaim) claim;
gdClaim.removeAllTrustsFromGroup(holder.getName());
gdClaim.getInternalClaimData().setRequiresSave(true);
gdClaim.getInternalClaimData().save();
for (Claim child : gdClaim.children) {
this.removeAllGroupTrust(child, holder);
}

View File

@ -119,6 +119,7 @@ public class CommandUntrustPlayerAll extends BaseCommand {
final GDClaim gdClaim = ((GDClaim) claim);
gdClaim.removeAllTrustsFromUser(user.getUniqueId());
gdClaim.getInternalClaimData().setRequiresSave(true);
gdClaim.getInternalClaimData().save();
for (Claim child : gdClaim.children) {
this.removeAllUserTrust(child, user);
}

View File

@ -60,7 +60,7 @@ public class MessageDataConfig extends ConfigCategory {
final String key = entry.getKey();
Object value = entry.getValue();
if (value instanceof Component) {
value = PlainComponentSerializer.INSTANCE.serialize((Component) value);
value = LegacyComponentSerializer.legacy().serialize((Component) value);
}
rawMessage = rawMessage.replace("{" + key + "}", value.toString());
}

View File

@ -1184,7 +1184,7 @@ public class PlayerEventHandler implements Listener {
type, player.getUniqueId(), cuboid);
GDCauseStackManager.getInstance().popCause();
GDClaim gpClaim = (GDClaim) result.getClaim().orElse(null);
GDClaim gdClaim = (GDClaim) result.getClaim().orElse(null);
if (!result.successful()) {
if (result.getResultType() == ClaimResultType.OVERLAPPING_CLAIM) {
GDClaim overlapClaim = (GDClaim) result.getClaim().get();
@ -1200,14 +1200,14 @@ public class PlayerEventHandler implements Listener {
playerData.lastShovelLocation = null;
final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.CREATE_SUCCESS,
ImmutableMap.of(
"type", gpClaim.getType().getName()));
"type", gdClaim.getFriendlyNameType(true)));
GriefDefenderPlugin.sendMessage(player, message);
if (this.worldEditProvider != null) {
this.worldEditProvider.stopVisualDrag(player);
this.worldEditProvider.visualizeClaim(gpClaim, player, playerData, false);
this.worldEditProvider.visualizeClaim(gdClaim, player, playerData, false);
}
gpClaim.getVisualizer().createClaimBlockVisuals(location.getBlockY(), player.getLocation(), playerData);
gpClaim.getVisualizer().apply(player, false);
gdClaim.getVisualizer().createClaimBlockVisuals(location.getBlockY(), player.getLocation(), playerData);
gdClaim.getVisualizer().apply(player, false);
}
}
@ -1269,12 +1269,12 @@ public class PlayerEventHandler implements Listener {
lesserBoundaryCorner, greaterBoundaryCorner, PlayerUtil.getInstance().getClaimTypeFromShovel(playerData.shovelMode),
player.getUniqueId(), playerData.getClaimCreateMode() == 1, playerData.claimSubdividing);
GDClaim gpClaim = (GDClaim) result.getClaim().orElse(null);
GDClaim gdClaim = (GDClaim) result.getClaim().orElse(null);
if (!result.successful()) {
if (result.getResultType() == ClaimResultType.OVERLAPPING_CLAIM) {
GriefDefenderPlugin.sendMessage(player, GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.CREATE_OVERLAP_SHORT));
Set<Claim> claims = new HashSet<>();
claims.add(gpClaim);
claims.add(gdClaim);
CommandHelper.showOverlapClaims(player, claims, location.getBlockY());
}
event.setCancelled(true);
@ -1283,13 +1283,13 @@ public class PlayerEventHandler implements Listener {
playerData.lastShovelLocation = null;
playerData.claimSubdividing = null;
final Component message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.CREATE_SUCCESS, ImmutableMap.of(
"type", playerData.shovelMode.getName()));
"type", gdClaim.getFriendlyNameType(true)));
GriefDefenderPlugin.sendMessage(player, message);
gpClaim.getVisualizer().createClaimBlockVisuals(location.getBlockY(), player.getLocation(), playerData);
gpClaim.getVisualizer().apply(player, false);
gdClaim.getVisualizer().createClaimBlockVisuals(location.getBlockY(), player.getLocation(), playerData);
gdClaim.getVisualizer().apply(player, false);
if (this.worldEditProvider != null) {
this.worldEditProvider.stopVisualDrag(player);
this.worldEditProvider.visualizeClaim(gpClaim, player, playerData, false);
this.worldEditProvider.visualizeClaim(gdClaim, player, playerData, false);
}
}
}

View File

@ -96,7 +96,7 @@ public class EconomyUtil {
claimType, player.getUniqueId(), cuboid);
GDCauseStackManager.getInstance().popCause();
GDClaim gpClaim = (GDClaim) result.getClaim().orElse(null);
GDClaim gdClaim = (GDClaim) result.getClaim().orElse(null);
// if it didn't succeed, tell the player why
if (!result.successful()) {
if (result.getResultType() == ClaimResultType.OVERLAPPING_CLAIM) {
@ -116,15 +116,15 @@ public class EconomyUtil {
GriefDefenderPlugin.sendMessage(player, message);
playerData.lastShovelLocation = null;
message = GriefDefenderPlugin.getInstance().messageData.getMessage(MessageStorage.CREATE_SUCCESS, ImmutableMap.of(
"type", gpClaim.getType().getName()));
"type", gdClaim.getFriendlyNameType(true)));
GriefDefenderPlugin.sendMessage(player, message);
final WorldEditProvider worldEditProvider = GriefDefenderPlugin.getInstance().getWorldEditProvider();
if (worldEditProvider != null) {
worldEditProvider.stopVisualDrag(player);
worldEditProvider.visualizeClaim(gpClaim, player, playerData, false);
worldEditProvider.visualizeClaim(gdClaim, player, playerData, false);
}
gpClaim.getVisualizer().createClaimBlockVisuals(height, player.getLocation(), playerData);
gpClaim.getVisualizer().apply(player, false);
gdClaim.getVisualizer().createClaimBlockVisuals(height, player.getLocation(), playerData);
gdClaim.getVisualizer().apply(player, false);
}
};
}

View File

@ -3,15 +3,15 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.12.2",
"sha1": "776b11468341a94fccbb3677015bca237b1c4426",
"path": "com/griefdefender/adapter/1.12.2-SNAPSHOT/adapter-1.12.2-20190701.014929-4.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.12.2-SNAPSHOT/adapter-1.12.2-20190701.014929-4.jar"
"sha1": "54c03855b6142db1a5990ac402ba71cc293d3bd6",
"path": "com/griefdefender/adapter/1.12.2-SNAPSHOT/adapter-1.12.2-20190728.132013-10.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.12.2-SNAPSHOT/adapter-1.12.2-20190728.132013-10.jar"
},
{
"name": "com.griefdefender:api:1.0.0",
"sha1": "c18a03f85cf15644edefc092ad71a8085cb11c98",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar"
"sha1": "e4aa950026c34ecc44e0e8a94e8d967cc91cfefc",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar"
},
{
"name": "org.ow2.asm:asm-debug-all:5.2",

View File

@ -3,15 +3,15 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.13.2",
"sha1": "4ab417d54a38f89b505df73bbc96d5d909a73ea4",
"path": "com/griefdefender/adapter/1.13.2-SNAPSHOT/adapter-1.13.2-20190701.014003-4.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.13.2-SNAPSHOT/adapter-1.13.2-20190701.014003-4.jar"
"sha1": "0556e4da91ed579c341df7e133ed070822f36337",
"path": "com/griefdefender/adapter/1.13.2-SNAPSHOT/adapter-1.13.2-20190728.132257-9.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.13.2-SNAPSHOT/adapter-1.13.2-20190728.132257-9.jar"
},
{
"name": "com.griefdefender:api:1.0.0",
"sha1": "c18a03f85cf15644edefc092ad71a8085cb11c98",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar"
"sha1": "e4aa950026c34ecc44e0e8a94e8d967cc91cfefc",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar"
},
{
"name": "org.ow2.asm:asm-debug-all:5.2",

View File

@ -3,15 +3,15 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.14.2",
"sha1": "d1d4edeeed0b04293dd50ec189a136d8cae8ad97",
"path": "com/griefdefender/adapter/1.14.2-SNAPSHOT/adapter-1.14.2-20190701.014040-4.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.2-SNAPSHOT/adapter-1.14.2-20190701.014040-4.jar"
"sha1": "9eba6f3814486cc15e7133f4e97c3b3bc6726e2b",
"path": "com/griefdefender/adapter/1.14.2-SNAPSHOT/adapter-1.14.2-20190728.132330-9.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.2-SNAPSHOT/adapter-1.14.2-20190728.132330-9.jar"
},
{
"name": "com.griefdefender:api:1.0.0",
"sha1": "c18a03f85cf15644edefc092ad71a8085cb11c98",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar"
"sha1": "e4aa950026c34ecc44e0e8a94e8d967cc91cfefc",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar"
},
{
"name": "org.ow2.asm:asm-debug-all:5.2",

View File

@ -3,15 +3,15 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.14.3",
"sha1": "da848a82a02e22c34b76a874d5c8850a1fd6d3e3",
"path": "com/griefdefender/adapter/1.14.3-SNAPSHOT/adapter-1.14.3-20190701.014108-5.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.3-SNAPSHOT/adapter-1.14.3-20190701.014108-5.jar"
"sha1": "7358cd17acd25fee5ed490024ad0c8fb0be1403d",
"path": "com/griefdefender/adapter/1.14.3-SNAPSHOT/adapter-1.14.3-20190728.132409-10.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.3-SNAPSHOT/adapter-1.14.3-20190728.132409-10.jar"
},
{
"name": "com.griefdefender:api:1.0.0",
"sha1": "c18a03f85cf15644edefc092ad71a8085cb11c98",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar"
"sha1": "e4aa950026c34ecc44e0e8a94e8d967cc91cfefc",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar"
},
{
"name": "org.ow2.asm:asm-debug-all:5.2",

View File

@ -3,15 +3,15 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.14.4",
"sha1": "7a70de0c1759d57a5b3a63401f239705b71cddf7",
"path": "com/griefdefender/adapter/1.14.4-SNAPSHOT/adapter-1.14.4-20190727.083726-2.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.4-SNAPSHOT/adapter-1.14.4-20190727.083726-2.jar"
"sha1": "158df31d5f92819a2e8e8d6bddc7b9a2daab15cd",
"path": "com/griefdefender/adapter/1.14.4-SNAPSHOT/adapter-1.14.4-20190728.132446-5.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.4-SNAPSHOT/adapter-1.14.4-20190728.132446-5.jar"
},
{
"name": "com.griefdefender:api:1.0.0",
"sha1": "c18a03f85cf15644edefc092ad71a8085cb11c98",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar"
"sha1": "e4aa950026c34ecc44e0e8a94e8d967cc91cfefc",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar"
},
{
"name": "org.ow2.asm:asm-debug-all:5.2",

View File

@ -3,15 +3,15 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.8.8",
"sha1": "e5d581eeb8bfec89fac7a767403f251b1315adc6",
"path": "com/griefdefender/adapter/1.8.8-SNAPSHOT/adapter-1.8.8-20190701.015152-4.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.8.8-SNAPSHOT/adapter-1.8.8-20190701.015152-4.jar"
"sha1": "f351d0ee319a7d56a247affc855057f0739af895",
"path": "com/griefdefender/adapter/1.8.8-SNAPSHOT/adapter-1.8.8-20190728.132149-10.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.8.8-SNAPSHOT/adapter-1.8.8-20190728.132149-10.jar"
},
{
"name": "com.griefdefender:api:1.0.0",
"sha1": "c18a03f85cf15644edefc092ad71a8085cb11c98",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190630.212326-2.jar"
"sha1": "e4aa950026c34ecc44e0e8a94e8d967cc91cfefc",
"path": "com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/api/1.0.0-SNAPSHOT/api-1.0.0-20190727.235445-3.jar"
},
{
"name": "org.ow2.asm:asm-debug-all:5.2",

View File

@ -84,14 +84,14 @@ GriefDefender {
claim-children-warning="&6This claim includes child claims. If you're sure you want to delete it, use &f/deleteclaim&6 again."
claim-context-not-found="&cContext &f{context}&c was not found."
claim-disabled-world="&cClaims are disabled in this world."
claim-farewell="&aSet claim farewell to {farewell}."
claim-farewell="&aSet claim farewell to {farewell}&a."
claim-farewell-clear="&aThe claim farewell message has been cleared."
claim-farewell-invalid="&cClaim flag &f{flag}&c is invalid."
claim-greeting="&aSet claim greeting to {greeting}."
claim-greeting="&aSet claim greeting to {greeting}&a."
claim-greeting-clear="&aThe claim greeting message has been cleared."
claim-ignore="&aNow ignoring claims."
claim-last-active="&aClaim last active &6{date}&a."
claim-name="&aSet claim name to {name}."
claim-name="&aSet claim name to {name}&a."
claim-no-claims="&cYou don't have any land claims."
claim-no-set-home="&cYou must be trusted in order to use /sethome here."
claim-not-found="&cThere's no claim here."
@ -108,23 +108,23 @@ GriefDefender {
claim-size-need-blocks-2d="&cYou don't have enough blocks for this claim size.\nYou need &a{block-amount}&c more blocks."
claim-size-need-blocks-3d="&cYou don't have enough blocks for this claim size.\nYou need &a{chunk-amount}&c more chunks. &f({block-amount})"
claim-size-too-small="&cThe selected claim size of &a{width}&fx&a{length}&c would be too small. A claim must be at least &a{min-width}&fx&a{min-length}&c in size."
claim-start="&a{type} corner set! Use the shovel again at the opposite corner to claim a rectangle of land. To cancel, put your shovel away."
claim-start="{type}&a corner set! Use the shovel again at the opposite corner to claim a rectangle of land. To cancel, put your shovel away."
claim-too-far="&cThat's too far away."
claim-transfer-exceeds-limit="&cClaim could not be transferred as it would exceed the new owner's creation limit."
claim-transfer-success="&aClaim transferred."
claim-type-not-found="&cNo {type} claims found."
claim-type-not-found="&cNo {type}&c claims found."
command-blocked="&cThe command &f{command}&c has been blocked by claim owner &6{player}&c."
command-cuboid-disabled="&aNow claiming in &d2D&a mode."
command-cuboid-enabled="&aNow claiming in &d3D&a mode."
command-inherit="&cThis command can only be used in child claims."
command-invalid-claim="&cThis command cannot be used in {type} claims."
command-invalid-claim="&cThis command cannot be used in {type}&c claims."
command-invalid-group="&cGroup &6{group}&c is not valid."
command-invalid-player="&cPlayer &6{player}&c is not valid."
command-invalid-player-group="&cNot a valid player or group."
command-option-exceeds-admin="&cOption value of &a'{value}&c' exceeds admin set value of '&a{admin-value}&c'. Adjusting to admin value..."
create-cancel="&cThe creation of this claim has been cancelled."
create-cuboid-disabled="&cThe creation of &d3D&c cuboid claims has been disabled by an administrator.\nYou can only create &d3D&c claims as an Admin or on a &d2D&c claim that you own."
create-failed-claim-limit="&cYou've reached your limit of &a{limit}&c on {type} claims. Use &f/abandon&c to remove one before creating another."
create-failed-claim-limit="&cYou've reached your limit of &a{limit}&c on {type}&c claims. Use &f/abandon&c to remove one before creating another."
create-insufficient-blocks-2d="&cYou don't have enough blocks to claim this area.\nYou need &a{amount}&c more blocks."
create-insufficient-blocks-3d="&cYou don't have enough blocks to claim this area.\nYou need &a{amount}&c more chunks. &f({block-amount})"
create-overlap="&cYou can't create a claim here because it would overlap your other claim. Use &f/abandonclaim&c to delete it, or use your shovel at a corner to resize it."
@ -132,7 +132,7 @@ GriefDefender {
create-overlap-short="&cYour selected area overlaps an existing claim."
create-subdivision-fail="&cNo claim exists at selected corner. Please click a valid block location within parent claim in order to create your subdivision."
create-subdivision-only="&cUnable to create claim. Only subdivisions can be created at a single block location."
create-success="&a{type} created! Use &f/trust&a to share it with friends."
create-success="{type}&a created! Use &f/trust&a to share it with friends."
create-worldedit-missing="&cThis command requires WorldEdit to be installed on server."
delete-all-admin-success="&cDeleted all administrative claims."
delete-all-admin-warning="&6Are you sure you want to delete all admin claims?"
@ -168,7 +168,7 @@ GriefDefender {
flag-invalid-meta="&cInvalid target meta '&f{value}&c' entered for base flag &f{flag}&c."
flag-invalid-target="&cInvalid target '&f{target}&c' enterd for base flag &f{flag}&c."
flag-overridden="&cFailed to set claim flag. The flag &f{flag}&c has been overridden by an admin."
flag-override-not-supported="&cClaim type {type} does not support flag overrides."
flag-override-not-supported="&cClaim type {type}&c does not support flag overrides."
flag-reset-success="&aClaim flags reset to defaults successfully."
mode-admin="&aAdministrative claims mode active. Any claims created will be free and editable by other administrators."
mode-basic="&aBasic claim creation mode enabled."
@ -180,13 +180,13 @@ GriefDefender {
permission-build="&cYou don't have &6{player}&c's permission to build."
permission-build-near-claim="&cYou don't have &6{player}&c's permission to build near claim."
permission-claim-create="&cYou don't have permission to claim land."
permission-claim-delete="&cYou don't have permission to delete {type} claims."
permission-claim-delete="&cYou don't have permission to delete {type}&c claims."
permission-claim-enter="&cYou don't have permission to enter this claim."
permission-claim-exit="&cYou don't have permission to exit this claim."
permission-claim-ignore="&cYou do not have permission to ignore {type} claims."
permission-claim-ignore="&cYou do not have permission to ignore {type}&c claims."
permission-claim-list="&cYou don't have permission to get information about another player's land claims."
permission-claim-manage="&cYou don't have permission to manage {type} claims."
permission-claim-reset-flags="&cYou don't have permission to reset {type} claims to flag defaults."
permission-claim-manage="&cYou don't have permission to manage {type}&c claims."
permission-claim-reset-flags="&cYou don't have permission to reset {type}&c claims to flag defaults."
permission-claim-reset-flags-self="&cYou don't have permission to reset your claim flags to defaults."
permission-claim-resize="&cYou don't have permission to resize this claim."
permission-claim-sale="&cYou don't have permission to sell this claim."
@ -242,15 +242,15 @@ GriefDefender {
town-chat-disabled="&aTown chat disabled."
town-chat-enabled="&aTown chat enabled."
town-create-not-enough-funds="&cYou do not have enough funds to create this town for &a{amount}&c. You currently have a balance of &a{balance}&c and need &a{amount-needed}&c more for creation."
town-name="&aSet town name to {name}."
town-name="&aSet town name to {name}&a."
town-not-found="&cTown not found."
town-not-in="&cYou are not in a town."
town-owner="&cThat belongs to the town."
town-tag="&aSet town tag to {tag}."
town-tag-clear="&aThe town tag has been cleared."
town-tax-no-claims="&cYou must own property in this town in order to be taxed."
trust-already-has="&c{target} already has {type} permission."
trust-grant="&aGranted &6{target}&a permission to {type} in current claim."
trust-already-has="&c{target} already has {type}&c permission."
trust-grant="&aGranted &6{target}&a permission to {type}&a in current claim."
trust-individual-all-claims="&aGranted &6{player}'s&a full trust to all your claims. To unset permissions for ALL your claims, use &f/untrustall&a."
trust-invalid="&cInvalid trust type entered.\nThe allowed types are : accessor, builder, container, and manager."
trust-list-header="Explicit permissions here:"