forked from SteamWar/SteamWar
Remove item.json
Improve AdvancementsManager
This commit is contained in:
@@ -24,8 +24,17 @@ import com.google.gson.JsonObject;
|
|||||||
|
|
||||||
import java.io.BufferedReader;
|
import java.io.BufferedReader;
|
||||||
import java.io.InputStreamReader;
|
import java.io.InputStreamReader;
|
||||||
|
import java.net.URI;
|
||||||
|
|
||||||
public class Items {
|
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;
|
private final Function<SteamwarUser, T> valueFunction;
|
||||||
|
|
||||||
public T get(SteamwarUser user) {
|
private Advancement.Value get(SteamwarUser user) {
|
||||||
return valueFunction.apply(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) {
|
public Function<SteamwarUser, Integer> max(int neededValue) {
|
||||||
return user -> {
|
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);
|
if (value > neededValue) return Math.min(neededValue, 100);
|
||||||
return (int) (value / Math.max(neededValue / 100.0, 1));
|
return (int) (value / Math.max(neededValue / 100.0, 1));
|
||||||
};
|
};
|
||||||
@@ -166,7 +171,7 @@ public class Advancement {
|
|||||||
|
|
||||||
public Function<SteamwarUser, Integer> reached(int neededValue) {
|
public Function<SteamwarUser, Integer> reached(int neededValue) {
|
||||||
return user -> {
|
return user -> {
|
||||||
double value = values.get(user).get(Key.this).value.doubleValue();
|
double value = get(user).value.doubleValue();
|
||||||
return value >= neededValue ? 1 : 0;
|
return value >= neededValue ? 1 : 0;
|
||||||
};
|
};
|
||||||
}
|
}
|
||||||
|
|||||||
@@ -33,7 +33,6 @@ import de.steamwar.velocitycore.listeners.BasicListener;
|
|||||||
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
import it.unimi.dsi.fastutil.objects.Object2IntMap;
|
||||||
|
|
||||||
import java.lang.reflect.Field;
|
import java.lang.reflect.Field;
|
||||||
import java.util.HashMap;
|
|
||||||
import java.util.Optional;
|
import java.util.Optional;
|
||||||
|
|
||||||
@Linked
|
@Linked
|
||||||
@@ -73,11 +72,6 @@ public class AdvancementsManager extends BasicListener {
|
|||||||
|
|
||||||
((ConnectedPlayer) event.getPlayer()).getConnection().write(selectAdvancementTabPacket);
|
((ConnectedPlayer) event.getPlayer()).getConnection().write(selectAdvancementTabPacket);
|
||||||
SteamwarUser user = SteamwarUser.get(event.getPlayer().getUniqueId());
|
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()) {
|
for (Advancement advancement : Advancements.getAll()) {
|
||||||
advancement.get(user);
|
advancement.get(user);
|
||||||
}
|
}
|
||||||
|
|||||||
Reference in New Issue
Block a user