diff --git a/compatibility/build.gradle.kts b/compatibility/build.gradle.kts index 33bee78a..8fcf3aac 100644 --- a/compatibility/build.gradle.kts +++ b/compatibility/build.gradle.kts @@ -51,6 +51,8 @@ dependencies { compileOnly(files("libs/zaphkiel-2.0.24.jar")) compileOnly(files("libs/ExecutableItems-7.24.9.29.jar")) compileOnly(files("libs/SCore-5.24.9.29.jar")) + compileOnly(files("libs/SCore-5.24.9.29.jar")) + compileOnly(files("libs/CraftEngine-beta.jar")) compileOnly("com.github.LoneDev6:API-ItemsAdder:3.6.1") compileOnly("net.Indyuce:MMOItems-API:6.10-SNAPSHOT") compileOnly("io.lumine:MythicLib-dist:1.6.2-SNAPSHOT") diff --git a/compatibility/libs/CraftEngine-beta.jar b/compatibility/libs/CraftEngine-beta.jar new file mode 100644 index 00000000..c1cc7820 Binary files /dev/null and b/compatibility/libs/CraftEngine-beta.jar differ diff --git a/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CraftEngineProvider.java b/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CraftEngineProvider.java new file mode 100644 index 00000000..609a9145 --- /dev/null +++ b/compatibility/src/main/java/net/momirealms/customfishing/bukkit/integration/item/CraftEngineProvider.java @@ -0,0 +1,52 @@ +/* + * Copyright (C) <2024> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package net.momirealms.customfishing.bukkit.integration.item; + +import net.momirealms.craftengine.api.CraftEngine; +import net.momirealms.craftengine.common.util.Key; +import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; +import net.momirealms.customfishing.api.integration.ItemProvider; +import net.momirealms.customfishing.api.mechanic.context.Context; +import net.momirealms.customfishing.api.mechanic.context.ContextKeys; +import org.bukkit.entity.Player; +import org.bukkit.inventory.ItemStack; +import org.jetbrains.annotations.NotNull; + +import java.util.Optional; + +import static java.util.Objects.requireNonNull; + +public class CraftEngineProvider implements ItemProvider { + + @Override + public String identifier() { + return "CraftEngine"; + } + + @NotNull + @Override + public ItemStack buildItem(@NotNull Player player, @NotNull String id) { + ItemStack itemStack = CraftEngine.instance().itemManager().buildItem(Key.fromString(id), player); + return requireNonNull(itemStack); + } + + @Override + public String itemID(@NotNull ItemStack itemStack) { + return Optional.ofNullable(CraftEngine.instance().itemManager().itemId(itemStack)).map(Key::toString).orElse(null); + } +} diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java b/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java index 47bbe22b..3016792c 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/BukkitCustomFishingPluginImpl.java @@ -59,6 +59,7 @@ import net.momirealms.customfishing.common.plugin.logging.PluginLogger; import net.momirealms.sparrow.heart.SparrowHeart; import org.bstats.bukkit.Metrics; import org.bukkit.Bukkit; +import org.bukkit.Particle; import org.bukkit.plugin.Plugin; import org.bukkit.plugin.java.JavaPlugin; diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/command/BukkitCommandManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/command/BukkitCommandManager.java index be6f1538..f2130d77 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/command/BukkitCommandManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/command/BukkitCommandManager.java @@ -55,7 +55,8 @@ public class BukkitCommandManager extends AbstractCommandManager new SetStatisticsCommand(this), new ResetStatisticsCommand(this), new QueryStatisticsCommand(this), - new DebugLootCommand(this) + new DebugLootCommand(this), + new DebugBiomeCommand(this) ); private final Index> INDEX = Index.create(CommandFeature::getFeatureID, FEATURES); diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/DebugBiomeCommand.java b/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/DebugBiomeCommand.java new file mode 100644 index 00000000..c6e50210 --- /dev/null +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/command/feature/DebugBiomeCommand.java @@ -0,0 +1,49 @@ +/* + * Copyright (C) <2024> + * + * This program is free software: you can redistribute it and/or modify + * it under the terms of the GNU General Public License as published by + * the Free Software Foundation, either version 3 of the License, or + * any later version. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program. If not, see . + */ + +package net.momirealms.customfishing.bukkit.command.feature; + +import net.kyori.adventure.text.Component; +import net.momirealms.customfishing.api.BukkitCustomFishingPlugin; +import net.momirealms.customfishing.bukkit.command.BukkitCommandFeature; +import net.momirealms.customfishing.common.command.CustomFishingCommandManager; +import net.momirealms.sparrow.heart.SparrowHeart; +import org.bukkit.command.CommandSender; +import org.bukkit.entity.Player; +import org.incendo.cloud.Command; +import org.incendo.cloud.CommandManager; + +public class DebugBiomeCommand extends BukkitCommandFeature { + + public DebugBiomeCommand(CustomFishingCommandManager commandManager) { + super(commandManager); + } + + @Override + public Command.Builder assembleCommand(CommandManager manager, Command.Builder builder) { + return builder + .senderType(Player.class) + .handler(context -> { + BukkitCustomFishingPlugin.getInstance().getSenderFactory().wrap(context.sender()).sendMessage(Component.text(SparrowHeart.getInstance().getBiomeResourceLocation(context.sender().getLocation()))); + }); + } + + @Override + public String getFeatureID() { + return "debug_biome"; + } +} diff --git a/core/src/main/java/net/momirealms/customfishing/bukkit/integration/BukkitIntegrationManager.java b/core/src/main/java/net/momirealms/customfishing/bukkit/integration/BukkitIntegrationManager.java index b58c0fd3..45681376 100644 --- a/core/src/main/java/net/momirealms/customfishing/bukkit/integration/BukkitIntegrationManager.java +++ b/core/src/main/java/net/momirealms/customfishing/bukkit/integration/BukkitIntegrationManager.java @@ -81,6 +81,9 @@ public class BukkitIntegrationManager implements IntegrationManager { registerBlockProvider(new ItemsAdderBlockProvider()); registerEntityProvider(new ItemsAdderEntityProvider()); } + if (isHooked("CraftEngine")) { + registerItemProvider(new CraftEngineProvider()); + } if (isHooked("MMOItems")) { registerItemProvider(new MMOItemsItemProvider()); } diff --git a/core/src/main/resources/commands.yml b/core/src/main/resources/commands.yml index 1db6046a..38296f2a 100644 --- a/core/src/main/resources/commands.yml +++ b/core/src/main/resources/commands.yml @@ -192,4 +192,13 @@ debug_loot: permission: customfishing.command.debug usage: - /customfishing debug loot - - /cfishing debug loot \ No newline at end of file + - /cfishing debug loot + +# A command to debug the biome +# Usage: [COMMAND] +debug_biome: + enable: true + permission: customfishing.command.debug + usage: + - /customfishing debug biome + - /cfishing debug biome \ No newline at end of file diff --git a/gradle.properties b/gradle.properties index 7ab5f3c0..4a8e166b 100644 --- a/gradle.properties +++ b/gradle.properties @@ -1,11 +1,11 @@ # Project settings # Rule: [major update].[feature update].[bug fix] -project_version=2.2.32 +project_version=2.2.33 config_version=36 project_group=net.momirealms # Supported languages -lang=en,zh_cn,uk +lang=en,zh_cn,uk,ru # Dependency settings paper_version=1.20.4