Skip to content

Commit

Permalink
[1.4.4]修复因为CrypticLib改动导致物品的amount配置失去效果的bug
Browse files Browse the repository at this point in the history
  • Loading branch information
ChiyodaXiaoYi committed Nov 13, 2023
1 parent 49f03a8 commit e60d612
Show file tree
Hide file tree
Showing 5 changed files with 24 additions and 18 deletions.
4 changes: 2 additions & 2 deletions build.gradle.kts
Original file line number Diff line number Diff line change
Expand Up @@ -34,11 +34,11 @@ dependencies {
compileOnly("com.github.LoneDev6:API-ItemsAdder:3.5.0b")
compileOnly("com.github.oraxen:oraxen:1.160.0")
compileOnly("io.lumine:Mythic-Dist:5.3.5")
implementation("com.crypticlib:CrypticLib:0.0.5")
implementation("com.crypticlib:CrypticLib:0.0.6")
}

group = "com.github.yufiriamazenta"
version = "1.4.3"
version = "1.4.4"
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 @@ -22,7 +22,7 @@ private ItemGiveCommand() {

@Override
public boolean onCommand(CommandSender sender, List<String> args) {
if (args.size() < 1) {
if (args.isEmpty()) {
sendNotEnoughCmdParamMsg(sender, 1);
return true;
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -6,6 +6,7 @@
import com.github.yufiriamazenta.craftorithm.util.LangUtil;
import crypticlib.config.impl.YamlConfigWrapper;
import crypticlib.nms.item.Item;
import crypticlib.nms.item.ItemFactory;
import crypticlib.util.ItemUtil;
import dev.lone.itemsadder.api.CustomStack;
import io.lumine.mythic.bukkit.BukkitAdapter;
Expand All @@ -14,6 +15,7 @@
import io.lumine.mythic.core.items.MythicItem;
import io.th0rgal.oraxen.api.OraxenItems;
import org.bukkit.Material;
import org.bukkit.configuration.ConfigurationSection;
import org.bukkit.inventory.ItemStack;

import java.io.File;
Expand All @@ -38,8 +40,11 @@ public static void loadItems() {
Set<String> itemKeySet = itemFile.config().getKeys(false);
for (String itemKey : itemKeySet) {
try {
Item item = crypticlib.nms.item.ItemManager.item(itemFile.config().getConfigurationSection(itemKey));
itemMap.put(fileKey + ":" + itemKey, item.buildBukkit());
ConfigurationSection config = itemFile.config().getConfigurationSection(itemKey);
Item item = ItemFactory.item(config);
ItemStack bukkitItem = item.buildBukkit();
bukkitItem.setAmount(config.getInt("amount", 1));
itemMap.put(fileKey + ":" + itemKey, bukkitItem);
} catch (Exception e) {
LangUtil.info("load.item_load_exception", ContainerUtil.newHashMap("<item_name>", fileKey + ":" + itemKey));
e.printStackTrace();
Expand All @@ -60,8 +65,9 @@ public static void addCraftorithmItem(String itemFileName, String itemName, Item
} else {
yamlConfig = itemFileMap.get(itemFileName);
}
Item libItem = crypticlib.nms.item.ItemManager.item(item);
Item libItem = ItemFactory.item(item);
yamlConfig.set(itemName, libItem.toMap());
yamlConfig.set(itemName + ".amount", item.getAmount());
itemMap.put(itemFileName + ":" + itemName, item);
}

Expand All @@ -81,7 +87,7 @@ public static void loadItemFiles() {
return;
}
List<File> allFiles = FileUtil.getAllFiles(itemFileFolder);
if (allFiles.size() < 1) {
if (allFiles.isEmpty()) {
Craftorithm.getInstance().saveResource("items/example_item.yml", false);
allFiles.add(new File(itemFileFolder, "example_item.yml"));
}
Expand All @@ -106,7 +112,7 @@ public static File getItemFileFolder() {
return itemFileFolder;
}

public static ItemStack matchCraftorithmItem(String itemStr) {
public static ItemStack matchItem(String itemStr) {
ItemStack item;
int lastSpaceIndex = itemStr.lastIndexOf(" ");
int amountScale = 1;
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -59,7 +59,7 @@ private List<Map.Entry<ItemStack, Double>> getProbability(List<String> resultStr
for (String result : resultStr) {
String item = result.substring(0, result.lastIndexOf(" "));
double probability = Double.parseDouble(result.substring(result.lastIndexOf(" ") + 1));
ItemStack itemStack = ItemManager.matchCraftorithmItem(item);
ItemStack itemStack = ItemManager.matchItem(item);
sum += probability;
probabilityMap.put(itemStack, sum);
}
Expand Down
Original file line number Diff line number Diff line change
Expand Up @@ -196,9 +196,9 @@ public static Recipe stoneCuttingRecipe(YamlConfiguration config, String key) {
ItemStack result;
if (config.isList("result")) {
List<String> resultList = config.getStringList("result");
result = ItemManager.matchCraftorithmItem(resultList.get(0));
result = ItemManager.matchItem(resultList.get(0));
for (int i = 1; i < resultList.size(); i++) {
ItemStack result1 = ItemManager.matchCraftorithmItem(resultList.get(i));
ItemStack result1 = ItemManager.matchItem(resultList.get(i));
String fullKey = key + "." + i;
NamespacedKey namespacedKey = new NamespacedKey(Craftorithm.getInstance(), fullKey);
RecipeManager.regRecipe(namespacedKey, StoneCuttingRecipeBuilder.builder().key(namespacedKey).result(result1).source(choice).build(), config);
Expand All @@ -217,7 +217,7 @@ public static Recipe[] multipleStoneCuttingRecipe(YamlConfiguration config, Stri
List<String> sourceList = config.getStringList("source");
StonecuttingRecipe[] stonecuttingRecipes = new StonecuttingRecipe[resultList.size() * sourceList.size()];
for (int i = 0; i < resultList.size(); i++) {
ItemStack result = ItemManager.matchCraftorithmItem(resultList.get(i));
ItemStack result = ItemManager.matchItem(resultList.get(i));
for (int j = 0; j < sourceList.size(); j++) {
String fullKey = String.format(key + ".%d.%d", i, j);
NamespacedKey namespacedKey = new NamespacedKey(Craftorithm.getInstance(), fullKey);
Expand Down Expand Up @@ -246,10 +246,10 @@ public static Recipe[] multipleStoneCuttingRecipe(YamlConfiguration config, Stri
public static Recipe anvilRecipe(YamlConfiguration config, String key) {
ItemStack result = getResultItem(config);
String baseStr = config.getString("source.base", "");
ItemStack baseItem = ItemManager.matchCraftorithmItem(baseStr);
ItemStack baseItem = ItemManager.matchItem(baseStr);
AnvilRecipeItem base = new AnvilRecipeItem(baseItem, baseStr.contains(":"));
String additionStr = config.getString("source.addition", "");
ItemStack additionItem = ItemManager.matchCraftorithmItem(additionStr);
ItemStack additionItem = ItemManager.matchItem(additionStr);
AnvilRecipeItem addition = new AnvilRecipeItem(additionItem, additionStr.contains(":"));
NamespacedKey namespacedKey = new NamespacedKey(Craftorithm.getInstance(), key);
int costLevel = config.getInt("cost_level", 0);
Expand All @@ -266,9 +266,9 @@ public static Recipe[] multipleAnvilRecipe(YamlConfiguration config, String key)
String fullKey = key + "." + i;
NamespacedKey namespacedKey = new NamespacedKey(Craftorithm.getInstance(), fullKey);
String baseStr = (String) map.get("base");
AnvilRecipeItem base = new AnvilRecipeItem(ItemManager.matchCraftorithmItem(baseStr), baseStr.contains(":"));
AnvilRecipeItem base = new AnvilRecipeItem(ItemManager.matchItem(baseStr), baseStr.contains(":"));
String additionStr = (String) map.get("addition");
AnvilRecipeItem addition = new AnvilRecipeItem(ItemManager.matchCraftorithmItem(additionStr), additionStr.contains(":"));
AnvilRecipeItem addition = new AnvilRecipeItem(ItemManager.matchItem(additionStr), additionStr.contains(":"));
int costLevel = map.containsKey("cost_level") ? (Integer) map.get("cost_level") : globalCostLevel;
anvilRecipes[i] = AnvilRecipeBuilder.builder().key(namespacedKey).result(result).base(base).addition(addition).costLevel(costLevel).build();
}
Expand Down Expand Up @@ -304,7 +304,7 @@ private static ItemStack getResultItem(YamlConfiguration config) {
if (resultStr.isEmpty()) {
throw new IllegalArgumentException("Empty recipe result");
}
return ItemManager.matchCraftorithmItem(resultStr);
return ItemManager.matchItem(resultStr);
}

public static RecipeChoice getRecipeChoice(String itemStr) {
Expand All @@ -320,7 +320,7 @@ public static RecipeChoice getRecipeChoice(String itemStr) {
}
return new RecipeChoice.MaterialChoice(materialTag);
}
ItemStack item = ItemManager.matchCraftorithmItem(itemStr);
ItemStack item = ItemManager.matchItem(itemStr);
return new RecipeChoice.ExactChoice(item);
} else {
Material material = Material.matchMaterial(itemStr);
Expand Down

0 comments on commit e60d612

Please sign in to comment.