diff --git a/common/src/main/java/net/momirealms/customfishing/common/helper/VersionHelper.java b/common/src/main/java/net/momirealms/customfishing/common/helper/VersionHelper.java index 513494f0..340746e2 100644 --- a/common/src/main/java/net/momirealms/customfishing/common/helper/VersionHelper.java +++ b/common/src/main/java/net/momirealms/customfishing/common/helper/VersionHelper.java @@ -106,10 +106,6 @@ public class VersionHelper { return version >= 20.5; } - public boolean isNewerThan1_20_5() { - return version >= 20.5; - } - public static boolean isFolia() { return folia; } diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/action/BukkitActionManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/action/BukkitActionManager.java index 0a8bc73c..ab5db85c 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/action/BukkitActionManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/action/BukkitActionManager.java @@ -244,7 +244,7 @@ public class BukkitActionManager implements ActionManager { for (String text : replaced) { Bukkit.getServer().dispatchCommand(Bukkit.getConsoleSender(), text); } - }, context.arg(ContextKeys.LOCATION)); + }, null); }; }); registerAction("player-command", (args, chance) -> { diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GetItemCommand.java b/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GetItemCommand.java index 1e9c39c8..972ffa53 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GetItemCommand.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GetItemCommand.java @@ -66,7 +66,7 @@ public class GetItemCommand extends BukkitCommandFeature { final String id = context.get("id"); final Player player = context.sender(); try { - ItemStack itemStack = BukkitCustomFishingPlugin.getInstance().getItemManager().buildInternal(Context.player(player), id); + ItemStack itemStack = BukkitCustomFishingPlugin.getInstance().getItemManager().buildInternal(Context.player(player).arg(ContextKeys.ID, id), id); if (itemStack == null) { throw new RuntimeException("Unrecognized item id: " + id); } diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GiveItemCommand.java b/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GiveItemCommand.java index 06cedc78..7ea35e3a 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GiveItemCommand.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/GiveItemCommand.java @@ -67,7 +67,7 @@ public class GiveItemCommand extends BukkitCommandFeature { final String id = context.get("id"); boolean toInv = context.flags().hasFlag("to-inventory"); try { - ItemStack itemStack = BukkitCustomFishingPlugin.getInstance().getItemManager().buildInternal(Context.player(player), id); + ItemStack itemStack = BukkitCustomFishingPlugin.getInstance().getItemManager().buildInternal(Context.player(player).arg(ContextKeys.ID, id), id); if (itemStack == null) { throw new RuntimeException("Unrecognized item id: " + id); } diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java index eba55e0e..f7f757a1 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/config/BukkitConfigManager.java @@ -414,7 +414,7 @@ public class BukkitConfigManager extends ConfigManager { this.registerItemParser(arg -> { String base64 = (String) arg; return (item, context) -> item.skull(base64); - }, 5200, "head"); + }, 5200, "head64"); this.registerItemParser(arg -> { List args = ListUtils.toList(arg); return (item, context) -> item.itemFlags(args); @@ -461,6 +461,10 @@ public class BukkitConfigManager extends ConfigManager { item.setTag(UUID.randomUUID(), "CustomFishing", "uuid"); }; }, 2_222, "stackable"); + this.registerItemParser(arg -> { + boolean enable = (boolean) arg; + return (item, context) -> item.setTag(enable ? 1 : 0, "CustomFishing", "placeable"); + }, 2_335, "placeable"); this.registerItemParser(arg -> { String sizePair = (String) arg; String[] split = sizePair.split("~", 2); diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/item/BukkitItemManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/item/BukkitItemManager.java index 4013dd68..e5bf7d69 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/item/BukkitItemManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/item/BukkitItemManager.java @@ -36,10 +36,7 @@ import net.momirealms.customfishing.bukkit.util.ItemStackUtils; import net.momirealms.customfishing.bukkit.util.LocationUtils; import net.momirealms.customfishing.common.item.Item; import net.momirealms.sparrow.heart.SparrowHeart; -import org.bukkit.Bukkit; -import org.bukkit.Location; -import org.bukkit.Material; -import org.bukkit.NamespacedKey; +import org.bukkit.*; import org.bukkit.block.Block; import org.bukkit.block.Skull; import org.bukkit.enchantments.Enchantment; @@ -131,7 +128,7 @@ public class BukkitItemManager implements ItemManager, Listener { // CustomFishingItem item = requireNonNull(items.get(id), () -> "No item found for " + id); CustomFishingItem item = items.get(id); if (item == null) return null; - return build(context.arg(ContextKeys.ID, id), item); + return build(context, item); } @NotNull @@ -417,13 +414,17 @@ public class BukkitItemManager implements ItemManager, Listener { @EventHandler (ignoreCancelled = true) public void onBreakBlock(BlockBreakEvent event) { final Block block = event.getBlock(); + if (event.getPlayer().getGameMode() == GameMode.CREATIVE) + return; if (block.getState() instanceof Skull) { PersistentDataContainer pdc = block.getChunk().getPersistentDataContainer(); - String base64 = pdc.get(new NamespacedKey(plugin.getBoostrap(), LocationUtils.toChunkPosString(block.getLocation())), PersistentDataType.STRING); + NamespacedKey key = new NamespacedKey(plugin.getBoostrap(), LocationUtils.toChunkPosString(block.getLocation())); + String base64 = pdc.get(key, PersistentDataType.STRING); if (base64 != null) { ItemStack itemStack = ItemStackUtils.fromBase64(base64); event.setDropItems(false); block.getLocation().getWorld().dropItemNaturally(block.getLocation(), itemStack); + pdc.remove(key); } } } diff --git a/gradle.properties b/gradle.properties index 13d8e45b..89d0dd8c 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,6 +1,5 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=2.2.7 config_version=34 project_group=net.momirealms @@ -49,5 +48,9 @@ lz4_version=1.8.0 #systemProp.socks.proxyPort=7890 #systemProp.http.proxyHost=127.0.0.1 #systemProp.http.proxyPort=7890 -#systemProp.https.proxyHost=127.0.0.1 -#systemProp.https.proxyPort=7890 \ No newline at end of file +systemProp.socks.proxyHost=127.0.0.1 +systemProp.socks.proxyPort=7890 +systemProp.http.proxyHost=127.0.0.1 +systemProp.http.proxyPort=7890 +systemProp.https.proxyHost=127.0.0.1 +systemProp.https.proxyPort=7890 \ No newline at end of file