Fixed disguises (spells) not clearing properly when removed by the server #47

This commit is contained in:
Sollace 2022-01-26 12:05:37 +01:00
parent 6d48b1ad57
commit 66255ad61d

View file

@ -48,8 +48,13 @@ public class NetworkedReferenceSet<T> {
public boolean clear() { public boolean clear() {
dirty |= !ids.isEmpty() || !values.isEmpty(); dirty |= !ids.isEmpty() || !values.isEmpty();
ids.clear(); ids.clear();
for (NetworkedReference<T> reference : values.values()) { try {
reference.updateReference(null); reading = true;
for (NetworkedReference<T> reference : values.values()) {
reference.updateReference(null);
}
} finally {
reading = false;
} }
values.clear(); values.clear();
return dirty; return dirty;
@ -81,7 +86,12 @@ public class NetworkedReferenceSet<T> {
NetworkedReference<T> i = values.remove(id); NetworkedReference<T> i = values.remove(id);
if (i != null) { if (i != null) {
dirty = true; dirty = true;
i.updateReference(null); try {
reading = true;
i.updateReference(null);
} finally {
reading = false;
}
} }
} }