diff --git a/build.gradle.kts b/build.gradle.kts index 8d42a11..f910e2e 100644 --- a/build.gradle.kts +++ b/build.gradle.kts @@ -96,8 +96,10 @@ signing { nmcp { publishAllProjectsProbablyBreakingProjectIsolation { - username.set(findProperty("mavenCentralUsername") as String) - password.set(findProperty("mavenCentralPassword") as String) + val mavenUsername = findProperty("mavenCentralUsername") + val mavenPassword = findProperty("mavenCentralPassword") + username.set(if (mavenUsername != null) mavenUsername as String else "") + password.set(if (mavenPassword != null) mavenPassword as String else "") publicationType = "AUTOMATIC" } } diff --git a/src/main/java/com/jeff_media/customblockdata/CustomBlockData.java b/src/main/java/com/jeff_media/customblockdata/CustomBlockData.java index fe616b6..1adc0f1 100644 --- a/src/main/java/com/jeff_media/customblockdata/CustomBlockData.java +++ b/src/main/java/com/jeff_media/customblockdata/CustomBlockData.java @@ -22,7 +22,26 @@ package com.jeff_media.customblockdata; -import org.bukkit.*; +import java.io.IOException; +import java.lang.annotation.ElementType; +import java.lang.annotation.Retention; +import java.lang.annotation.RetentionPolicy; +import java.lang.annotation.Target; +import java.util.AbstractMap; +import java.util.HashSet; +import java.util.Map; +import java.util.Objects; +import java.util.Set; +import java.util.UUID; +import java.util.regex.Matcher; +import java.util.regex.Pattern; +import java.util.stream.Collectors; + +import org.bukkit.Bukkit; +import org.bukkit.Chunk; +import org.bukkit.Material; +import org.bukkit.NamespacedKey; +import org.bukkit.World; import org.bukkit.block.Block; import org.bukkit.event.block.BlockBreakEvent; import org.bukkit.persistence.PersistentDataAdapterContext; @@ -34,15 +53,7 @@ import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; -import java.io.IOException; -import java.lang.annotation.ElementType; -import java.lang.annotation.Retention; -import java.lang.annotation.RetentionPolicy; -import java.lang.annotation.Target; -import java.util.*; -import java.util.regex.Matcher; -import java.util.regex.Pattern; -import java.util.stream.Collectors; +import com.jeff_media.customblockdata.events.CustomBlockDataSavedEvent; /** * Represents a {@link PersistentDataContainer} for a specific {@link Block}. Also provides some static utility methods @@ -439,7 +450,8 @@ public void clear() { } /** - * Saves the block's {@link PersistentDataContainer} inside the chunk's PersistentDataContainer + * Saves the block's {@link PersistentDataContainer} inside the chunk's PersistentDataContainer. + * Fires the {@link CustomBlockDataSavedEvent} event after saving. */ private void save() { setDirty(plugin, blockEntry); @@ -448,6 +460,9 @@ private void save() { } else { chunk.getPersistentDataContainer().set(key, PersistentDataType.TAG_CONTAINER, pdc); } + + CustomBlockDataSavedEvent event = new CustomBlockDataSavedEvent(this); + Bukkit.getPluginManager().callEvent(event); } /** diff --git a/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataMoveEvent.java b/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataMoveEvent.java index 7a7c596..ba3ee95 100644 --- a/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataMoveEvent.java +++ b/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataMoveEvent.java @@ -25,7 +25,6 @@ import com.jeff_media.customblockdata.CustomBlockData; import org.bukkit.block.Block; import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; diff --git a/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataRemoveEvent.java b/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataRemoveEvent.java index 8f07c70..77048a1 100644 --- a/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataRemoveEvent.java +++ b/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataRemoveEvent.java @@ -24,7 +24,6 @@ import org.bukkit.block.Block; import org.bukkit.event.Event; -import org.bukkit.event.HandlerList; import org.bukkit.plugin.Plugin; import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.Nullable; diff --git a/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataSavedEvent.java b/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataSavedEvent.java new file mode 100644 index 0000000..c2c3664 --- /dev/null +++ b/src/main/java/com/jeff_media/customblockdata/events/CustomBlockDataSavedEvent.java @@ -0,0 +1,39 @@ +package com.jeff_media.customblockdata.events; + +import org.bukkit.event.Event; +import org.bukkit.event.HandlerList; +import org.bukkit.persistence.PersistentDataContainer; +import org.jetbrains.annotations.NotNull; + +import com.jeff_media.customblockdata.CustomBlockData; + +/** + * Called when a CustomBlockData is saved into the chunk's + * {@link PersistentDataContainer} See {@link CustomBlockData#save()}. + * + * @param customBlockData the {@link CustomBlockData} that was saved + */ +public class CustomBlockDataSavedEvent extends Event { + + private static final HandlerList HANDLERS_LIST = new HandlerList(); + + private final CustomBlockData customBlockData; + + public CustomBlockDataSavedEvent(@NotNull CustomBlockData customBlockData) { + this.customBlockData = customBlockData; + } + + public @NotNull CustomBlockData getCustomBlockData() { + return customBlockData; + } + + @Override + public HandlerList getHandlers() { + return HANDLERS_LIST; + } + + public static HandlerList getHandlerList() { + return HANDLERS_LIST; + } + +} \ No newline at end of file