add return to default value item for boolean & int setting gui

This commit is contained in:
alexcrea 2024-03-01 22:08:54 +01:00 committed by alexcrea
parent 75e75d92e6
commit 432e4fbfbd
3 changed files with 61 additions and 7 deletions

View file

@ -68,13 +68,13 @@ public class BasicConfigGui extends ValueUpdatableGui {
this.repairCostFactory = IntSettingsGui.factory("\u00A78Repair Cost Limit", this, this.repairCostFactory = IntSettingsGui.factory("\u00A78Repair Cost Limit", this,
ConfigOptions.LIMIT_REPAIR_VALUE, ConfigHolder.DEFAULT_CONFIG, range.getFirst(),range.getLast(), ConfigOptions.LIMIT_REPAIR_VALUE, ConfigHolder.DEFAULT_CONFIG, range.getFirst(),range.getLast(),
ConfigOptions.DEFAULT_LIMIT_REPAIR_VALUE, ConfigOptions.DEFAULT_LIMIT_REPAIR_VALUE,
1, 5, 10, 50, 100); 1, 5, 10);
// rename cost not needed // rename cost not needed
ItemStack item = new ItemStack(Material.BARRIER); ItemStack item = new ItemStack(Material.BARRIER);
ItemMeta meta = item.getItemMeta(); ItemMeta meta = item.getItemMeta();
meta.setDisplayName("\u00A7cRepair Cost Limit"); meta.setDisplayName("\u00A7cRepair Cost Value");
meta.setLore(Collections.singletonList("\u00A77Please, enable repair cost limit for this variable to be editable.")); meta.setLore(Collections.singletonList("\u00A77Please, enable repair cost limit for this variable to be editable."));
item.setItemMeta(meta); item.setItemMeta(meta);
this.notNeededLimitValueItem = new GuiItem(item, GuiGlobalActions.stayInPlace, CustomAnvil.instance); this.notNeededLimitValueItem = new GuiItem(item, GuiGlobalActions.stayInPlace, CustomAnvil.instance);
@ -88,7 +88,7 @@ public class BasicConfigGui extends ValueUpdatableGui {
this.itemRepairCost = IntSettingsGui.factory("\u00A78Item repair cost", this, this.itemRepairCost = IntSettingsGui.factory("\u00A78Item repair cost", this,
ConfigOptions.ITEM_REPAIR_COST, ConfigHolder.DEFAULT_CONFIG, range.getFirst(),range.getLast(), ConfigOptions.ITEM_REPAIR_COST, ConfigHolder.DEFAULT_CONFIG, range.getFirst(),range.getLast(),
ConfigOptions.DEFAULT_ITEM_REPAIR_COST, ConfigOptions.DEFAULT_ITEM_REPAIR_COST,
1, 5, 10); 1, 5, 10, 50, 100);
// unit repair cost // unit repair cost
this.unitRepairCost = IntSettingsGui.factory("\u00A78Unit repair cost", this, this.unitRepairCost = IntSettingsGui.factory("\u00A78Unit repair cost", this,

View file

@ -11,7 +11,9 @@ import org.bukkit.inventory.meta.ItemMeta;
import org.jetbrains.annotations.NotNull; import org.jetbrains.annotations.NotNull;
import xyz.alexcrea.cuanvil.config.ConfigHolder; import xyz.alexcrea.cuanvil.config.ConfigHolder;
import xyz.alexcrea.cuanvil.gui.ValueUpdatableGui; import xyz.alexcrea.cuanvil.gui.ValueUpdatableGui;
import xyz.alexcrea.cuanvil.gui.utils.GuiGlobalItems;
import java.util.Collections;
import java.util.function.Consumer; import java.util.function.Consumer;
public class BoolSettingsGui extends AbstractSettingGui{ public class BoolSettingsGui extends AbstractSettingGui{
@ -26,6 +28,7 @@ public class BoolSettingsGui extends AbstractSettingGui{
this.before = now; this.before = now;
this.now = now; this.now = now;
prepareReturnToDefault();
updateValueDisplay(); updateValueDisplay();
} }
@ -34,10 +37,25 @@ public class BoolSettingsGui extends AbstractSettingGui{
public Pattern getGuiPattern() { public Pattern getGuiPattern() {
return new Pattern( return new Pattern(
"000000000", "000000000",
"00-0v0+00", "D0-0v0+00",
"BD000000S" "B0000000S"
); );
} }
GuiItem returnToDefault;
protected void prepareReturnToDefault(){
ItemStack item = new ItemStack(Material.COMMAND_BLOCK);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName("\u00A7eReset to default value");
meta.setLore(Collections.singletonList("\u00A77Default value is: "+holder.defaultVal));
item.setItemMeta(meta);
returnToDefault = new GuiItem(item, event -> {
event.setCancelled(true);
now = holder.defaultVal;
updateValueDisplay();
update();
}, CustomAnvil.instance);
}
protected void updateValueDisplay(){ protected void updateValueDisplay(){
@ -63,6 +81,15 @@ public class BoolSettingsGui extends AbstractSettingGui{
pane.bindItem('v', resultItem); pane.bindItem('v', resultItem);
// reset to default
GuiItem returnToDefault;
if(now != holder.defaultVal){
returnToDefault = this.returnToDefault;
}else{
returnToDefault = GuiGlobalItems.backgroundItem();
}
pane.bindItem('D', returnToDefault);
} }
protected Consumer<InventoryClickEvent> inverseNowConsumer(){ protected Consumer<InventoryClickEvent> inverseNowConsumer(){

View file

@ -33,6 +33,7 @@ public class IntSettingsGui extends AbstractSettingGui{
this.now = now; this.now = now;
this.step = holder.steps[0]; this.step = holder.steps[0];
prepareReturnToDefault();
updateValueDisplay(); updateValueDisplay();
initStepsValue(); initStepsValue();
} }
@ -42,11 +43,27 @@ public class IntSettingsGui extends AbstractSettingGui{
public Pattern getGuiPattern() { public Pattern getGuiPattern() {
return new Pattern( return new Pattern(
"abcdefghi", "abcdefghi",
"00-0v0+00", "D0-0v0+00",
"BD000000S" "B0000000S"
); );
} }
GuiItem returnToDefault;
protected void prepareReturnToDefault(){
ItemStack item = new ItemStack(Material.COMMAND_BLOCK);
ItemMeta meta = item.getItemMeta();
meta.setDisplayName("\u00A7eReset to default value");
meta.setLore(Collections.singletonList("\u00A77Default value is: "+holder.defaultVal));
item.setItemMeta(meta);
returnToDefault = new GuiItem(item, event -> {
event.setCancelled(true);
now = holder.defaultVal;
updateValueDisplay();
update();
}, CustomAnvil.instance);
}
protected void updateValueDisplay(){ protected void updateValueDisplay(){
PatternPane pane = getPane(); PatternPane pane = getPane();
@ -93,6 +110,16 @@ public class IntSettingsGui extends AbstractSettingGui{
pane.bindItem('v', resultItem); pane.bindItem('v', resultItem);
// reset to default
GuiItem returnToDefault;
if(now != holder.defaultVal){
returnToDefault = this.returnToDefault;
}else{
returnToDefault = GuiGlobalItems.backgroundItem();
}
pane.bindItem('D', returnToDefault);
} }
protected Consumer<InventoryClickEvent> updateNowConsumer(int planned){ protected Consumer<InventoryClickEvent> updateNowConsumer(int planned){