Skip to content

Commit

Permalink
[1.4.7-dev3]配方管理类重构完毕,准备重构展示页面和命令部分
Browse files Browse the repository at this point in the history
  • Loading branch information
YufiriaMazenta committed Nov 16, 2023
1 parent 369e9ce commit 381e697
Show file tree
Hide file tree
Showing 14 changed files with 156 additions and 200 deletions.
3 changes: 2 additions & 1 deletion build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -15,6 +15,7 @@ repositories {
maven("https://repo.extendedclip.com/content/repositories/placeholderapi/")
maven("https://repo.maven.apache.org/maven2/")
maven("https://mvn.lumine.io/repository/maven-public/")
maven("https://repo.papermc.io/repository/maven-public/")
maven("https://nexus.phoenixdevt.fr/repository/maven-public/")
maven("http://repo.crypticlib.com:8081/repository/maven-public/") {
isAllowInsecureProtocol = true
Expand All @@ -37,7 +38,7 @@ dependencies {
}

group = "com.github.yufiriamazenta"
version = "1.4.7-dev2"
version = "1.4.7-dev3"
var pluginVersion: String = version.toString() + "-" + SimpleDateFormat("yyyyMMdd").format(System.currentTimeMillis())
java.sourceCompatibility = JavaVersion.VERSION_1_8
java.targetCompatibility = JavaVersion.VERSION_1_8
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -105,7 +105,7 @@ public void onServerLoad(ServerLoadEvent event) {
map.put(namespace, recipes);
}
}
RecipeManager.loadRecipes();
RecipeManager.reloadRecipes();
}
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -34,8 +34,8 @@ public ArcencielDispatcher getArcencielDispatcher() {
return ArcencielDispatcher.INSTANCE;
}

public Map<Recipe, RecipeType> getPluginRecipeTypeMap() {
return RecipeManager.getPluginRecipeTypeMap();
public RecipeType getRecipeType(Recipe recipe) {
return RecipeManager.getRecipeType(recipe);
}

public void setLoadedOtherPluginRecipe(boolean loadedOtherPluginRecipe) {
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -5,7 +5,10 @@
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;

import java.util.ArrayList;
import java.util.Arrays;
import java.util.List;
import java.util.Locale;

//TODO 展示全服所有配方
public final class RecipeListCommand extends AbstractSubCommand {
Expand All @@ -23,8 +26,25 @@ public boolean onCommand(CommandSender sender, List<String> args) {
return true;
}
Player player = (Player) sender;
switch (args.get(0).toLowerCase(Locale.ENGLISH)) {
case "all":
//TODO
break;
case "custom":
//TODO
break;
}
player.openInventory(new RecipeListMenuHolder().getInventory());
return true;
}

@Override
public List<String> onTabComplete(CommandSender sender, List<String> args) {
if (args.size() <= 1) {
List<String> list = new ArrayList<>(Arrays.asList("all", "custom"));
filterTabList(list, args.get(0));
return list;
}
return super.onTabComplete(sender, args);
}
}
Original file line number Diff line number Diff line change
Expand Up @@ -42,13 +42,13 @@ public static void reloadConfigs() {
LangUtil.reloadMsgConfig();
RecipeManager.getRemovedRecipeConfig().reloadConfig();
ItemManager.loadItemFiles();
RecipeManager.loadRecipeFiles();
RecipeManager.reloadRecipeFiles();
ArcencielDispatcher.INSTANCE.getFunctionFile().reloadConfig();
ItemUtil.reloadCannotCraftLore();
}

public static void reloadRecipes() {
RecipeManager.loadRecipes();
RecipeManager.reloadRecipes();
}

}
Original file line number Diff line number Diff line change
Expand Up @@ -3,7 +3,6 @@
import com.github.yufiriamazenta.craftorithm.recipe.RecipeManager;
import com.github.yufiriamazenta.craftorithm.util.LangUtil;
import crypticlib.command.ISubCmdExecutor;
import org.bukkit.NamespacedKey;
import org.bukkit.command.CommandSender;

import java.util.ArrayList;
Expand All @@ -26,7 +25,8 @@ public boolean onCommand(CommandSender sender, List<String> args) {
sendNotEnoughCmdParamMsg(sender, 1);
return true;
}
if (RecipeManager.removeRecipe(args.get(0), true)) {

if (RecipeManager.removeCraftorithmRecipe(args.get(0), true)) {
LangUtil.sendLang(sender, "command.remove.success");
}
else
Expand All @@ -38,10 +38,9 @@ public boolean onCommand(CommandSender sender, List<String> args) {
public List<String> onTabComplete(CommandSender sender, List<String> args) {
if (args.size() <= 1) {
List<String> tabList = new ArrayList<>();
for (NamespacedKey key : RecipeManager.getServerRecipeList().keySet()) {
String str = key.toString();
if (str.startsWith(args.get(0)))
tabList.add(key.toString());
for (String key : RecipeManager.getRecipeGroupMap().keySet()) {
if (key.startsWith(args.get(0)))
tabList.add(key);
}
filterTabList(tabList, args.get(0));
return tabList;
Expand Down
Original file line number Diff line number Diff line change
@@ -1,9 +1,7 @@
package com.github.yufiriamazenta.craftorithm.cmd.subcmd;

import com.github.yufiriamazenta.craftorithm.menu.impl.recipe.RecipeDisplayMenuHolder;
import com.github.yufiriamazenta.craftorithm.recipe.RecipeManager;
import com.github.yufiriamazenta.craftorithm.util.LangUtil;
import org.bukkit.NamespacedKey;
import org.bukkit.command.CommandSender;
import org.bukkit.entity.Player;
import org.bukkit.inventory.Recipe;
Expand All @@ -30,25 +28,27 @@ public boolean onCommand(CommandSender sender, List<String> args) {
sendNotEnoughCmdParamMsg(sender, 1);
return true;
}
Recipe recipe = RecipeManager.getCraftorithmRecipe(args.get(0));
if (recipe == null) {
List<Recipe> recipes = RecipeManager.getCraftorithmRecipe(args.get(0));
if (recipes.isEmpty()) {
LangUtil.sendLang(sender, "command.show.not_exist_recipe");
return true;
}
Player player = (Player) sender;
player.openInventory(new RecipeDisplayMenuHolder(recipe).getInventory());
//TODO 完成新版配方展示
// player.openInventory(new RecipeDisplayMenuHolder(recipe).getInventory());
return true;
}

@Override
public List<String> onTabComplete(CommandSender sender, List<String> args) {
//TODO 修改返回列表
if (args.size() <= 1) {
List<NamespacedKey> recipeKeyList = RecipeManager.getPluginRecipeKeys();
// List<NamespacedKey> recipeKeyList = RecipeManager.getPluginRecipeKeys();
List<String> tabList = new ArrayList<>();
for (NamespacedKey key : recipeKeyList) {
tabList.add(key.getKey());
}
filterTabList(tabList, args.get(0));
// for (NamespacedKey key : recipeKeyList) {
// tabList.add(key.getKey());
// }
// filterTabList(tabList, args.get(0));
return tabList;
} else {
return Collections.singletonList("");
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -113,10 +113,8 @@ private void setStoneCuttingMenuIcons() {
recipeConfig.saveConfig();
recipeConfig.reloadConfig();
Recipe[] recipes = RecipeFactory.newMultipleRecipe(recipeConfig.config(), recipeName);
for (Recipe recipe : recipes) {
NamespacedKey key = RecipeManager.getRecipeKey(recipe);
RecipeManager.regRecipes(key, recipe, recipeConfig.config());
}
RecipeManager.regRecipes(recipeName, Arrays.asList(recipes), recipeConfig);
RecipeManager.getRecipeConfigWrapperMap().put(recipeName, recipeConfig);
event.getWhoClicked().closeInventory();
sendSuccessMsgAndReloadMap(event.getWhoClicked());
});
Expand Down Expand Up @@ -197,8 +195,9 @@ private void setSmithingMenuIcons() {
}
recipeConfig.saveConfig();
recipeConfig.reloadConfig();
Recipe recipe = RecipeFactory.newRecipe(recipeConfig.config(), recipeName);
RecipeManager.regRecipes(NamespacedKey.fromString(recipeName, Craftorithm.getInstance()), recipe, recipeConfig.config());
Recipe[] recipes = RecipeFactory.newRecipe(recipeConfig.config(), recipeName);
RecipeManager.regRecipes(recipeName, Arrays.asList(recipes), recipeConfig);
RecipeManager.getRecipeConfigWrapperMap().put(recipeName, recipeConfig);
event.getWhoClicked().closeInventory();
sendSuccessMsgAndReloadMap(event.getWhoClicked());
});
Expand Down Expand Up @@ -281,17 +280,16 @@ private void setCookingMenuIcons() {
recipeConfig.saveConfig();
recipeConfig.reloadConfig();
Recipe[] multipleRecipes = RecipeFactory.newMultipleRecipe(recipeConfig.config(), recipeName);
for (Recipe recipe : multipleRecipes) {
NamespacedKey key = RecipeManager.getRecipeKey(recipe);
RecipeManager.regRecipes(key, recipe, recipeConfig.config());
}
RecipeManager.regRecipes(recipeName, Arrays.asList(multipleRecipes), recipeConfig);
RecipeManager.getRecipeConfigWrapperMap().put(recipeName, recipeConfig);
} else {
recipeConfig.config().set("source.block", "furnace");
recipeConfig.config().set("source.item", sourceName);
recipeConfig.saveConfig();
recipeConfig.reloadConfig();
Recipe recipe = RecipeFactory.newRecipe(recipeConfig.config(), recipeName);
RecipeManager.regRecipes(NamespacedKey.fromString(recipeName, Craftorithm.getInstance()), recipe, recipeConfig.config());
Recipe[] recipes = RecipeFactory.newRecipe(recipeConfig.config(), recipeName);
RecipeManager.regRecipes(recipeName, Arrays.asList(recipes), recipeConfig);
RecipeManager.getRecipeConfigWrapperMap().put(recipeName, recipeConfig);
}
event.getWhoClicked().closeInventory();
sendSuccessMsgAndReloadMap(event.getWhoClicked());
Expand Down Expand Up @@ -403,8 +401,9 @@ private void setCraftMenuIcons() {
}
recipeConfig.saveConfig();
recipeConfig.reloadConfig();
Recipe recipe = RecipeFactory.newRecipe(recipeConfig.config(), recipeName);
RecipeManager.regRecipes(NamespacedKey.fromString(recipeName, Craftorithm.getInstance()), recipe, recipeConfig.config());
Recipe[] recipes = RecipeFactory.newRecipe(recipeConfig.config(), recipeName);
RecipeManager.regRecipes(recipeName, Arrays.asList(recipes), recipeConfig);
RecipeManager.getRecipeConfigWrapperMap().put(recipeName, recipeConfig);
event.getWhoClicked().closeInventory();
sendSuccessMsgAndReloadMap(event.getWhoClicked());
});
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -32,7 +32,7 @@ public RecipeDisplayMenuHolder(Recipe recipe, RecipeListMenuHolder parentMenu) {
super();
this.parentMenu = parentMenu;
this.recipe = recipe;
RecipeType recipeType = RecipeManager.getCraftorithmRecipeType(recipe);
RecipeType recipeType = RecipeManager.getRecipeType(recipe);
switch (recipeType) {
case SHAPED:
setShapedRecipeMenu();
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -26,7 +26,8 @@ public class RecipeListMenuHolder extends BukkitMenuHandler {

public RecipeListMenuHolder() {
super();
this.recipeList = new ArrayList<>(RecipeManager.getPluginRecipeTypeMap().keySet());
//TODO 重写配方展示页面
this.recipeList = new ArrayList<>();
int recipeNum = recipeList.size();
page = 0;
if (recipeNum % 45 == 0)
Expand Down
Loading

0 comments on commit 381e697

Please sign in to comment.