Skip to content

Commit 8db6663

Browse files
无序工作台配方,熔炉配方,高炉配方,烟熏炉配方,营火配方的展示页面完成
1 parent 4161ad1 commit 8db6663

23 files changed

+430
-9
lines changed

build.gradle.kts

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1,5 +1,4 @@
11
import java.text.SimpleDateFormat
2-
version = "1.11.0-alpha-4"
32

43
plugins {
54
`java-library`
@@ -62,6 +61,7 @@ dependencies {
6261
// implementation("de.tr7zw:item-nbt-api:2.12.4")
6362
}
6463

64+
version = "${rootProject.findProperty("pluginVer")}"
6565
group = "com.github.yufiriamazenta"
6666
var pluginVersion: String = version.toString() + "-" + SimpleDateFormat("yyyyMMdd").format(System.currentTimeMillis())
6767
java.sourceCompatibility = JavaVersion.VERSION_21

gradle.properties

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -1 +1,2 @@
1-
crypticlibVer=1.13.3.0
1+
crypticlibVer=1.13.4.0
2+
pluginVer=1.11.0-alpha-4

src/main/java/pers/yufiria/craftorithm/command/recipe/DisplayRecipeCommand.java

Lines changed: 15 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -12,8 +12,10 @@
1212
import org.bukkit.Bukkit;
1313
import org.bukkit.NamespacedKey;
1414
import org.bukkit.entity.Player;
15+
import org.bukkit.inventory.CookingRecipe;
1516
import org.bukkit.inventory.Recipe;
1617
import org.bukkit.inventory.ShapedRecipe;
18+
import org.bukkit.inventory.ShapelessRecipe;
1719
import org.bukkit.plugin.Plugin;
1820
import org.jetbrains.annotations.NotNull;
1921
import org.jetbrains.annotations.Nullable;
@@ -26,6 +28,9 @@
2628
import pers.yufiria.craftorithm.recipe.extra.AnvilRecipe;
2729
import pers.yufiria.craftorithm.ui.display.anvil.AnvilDisplayMenuManager;
2830
import pers.yufiria.craftorithm.ui.display.vanillaShaped.VanillaShapedDisplayMenuManager;
31+
import pers.yufiria.craftorithm.ui.display.vanillaShapeless.VanillaShapelessDisplayIconParser;
32+
import pers.yufiria.craftorithm.ui.display.vanillaShapeless.VanillaShapelessDisplayMenuManager;
33+
import pers.yufiria.craftorithm.ui.display.vanillaSmelting.VanillaSmeltingDisplayMenuManager;
2934
import pers.yufiria.craftorithm.util.CommandUtils;
3035
import pers.yufiria.craftorithm.util.LangUtils;
3136

@@ -111,6 +116,16 @@ private void registerDefRecipeDisplay() {
111116
addRecipeDisplay(SimpleRecipeTypes.VANILLA_SHAPED, (player, recipe) -> {
112117
VanillaShapedDisplayMenuManager.INSTANCE.openMenu(player, (ShapedRecipe) recipe);
113118
});
119+
addRecipeDisplay(SimpleRecipeTypes.VANILLA_SHAPELESS, (player, recipe) -> {
120+
VanillaShapelessDisplayMenuManager.INSTANCE.openMenu(player, (ShapelessRecipe) recipe);
121+
});
122+
BiConsumer<Player, Recipe> smeltingFunc = (player, recipe) -> {
123+
VanillaSmeltingDisplayMenuManager.INSTANCE.openMenu(player, (CookingRecipe<?>) recipe);
124+
};
125+
addRecipeDisplay(SimpleRecipeTypes.VANILLA_SMELTING_FURNACE, smeltingFunc);
126+
addRecipeDisplay(SimpleRecipeTypes.VANILLA_SMELTING_BLAST, smeltingFunc);
127+
addRecipeDisplay(SimpleRecipeTypes.VANILLA_SMELTING_SMOKER, smeltingFunc);
128+
addRecipeDisplay(SimpleRecipeTypes.VANILLA_SMELTING_CAMPFIRE, smeltingFunc);
114129
if (PluginConfigs.ENABLE_ANVIL_RECIPE.value()) {
115130
addRecipeDisplay(SimpleRecipeTypes.ANVIL, (player, recipe) -> {
116131
AnvilDisplayMenuManager.INSTANCE.openMenu(player, (AnvilRecipe) recipe);

src/main/java/pers/yufiria/craftorithm/config/Languages.java

Lines changed: 6 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -49,7 +49,12 @@ public class Languages {
4949
public static final StringLangEntry RECIPE_TYPE_NAME_VANILLA_STONECUTTING = new StringLangEntry("recipe_type_name.vanilla_stonecutting");
5050
public static final StringLangEntry RECIPE_TYPE_NAME_VANILLA_BREWING = new StringLangEntry("recipe_type_name.vanilla_brewing");
5151
public static final StringLangEntry RECIPE_TYPE_NAME_ANVIL = new StringLangEntry("recipe_type_name.anvil");
52-
public static final StringLangEntry MENU_RECIPE_CREATOR_NAME = new StringLangEntry("menu.recipe_creator_name");
5352

53+
public static final StringLangEntry MENU_RECIPE_CREATOR_NAME = new StringLangEntry("menu.recipe_creator.name");
54+
public static final StringLangEntry MENU_RECIPE_CREATOR_NULL_RESULT = new StringLangEntry("menu.recipe_creator.null_result");
55+
public static final StringLangEntry MENU_RECIPE_CREATOR_NULL_INGREDIENTS = new StringLangEntry("menu.recipe_creator.null_ingredients");
56+
public static final StringLangEntry MENU_RECIPE_DISPLAY_ANVIL_COST_LEVEL = new StringLangEntry("menu.recipe_display.anvil.cost_level");
57+
public static final StringLangEntry MENU_RECIPE_DISPLAY_VANILLA_SMELTING_TIME = new StringLangEntry("menu.recipe_display.vanilla_smelting.time");
58+
public static final StringLangEntry MENU_RECIPE_DISPLAY_VANILLA_SMELTING_REWARD_EXP = new StringLangEntry("menu.recipe_display.vanilla_smelting.reward_exp");
5459

5560
}
Lines changed: 18 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,18 @@
1+
package pers.yufiria.craftorithm.config.menu.display;
2+
3+
import crypticlib.config.ConfigHandler;
4+
import crypticlib.config.node.impl.bukkit.ConfigSectionConfig;
5+
import crypticlib.config.node.impl.bukkit.StringConfig;
6+
import crypticlib.config.node.impl.bukkit.StringListConfig;
7+
8+
import java.util.List;
9+
10+
11+
@ConfigHandler(path = "menus/display/vanilla_shapeless.yml")
12+
public class VanillaShapeless {
13+
14+
public static final StringConfig TITLE = new StringConfig("title", "<translate:lang:recipe_type_name.vanilla_shapeless>");
15+
public static final StringListConfig LAYOUT = new StringListConfig("layout", List.of("#########", "#ABC#####", "#DEF###R#", "#GHI#####", "#########"));
16+
public static final ConfigSectionConfig ICONS = new ConfigSectionConfig("icons");
17+
18+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package pers.yufiria.craftorithm.config.menu.display;
2+
3+
import crypticlib.config.ConfigHandler;
4+
import crypticlib.config.node.impl.bukkit.ConfigSectionConfig;
5+
import crypticlib.config.node.impl.bukkit.StringConfig;
6+
import crypticlib.config.node.impl.bukkit.StringListConfig;
7+
8+
import java.util.List;
9+
10+
@ConfigHandler(path = "menus/display/vanilla_smelting_blast.yml")
11+
public class VanillaSmeltingBlast {
12+
13+
public static final StringConfig TITLE = new StringConfig("title", "<translate:lang:recipe_type_name.vanilla_smelting_blast>");
14+
public static final StringListConfig LAYOUT = new StringListConfig("layout", List.of("#########", "##A###R##", "#########"));
15+
public static final ConfigSectionConfig ICONS = new ConfigSectionConfig("icons");
16+
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package pers.yufiria.craftorithm.config.menu.display;
2+
3+
import crypticlib.config.ConfigHandler;
4+
import crypticlib.config.node.impl.bukkit.ConfigSectionConfig;
5+
import crypticlib.config.node.impl.bukkit.StringConfig;
6+
import crypticlib.config.node.impl.bukkit.StringListConfig;
7+
8+
import java.util.List;
9+
10+
@ConfigHandler(path = "menus/display/vanilla_smelting_campfire.yml")
11+
public class VanillaSmeltingCampfire {
12+
13+
public static final StringConfig TITLE = new StringConfig("title", "<translate:lang:recipe_type_name.vanilla_smelting_campfire>");
14+
public static final StringListConfig LAYOUT = new StringListConfig("layout", List.of("#########", "##A###R##", "#########"));
15+
public static final ConfigSectionConfig ICONS = new ConfigSectionConfig("icons");
16+
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package pers.yufiria.craftorithm.config.menu.display;
2+
3+
import crypticlib.config.ConfigHandler;
4+
import crypticlib.config.node.impl.bukkit.ConfigSectionConfig;
5+
import crypticlib.config.node.impl.bukkit.StringConfig;
6+
import crypticlib.config.node.impl.bukkit.StringListConfig;
7+
8+
import java.util.List;
9+
10+
@ConfigHandler(path = "menus/display/vanilla_smelting_furnace.yml")
11+
public class VanillaSmeltingFurnace {
12+
13+
public static final StringConfig TITLE = new StringConfig("title", "<translate:lang:recipe_type_name.vanilla_smelting_furnace>");
14+
public static final StringListConfig LAYOUT = new StringListConfig("layout", List.of("#########", "##A###R##", "#########"));
15+
public static final ConfigSectionConfig ICONS = new ConfigSectionConfig("icons");
16+
17+
}
Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,17 @@
1+
package pers.yufiria.craftorithm.config.menu.display;
2+
3+
import crypticlib.config.ConfigHandler;
4+
import crypticlib.config.node.impl.bukkit.ConfigSectionConfig;
5+
import crypticlib.config.node.impl.bukkit.StringConfig;
6+
import crypticlib.config.node.impl.bukkit.StringListConfig;
7+
8+
import java.util.List;
9+
10+
@ConfigHandler(path = "menus/display/vanilla_smelting_smoker.yml")
11+
public class VanillaSmeltingSmoker {
12+
13+
public static final StringConfig TITLE = new StringConfig("title", "<translate:lang:recipe_type_name.vanilla_smelting_smoker>");
14+
public static final StringListConfig LAYOUT = new StringListConfig("layout", List.of("#########", "##A###R##", "#########"));
15+
public static final ConfigSectionConfig ICONS = new ConfigSectionConfig("icons");
16+
17+
}

src/main/java/pers/yufiria/craftorithm/recipe/copyComponents/CopyComponentsManager.java

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,11 @@ public CopyComponentsRule unregisterCopyNbtRule(String ruleName) {
5858
return copyNbtRules.remove(ruleName);
5959
}
6060

61+
/**
62+
* 添加对于某个配方的组件保留策略
63+
* @param key 配方的key
64+
* @param ruleNames 所需的组件保留策略
65+
*/
6166
public void addRecipeCopyNbtRules(NamespacedKey key, List<String> ruleNames) {
6267
List<CopyComponentsRule> rules = new ArrayList<>();
6368
for (String ruleName : ruleNames) {

0 commit comments

Comments
 (0)