Update for 1.4.5

* Fix duplicate permission check.
* (Bukkit) Improve BlockPhysicsEvent performance.
* (Sponge) Only check collide-block if block is collidable.
This commit is contained in:
bloodshot 2020-06-28 21:55:22 -04:00
parent 06939181a7
commit d40116763b
19 changed files with 58 additions and 55 deletions

View File

@ -653,9 +653,13 @@ public class GDClaimManager implements ClaimManager {
}
public GDChunk getChunk(Chunk chunk) {
return this.getChunk(chunk, true);
}
public GDChunk getChunk(Chunk chunk, boolean force) {
final long chunkKey = getChunkKey(chunk);
GDChunk gdChunk = this.chunksToGDChunks.get(chunkKey);
if (gdChunk == null) {
if (gdChunk == null && force) {
gdChunk = new GDChunk(chunk);
this.chunksToGDChunks.put(chunkKey, gdChunk);
if (this.chunksToClaimsMap.get(chunkKey) == null) {

View File

@ -139,8 +139,7 @@ public class BlockEventTracker implements Listener {
@EventHandler(priority = EventPriority.MONITOR, ignoreCancelled = true)
public void onBlockPhysicsMonitor(BlockPhysicsEvent event) {
final String targetBlockName = GDPermissionManager.getInstance().getPermissionIdentifier(event.getBlock());
if (targetBlockName.equals("minecraft:observer")) {
if (NMSUtil.getInstance().isBlockObserver(event.getBlock())) {
return;
}
// Check if sign broke
@ -165,11 +164,8 @@ public class BlockEventTracker implements Listener {
if (sourceLocation != null && sourceLocation.equals(block.getLocation())) {
return;
}
if (sourceBlock != null) {
final String sourceBlockName = GDPermissionManager.getInstance().getPermissionIdentifier(sourceBlock);
if (sourceBlockName.equals("minecraft:observer")) {
return;
}
if (sourceBlock != null && NMSUtil.getInstance().isBlockObserver(sourceBlock)) {
return;
}
final GDClaimManager claimWorldManager = GriefDefenderPlugin.getInstance().dataStore.getClaimWorldManager(block.getWorld().getUID());

View File

@ -92,7 +92,7 @@ public class WorldEventHandler implements Listener {
}
final GDClaimManager claimWorldManager = GriefDefenderPlugin.getInstance().dataStore.getClaimWorldManager(event.getWorld().getUID());
final GDChunk gdChunk = claimWorldManager.getChunk(event.getChunk());
final GDChunk gdChunk = claimWorldManager.getChunk(event.getChunk(), false);
if (gdChunk != null) {
if (gdChunk.getTrackedShortPlayerPositions().size() > 0) {
gdChunk.saveChunkTrackingData();

View File

@ -348,13 +348,9 @@ public class GDPermissionManager implements PermissionManager {
return value;
}
if (holder == GriefDefenderPlugin.DEFAULT_HOLDER) {
contexts.remove(claim.getContext());
return getFlagDefaultPermission(claim, permission, contexts);
}
return getClaimFlagPermission(claim, permission, contexts, inheritParents);
// Group MUST inherit default group or above will return undefined if no permission set on non-default group/user.
contexts.remove(claim.getContext());
return getFlagDefaultPermission(claim, permission, contexts);
}
private Tristate getClaimFlagPermission(Claim claim, String permission) {

View File

@ -3,9 +3,9 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.12.2",
"sha1": "8603b6e638d0d4f0b60b56c03d6673c6d9fd04ad",
"path": "com/griefdefender/adapter/1.12.2-SNAPSHOT/adapter-1.12.2-20200627.035906-43.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.12.2-SNAPSHOT/adapter-1.12.2-20200627.035906-43.jar"
"sha1": "f1068dec6ed4290f45a14d295704cb068b37103c",
"path": "com/griefdefender/adapter/1.12.2-SNAPSHOT/adapter-1.12.2-20200628.025305-44.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.12.2-SNAPSHOT/adapter-1.12.2-20200628.025305-44.jar"
},
{
"name": "com.griefdefender:api:1.0.0",

View File

@ -3,9 +3,9 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.13.2",
"sha1": "f999f5c89b991be69026305680578a66c07a4e9a",
"path": "com/griefdefender/adapter/1.13.2-SNAPSHOT/adapter-1.13.2-20200627.035749-41.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.13.2-SNAPSHOT/adapter-1.13.2-20200627.035749-41.jar"
"sha1": "9cb084ca06beab1b1407f4b8354f7ac77aac0a57",
"path": "com/griefdefender/adapter/1.13.2-SNAPSHOT/adapter-1.13.2-20200628.025121-42.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.13.2-SNAPSHOT/adapter-1.13.2-20200628.025121-42.jar"
},
{
"name": "com.griefdefender:api:1.0.0",

View File

@ -3,9 +3,9 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.14.2",
"sha1": "1258cd7e767c081c22f103bf08825a942f7fa7e2",
"path": "com/griefdefender/adapter/1.14.2-SNAPSHOT/adapter-1.14.2-20200627.035642-41.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.2-SNAPSHOT/adapter-1.14.2-20200627.035642-41.jar"
"sha1": "1b1c97781dbe10493a2f3b5ebb629b69cfaf5722",
"path": "com/griefdefender/adapter/1.14.2-SNAPSHOT/adapter-1.14.2-20200628.024848-42.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.2-SNAPSHOT/adapter-1.14.2-20200628.024848-42.jar"
},
{
"name": "com.griefdefender:api:1.0.0",

View File

@ -3,9 +3,9 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.14.3",
"sha1": "30491bb998cb8c3c92eb5e03642d021a46bedca2",
"path": "com/griefdefender/adapter/1.14.3-SNAPSHOT/adapter-1.14.3-20200627.035551-42.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.3-SNAPSHOT/adapter-1.14.3-20200627.035551-42.jar"
"sha1": "9728a87ee02b837a4583762194ee472ff99ea6db",
"path": "com/griefdefender/adapter/1.14.3-SNAPSHOT/adapter-1.14.3-20200628.024742-44.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.3-SNAPSHOT/adapter-1.14.3-20200628.024742-44.jar"
},
{
"name": "com.griefdefender:api:1.0.0",

View File

@ -3,9 +3,9 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.14.4",
"sha1": "635483ad5f21a1934a91ebdd1cc2ae6a82e3eff8",
"path": "com/griefdefender/adapter/1.14.4-SNAPSHOT/adapter-1.14.4-20200627.035444-40.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.4-SNAPSHOT/adapter-1.14.4-20200627.035444-40.jar"
"sha1": "4a160936b918e9b6accbee8111abe87ddc2060b1",
"path": "com/griefdefender/adapter/1.14.4-SNAPSHOT/adapter-1.14.4-20200628.024718-42.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.14.4-SNAPSHOT/adapter-1.14.4-20200628.024718-42.jar"
},
{
"name": "com.griefdefender:api:1.0.0",

View File

@ -3,9 +3,9 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.15.2",
"sha1": "331aa3c5a0fd7025b4f3bca8d9d62ab466cc7622",
"path": "com/griefdefender/adapter/1.15.2-SNAPSHOT/adapter-1.15.2-20200627.035125-23.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.15.2-SNAPSHOT/adapter-1.15.2-20200627.035125-23.jar"
"sha1": "99d5fceed1e2797047f0c7e88c848ccad1ec504a",
"path": "com/griefdefender/adapter/1.15.2-SNAPSHOT/adapter-1.15.2-20200628.024612-25.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.15.2-SNAPSHOT/adapter-1.15.2-20200628.024612-25.jar"
},
{
"name": "com.griefdefender:api:1.0.0",

View File

@ -3,9 +3,9 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.15",
"sha1": "4cf98d03f25fad39de3bb268e6f7026d80e4ee71",
"path": "com/griefdefender/adapter/1.15-SNAPSHOT/adapter-1.15-20200627.035345-23.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.15-SNAPSHOT/adapter-1.15-20200627.035345-23.jar"
"sha1": "b9ed30a85daf0e3bc711621be29e4feff64b8cec",
"path": "com/griefdefender/adapter/1.15-SNAPSHOT/adapter-1.15-20200628.024650-25.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.15-SNAPSHOT/adapter-1.15-20200628.024650-25.jar"
},
{
"name": "com.griefdefender:api:1.0.0",

View File

@ -3,9 +3,9 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.16.1",
"sha1": "5615f7855680579ad778d2a953293b929493d553",
"path": "com/griefdefender/adapter/1.16.1-SNAPSHOT/adapter-1.16.1-20200627.034742-3.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.16.1-SNAPSHOT/adapter-1.16.1-20200627.034742-3.jar"
"sha1": "a6b330cf3e61ef87410e359d367d5076e4ac87ff",
"path": "com/griefdefender/adapter/1.16.1-SNAPSHOT/adapter-1.16.1-20200628.024544-5.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.16.1-SNAPSHOT/adapter-1.16.1-20200628.024544-5.jar"
},
{
"name": "com.griefdefender:api:1.0.0",

View File

@ -3,9 +3,9 @@
"libraries": [
{
"name": "com.griefdefender:adapter:1.8.8",
"sha1": "77db47f03e027b795447f280d6b762e0f82246bb",
"path": "com/griefdefender/adapter/1.8.8-SNAPSHOT/adapter-1.8.8-20200627.040005-41.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.8.8-SNAPSHOT/adapter-1.8.8-20200627.040005-41.jar"
"sha1": "fb8afde03ae6cde9bf76b1bd0d2cbea0517df5b4",
"path": "com/griefdefender/adapter/1.8.8-SNAPSHOT/adapter-1.8.8-20200628.025347-42.jar",
"url": "https://repo.glaremasters.me/repository/bloodshot/com/griefdefender/adapter/1.8.8-SNAPSHOT/adapter-1.8.8-20200628.025347-42.jar"
},
{
"name": "com.griefdefender:api:1.0.0",

View File

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

View File

@ -2,10 +2,10 @@
name=GriefDefender
group=com.griefdefender
url=https://github.com/bloodmc/GriefDefender
version=1.4.4
version=1.4.5
apiVersion=1.0.0-20200528.202302-24
# Bukkit
adapterVersion=1.16.1-20200627.034742-3
adapterVersion=1.16.1-20200628.024544-5
spigotVersion=1.16.1-R0.1-SNAPSHOT
# Sponge
adapterSpongeVersion=1.12.2-20200627.042712-12

View File

@ -649,9 +649,13 @@ public class GDClaimManager implements ClaimManager {
}
public GDChunk getChunk(Chunk chunk) {
return this.getChunk(chunk, true);
}
public GDChunk getChunk(Chunk chunk, boolean force) {
final long chunkKey = getChunkKey(chunk);
GDChunk gdChunk = this.chunksToGDChunks.get(chunkKey);
if (gdChunk == null) {
if (gdChunk == null && force) {
gdChunk = new GDChunk(chunk);
this.chunksToGDChunks.put(chunkKey, gdChunk);
if (this.chunksToClaimsMap.get(chunkKey) == null) {

View File

@ -48,6 +48,8 @@ import com.griefdefender.claim.GDClaimManager;
import com.griefdefender.configuration.GriefDefenderConfig;
import com.griefdefender.configuration.MessageStorage;
import com.griefdefender.event.GDCauseStackManager;
import com.griefdefender.internal.registry.BlockTypeRegistryModule;
import com.griefdefender.internal.registry.GDBlockType;
import com.griefdefender.internal.util.BlockUtil;
import com.griefdefender.internal.util.NMSUtil;
import com.griefdefender.internal.visual.GDClaimVisual;
@ -427,6 +429,11 @@ public class BlockEventHandler {
if (!GDFlags.COLLIDE_BLOCK || source instanceof FallingBlock) {
return;
}
final GDBlockType gdBlock = BlockTypeRegistryModule.getInstance().getById(event.getTargetBlock().getType().getId()).orElse(null);
if (gdBlock != null && !gdBlock.isCollidable()) {
return;
}
if (GriefDefenderPlugin.isSourceIdBlacklisted(Flags.COLLIDE_BLOCK.getName(), source.getType().getId(), source.getWorld().getProperties())) {
return;
}

View File

@ -96,7 +96,7 @@ public class WorldEventHandler {
}
final GDClaimManager claimWorldManager = GriefDefenderPlugin.getInstance().dataStore.getClaimWorldManager(event.getTargetChunk().getWorld().getUniqueId());
final GDChunk gdChunk = claimWorldManager.getChunk(event.getTargetChunk());
final GDChunk gdChunk = claimWorldManager.getChunk(event.getTargetChunk(), false);
if (gdChunk != null) {
claimWorldManager.removeChunk(gdChunk.getChunkKey());
}

View File

@ -401,13 +401,9 @@ public class GDPermissionManager implements PermissionManager {
return value;
}
if (holder == GriefDefenderPlugin.DEFAULT_HOLDER) {
contexts.remove(claim.getContext());
return getFlagDefaultPermission(claim, permission, contexts);
}
return getClaimFlagPermission(claim, permission, contexts, inheritParents);
// Group MUST inherit default group or above will return undefined if no permission set on non-default group/user.
contexts.remove(claim.getContext());
return getFlagDefaultPermission(claim, permission, contexts);
}
private Tristate getClaimFlagPermission(Claim claim, String permission) {