From 240b0e710c87cc85e845200c6c524a9c787dec1a Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 2 Aug 2020 18:45:12 +0200 Subject: [PATCH 1/9] Renamed BlockStateSnapshot to BlockStateSnapshotHandler --- src/main/java/io/papermc/lib/environments/Environment.java | 4 ++-- .../BlockStateSnapshotBeforeSnapshots.java | 2 +- ...lockStateSnapshot.java => BlockStateSnapshotHandler.java} | 5 ++++- .../blockstatesnapshot/BlockStateSnapshotNoOption.java | 2 +- .../BlockStateSnapshotOptionalSnapshots.java | 2 +- 5 files changed, 9 insertions(+), 6 deletions(-) rename src/main/java/io/papermc/lib/features/blockstatesnapshot/{BlockStateSnapshot.java => BlockStateSnapshotHandler.java} (70%) diff --git a/src/main/java/io/papermc/lib/environments/Environment.java b/src/main/java/io/papermc/lib/environments/Environment.java index f07c1da..1375e49 100644 --- a/src/main/java/io/papermc/lib/environments/Environment.java +++ b/src/main/java/io/papermc/lib/environments/Environment.java @@ -6,7 +6,7 @@ import io.papermc.lib.features.asyncteleport.AsyncTeleportSync; import io.papermc.lib.features.bedspawnlocation.BedSpawnLocation; import io.papermc.lib.features.bedspawnlocation.BedSpawnLocationSync; -import io.papermc.lib.features.blockstatesnapshot.BlockStateSnapshot; +import io.papermc.lib.features.blockstatesnapshot.BlockStateSnapshotHandler; import io.papermc.lib.features.blockstatesnapshot.BlockStateSnapshotBeforeSnapshots; import io.papermc.lib.features.blockstatesnapshot.BlockStateSnapshotNoOption; import io.papermc.lib.features.blockstatesnapshot.BlockStateSnapshotResult; @@ -37,7 +37,7 @@ public abstract class Environment { protected AsyncChunks asyncChunksHandler = new AsyncChunksSync(); protected AsyncTeleport asyncTeleportHandler = new AsyncTeleportSync(); protected ChunkIsGenerated isGeneratedHandler = new ChunkIsGeneratedUnknown(); - protected BlockStateSnapshot blockStateSnapshotHandler; + protected BlockStateSnapshotHandler blockStateSnapshotHandler; protected BedSpawnLocation bedSpawnLocationHandler = new BedSpawnLocationSync(); public Environment() { diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java index 1d11a19..c60ec6f 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java @@ -5,7 +5,7 @@ /** * Block State Snapshots was added in 1.12, this will always be no snapshots */ -public class BlockStateSnapshotBeforeSnapshots implements BlockStateSnapshot { +public class BlockStateSnapshotBeforeSnapshots implements BlockStateSnapshotHandler { @Override public BlockStateSnapshotResult getBlockState(Block block, boolean useSnapshot) { diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshot.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java similarity index 70% rename from src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshot.java rename to src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java index e26a2df..b289de4 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshot.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java @@ -2,6 +2,9 @@ import org.bukkit.block.Block; -public interface BlockStateSnapshot { +@FunctionalInterface +public interface BlockStateSnapshotHandler { + BlockStateSnapshotResult getBlockState(Block block, boolean useSnapshot); + } diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java index af4566b..11961c1 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java @@ -2,7 +2,7 @@ import org.bukkit.block.Block; -public class BlockStateSnapshotNoOption implements BlockStateSnapshot { +public class BlockStateSnapshotNoOption implements BlockStateSnapshotHandler { @Override public BlockStateSnapshotResult getBlockState(Block block, boolean useSnapshot) { return new BlockStateSnapshotResult(true, block.getState()); diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java index d5c42c9..ff2a3a9 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java @@ -2,7 +2,7 @@ import org.bukkit.block.Block; -public class BlockStateSnapshotOptionalSnapshots implements BlockStateSnapshot { +public class BlockStateSnapshotOptionalSnapshots implements BlockStateSnapshotHandler { @Override public BlockStateSnapshotResult getBlockState(Block block, boolean useSnapshot) { return new BlockStateSnapshotResult(useSnapshot, block.getState(useSnapshot)); From a62b4cf7c108372aeb3884d4cc79cf8c1615a407 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 2 Aug 2020 18:49:19 +0200 Subject: [PATCH 2/9] Added documentation --- .../BlockStateSnapshotHandler.java | 23 ++++++++++++++++++- 1 file changed, 22 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java index b289de4..de3e8cd 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java @@ -1,10 +1,31 @@ package io.papermc.lib.features.blockstatesnapshot; import org.bukkit.block.Block; +import org.bukkit.block.BlockState; +import io.papermc.lib.environments.Environment; + +/** + * A {@link BlockStateSnapshotHandler} is responsible for getting a {@link BlockState} + * from a {@link Block}. This {@link BlockState} can be a snapshot or not, which depends + * on the Server software that is used or the arguments that are passed. + *
+ * You can use {@link #getBlockState(Block, boolean)} to the actual {@link BlockStateSnapshotResult} + * that holds the {@link BlockState} and a boolean determining whether it was a snapshot or not. + * + */ @FunctionalInterface public interface BlockStateSnapshotHandler { - + + /** + * This takes the {@link BlockState} of a given {@link Block}, optionally as a snapshot. + * If the {@link Environment} forces a {@link BlockState} to be a snapshot, that argument + * will be ignored. + * + * @param block The {@link Block} to get the {@link BlockState} from + * @param useSnapshot Whether a snapshot should be taken, might default to true in certain {@link Environment Environments} + * @return A {@link BlockStateSnapshotResult} + */ BlockStateSnapshotResult getBlockState(Block block, boolean useSnapshot); } From a83c870ecc6b6aba548959495fcbd3861f22663b Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 2 Aug 2020 18:54:41 +0200 Subject: [PATCH 3/9] Added documentation, indicate nullability --- .../blockstatesnapshot/BlockStateSnapshotHandler.java | 5 ++++- 1 file changed, 4 insertions(+), 1 deletion(-) diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java index de3e8cd..03b6ef2 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java @@ -1,5 +1,7 @@ package io.papermc.lib.features.blockstatesnapshot; +import javax.annotation.Nonnull; + import org.bukkit.block.Block; import org.bukkit.block.BlockState; @@ -26,6 +28,7 @@ public interface BlockStateSnapshotHandler { * @param useSnapshot Whether a snapshot should be taken, might default to true in certain {@link Environment Environments} * @return A {@link BlockStateSnapshotResult} */ - BlockStateSnapshotResult getBlockState(Block block, boolean useSnapshot); + @Nonnull + BlockStateSnapshotResult getBlockState(@Nonnull Block block, boolean useSnapshot); } From 01f27bfbc0e64476717132869e275ddebfe5bc8c Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 2 Aug 2020 19:04:16 +0200 Subject: [PATCH 4/9] More documentation --- .../BlockStateSnapshotBeforeSnapshots.java | 8 +++-- .../BlockStateSnapshotHandler.java | 6 ++-- .../BlockStateSnapshotNoOption.java | 14 ++++++++- .../BlockStateSnapshotOptionalSnapshots.java | 14 ++++++++- .../BlockStateSnapshotResult.java | 29 ++++++++++++++++++- 5 files changed, 63 insertions(+), 8 deletions(-) diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java index c60ec6f..d932a09 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java @@ -1,14 +1,18 @@ package io.papermc.lib.features.blockstatesnapshot; +import javax.annotation.Nonnull; + import org.bukkit.block.Block; +import org.bukkit.block.BlockState; /** - * Block State Snapshots was added in 1.12, this will always be no snapshots + * {@link BlockState} Snapshots were added in 1.12, this will always be no snapshots. */ public class BlockStateSnapshotBeforeSnapshots implements BlockStateSnapshotHandler { @Override - public BlockStateSnapshotResult getBlockState(Block block, boolean useSnapshot) { + @Nonnull + public BlockStateSnapshotResult getBlockState(@Nonnull Block block, boolean useSnapshot) { return new BlockStateSnapshotResult(false, block.getState()); } } diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java index 03b6ef2..dbeaefe 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java @@ -21,11 +21,11 @@ public interface BlockStateSnapshotHandler { /** * This takes the {@link BlockState} of a given {@link Block}, optionally as a snapshot. - * If the {@link Environment} forces a {@link BlockState} to be a snapshot, that argument - * will be ignored. + * The {@link Environment} may override this behaviour to always use snapshots or to always + * use non-snapshots. * * @param block The {@link Block} to get the {@link BlockState} from - * @param useSnapshot Whether a snapshot should be taken, might default to true in certain {@link Environment Environments} + * @param useSnapshot Whether a snapshot should be taken, might be overridden in certain {@link Environment Environments} * @return A {@link BlockStateSnapshotResult} */ @Nonnull diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java index 11961c1..b929d3d 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java @@ -1,10 +1,22 @@ package io.papermc.lib.features.blockstatesnapshot; +import javax.annotation.Nonnull; + import org.bukkit.block.Block; +import org.bukkit.block.BlockState; + +import io.papermc.lib.environments.Environment; +/** + * This {@link BlockStateSnapshotHandler} is used when the {@link Environment} forces every + * {@link BlockState} to be a snaphot. + * + */ public class BlockStateSnapshotNoOption implements BlockStateSnapshotHandler { + @Override - public BlockStateSnapshotResult getBlockState(Block block, boolean useSnapshot) { + @Nonnull + public BlockStateSnapshotResult getBlockState(@Nonnull Block block, boolean useSnapshot) { return new BlockStateSnapshotResult(true, block.getState()); } } diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java index ff2a3a9..ff9bbea 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java @@ -1,10 +1,22 @@ package io.papermc.lib.features.blockstatesnapshot; +import javax.annotation.Nonnull; + import org.bukkit.block.Block; +import io.papermc.lib.environments.Environment; + +/** + * This {@link BlockStateSnapshotHandler} allows the developer to decide whether or not to + * take a snapshot. + * if this handler is used, then the {@link Environment} supports both snapshots and non-snapshots. + * + */ public class BlockStateSnapshotOptionalSnapshots implements BlockStateSnapshotHandler { + @Override - public BlockStateSnapshotResult getBlockState(Block block, boolean useSnapshot) { + @Nonnull + public BlockStateSnapshotResult getBlockState(@Nonnull Block block, boolean useSnapshot) { return new BlockStateSnapshotResult(useSnapshot, block.getState(useSnapshot)); } } diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java index 2659ec5..e3d0454 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java @@ -1,20 +1,47 @@ package io.papermc.lib.features.blockstatesnapshot; +import javax.annotation.Nonnull; + +import org.bukkit.block.Block; import org.bukkit.block.BlockState; +import io.papermc.lib.PaperLib; +import io.papermc.lib.environments.Environment; + +/** + * Objects of this type are the result of {@link PaperLib#getBlockState(Block, boolean)}. + * You can use a {@link BlockStateSnapshotResult} to obtain the actual {@link BlockState} but + * also to determine whether a snapshot was taken or not. + * + */ public class BlockStateSnapshotResult { + private final boolean isSnapshot; private final BlockState state; - public BlockStateSnapshotResult(boolean isSnapshot, BlockState state) { + public BlockStateSnapshotResult(boolean isSnapshot, @Nonnull BlockState state) { this.isSnapshot = isSnapshot; this.state = state; } + /** + * This method returns whether the corresponding {@link BlockState} is a snapshot or not. + * A {@link BlockState} will be a snapshot if explicitly requested or if the {@link Environment} + * does not allow non-snapshot {@link BlockState BlockStates}. + * + * @return Whether this {@link BlockState} is a snapshot + */ public boolean isSnapshot() { return isSnapshot; } + /** + * This returns the {@link BlockState} that was taken. + * To check if it is a snapshot, see {@link #isSnapshot()}. + * + * @return The taken {@link BlockState} + */ + @Nonnull public BlockState getState() { return state; } From e4a4a78aff93d00ab6fc7b613ed432e2de49d1d6 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 2 Aug 2020 19:17:08 +0200 Subject: [PATCH 5/9] Added javadocs to the constructor --- .../blockstatesnapshot/BlockStateSnapshotResult.java | 7 +++++++ 1 file changed, 7 insertions(+) diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java index e3d0454..94d2d27 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java @@ -19,6 +19,13 @@ public class BlockStateSnapshotResult { private final boolean isSnapshot; private final BlockState state; + /** + * This creates a new {@link BlockStateSnapshotResult} with the given arguments. + * This constructor is normally invoked by a {@link BlockStateSnapshotHandler}. + * + * @param isSnapshot Whether this {@link BlockState} is a snapshot or not + * @param state The corresponding {@link BlockState} + */ public BlockStateSnapshotResult(boolean isSnapshot, @Nonnull BlockState state) { this.isSnapshot = isSnapshot; this.state = state; From 65a547756fdee540046c991d8be57296f084b3dd Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 2 Aug 2020 19:20:33 +0200 Subject: [PATCH 6/9] Improved documentation in the main class --- src/main/java/io/papermc/lib/PaperLib.java | 9 +++++---- 1 file changed, 5 insertions(+), 4 deletions(-) diff --git a/src/main/java/io/papermc/lib/PaperLib.java b/src/main/java/io/papermc/lib/PaperLib.java index 2b4db6f..bc4a38f 100644 --- a/src/main/java/io/papermc/lib/PaperLib.java +++ b/src/main/java/io/papermc/lib/PaperLib.java @@ -9,6 +9,7 @@ import org.bukkit.Location; import org.bukkit.World; import org.bukkit.block.Block; +import org.bukkit.block.BlockState; import org.bukkit.entity.Entity; import org.bukkit.entity.Player; import org.bukkit.event.player.PlayerTeleportEvent.TeleportCause; @@ -180,10 +181,10 @@ public static boolean isChunkGenerated(@Nonnull World world, int x, int z) { } /** - * Get's a BlockState, optionally not using a snapshot - * @param block The block to get a State of - * @param useSnapshot Whether or not to use a snapshot when supported - * @return The BlockState + * This gets a {@link BlockState}, optionally not using a snapshot (if the {@link Environment} allows it) + * @param block The {@link Block} to get the {@link BlockState} of + * @param useSnapshot Whether or not to use a snapshot, if supported by the {@link Environment} + * @return The {@link BlockState} */ @Nonnull public static BlockStateSnapshotResult getBlockState(@Nonnull Block block, boolean useSnapshot) { From d6d5a78c4541a8ad9b6f8d202acddc62a7bd0fd6 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Sun, 2 Aug 2020 19:21:25 +0200 Subject: [PATCH 7/9] Changed the wording a little --- src/main/java/io/papermc/lib/PaperLib.java | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/src/main/java/io/papermc/lib/PaperLib.java b/src/main/java/io/papermc/lib/PaperLib.java index bc4a38f..a120c07 100644 --- a/src/main/java/io/papermc/lib/PaperLib.java +++ b/src/main/java/io/papermc/lib/PaperLib.java @@ -181,9 +181,9 @@ public static boolean isChunkGenerated(@Nonnull World world, int x, int z) { } /** - * This gets a {@link BlockState}, optionally not using a snapshot (if the {@link Environment} allows it) + * This gets a {@link BlockState}, optionally not using a snapshot (if the {@link Environment} does not override that) * @param block The {@link Block} to get the {@link BlockState} of - * @param useSnapshot Whether or not to use a snapshot, if supported by the {@link Environment} + * @param useSnapshot Whether or not to use a snapshot, may be ignored by certain {@link Environment Environments} * @return The {@link BlockState} */ @Nonnull From 2855bd9b7b1c7aec86f049d8b3f59cd8d58c1202 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Wed, 4 Nov 2020 18:48:31 +0100 Subject: [PATCH 8/9] Applied suggested javadoc changes Co-authored-by: Mariell --- .../blockstatesnapshot/BlockStateSnapshotHandler.java | 3 +-- .../BlockStateSnapshotOptionalSnapshots.java | 1 - .../blockstatesnapshot/BlockStateSnapshotResult.java | 5 ++--- 3 files changed, 3 insertions(+), 6 deletions(-) diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java index dbeaefe..2526d9c 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java @@ -11,10 +11,9 @@ * A {@link BlockStateSnapshotHandler} is responsible for getting a {@link BlockState} * from a {@link Block}. This {@link BlockState} can be a snapshot or not, which depends * on the Server software that is used or the arguments that are passed. - *
+ *

* You can use {@link #getBlockState(Block, boolean)} to the actual {@link BlockStateSnapshotResult} * that holds the {@link BlockState} and a boolean determining whether it was a snapshot or not. - * */ @FunctionalInterface public interface BlockStateSnapshotHandler { diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java index ff9bbea..85db911 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java @@ -10,7 +10,6 @@ * This {@link BlockStateSnapshotHandler} allows the developer to decide whether or not to * take a snapshot. * if this handler is used, then the {@link Environment} supports both snapshots and non-snapshots. - * */ public class BlockStateSnapshotOptionalSnapshots implements BlockStateSnapshotHandler { diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java index 94d2d27..55690fa 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java @@ -12,7 +12,6 @@ * Objects of this type are the result of {@link PaperLib#getBlockState(Block, boolean)}. * You can use a {@link BlockStateSnapshotResult} to obtain the actual {@link BlockState} but * also to determine whether a snapshot was taken or not. - * */ public class BlockStateSnapshotResult { @@ -34,7 +33,7 @@ public BlockStateSnapshotResult(boolean isSnapshot, @Nonnull BlockState state) { /** * This method returns whether the corresponding {@link BlockState} is a snapshot or not. * A {@link BlockState} will be a snapshot if explicitly requested or if the {@link Environment} - * does not allow non-snapshot {@link BlockState BlockStates}. + * does not allow non-snapshot {@link BlockState}s. * * @return Whether this {@link BlockState} is a snapshot */ @@ -46,7 +45,7 @@ public boolean isSnapshot() { * This returns the {@link BlockState} that was taken. * To check if it is a snapshot, see {@link #isSnapshot()}. * - * @return The taken {@link BlockState} + * @return The captured {@link BlockState}. */ @Nonnull public BlockState getState() { From c6235542a23ede0a8a6cc25c5452b92faf558d80 Mon Sep 17 00:00:00 2001 From: TheBusyBiscuit Date: Fri, 6 Nov 2020 10:48:58 +0100 Subject: [PATCH 9/9] Reverted renaming and annotation --- src/main/java/io/papermc/lib/environments/Environment.java | 4 ++-- ...lockStateSnapshotHandler.java => BlockStateSnapshot.java} | 5 ++--- .../BlockStateSnapshotBeforeSnapshots.java | 2 +- .../blockstatesnapshot/BlockStateSnapshotNoOption.java | 4 ++-- .../BlockStateSnapshotOptionalSnapshots.java | 4 ++-- .../blockstatesnapshot/BlockStateSnapshotResult.java | 2 +- 6 files changed, 10 insertions(+), 11 deletions(-) rename src/main/java/io/papermc/lib/features/blockstatesnapshot/{BlockStateSnapshotHandler.java => BlockStateSnapshot.java} (88%) diff --git a/src/main/java/io/papermc/lib/environments/Environment.java b/src/main/java/io/papermc/lib/environments/Environment.java index 1375e49..f07c1da 100644 --- a/src/main/java/io/papermc/lib/environments/Environment.java +++ b/src/main/java/io/papermc/lib/environments/Environment.java @@ -6,7 +6,7 @@ import io.papermc.lib.features.asyncteleport.AsyncTeleportSync; import io.papermc.lib.features.bedspawnlocation.BedSpawnLocation; import io.papermc.lib.features.bedspawnlocation.BedSpawnLocationSync; -import io.papermc.lib.features.blockstatesnapshot.BlockStateSnapshotHandler; +import io.papermc.lib.features.blockstatesnapshot.BlockStateSnapshot; import io.papermc.lib.features.blockstatesnapshot.BlockStateSnapshotBeforeSnapshots; import io.papermc.lib.features.blockstatesnapshot.BlockStateSnapshotNoOption; import io.papermc.lib.features.blockstatesnapshot.BlockStateSnapshotResult; @@ -37,7 +37,7 @@ public abstract class Environment { protected AsyncChunks asyncChunksHandler = new AsyncChunksSync(); protected AsyncTeleport asyncTeleportHandler = new AsyncTeleportSync(); protected ChunkIsGenerated isGeneratedHandler = new ChunkIsGeneratedUnknown(); - protected BlockStateSnapshotHandler blockStateSnapshotHandler; + protected BlockStateSnapshot blockStateSnapshotHandler; protected BedSpawnLocation bedSpawnLocationHandler = new BedSpawnLocationSync(); public Environment() { diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshot.java similarity index 88% rename from src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java rename to src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshot.java index 2526d9c..f2e57c5 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotHandler.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshot.java @@ -8,15 +8,14 @@ import io.papermc.lib.environments.Environment; /** - * A {@link BlockStateSnapshotHandler} is responsible for getting a {@link BlockState} + * A {@link BlockStateSnapshot} is responsible for getting a {@link BlockState} * from a {@link Block}. This {@link BlockState} can be a snapshot or not, which depends * on the Server software that is used or the arguments that are passed. *

* You can use {@link #getBlockState(Block, boolean)} to the actual {@link BlockStateSnapshotResult} * that holds the {@link BlockState} and a boolean determining whether it was a snapshot or not. */ -@FunctionalInterface -public interface BlockStateSnapshotHandler { +public interface BlockStateSnapshot { /** * This takes the {@link BlockState} of a given {@link Block}, optionally as a snapshot. diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java index d932a09..7e9ae81 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotBeforeSnapshots.java @@ -8,7 +8,7 @@ /** * {@link BlockState} Snapshots were added in 1.12, this will always be no snapshots. */ -public class BlockStateSnapshotBeforeSnapshots implements BlockStateSnapshotHandler { +public class BlockStateSnapshotBeforeSnapshots implements BlockStateSnapshot { @Override @Nonnull diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java index b929d3d..c4a1f11 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotNoOption.java @@ -8,11 +8,11 @@ import io.papermc.lib.environments.Environment; /** - * This {@link BlockStateSnapshotHandler} is used when the {@link Environment} forces every + * This {@link BlockStateSnapshot} is used when the {@link Environment} forces every * {@link BlockState} to be a snaphot. * */ -public class BlockStateSnapshotNoOption implements BlockStateSnapshotHandler { +public class BlockStateSnapshotNoOption implements BlockStateSnapshot { @Override @Nonnull diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java index 85db911..e726553 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotOptionalSnapshots.java @@ -7,11 +7,11 @@ import io.papermc.lib.environments.Environment; /** - * This {@link BlockStateSnapshotHandler} allows the developer to decide whether or not to + * This {@link BlockStateSnapshot} allows the developer to decide whether or not to * take a snapshot. * if this handler is used, then the {@link Environment} supports both snapshots and non-snapshots. */ -public class BlockStateSnapshotOptionalSnapshots implements BlockStateSnapshotHandler { +public class BlockStateSnapshotOptionalSnapshots implements BlockStateSnapshot { @Override @Nonnull diff --git a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java index 55690fa..095ce2b 100644 --- a/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java +++ b/src/main/java/io/papermc/lib/features/blockstatesnapshot/BlockStateSnapshotResult.java @@ -20,7 +20,7 @@ public class BlockStateSnapshotResult { /** * This creates a new {@link BlockStateSnapshotResult} with the given arguments. - * This constructor is normally invoked by a {@link BlockStateSnapshotHandler}. + * This constructor is normally invoked by a {@link BlockStateSnapshot}. * * @param isSnapshot Whether this {@link BlockState} is a snapshot or not * @param state The corresponding {@link BlockState}