mirror of
https://github.com/alexcrea/CustomAnvil.git
synced 2026-06-23 16:16:17 +02:00
custom craft linear cost config values
This commit is contained in:
parent
0baa1b8b28
commit
ec4351e70d
5 changed files with 57 additions and 31 deletions
|
|
@ -63,7 +63,7 @@ public class CustomRecipeConfigGui extends MappedGuiListConfigGui<AnvilCustomRec
|
|||
meta.setLore(Arrays.asList(
|
||||
"§7Should work: §" + (shouldWork ? "aYes" : "cNo"),
|
||||
"§7Exact count: §" + (recipe.getExactCount() ? "aYes" : "cNo"),
|
||||
"§7Recipe Xp Cost: §e" + recipe.getXpCostPerCraft()
|
||||
"§7Recipe Xp Cost: §e" + recipe.levelCostPerCraft()
|
||||
|
||||
));
|
||||
|
||||
|
|
@ -87,7 +87,7 @@ public class CustomRecipeConfigGui extends MappedGuiListConfigGui<AnvilCustomRec
|
|||
AnvilCustomRecipe recipe = new AnvilCustomRecipe(
|
||||
name,
|
||||
AnvilCustomRecipe.DEFAULT_EXACT_COUNT_CONFIG,
|
||||
AnvilCustomRecipe.DEFAULT_XP_COST_CONFIG,
|
||||
AnvilCustomRecipe.DEFAULT_XP_LEVEL_COST_CONFIG,
|
||||
AnvilCustomRecipe.Companion.getDEFAULT_LEFT_ITEM_CONFIG(),
|
||||
AnvilCustomRecipe.Companion.getDEFAULT_RIGHT_ITEM_CONFIG(),
|
||||
AnvilCustomRecipe.Companion.getDEFAULT_RESULT_ITEM_CONFIG());
|
||||
|
|
|
|||
|
|
@ -81,10 +81,10 @@ public class CustomRecipeSubSettingGui extends MappedToListSubSettingGui {
|
|||
this.anvilRecipe + "." + AnvilCustomRecipe.EXACT_COUNT_CONFIG, AnvilCustomRecipe.DEFAULT_EXACT_COUNT_CONFIG);
|
||||
|
||||
this.xpCostFactory = new IntSettingsGui.IntSettingFactory("§8Recipe Xp Cost", this,
|
||||
this.anvilRecipe +"."+AnvilCustomRecipe.XP_COST_CONFIG,
|
||||
this.anvilRecipe +"."+AnvilCustomRecipe.XP_LEVEL_COST_CONFIG,
|
||||
ConfigHolder.CUSTOM_RECIPE_HOLDER,
|
||||
null,
|
||||
costRange.getFirst(), costRange.getLast(), AnvilCustomRecipe.DEFAULT_XP_COST_CONFIG, 1, 5, 10);
|
||||
costRange.getFirst(), costRange.getLast(), AnvilCustomRecipe.DEFAULT_XP_LEVEL_COST_CONFIG, 1, 5, 10);
|
||||
|
||||
|
||||
this.leftItemFactory = new ItemSettingGui.ItemSettingFactory("§eRecipe Left §8Item", this,
|
||||
|
|
|
|||
|
|
@ -130,7 +130,7 @@ class AnvilResultListener : Listener {
|
|||
if (recipe.leftItem == null) return // in case it changed
|
||||
|
||||
val amount = CustomRecipeUtil.getCustomRecipeAmount(recipe, leftItem, rightItem)
|
||||
val xpCost = amount * recipe.xpCostPerCraft
|
||||
val xpCost = amount * recipe.levelCostPerCraft
|
||||
|
||||
CustomAnvil.log("gamemode: ${player.gameMode != GameMode.CREATIVE}, cost: $xpCost, level: ${player.level}, result: ${player.level < xpCost}")
|
||||
if ((player.gameMode != GameMode.CREATIVE) && (player.level < xpCost)) return
|
||||
|
|
|
|||
|
|
@ -137,7 +137,7 @@ class PrepareAnvilListener : Listener {
|
|||
if (DependencyManager.tryTreatAnvilResult(event, resultItem)) return true
|
||||
|
||||
// Maybe add an option on custom craft to ignore/not ignore penalty ??
|
||||
var xpCost = recipe.xpCostPerCraft * amount
|
||||
var xpCost = recipe.levelCostPerCraft * amount
|
||||
xpCost += AnvilXpUtil.calculatePenalty(first, null, resultItem, AnvilUseType.CUSTOM_CRAFT)
|
||||
|
||||
AnvilXpUtil.setAnvilInvXp(inventory, event.view, player, xpCost, true)
|
||||
|
|
|
|||
|
|
@ -12,7 +12,10 @@ class AnvilCustomRecipe(
|
|||
//var exactLeft: Boolean,
|
||||
//var exactRight: Boolean,
|
||||
|
||||
var xpCostPerCraft: Int,
|
||||
var levelCostPerCraft: Int,
|
||||
|
||||
var XpCostPerCraft: Int,
|
||||
var removeExactXp: Boolean,
|
||||
|
||||
var leftItem: ItemStack?,
|
||||
var rightItem: ItemStack?,
|
||||
|
|
@ -25,7 +28,9 @@ class AnvilCustomRecipe(
|
|||
//const val EXACT_LEFT_CONFIG = "exact_left"
|
||||
//const val EXACT_RIGHT_CONFIG = "exact_right"
|
||||
|
||||
const val XP_COST_CONFIG = "xp_cost"
|
||||
const val XP_LEVEL_COST_CONFIG = "xp_cost"
|
||||
const val LINEAR_XP_COST_CONFIG = "linear_xp_cost"
|
||||
const val REMOVE_EXACT_XP_CONFIG = "remove_exact_linear_xp"
|
||||
|
||||
const val LEFT_ITEM_CONFIG = "left_item"
|
||||
const val RIGHT_ITEM_CONFIG = "right_item"
|
||||
|
|
@ -36,7 +41,9 @@ class AnvilCustomRecipe(
|
|||
//val DEFAULT_EXACT_LEFT_CONFIG = true
|
||||
//val DEFAULT_EXACT_RIGHT_CONFIG = true
|
||||
|
||||
const val DEFAULT_XP_COST_CONFIG = 1
|
||||
const val DEFAULT_XP_LEVEL_COST_CONFIG = 1
|
||||
const val DEFAULT_LINEAR_XP_COST_CONFIG = 0
|
||||
const val DEFAULT_REMOVE_EXACT_XP_CONFIG = false
|
||||
|
||||
val DEFAULT_LEFT_ITEM_CONFIG: ItemStack? = null
|
||||
val DEFAULT_RIGHT_ITEM_CONFIG: ItemStack? = null
|
||||
|
|
@ -52,9 +59,13 @@ class AnvilCustomRecipe(
|
|||
//configSection.getBoolean(EXACT_LEFT_CONFIG, true),
|
||||
//configSection.getBoolean(EXACT_RIGHT_CONFIG, true),
|
||||
|
||||
configSection.getInt(XP_COST_CONFIG, DEFAULT_XP_COST_CONFIG),
|
||||
configSection.getInt(XP_LEVEL_COST_CONFIG, DEFAULT_XP_LEVEL_COST_CONFIG),
|
||||
configSection.getInt(LINEAR_XP_COST_CONFIG, DEFAULT_LINEAR_XP_COST_CONFIG),
|
||||
configSection.getBoolean(REMOVE_EXACT_XP_CONFIG, DEFAULT_REMOVE_EXACT_XP_CONFIG),
|
||||
|
||||
|
||||
configSection.getItemStack(LEFT_ITEM_CONFIG, DEFAULT_LEFT_ITEM_CONFIG),
|
||||
|
||||
configSection.getItemStack(RIGHT_ITEM_CONFIG, DEFAULT_RIGHT_ITEM_CONFIG),
|
||||
configSection.getItemStack(RESULT_ITEM_CONFIG, DEFAULT_RESULT_ITEM_CONFIG),
|
||||
|
||||
|
|
@ -81,7 +92,9 @@ class AnvilCustomRecipe(
|
|||
//fileConfig.set("$name.$EXACT_LEFT_CONFIG", exactLeft)
|
||||
//fileConfig.set("$name.$EXACT_RIGHT_CONFIG", exactRight)
|
||||
|
||||
fileConfig["$name.$XP_COST_CONFIG"] = xpCostPerCraft
|
||||
fileConfig["$name.$XP_LEVEL_COST_CONFIG"] = levelCostPerCraft
|
||||
fileConfig["$name.$LINEAR_XP_COST_CONFIG"] = XpCostPerCraft
|
||||
fileConfig["$name.$REMOVE_EXACT_XP_CONFIG"] = removeExactXp
|
||||
|
||||
fileConfig["$name.$LEFT_ITEM_CONFIG"] = leftItem
|
||||
fileConfig["$name.$RIGHT_ITEM_CONFIG"] = rightItem
|
||||
|
|
@ -95,7 +108,10 @@ class AnvilCustomRecipe(
|
|||
|
||||
@Deprecated("Should use saveToFile(Boolean, Boolean) instead") //TODO determine when an where to save/do backup and remove use of variable like TEMPORARY_DO_SAVE_TO_DISK_EVERY_CHANGE
|
||||
fun saveToFile() {
|
||||
saveToFile(GuiSharedConstant.TEMPORARY_DO_SAVE_TO_DISK_EVERY_CHANGE, GuiSharedConstant.TEMPORARY_DO_BACKUP_EVERY_SAVE)
|
||||
saveToFile(
|
||||
GuiSharedConstant.TEMPORARY_DO_SAVE_TO_DISK_EVERY_CHANGE,
|
||||
GuiSharedConstant.TEMPORARY_DO_BACKUP_EVERY_SAVE
|
||||
)
|
||||
}
|
||||
|
||||
fun updateFromFile() {
|
||||
|
|
@ -104,9 +120,19 @@ class AnvilCustomRecipe(
|
|||
DEFAULT_EXACT_COUNT_CONFIG
|
||||
)
|
||||
|
||||
this.xpCostPerCraft = ConfigHolder.CUSTOM_RECIPE_HOLDER.config.getInt(
|
||||
"$name.$XP_COST_CONFIG",
|
||||
DEFAULT_XP_COST_CONFIG
|
||||
this.levelCostPerCraft = ConfigHolder.CUSTOM_RECIPE_HOLDER.config.getInt(
|
||||
"$name.$XP_LEVEL_COST_CONFIG",
|
||||
DEFAULT_XP_LEVEL_COST_CONFIG
|
||||
)
|
||||
|
||||
this.XpCostPerCraft = ConfigHolder.CUSTOM_RECIPE_HOLDER.config.getInt(
|
||||
"$name.$LINEAR_XP_COST_CONFIG",
|
||||
DEFAULT_LINEAR_XP_COST_CONFIG
|
||||
)
|
||||
|
||||
this.removeExactXp = ConfigHolder.CUSTOM_RECIPE_HOLDER.config.getBoolean(
|
||||
"$name.$REMOVE_EXACT_XP_CONFIG",
|
||||
DEFAULT_REMOVE_EXACT_XP_CONFIG
|
||||
)
|
||||
|
||||
// Update items
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue