Remove item.json

Improve AdvancementsManager
This commit is contained in:
2026-06-12 15:35:13 +02:00
parent 7adb1e8b4a
commit 18b65a2984
4 changed files with 19 additions and 28145 deletions
@@ -24,8 +24,17 @@ import com.google.gson.JsonObject;
import java.io.BufferedReader;
import java.io.InputStreamReader;
import java.net.URI;
public class Items {
static final JsonObject values = new Gson().fromJson(new BufferedReader(new InputStreamReader(Items.class.getResourceAsStream("/de/steamwar/velocitycore/advancements/item.json"))), JsonObject.class);
public static final JsonObject values;
static {
try {
values = new Gson().fromJson(new BufferedReader(new InputStreamReader(URI.create("https://raw.githubusercontent.com/retrooper/packetevents/refs/heads/2.0/mappings/registries/item.json").toURL().openConnection().getInputStream())), JsonObject.class);
} catch (Exception e) {
throw new IllegalStateException(e);
}
}
}
File diff suppressed because it is too large Load Diff
@@ -152,13 +152,18 @@ public class Advancement {
private final Function<SteamwarUser, T> valueFunction;
public T get(SteamwarUser user) {
return valueFunction.apply(user);
private Advancement.Value get(SteamwarUser user) {
Key self = this;
return values.computeIfAbsent(user, __ -> new HashMap<>()).computeIfAbsent(self, __ -> {
Value data = new Advancement.Value();
data.update(user, self);
return data;
});
}
public Function<SteamwarUser, Integer> max(int neededValue) {
return user -> {
double value = values.get(user).get(Key.this).value.doubleValue();
double value = get(user).value.doubleValue();
if (value > neededValue) return Math.min(neededValue, 100);
return (int) (value / Math.max(neededValue / 100.0, 1));
};
@@ -166,7 +171,7 @@ public class Advancement {
public Function<SteamwarUser, Integer> reached(int neededValue) {
return user -> {
double value = values.get(user).get(Key.this).value.doubleValue();
double value = get(user).value.doubleValue();
return value >= neededValue ? 1 : 0;
};
}
@@ -33,7 +33,6 @@ import de.steamwar.velocitycore.listeners.BasicListener;
import it.unimi.dsi.fastutil.objects.Object2IntMap;
import java.lang.reflect.Field;
import java.util.HashMap;
import java.util.Optional;
@Linked
@@ -73,11 +72,6 @@ public class AdvancementsManager extends BasicListener {
((ConnectedPlayer) event.getPlayer()).getConnection().write(selectAdvancementTabPacket);
SteamwarUser user = SteamwarUser.get(event.getPlayer().getUniqueId());
Advancement.Value.Key.keys.forEach(key -> {
Advancement.Value value = new Advancement.Value();
value.update(user, key);
Advancement.values.computeIfAbsent(user, k -> new HashMap<>()).put(key, value);
});
for (Advancement advancement : Advancements.getAll()) {
advancement.get(user);
}