mirror of
https://github.com/bloodmc/GriefDefender.git
synced 2025-01-31 23:21:33 +01:00
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:
parent
06939181a7
commit
d40116763b
@ -653,9 +653,13 @@ public UUID getWorldId() {
|
||||
}
|
||||
|
||||
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) {
|
||||
|
@ -139,8 +139,7 @@ public void onBlockPlaceMonitor(BlockPlaceEvent event) {
|
||||
|
||||
@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 void onBlockPhysicsMonitor(BlockPhysicsEvent event) {
|
||||
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());
|
||||
|
@ -92,7 +92,7 @@ public void onChunkUnload(ChunkUnloadEvent event) {
|
||||
}
|
||||
|
||||
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();
|
||||
|
@ -348,13 +348,9 @@ private Tristate getUserPermission(GDPermissionHolder holder, Claim claim, Strin
|
||||
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) {
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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",
|
||||
|
@ -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
|
||||
|
@ -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
|
||||
|
@ -649,9 +649,13 @@ public UUID getWorldId() {
|
||||
}
|
||||
|
||||
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) {
|
||||
|
@ -48,6 +48,8 @@
|
||||
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 void onBlockCollide(CollideBlockEvent event, @Root Entity source) {
|
||||
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;
|
||||
}
|
||||
|
@ -96,7 +96,7 @@ public void onChunkUnload(UnloadChunkEvent event) {
|
||||
}
|
||||
|
||||
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());
|
||||
}
|
||||
|
@ -401,13 +401,9 @@ private Tristate getUserPermission(GDPermissionHolder holder, Claim claim, Strin
|
||||
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) {
|
||||
|
Loading…
Reference in New Issue
Block a user