1.3.4 Update

* Fix deleteChunkHash NPE.
* Ignore '/claimrent' command in wilderness.
This commit is contained in:
bloodshot 2020-06-08 17:03:04 -04:00
parent cf2d6047cb
commit 1639945a1d
5 changed files with 23 additions and 5 deletions

View File

@ -387,9 +387,9 @@ private void deleteChunkHashes(GDClaim claim) {
Set<Claim> claimsInChunk = this.chunksToClaimsMap.get(chunkHash); Set<Claim> claimsInChunk = this.chunksToClaimsMap.get(chunkHash);
if (claimsInChunk != null) { if (claimsInChunk != null) {
claimsInChunk.remove(claim); claimsInChunk.remove(claim);
} if (claimsInChunk.isEmpty()) {
if (claimsInChunk.isEmpty()) { this.chunksToClaimsMap.remove(chunkHash);
this.chunksToClaimsMap.remove(chunkHash); }
} }
} }
} }

View File

@ -110,6 +110,9 @@ public void execute(Player player, @Optional String[] args) {
if (subCommand.equalsIgnoreCase("cancel")) { if (subCommand.equalsIgnoreCase("cancel")) {
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId()); final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation()); final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation());
if (claim.isWilderness()) {
return;
}
boolean isRenter = false; boolean isRenter = false;
for (UUID uuid : claim.getEconomyData().getRenters()) { for (UUID uuid : claim.getEconomyData().getRenters()) {
if (player.getUniqueId().equals(uuid)) { if (player.getUniqueId().equals(uuid)) {
@ -135,6 +138,9 @@ public void execute(Player player, @Optional String[] args) {
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId()); final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation()); final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation());
if (claim.isWilderness()) {
return;
}
if (playerData.canIgnoreClaim(claim) || player.hasPermission(GDPermissions.COMMAND_DELETE_ADMIN_CLAIMS)) { if (playerData.canIgnoreClaim(claim) || player.hasPermission(GDPermissions.COMMAND_DELETE_ADMIN_CLAIMS)) {
final GDPermissionUser renter = PermissionHolderCache.getInstance().getOrCreateUser(args[1]); final GDPermissionUser renter = PermissionHolderCache.getInstance().getOrCreateUser(args[1]);
if (renter != null) { if (renter != null) {
@ -217,6 +223,9 @@ public void execute(Player player, @Optional String[] args) {
} else if (subCommand.equalsIgnoreCase("info")) { } else if (subCommand.equalsIgnoreCase("info")) {
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId()); final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation()); final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation());
if (claim.isWilderness()) {
return;
}
final UUID ownerUniqueId = claim.getOwnerUniqueId(); final UUID ownerUniqueId = claim.getOwnerUniqueId();
final boolean isAdmin = player.getUniqueId().equals(ownerUniqueId) || player.hasPermission(GDPermissions.COMMAND_DELETE_ADMIN_CLAIMS) || claim.allowEdit(player) == null; final boolean isAdmin = player.getUniqueId().equals(ownerUniqueId) || player.hasPermission(GDPermissions.COMMAND_DELETE_ADMIN_CLAIMS) || claim.allowEdit(player) == null;
List<Component> textList = new ArrayList<>(); List<Component> textList = new ArrayList<>();

View File

@ -3,5 +3,5 @@ main: com.griefdefender.GDBootstrap
softdepend: [dynmap, PlaceholderAPI, WorldEdit, WorldGuard, Vault] softdepend: [dynmap, PlaceholderAPI, WorldEdit, WorldGuard, Vault]
depend: [LuckPerms] depend: [LuckPerms]
load: STARTUP load: STARTUP
version: '1.3.3' version: '1.3.4'
api-version: 1.13 api-version: 1.13

View File

@ -2,7 +2,7 @@
name=GriefDefender name=GriefDefender
group=com.griefdefender group=com.griefdefender
url=https://github.com/bloodmc/GriefDefender url=https://github.com/bloodmc/GriefDefender
version=1.3.3 version=1.3.4
apiVersion=1.0.0-20200528.202302-24 apiVersion=1.0.0-20200528.202302-24
# Bukkit # Bukkit
adapterVersion=1.15.2-20200608.154231-14 adapterVersion=1.15.2-20200608.154231-14

View File

@ -109,6 +109,9 @@ public void execute(Player player, @Optional String[] args) {
if (subCommand.equalsIgnoreCase("cancel")) { if (subCommand.equalsIgnoreCase("cancel")) {
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId()); final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation()); final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation());
if (claim.isWilderness()) {
return;
}
boolean isRenter = false; boolean isRenter = false;
for (UUID uuid : claim.getEconomyData().getRenters()) { for (UUID uuid : claim.getEconomyData().getRenters()) {
if (player.getUniqueId().equals(uuid)) { if (player.getUniqueId().equals(uuid)) {
@ -134,6 +137,9 @@ public void execute(Player player, @Optional String[] args) {
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId()); final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation()); final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation());
if (claim.isWilderness()) {
return;
}
if (playerData.canIgnoreClaim(claim) || player.hasPermission(GDPermissions.COMMAND_DELETE_ADMIN_CLAIMS)) { if (playerData.canIgnoreClaim(claim) || player.hasPermission(GDPermissions.COMMAND_DELETE_ADMIN_CLAIMS)) {
final GDPermissionUser renter = PermissionHolderCache.getInstance().getOrCreateUser(args[1]); final GDPermissionUser renter = PermissionHolderCache.getInstance().getOrCreateUser(args[1]);
if (renter != null) { if (renter != null) {
@ -216,6 +222,9 @@ public void execute(Player player, @Optional String[] args) {
} else if (subCommand.equalsIgnoreCase("info")) { } else if (subCommand.equalsIgnoreCase("info")) {
final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId()); final GDPlayerData playerData = GriefDefenderPlugin.getInstance().dataStore.getOrCreatePlayerData(player.getWorld(), player.getUniqueId());
final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation()); final GDClaim claim = GriefDefenderPlugin.getInstance().dataStore.getClaimAtPlayer(playerData, player.getLocation());
if (claim.isWilderness()) {
return;
}
if (!claim.getEconomyData().isForRent() && !claim.getEconomyData().isRented()) { if (!claim.getEconomyData().isForRent() && !claim.getEconomyData().isRented()) {
if (player.getUniqueId().equals(claim.getOwnerUniqueId())) { if (player.getUniqueId().equals(claim.getOwnerUniqueId())) {
GriefDefenderPlugin.sendMessage(player, MessageCache.getInstance().ECONOMY_CLAIM_RENT_OWNER_NOT_RENTING); GriefDefenderPlugin.sendMessage(player, MessageCache.getInstance().ECONOMY_CLAIM_RENT_OWNER_NOT_RENTING);