From 3e04438d673745ca59a3aa94c546c2613b5f7e81 Mon Sep 17 00:00:00 2001 From: Bob Varioa Date: Sat, 4 Dec 2021 15:15:54 -0600 Subject: [PATCH] feat: add config to exclude rewards from "Claim all" --- .../dev/ftb/mods/ftbquests/quest/reward/Reward.java | 10 +++++++++- .../ftb/mods/ftbquests/quest/reward/RewardType.java | 2 +- 2 files changed, 10 insertions(+), 2 deletions(-) diff --git a/common/src/main/java/dev/ftb/mods/ftbquests/quest/reward/Reward.java b/common/src/main/java/dev/ftb/mods/ftbquests/quest/reward/Reward.java index 08d987863..aa25fc571 100644 --- a/common/src/main/java/dev/ftb/mods/ftbquests/quest/reward/Reward.java +++ b/common/src/main/java/dev/ftb/mods/ftbquests/quest/reward/Reward.java @@ -39,11 +39,13 @@ public abstract class Reward extends QuestObjectBase { public Tristate team; public RewardAutoClaim autoclaim; + public boolean optional; public Reward(Quest q) { quest = q; team = Tristate.DEFAULT; autoclaim = RewardAutoClaim.DEFAULT; + optional = getType().getExcludeFromListRewards(); } @Override @@ -80,6 +82,8 @@ public void writeData(CompoundTag nbt) { if (autoclaim != RewardAutoClaim.DEFAULT) { nbt.putString("auto", autoclaim.id); } + + if (optional) nbt.putBoolean("optional", optional); } @Override @@ -87,6 +91,7 @@ public void readData(CompoundTag nbt) { super.readData(nbt); team = Tristate.read(nbt, "team_reward"); autoclaim = RewardAutoClaim.NAME_MAP.get(nbt.getString("auto")); + optional = nbt.getBoolean("optional"); } @Override @@ -94,6 +99,7 @@ public void writeNetData(FriendlyByteBuf buffer) { super.writeNetData(buffer); Tristate.NAME_MAP.write(buffer, team); RewardAutoClaim.NAME_MAP.write(buffer, autoclaim); + buffer.writeBoolean(optional); } @Override @@ -101,6 +107,7 @@ public void readNetData(FriendlyByteBuf buffer) { super.readNetData(buffer); team = Tristate.NAME_MAP.read(buffer); autoclaim = RewardAutoClaim.NAME_MAP.read(buffer); + optional = buffer.readBoolean(); } @Override @@ -109,6 +116,7 @@ public void getConfig(ConfigGroup config) { super.getConfig(config); config.addEnum("team", team, v -> team = v, Tristate.NAME_MAP).setNameKey("ftbquests.reward.team_reward"); config.addEnum("autoclaim", autoclaim, v -> autoclaim = v, RewardAutoClaim.NAME_MAP).setNameKey("ftbquests.reward.autoclaim"); + config.addBool("optional", optional, v -> optional = v, optional).setNameKey("ftbquests.reward.optional"); } public abstract void claim(ServerPlayer player, boolean notify); @@ -238,7 +246,7 @@ public void onButtonClicked(Button button, boolean canClick) { } public boolean getExcludeFromClaimAll() { - return getType().getExcludeFromListRewards(); + return optional; } @Nullable diff --git a/common/src/main/java/dev/ftb/mods/ftbquests/quest/reward/RewardType.java b/common/src/main/java/dev/ftb/mods/ftbquests/quest/reward/RewardType.java index de70a19ba..44b3f2a74 100644 --- a/common/src/main/java/dev/ftb/mods/ftbquests/quest/reward/RewardType.java +++ b/common/src/main/java/dev/ftb/mods/ftbquests/quest/reward/RewardType.java @@ -56,7 +56,7 @@ public interface GuiProvider { private final Supplier icon; private Component displayName; private GuiProvider guiProvider; - private boolean excludeFromListRewards; + private boolean excludeFromListRewards = false; public int intId; public RewardType(ResourceLocation i, Provider p, Supplier ic) {