Skip to content

Commit 7ede57e

Browse files
committed
Implement "has been opened".
1 parent 48cf96d commit 7ede57e

File tree

3 files changed

+19
-3
lines changed

3 files changed

+19
-3
lines changed

src/main/java/noobanidus/mods/lootr/api/data/ILootrInfoProvider.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -95,7 +95,7 @@ default void performClose(ServerPlayer player) {
9595
default void performDecay () {
9696
ILootrSavedData data = LootrAPI.getData(this);
9797
if (data != null) {
98-
data.clearInventories();
98+
data.refresh();
9999
data.clearOpeners();
100100
markChanged();
101101
}

src/main/java/noobanidus/mods/lootr/api/data/ILootrSavedData.java

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -29,7 +29,9 @@ public interface ILootrSavedData extends IRedirect<ILootrInfo>, ILootrInfo, IOpe
2929

3030
void update (ILootrInfo info);
3131

32-
void clearInventories();
32+
void refresh();
33+
34+
boolean hasBeenOpened ();
3335

3436
default boolean clearInventories (ServerPlayer player) {
3537
return clearInventories(player.getUUID());

src/main/java/noobanidus/mods/lootr/common/data/LootrSavedData.java

Lines changed: 15 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -22,6 +22,7 @@
2222
import java.util.function.Supplier;
2323

2424
public class LootrSavedData extends SavedData implements ILootrSavedData {
25+
private boolean hasBeenOpened;
2526
private boolean justLoaded;
2627
private ILootrInfo info;
2728
private final Map<UUID, LootrInventory> inventories = new HashMap<>();
@@ -72,6 +73,9 @@ public static LootrSavedData load(CompoundTag compound, HolderLookup.Provider pr
7273
data.actualOpeners.add(NbtUtils.loadUUID(opener));
7374
}
7475
}
76+
if (compound.contains("hasBeenOpened")) {
77+
data.hasBeenOpened = compound.getBoolean("hasBeenOpened");
78+
}
7579
return data;
7680
}
7781

@@ -166,6 +170,8 @@ public CompoundTag save(CompoundTag compound, HolderLookup.Provider provider) {
166170
}
167171
compound.put("actualOpeners", actualOpeners);
168172

173+
compound.putBoolean("hasBeenOpened", hasBeenOpened);
174+
169175
return compound;
170176
}
171177

@@ -184,8 +190,16 @@ public void update(ILootrInfo info) {
184190
}
185191

186192
@Override
187-
public void clearInventories() {
193+
public void refresh() {
188194
inventories.clear();
195+
hasBeenOpened = false;
196+
setDirty();
197+
}
198+
199+
// This is triggered in createInventory and reset in refresh.
200+
@Override
201+
public boolean hasBeenOpened() {
202+
return hasBeenOpened;
189203
}
190204

191205
@Override

0 commit comments

Comments
 (0)